[hidden]{display:none!important}.review-controls a{color:#193d64;margin-left:auto}.session-landing{display:grid;place-items:center;padding:40px;background:linear-gradient(#0816229e,#102330ba),url('/assets/dungeon-gate.png') center/cover;overflow:auto}.session-landing>section{width:min(720px,100%);padding:36px;border:1px solid var(--border);border-radius:18px;background:#13283bcc;backdrop-filter:blur(20px)}.session-landing h1{font:800 36px/1.15 var(--display);margin:12px 0}.session-landing p{line-height:1.65;margin:16px 0}.session-landing small{display:block;line-height:1.5;margin-top:20px}.invitation{display:flex;align-items:center;gap:16px;border-top:1px solid #819ca366;padding:15px 0}.invitation strong{margin-right:auto}.invitation a{color:#d5eddf;text-underline-offset:4px}.invitation button{font-size:12px;min-height:30px}.hand-hint{pointer-events:auto;line-height:1.5}.session-card{cursor:default}.session-card .card-description{top:50px}.session-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.9fr);height:100%;gap:22px;padding:22px;align-items:start;overflow:auto}.session-room{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.session-room>img{width:min(100%,190px);height:auto;aspect-ratio:1;object-fit:cover;flex:none;border:1px solid #b4d9c377;border-radius:13px;box-shadow:0 10px 30px #0006}.session-room h2{font:800 27px/1.15 var(--display);margin:7px 0}.session-room p{font-size:13px;line-height:1.6;color:var(--muted)}.private-note{min-width:0;background:#12273bcc;border:1px solid #7aadb355;border-radius:12px;padding:17px;backdrop-filter:blur(12px)}.private-note h2{font-size:22px;margin:6px 0 12px}.private-note label{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.private-note textarea{display:block;width:100%;min-height:88px;height:100px;resize:vertical;font:14px/1.5 var(--body);padding:10px}.draft-actions{display:flex;align-items:center;gap:8px;margin-top:10px}.draft-actions span{margin-right:auto;font-size:11px;line-height:1.4;color:var(--muted)}.draft-actions button{font-size:12px;white-space:nowrap}.party-region .avatar{width:36px;height:36px;background-size:300% 100%;background-repeat:no-repeat;object-fit:cover;flex:none}.game-shell #players .player{grid-template-columns:36px minmax(0,1fr);padding-block:12px}.game-shell #players .player[aria-pressed=true]{background:#32506066;box-shadow:none;border-color:#9eb8b588}.member-state{display:flex;align-items:center;gap:5px;margin-top:3px}.presence-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:#788a99}.presence-dot.online{background:#9ce2bd;box-shadow:0 0 8px #9ce2bd66}#character-name{font:700 20px/1.25 var(--display);margin-bottom:12px}.public-equipment{position:relative;display:flex;align-items:center;min-height:64px;border:1px solid #7eb79788;background:#122938aa;border-radius:7px;overflow:hidden;margin-bottom:10px}.public-equipment img{height:64px;width:64px;aspect-ratio:1;object-fit:cover;flex:none}.public-equipment span{padding:8px;font:700 12px/1.35 var(--display)}.narrator-audio{font-size:11px;color:#bfd0c7}.session-reading .narrator-portrait{border-color:#b5e0cc;box-shadow:0 0 20px #92d8b644}.game-navigation span{font:11px/1.4 var(--mono);color:var(--muted);text-align:center;padding:0 12px}.command-error{position:fixed;z-index:100;bottom:65px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;width:min(780px,calc(100% - 30px));background:#2b2035f5;border:1px solid #de9d9d;border-radius:10px;box-shadow:0 10px 40px #000a;padding:16px;font-size:13px}.command-error span{flex:1}.command-error button{font-size:12px;flex:none}#connection-status[data-connected=false]{color:#983f3f}.game-shell #ready[aria-pressed=true]{background:#355b4b;border-color:#b2dac2}.phase-transition p{line-height:1.5;color:var(--muted)}
@media(min-width:1600px){.session-room{flex-wrap:nowrap;align-items:start}.session-room>img{width:42%;max-width:270px}.session-stage{gap:26px;padding:28px}.private-note{padding:24px}.private-note textarea{height:150px}}
@media(max-height:800px){.session-stage{padding:12px;gap:12px}.session-room{gap:10px}.session-room>img{width:110px}.session-room h2{font-size:22px}.session-room p{font-size:12px}.private-note{padding:12px}.private-note h2{font-size:19px;margin:4px 0 8px}.private-note textarea{height:68px;min-height:68px}.draft-actions{margin-top:6px}.private-note label{margin-bottom:5px;font-size:11px}}
@media(max-width:1100px){.session-stage{grid-template-columns:minmax(0,1fr);overflow:auto}.session-room{flex-wrap:nowrap}.session-room>img{width:100px}.private-note textarea{height:76px}.action-region{gap:6px}#action-buttons{gap:5px}.game-chrome #viewer-name{white-space:nowrap}#equipment{font-size:11px}.public-equipment{display:block}.public-equipment img{width:100%;height:auto}.public-equipment span{display:block}.command-error{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.session-card{transition:none}}

/* Connected room preparation reuses the fixed game shell and its card palette. */
.dungeon-stage{height:100%;min-height:0}.dungeon-gameplay,.dungeon-character{padding:22px;min-height:100%}.dungeon-gameplay h2,.dungeon-character h2{font:800 26px/1.2 var(--display);margin:7px 0 10px}.prep-heading{margin-bottom:17px}.prep-heading>p,.prep-help{font:13px/1.6 var(--body);color:var(--muted);margin:8px 0}.prep-form{display:grid;gap:10px}.prep-form label{font:700 14px var(--display)}.prep-form textarea{width:100%;min-height:90px;max-height:220px;resize:vertical;font:14px/1.5 var(--body);padding:12px}.prep-form .prep-help{margin:0 0 4px}.prep-drop-zone{min-height:156px;padding:16px;border:2px dashed #82afb1;border-radius:12px;background:#102b3977;backdrop-filter:blur(12px)}.prep-drop-zone.has-cards{padding:10px}.prep-drop-zone.drag-over{border-color:#b1ead2;background:#2c575d99;box-shadow:0 0 0 3px #a7e3ca66}.prep-drop-hint{display:grid;justify-items:center;text-align:center;gap:8px}.prep-drop-hint strong{font:700 21px var(--display)}.prep-drop-hint p{font-size:12px;line-height:1.5;color:var(--muted)}.prep-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,275px),1fr));gap:10px}.prep-card{--card-color:oklch(61% .16 38);position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) 116px;overflow:hidden;min-height:116px;border:2px solid color-mix(in oklch,var(--card-color),transparent 30%);border-radius:10px;background:#122337;box-shadow:0 6px 14px #0005}.prep-card.creature-card{--card-color:oklch(57% .14 153)}.prep-card::before{content:"";position:absolute;inset:-12px;z-index:-1;background:linear-gradient(90deg,#10253899,#0a182de8),var(--card-art) center/cover;filter:blur(16px);opacity:.9}.prep-card>img{grid-column:2;grid-row:1;width:116px;height:116px;aspect-ratio:1;object-fit:cover;mask-image:linear-gradient(90deg,transparent,#000 20%)}.prep-card-copy{grid-column:1;grid-row:1;min-width:0;padding:14px 8px 12px 13px;align-self:center}.prep-card h3{font:800 17px/1.2 var(--display);margin:5px 0 6px;overflow-wrap:anywhere}.prep-card p{font:12px/1.4 var(--body);color:var(--fg)}.prep-card .eyebrow{font-size:8px}.prep-feedback{font:12px/1.5 var(--body);color:#c3dcd2}.prep-buttons{display:flex;gap:10px;justify-content:flex-end}.prep-remove-card,.prep-reserved,.prep-contributor,.prep-choice-controls{grid-column:1/-1;position:relative;z-index:1}.game-shell .prep-remove-card{min-height:29px;border:0;border-top:1px solid #9fc7b655;border-radius:0;background:#0c1d2faa;font-size:11px;text-align:left;padding:6px 12px}.prep-reserved,.prep-contributor{padding:7px 12px;font:10px var(--mono);color:#b8d0c7;background:#0c1d2faa}.prep-overflow-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,285px),1fr));gap:14px;margin:14px 0}.prep-overflow>.primary{display:block;margin-left:auto}.prep-choice-controls{display:flex;gap:6px;padding:8px;background:#0c1d2faa}.prep-choice-controls button{flex:1;min-height:33px;padding:5px 7px;font-size:11px}.prep-choice-controls button[aria-pressed=true]{border-color:#b3e2c9;background:#345b4d!important}.prep-card.accepted{box-shadow:0 0 0 2px #b3e2c944,0 6px 14px #0005}.prep-wait{display:grid;justify-items:center;text-align:center;gap:10px;min-height:130px;align-content:center;background:#17313d66;border:1px solid #89a6a344;border-radius:12px;color:#c2d2cd}.waiting-sigil{font-size:44px;color:#a4c9bc}.prep-wait p{font-size:13px}.dungeon-character .inventory-owners{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.inventory-owners button{font-size:12px;min-height:33px}.dungeon-equipment{display:grid;gap:15px}.dungeon-character-heading{border-bottom:1px solid #a5beb855;padding-bottom:10px;margin-bottom:18px}.dungeon-equipment .prep-card{grid-template-columns:minmax(0,1fr) 156px;min-height:156px}.dungeon-equipment .prep-card>img{width:156px;height:156px}.dungeon-equipment .prep-card h3{font-size:22px}.dungeon-equipment .prep-card p{font-size:14px}.dungeon-character>.prep-help{margin-top:20px}
.dungeon-map-view{height:100%;min-height:350px;display:grid;grid-template-columns:minmax(0,1fr) minmax(145px,25%);overflow:auto}.dungeon-map-canvas{position:relative;min-width:300px;min-height:365px;background:radial-gradient(ellipse,#325b4d44,transparent 75%)}.dungeon-map-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.dungeon-map-lines line{stroke:#8ba9b4;stroke-width:2;vector-effect:non-scaling-stroke;opacity:.55}.dungeon-map-lines .available-route{stroke:#f1d694;stroke-width:4;stroke-dasharray:8 5;opacity:1}.dungeon-room{--room-size:65px;position:absolute;width:var(--room-size);height:var(--room-size);transform:translate(-50%,-50%);z-index:1}.dungeon-room .dungeon-room-disc{padding:0!important;width:var(--room-size);height:var(--room-size);min-height:0;border:2px solid #7e9da6!important;border-radius:50%;overflow:hidden;background:#102634!important;box-shadow:0 7px 16px #0008;display:grid;place-items:center}.dungeon-room-disc img{width:100%;height:100%;aspect-ratio:1;object-fit:cover}.dungeon-room.current .dungeon-room-disc{border-color:#b7ebdd!important;outline:3px solid #81d8bf;outline-offset:4px;box-shadow:0 0 0 9px #83dec236,0 0 26px #7dd5c133}.dungeon-room.reachable .dungeon-room-disc{border-color:#f3d393!important;outline:2px solid #f3d39355;outline-offset:4px;box-shadow:0 0 22px #f3d39344}.dungeon-room.unknown .dungeon-room-disc{border-style:dashed!important}.dungeon-room-label{position:absolute;left:50%;top:calc(100% + 7px);transform:translateX(-50%);width:126px;font:700 11px/1.2 var(--body);text-align:center;text-shadow:0 2px 5px #000;color:var(--fg)}.dungeon-room-state{position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%);white-space:nowrap;background:#e0c58f;color:#152337;border-radius:5px;padding:4px 6px;font:700 9px var(--mono);box-shadow:0 3px 9px #0009}.dungeon-room-state.current-state{background:#a5dece}.dungeon-room-avatars{position:absolute;left:calc(100% + 8px);top:-3px;display:flex;flex-direction:column;gap:3px}.game-shell .dungeon-room-avatars .room-badge{width:23px;height:23px;min-height:0;padding:0;border-radius:50%;background-size:300% 100%;background-position:var(--portrait-position) center;box-shadow:0 3px 7px #0007}.dungeon-room .room-depth{left:-7px;bottom:-3px;width:20px;height:20px;min-width:20px;font-size:10px}.unknown-room-symbol{font:800 33px var(--display);color:#daceb0}.dungeon-map-routes{display:flex;flex-direction:column;justify-content:center;gap:12px;padding:14px;border-left:1px solid #90b2b444;background:#0f2536a6}.dungeon-map-routes button{text-align:left;font:700 13px/1.5 var(--display);padding:13px}.dungeon-map-routes button:not(:disabled){border-color:#e2c992;background:#345355!important}
.game-shell .session-card[data-card-state=available],.game-shell .session-card[data-card-state=staged]{cursor:grab;touch-action:none}.session-card[data-card-state=reserved]{filter:saturate(.7)}.session-card.dragging-card{opacity:.2;transition:none;cursor:grabbing}.hand-card-state{position:absolute;bottom:8px;right:9px;padding:4px 7px;border-radius:4px;background:#0b2236df;color:#d2e7db;font:9px var(--mono);box-shadow:0 2px 8px #0007}.card-drag-preview{position:fixed!important;right:auto!important;bottom:auto!important;margin:0!important;transform:rotate(-3deg)!important;pointer-events:none!important;z-index:1000!important;transition:none!important;opacity:.97!important;box-shadow:0 18px 36px #000a!important}.card-drag-preview .card-name{font-size:14px!important}.card-drag-preview .card-description{font-size:11px!important;top:48px!important}.card-drag-preview .card-type{font-size:9px!important}
.task-popup{z-index:60;pointer-events:auto}.task-popup .transition-sigil{font-size:30px}.task-popup h2{font-size:26px}.task-popup-buttons{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.task-popup-buttons button{font-size:13px}#view-buttons{display:flex;gap:10px}.game-navigation{gap:18px}.game-navigation #test-scope{font-size:9px;max-width:210px}.game-navigation #view-buttons button{min-width:112px}#open-task{white-space:nowrap}
@media(min-width:1600px){.dungeon-map-canvas{min-height:420px}.dungeon-room{--room-size:78px}.dungeon-gameplay,.dungeon-character{padding:28px}.prep-form{gap:13px}.prep-drop-zone{min-height:185px}.dungeon-gameplay h2,.dungeon-character h2{font-size:30px}.prep-heading>p{font-size:14px}.dungeon-room-label{font-size:12px}.dungeon-room-avatars{left:calc(100% + 9px)}.game-shell .dungeon-room-avatars .room-badge{width:27px;height:27px}}
@media(max-height:800px){.dungeon-gameplay,.dungeon-character{padding:14px}.dungeon-gameplay h2,.dungeon-character h2{font-size:23px}.prep-heading{margin-bottom:12px}.prep-heading>p{font-size:12px}.prep-form textarea{min-height:75px}.prep-drop-zone{min-height:135px}.prep-card-list .prep-card{grid-template-columns:minmax(0,1fr) 96px;min-height:96px}.prep-card-list .prep-card>img{width:96px;height:96px}.prep-card-list .prep-card h3{font-size:15px}.prep-card-list .prep-card p{font-size:11px}.prep-card-copy{padding:10px}.dungeon-room{--room-size:58px}.task-popup{padding:20px;gap:10px}.task-popup h2{font-size:23px}}
@media(max-width:1100px){.dungeon-map-view{grid-template-columns:minmax(0,1fr)}.dungeon-map-canvas{min-height:390px}.dungeon-map-routes{border-left:0;border-top:1px solid #90b2b444;flex-direction:row;justify-content:center;padding:10px}.dungeon-map-routes button{font-size:12px;padding:8px}.game-navigation #test-scope{display:none}.game-navigation #view-buttons button{min-width:105px}.dungeon-equipment .prep-card{grid-template-columns:minmax(0,1fr) 126px;min-height:126px}.dungeon-equipment .prep-card>img{width:126px;height:126px}.dungeon-equipment .prep-card h3{font-size:20px}.dungeon-equipment .prep-card p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.card-drag-preview{transform:none!important}}
.dungeon-map-view{min-height:0}
.prep-tutorial-steps{display:grid;gap:14px}.prep-tutorial-step{display:grid;grid-template-columns:48px minmax(0,1fr);gap:15px;align-items:center;padding:15px;border:1px solid #94bdb377;border-radius:12px;background:#13344299;animation:tutorial-appear .7s both;animation-delay:calc(var(--step)*.18s)}.tutorial-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#a1c7b8}.tutorial-icon img{width:29px;height:29px;aspect-ratio:1;object-fit:contain;opacity:.85}.prep-tutorial-step h3{font:800 18px/1.2 var(--display);margin:0 0 6px}.prep-tutorial-step p{font:13px/1.5 var(--body);color:var(--muted)}.prep-tutorial-footer{margin-top:16px}.prep-tutorial-footer .prep-buttons{margin-top:12px}@keyframes tutorial-appear{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@media(max-height:800px){.prep-tutorial-step{padding:10px;gap:10px;grid-template-columns:38px minmax(0,1fr)}.tutorial-icon{width:38px;height:38px}.tutorial-icon img{width:24px;height:24px}.prep-tutorial-step h3{font-size:16px}.prep-tutorial-step p{font-size:12px}.prep-tutorial-steps{gap:10px}}@media(prefers-reduced-motion:reduce){.prep-tutorial-step{animation:none}}
.connected-room-summary{display:grid;grid-template-columns:min(38%,190px) minmax(0,1fr);gap:22px;align-items:center}.connected-room-art{margin:0;aspect-ratio:1;overflow:hidden;border:1px solid #a7c9be88;border-radius:15px;box-shadow:0 10px 26px #0008;background:#132a3a}.connected-room-art img{display:block;width:100%;height:100%;aspect-ratio:1;object-fit:cover}.connected-room-decision h3,.revealed-hazards>h3{font:800 22px/1.2 var(--display);margin:0 0 12px}.connected-room-decision p{font:14px/1.6 var(--body);color:var(--fg);margin:10px 0}.connected-room-decision .entry-consequence{color:var(--muted);font-size:12px}.connected-room-decision .eyebrow{display:block;margin-bottom:9px}.revealed-hazards{display:grid;gap:12px;margin-top:24px}.revealed-hazards:empty{display:none}.revealed-hazard{display:flex;gap:14px;padding:16px;border:1px solid #c2989555;border-radius:11px;background:#382d3b9c}.hazard-symbol{font-size:27px;color:#e4a4a4;line-height:1}.revealed-hazard p{font:14px/1.5 var(--body);color:var(--fg)}.hazard-difficulty{display:block;margin-top:8px;font:11px var(--mono);color:#e5b5a7}#confirm-entry,#decline-entry{white-space:nowrap}@media(max-height:800px){.connected-room-summary{grid-template-columns:min(35%,140px) minmax(0,1fr);gap:16px}.connected-room-decision h3,.revealed-hazards>h3{font-size:20px}.connected-room-decision p{font-size:12px}.revealed-hazards{margin-top:18px}.revealed-hazard{padding:12px}.revealed-hazard p{font-size:12px}}@media(max-width:1100px){.connected-room-summary{gap:13px}.connected-room-decision h3{font-size:19px}.connected-room-decision p{font-size:12px}#confirm-entry,#decline-entry{font-size:11px;padding:7px}#action-buttons{flex-wrap:wrap;justify-content:flex-end}}
.prep-wait[data-attention=true]{border-color:#d1aa7888;background:#39342a80;color:#f0d8b2}.prep-wait[data-attention=true] .waiting-sigil{color:#e2bb88}
.prep-description-fields{display:grid;gap:8px}.prep-fixed-actions{margin:0;align-items:center;flex-wrap:nowrap}.prep-fixed-actions button{white-space:nowrap}.prep-form[data-master=true]{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start}.prep-form>.prep-feedback{grid-column:1/-1;margin:0}.prep-form[data-master=true] .prep-drop-zone{height:100%;min-height:170px}.prep-form[data-master=true] .prep-card-list{grid-template-columns:minmax(0,1fr)}@media(max-height:800px) and (min-width:1101px){.dungeon-gameplay[data-stage=preparing]{height:100%;min-height:0;display:flex;flex-direction:column;padding:12px}.dungeon-gameplay[data-stage=preparing] .prep-heading{flex:none;margin-bottom:9px}.dungeon-gameplay[data-stage=preparing] .prep-heading h2{font-size:22px;margin:4px 0 5px}.dungeon-gameplay[data-stage=preparing] .prep-heading>p{font-size:11px;line-height:1.4;margin:4px 0 0}.dungeon-gameplay[data-stage=preparing] .prep-form{flex:1;min-height:0;grid-template-rows:minmax(0,1fr) auto;gap:7px;align-items:stretch}.prep-form .prep-description-fields{min-height:0;overflow:auto;gap:5px;display:flex;flex-direction:column;scrollbar-width:thin}.prep-form .prep-description-fields label{font-size:12px}.prep-form .prep-description-fields textarea{min-height:64px;height:76px;flex:1;resize:vertical;font-size:12px;padding:8px}.prep-form .prep-description-fields .prep-help{font-size:10px;line-height:1.4;margin:0}.prep-form .prep-drop-zone,.prep-form[data-master=true] .prep-drop-zone{min-height:95px;height:auto;overflow:auto;padding:10px;scrollbar-width:thin}.prep-drop-hint{gap:5px}.prep-drop-hint .drop-symbol{font-size:27px}.prep-drop-hint strong{font-size:16px}.prep-drop-hint p{font-size:10px;line-height:1.4}.prep-feedback{font-size:10px;line-height:1.4}.prep-fixed-actions button{min-height:32px;font-size:11px;padding:6px 9px}}@media(max-width:1100px){.prep-form[data-master=true]{grid-template-columns:minmax(0,1fr)}.prep-fixed-actions{gap:5px}.prep-fixed-actions button{font-size:11px;padding:6px 8px}}
.game-shell .narrator-audio{flex-direction:column;align-items:stretch;gap:5px;padding:5px 10px}.narrator-audio-status{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:15px;font-size:10px;line-height:1.3}.narrator-audio audio{display:block;width:100%;height:32px;min-width:0;color-scheme:dark}.narrator-audio #audio-status{color:#d3e3d9;text-align:right}@media(max-height:800px){.game-shell .narrator-audio{padding:4px 8px;gap:3px}.narrator-audio-status{font-size:9px}.narrator-audio audio{height:28px}}
.dungeon-room-avatars .death-marker{display:grid;place-items:center;background:#050608!important;color:#e84351!important;border:1px solid #a22d3a!important;font-size:22px;line-height:1;box-shadow:0 2px 5px #000b}

/* Character creation keeps the shared narrator, timer and bottom navigation in place. */
.character-creation{display:grid;gap:16px;max-width:1100px;margin:auto;width:100%;padding:12px 0}.character-creation h2{margin:0}.character-creation .prep-help{line-height:1.6}.character-choice,.character-confirmation{display:flex;flex-wrap:wrap;gap:14px}.character-choice button{min-height:74px;flex:1;min-width:230px}.character-confirmation p{flex-basis:100%;line-height:1.6}.character-text-form{display:grid;grid-template-columns:1fr auto;gap:12px;max-width:780px}.character-text-form label,.character-text-form input,.character-text-form textarea,.character-text-form p{grid-column:1/-1}.character-text-form input,.character-text-form textarea{width:100%;background:#091725dd;color:var(--text,#f5ead3);border:1px solid #7799aa99;border-radius:8px;padding:12px;font:inherit}.character-image-step,.character-review{display:grid;grid-template-columns:minmax(180px,320px) minmax(0,1fr);align-items:start;gap:24px}.character-portrait-preview,.character-portrait-placeholder{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border:1px solid #9fc4b699;border-radius:14px;background:#0c1d2dbb}.character-portrait-placeholder{display:grid;place-items:center;color:var(--muted)}.character-image-actions{display:flex;flex-direction:column;gap:14px;align-items:flex-start;min-width:0}.character-image-actions h3{font-family:var(--display);font-size:26px}.character-image-actions p{line-height:1.6}.character-upload-label{font-weight:700}.character-image-actions input{max-width:100%}.character-core-traits{display:grid;gap:14px}.character-traits{padding:12px 16px;background:#112a3dcc;border-left:3px solid #82aeb6;border-radius:6px}.character-traits h3{margin:0 0 9px}.character-traits p{line-height:1.55;margin:6px 0}.character-traits.advantages{border-color:#8ac4a1}.character-traits.disadvantages{border-color:#db8792}.character-introduction-preview{font-family:var(--display);line-height:1.65}.character-review button{margin-top:16px}.character-error{color:#f1a5ad;line-height:1.6}.character-progress{padding:22px;background:#102538cc;border-radius:10px;line-height:1.6}@media(max-width:900px){.character-image-step,.character-review{grid-template-columns:minmax(150px,220px) minmax(0,1fr)}}
