:root{--mist: #F3F4F4;--mist-dim: #d8dbdc;--mist-soft: rgba(243,244,244,.06);--mulberry: #853953;--mulberry-dim: #6e2f46;--mulberry-glow: rgba(133,57,83,.25);--plum: #612D53;--plum-dim: #4e2444;--plum-glow: rgba(97,45,83,.22);--charcoal: #2C2C2C;--charcoal-light: #3a3a3a;--charcoal-soft: #444;--text: #1e1e1e;--text-secondary: #5a5a5a;--surface: rgba(243,244,244,.92);--surface-soft: rgba(235,236,237,.88);--surface-strong: rgba(255,255,255,.96);--surface-muted: rgba(243,244,244,.55);--border: rgba(44,44,44,.12);--border-strong: rgba(44,44,44,.22);--primary: var(--mulberry);--primary-hover: #9a4464;--secondary: var(--plum);--secondary-hover: #7a3a6a;--danger: #c04040;--danger-hover: #d04848;--shadow: rgba(44,44,44,.12);--shadow-strong: rgba(44,44,44,.22);--error-bg: #fde8e8;--error-text: #8b2020;--alert-bg: rgba(133,57,83,.12);--meeting-bg: rgba(97,45,83,.08);--minimap-bg: rgba(243,244,244,.7);--bg: linear-gradient(165deg, #ecedef 0%, #e2dfe4 40%, #ddd8de 100%);--badge-ready: #3a8a5c;--badge-waiting: var(--text-secondary);--badge-host: var(--mulberry);--font-brand: "Outfit", sans-serif;--font-body: "Inter", sans-serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 22px;--ease: cubic-bezier(.4,0,.2,1);--speed-fast: .12s;--speed: .2s;--speed-slow: .32s}:root[data-theme=dark]{--text: #eaecee;--text-secondary: #9ca0a8;--surface: rgba(30, 28, 36, .92);--surface-soft: rgba(36, 33, 44, .88);--surface-strong: rgba(40, 37, 50, .94);--surface-muted: rgba(28, 26, 34, .7);--border: rgba(200, 200, 220, .06);--border-strong: rgba(200, 200, 220, .1);--primary-hover: #a04e6e;--secondary-hover: #8a4878;--danger: #d05050;--danger-hover: #e05858;--shadow: rgba(0,0,0,.35);--shadow-strong: rgba(0,0,0,.5);--error-bg: rgba(120,30,30,.8);--error-text: #ffc8c8;--alert-bg: rgba(133,57,83,.3);--meeting-bg: rgba(97,45,83,.25);--minimap-bg: rgba(38,35,48,.85);--bg: linear-gradient(165deg, #181620 0%, #1e1b28 40%, #242030 100%);--badge-ready: #5cc080;--badge-waiting: var(--text-secondary);--badge-host: #c46a8a}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-body);font-size:14px;line-height:1.55;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-brand);margin:0 0 .5rem;line-height:1.2}h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em}h2{font-size:1.15rem;font-weight:600}h3{font-size:1rem;font-weight:600}h4{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}p{margin:0 0 .5rem}button,input,select,textarea{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:0;border-radius:var(--radius-md);padding:.6rem 1.1rem;font-family:var(--font-body);font-size:.82rem;font-weight:600;background:var(--primary);color:var(--mist);cursor:pointer;transition:background var(--speed) var(--ease),transform var(--speed-fast) var(--ease),box-shadow var(--speed) var(--ease);white-space:nowrap}button:hover{background:var(--primary-hover)}button:active{transform:scale(.97)}button:focus-visible{outline:2px solid var(--mulberry);outline-offset:2px}button:disabled{opacity:.4;cursor:not-allowed;transform:none}button.secondary{background:var(--surface-strong);color:var(--text);border:1px solid var(--border-strong)}button.secondary:hover{background:var(--surface-soft);border-color:var(--mulberry)}button.danger{background:var(--danger);color:var(--mist)}button.danger:hover{background:var(--danger-hover)}button.active-toggle{background:var(--mulberry);color:var(--mist);border-color:var(--mulberry)}button.icon-btn{padding:.45rem;min-width:36px;min-height:36px;border-radius:var(--radius-sm);background:var(--surface-strong);color:var(--text);border:1px solid var(--border);font-size:1.1rem}button.icon-btn:hover{background:var(--surface-soft);border-color:var(--mulberry)}input,select,textarea{width:100%;border-radius:var(--radius-md);border:1px solid var(--border);padding:.6rem .8rem;background:var(--surface-strong);color:var(--text);transition:border-color var(--speed) var(--ease),box-shadow var(--speed) var(--ease)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--mulberry);box-shadow:0 0 0 3px var(--mulberry-glow)}textarea{resize:vertical}.app-shell{min-height:100vh;padding:0;display:flex;flex-direction:column}.top-bar{display:flex;align-items:center;gap:.6rem;padding:.4rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.top-bar-brand{display:flex;align-items:baseline;gap:.5rem;margin-right:auto}.top-bar-brand h1{font-size:1.1rem;margin:0;color:var(--mulberry)}.top-bar-brand .tagline{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;font-weight:500}.top-bar-badges{display:flex;gap:.5rem;align-items:center}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;border-radius:20px;font-size:.7rem;font-weight:600;background:var(--surface-soft);border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap}.room-code-badge{gap:.45rem}.room-code-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.65rem}.room-code-value{display:inline-flex;align-items:center;justify-content:center;min-width:4.9rem;padding:.2rem .45rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:.82rem;font-weight:700;letter-spacing:.16em;-webkit-user-select:text;user-select:text}.copy-code-btn{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:border-color var(--speed-fast) var(--ease),color var(--speed-fast) var(--ease),background var(--speed-fast) var(--ease)}.copy-code-btn:hover:not(:disabled){color:var(--text);border-color:var(--mulberry);background:var(--surface-soft)}.copy-code-btn:disabled{opacity:.55;cursor:not-allowed}.lobby-code-group{display:inline-flex;align-items:center;gap:.4rem}.lobby-info>span:before{content:none!important}.lobby-info .info-separator{opacity:.5}.badge .dot{width:6px;height:6px;border-radius:50%;background:var(--badge-waiting);flex-shrink:0}.badge .dot.connected{background:var(--badge-ready)}.badge .dot.voice-on{background:var(--mulberry)}.content-area{flex:1;padding:.75rem;width:100%}.main-flow{display:flex;flex-direction:column;gap:.75rem}.main-flow>*{min-width:0}.character-summary-bar{display:flex;align-items:center;gap:.75rem;padding:.55rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 1px 6px var(--shadow)}.character-summary-avatar{border-radius:var(--radius-sm);border:2px solid var(--mulberry-glow);background:var(--surface-soft);image-rendering:pixelated;flex-shrink:0}.character-summary-info{display:flex;flex-direction:column;gap:.1rem;margin-right:auto;min-width:0}.character-summary-name{font-family:var(--font-brand);font-weight:600;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.character-summary-source{font-size:.68rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.character-editor-overlay{position:fixed;inset:0;background:#07090e99;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.character-editor-modal{width:min(440px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow-y:auto;border-radius:var(--radius-xl);padding:1.25rem}.character-editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.character-editor-header h2{margin:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.85rem;box-shadow:0 2px 12px var(--shadow)}.panel.inset{background:var(--surface-soft);box-shadow:inset 0 1px 4px #0000000a}.profile-panel{align-self:start;position:sticky;top:72px;width:100%;min-width:0;overflow:hidden}.profile-panel h2{display:flex;align-items:center;gap:.4rem;margin-bottom:.9rem;color:var(--mulberry)}.field{display:grid;gap:.3rem;margin-bottom:.75rem}.field>span{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.avatar-preview{display:flex;justify-content:center;padding:.8rem}.avatar-preview img{border-radius:var(--radius-lg);border:3px solid var(--mulberry-glow);background:var(--surface-soft);image-rendering:pixelated}.avatar-preview.compact{padding:0}.avatar-preview.compact img{width:64px;height:64px}.avatar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;margin-bottom:.75rem}.avatar-card{padding:.3rem;background:var(--surface-strong);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--speed) var(--ease),background var(--speed) var(--ease)}.avatar-card:hover{border-color:var(--mulberry);background:var(--mulberry-glow)}.avatar-card img{display:block;width:100%;height:auto;image-rendering:pixelated}.swatch-grid{display:grid;gap:.65rem;margin-bottom:.75rem}.swatch-group{display:grid;gap:.25rem}.swatch-group>span{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.swatch-chips{display:flex;gap:.35rem;flex-wrap:wrap}.swatch-chip{display:flex;align-items:center;gap:.35rem;padding:.28rem .55rem;max-width:100%;border-radius:20px;border:2px solid var(--border);background:var(--surface-strong);cursor:pointer;font-size:.72rem;font-weight:500;color:var(--text);transition:border-color var(--speed) var(--ease),background var(--speed) var(--ease)}.swatch-chip:hover{border-color:var(--mulberry-dim)}.swatch-chip.active{border-color:var(--mulberry);background:var(--mulberry-glow)}.swatch-dot{width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.1);flex-shrink:0}.photo-upload-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem .8rem;border-radius:var(--radius-md);border:1px dashed var(--border-strong);background:var(--surface-soft);color:var(--text-secondary);cursor:pointer;font-size:.78rem;font-weight:500;transition:border-color var(--speed) var(--ease),color var(--speed) var(--ease);margin-bottom:.75rem;width:100%;justify-content:center}.photo-upload-btn:hover{border-color:var(--mulberry);color:var(--mulberry)}.photo-upload-btn input[type=file]{display:none}.saved-profile-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.saved-profile-card h2{margin-bottom:.2rem}.saved-profile-card .saved-name{font-family:var(--font-brand);font-weight:600;font-size:1rem}.saved-profile-card .saved-hint{font-size:.72rem;color:var(--text-secondary);margin-bottom:.3rem}.main-panel{min-width:0;position:relative;z-index:1}.segmented-control{display:flex;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-md);padding:3px;gap:0}.segmented-control button{flex:1;border:0;border-radius:calc(var(--radius-md) - 2px);padding:.45rem .9rem;background:transparent;color:var(--text-secondary);font-size:.78rem;font-weight:600;transition:background var(--speed) var(--ease),color var(--speed) var(--ease),box-shadow var(--speed) var(--ease)}.segmented-control button:hover{color:var(--text)}.segmented-control button.active-toggle{background:var(--mulberry);color:var(--mist);box-shadow:0 1px 4px var(--mulberry-glow)}.actions-row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}.actions-row.compact{margin-bottom:0;margin-top:.75rem}.actions-row.compact .field.dev-duration-field{margin-bottom:0;min-width:8.5rem;flex:0 0 8.5rem}.actions-row.compact .field.dev-duration-field>span{font-size:.7rem}.join-form{display:flex;gap:.5rem;flex:1 1 280px}.join-form input{font-family:Outfit,monospace;font-size:1.1rem;font-weight:700;letter-spacing:.25em;text-align:center;max-width:180px;padding:.55rem .75rem;border:2px solid var(--border-strong);background:var(--surface-strong)}.join-form input:focus{border-color:var(--mulberry)}.join-form button{flex-shrink:0}.mode-toggle{display:contents}.error-box{border-radius:var(--radius-md);padding:.6rem .9rem;background:var(--error-bg);color:var(--error-text);font-size:.82rem;font-weight:500;margin-bottom:.75rem;border:1px solid rgba(192,64,64,.15)}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--text-secondary)}.empty-state h3{color:var(--text);margin-bottom:.6rem}.empty-state p{max-width:36rem;margin-left:auto;margin-right:auto;font-size:.85rem}.split-top{display:grid;grid-template-columns:1fr 300px;gap:.75rem;margin-bottom:.75rem}.lobby-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem}.lobby-header h3{margin:0}.lobby-meta{font-size:.75rem;color:var(--text-secondary)}.ready-bar{height:4px;border-radius:2px;background:var(--surface-muted);margin-bottom:.75rem;overflow:hidden}.ready-bar-fill{height:100%;background:var(--badge-ready);border-radius:2px;transition:width var(--speed-slow) var(--ease)}.player-list{list-style:none;padding:0;margin:0 0 .5rem;display:grid;gap:.35rem}.player-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .6rem;border-radius:var(--radius-sm);background:var(--surface-strong);border:1px solid var(--border);font-size:.82rem;transition:background var(--speed) var(--ease)}.player-list li:hover{background:var(--surface-soft)}.player-name{font-weight:600;display:flex;align-items:center;gap:.35rem}.player-name .host-badge{font-size:.65rem;padding:.1rem .35rem;border-radius:10px;background:var(--mulberry-glow);color:var(--badge-host);font-weight:700;text-transform:uppercase;letter-spacing:.03em}.player-status{font-size:.72rem;font-weight:600;display:flex;align-items:center;gap:.3rem}.player-row-actions{display:inline-flex;align-items:center;gap:.45rem}.kick-player-btn{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--danger) 50%,var(--border));background:transparent;color:var(--danger);cursor:pointer;font-size:.9rem;line-height:1;transition:background var(--speed-fast) var(--ease),border-color var(--speed-fast) var(--ease),transform var(--speed-fast) var(--ease)}.kick-player-btn:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);border-color:var(--danger);transform:translateY(-1px)}.player-status .ready-dot{width:7px;height:7px;border-radius:50%}.player-status .ready-dot.ready{background:var(--badge-ready)}.player-status .ready-dot.waiting{background:var(--badge-waiting)}.player-status .offline-tag{font-size:.65rem;color:var(--danger);font-style:italic}.lobby-info{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-secondary);margin-bottom:.5rem}.lobby-info span+span:before{content:"·";margin:0 .4rem;opacity:.5}.test-mode-note{font-size:.72rem;color:var(--text);padding:.4rem .6rem;background:var(--plum-glow);border-radius:var(--radius-sm);margin-bottom:.5rem;border:1px solid var(--border)}.comms-panel h3{margin-bottom:.5rem}.comms-hint{font-size:.7rem;color:var(--text-secondary);margin-bottom:.5rem}.chat-log{max-height:360px;min-height:120px;overflow-y:auto;scroll-behavior:smooth;background:var(--surface-muted);border-radius:var(--radius-md);padding:.6rem;margin-bottom:.65rem;display:flex;flex-direction:column;gap:.3rem}.chat-log::-webkit-scrollbar{width:4px}.chat-log::-webkit-scrollbar-track{background:transparent}.chat-log::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.chat-msg{font-size:.8rem;line-height:1.4;padding:.35rem .55rem;border-radius:var(--radius-sm);background:var(--surface-strong)}.chat-msg strong{color:var(--mulberry);margin-right:.3rem}.chat-compose{display:flex;gap:.4rem;align-items:flex-end}.chat-compose textarea{flex:1;border-radius:var(--radius-md);min-height:38px;max-height:100px;padding:.5rem .7rem;font-size:.8rem;resize:none}.chat-compose button{flex-shrink:0;padding:.5rem .85rem}.settings-panel{margin-bottom:1rem}.settings-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem}.settings-grid{display:grid;gap:.7rem}.toggle-row{display:flex;align-items:center;gap:.65rem;font-size:.82rem}.toggle-row input[type=checkbox]{width:auto;accent-color:var(--mulberry)}.checkbox-row{display:flex;align-items:center;gap:.65rem;font-size:.82rem}.checkbox-row input{width:auto;accent-color:var(--mulberry)}.match-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:.75rem;align-items:start}.match-layout:fullscreen,.match-layout.fullscreen-active{width:100vw;height:100vh;max-width:none;padding:.75rem;grid-template-columns:minmax(0,1fr) 300px;align-items:stretch;background:radial-gradient(circle at top left,rgba(176,64,112,.12),transparent 28%),linear-gradient(180deg,#090c12fa,#0c1018f5)}.match-layout:fullscreen .hud-panel,.match-layout.fullscreen-active .hud-panel{max-height:calc(100vh - 2rem);overflow:auto;padding-right:.25rem}.game-shell{min-height:520px;border-radius:var(--radius-lg);overflow:hidden;border:2px solid var(--border-strong);box-shadow:0 4px 20px var(--shadow-strong)}.game-shell canvas{display:block;border-radius:var(--radius-lg)}.hud-panel{display:grid;gap:.45rem;position:relative;z-index:5}.hud-panel h3{color:var(--mulberry);margin-bottom:0}.hud-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.hud-panel-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.hud-panel-actions button{min-height:38px;padding-inline:.8rem}.hud-card{background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-md);padding:.55rem .75rem;font-size:.8rem;display:grid;gap:.35rem}.hud-card strong{color:var(--mulberry)}.hud-card small{color:var(--text-secondary);line-height:1.4}.hud-card-header-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.hud-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-weight:600}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:1.5rem;padding:.1rem .55rem;border-radius:999px;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:1px solid transparent}.status-pill.running{color:#f5e7c8;background:#5cc08024;border-color:#5cc0804d}.status-pill.finished{color:#f5e7c8;background:#f8d66d24;border-color:#f8d66d4d}.status-pill.disconnected{color:#ffd7d7;background:#d0505029;border-color:#d050504d}.hud-progress-bar{height:10px;border-radius:999px;overflow:hidden;background:#ffffff14}.hud-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#f6c453,#5cc080);transition:width var(--speed) linear}.dev-test-card.disconnected .hud-progress-fill{background:linear-gradient(90deg,#f4a261,#d05050)}.objective-card strong{color:var(--text)}.task-list h4{margin-bottom:.3rem}.task-list ul{list-style:none;padding:0;margin:0;display:grid;gap:.2rem}.task-list li{font-size:.78rem;padding:.3rem 0;display:flex;align-items:center;gap:.35rem}.task-list li.current-objective{color:var(--mulberry);font-weight:600}.task-list li .task-check{width:14px;height:14px;border-radius:3px;border:1.5px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.6rem}.task-list li .task-check.done{background:var(--badge-ready);border-color:var(--badge-ready);color:#fff}.alert-box{border-radius:var(--radius-md);padding:.6rem .8rem;background:var(--alert-bg);border:1px solid rgba(133,57,83,.2);font-size:.82rem}.alert-box strong{display:flex;align-items:center;gap:.3rem;color:var(--danger);margin-bottom:.15rem}.meeting-panel{border-radius:var(--radius-md);padding:.7rem .85rem;background:var(--meeting-bg);border:1px solid var(--border)}.meeting-panel h4{margin-bottom:.3rem;color:var(--mulberry)}.vote-grid{display:grid;gap:.35rem;margin-top:.5rem}.vote-grid button{width:100%;justify-content:center;font-size:.78rem;padding:.45rem .6rem}.minimap{background:var(--minimap-bg);border-radius:var(--radius-md);padding:.6rem .8rem;border:1px solid var(--border)}.minimap h4{margin-bottom:.35rem}.mini-grid{display:grid;gap:.3rem}.mini-node{display:flex;justify-content:space-between;gap:.5rem;font-size:.78rem;padding:.2rem 0}.actions-stack{display:grid;gap:.4rem}.actions-stack button{width:100%;justify-content:center}.game-stage{position:relative}.game-shell{min-height:720px;aspect-ratio:16 / 9;background:radial-gradient(circle at top left,rgba(248,214,120,.12),transparent 30%),linear-gradient(180deg,#080c1233,#080c1200)}.game-hud-overlay{position:absolute;top:1rem;left:1rem;display:grid;gap:.55rem;pointer-events:none;z-index:4}.game-status-pill,.game-alert-pill{display:inline-flex;align-items:center;gap:.55rem;padding:.55rem .8rem;border-radius:999px;background:#15181dd1;color:#f5e7c8;border:1px solid rgba(255,255,255,.08);box-shadow:0 6px 24px #0000003d;font-size:.78rem}.game-dev-timer-pill{display:inline-grid;gap:.1rem;padding:.65rem .85rem;border-radius:18px;background:#12161cdb;color:#f5e7c8;border:1px solid rgba(255,255,255,.08);box-shadow:0 6px 24px #0000003d}.game-dev-timer-pill span,.game-dev-timer-pill small{font-size:.72rem}.game-dev-timer-pill strong{font-size:1rem}.game-dev-timer-pill.running strong{color:#f7d976}.game-dev-timer-pill.finished strong{color:#8ed99d}.game-dev-timer-pill.disconnected strong{color:#f4a261}.game-alert-pill{color:#ffe7d1}.game-alert-pill.tornado-warning{background:#78461cd6}.game-alert-pill.lantern-blackout{background:#303854e0}.interaction-prompt{position:absolute;left:1rem;right:1rem;bottom:5.25rem;display:flex;justify-content:center;pointer-events:none;z-index:4}.interaction-prompt span{display:inline-flex;align-items:center;gap:.55rem;padding:.7rem 1rem;border-radius:999px;background:#0e1218d1;color:#f8ecd0;border:1px solid rgba(255,255,255,.08);box-shadow:0 6px 24px #00000047;font-size:.84rem}.match-action-bar{position:absolute;left:1rem;right:1rem;bottom:1rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;z-index:4}.match-action-bar button{min-height:52px;background:#13171de0;color:#f5e7c8;border:1px solid rgba(255,255,255,.08)}.match-action-bar button.secondary{background:#13171de0;color:#f5e7c8}.objectives-overlay,.camera-console-overlay{position:absolute;top:1rem;right:1rem;width:320px;padding:1rem;border-radius:var(--radius-lg);background:#12151be6;color:#f5e7c8;border:1px solid rgba(255,255,255,.08);box-shadow:0 12px 30px #00000047;z-index:4}.objectives-overlay h4,.camera-console-overlay h4{margin-bottom:.65rem;color:#f7c873}.objectives-overlay ul{list-style:none;padding:0;margin:0 0 .9rem;display:grid;gap:.35rem}.objective-summary-card{display:grid;gap:.2rem;margin-bottom:.8rem;padding:.75rem .85rem;border-radius:16px;background:#f8d66d1f;border:1px solid rgba(248,214,109,.22)}.objective-summary-card strong{color:#f7c873}.objective-summary-card small{color:#f5e7c8bd}.objectives-overlay li.done{opacity:.66;text-decoration:line-through}.control-grid{display:grid;gap:.3rem;color:#f5e7c8c7;font-size:.8rem}.camera-card-grid{display:grid;gap:.55rem}.camera-card{padding:.75rem .85rem;border-radius:var(--radius-md);background:#ffffff0f;border:1px solid rgba(255,255,255,.08)}.overlay-backdrop{position:fixed;inset:0;background:#07090ea8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:120;padding:1rem}.task-modal{width:min(620px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto;border-radius:24px;padding:1.2rem;background:#14161cf5;color:#f5e7c8;border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 60px #00000059}.meeting-modal{width:min(920px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto;border-radius:24px;padding:1.2rem;background:#14161cf5;color:#f5e7c8;border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 60px #00000059}.task-modal-header,.meeting-modal-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.task-modal-header p,.meeting-modal-header p{color:#f5e7c8b8}.task-content{display:grid;gap:1rem}.task-instruction-grid{display:grid;gap:.8rem;margin-bottom:1rem}.task-instruction-card{display:grid;gap:.35rem;padding:.9rem 1rem;border-radius:18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.07)}.task-instruction-card strong{color:#f7c873}.task-control-strip{display:flex;flex-wrap:wrap;gap:.5rem}.task-control-chip{display:inline-flex;align-items:center;gap:.45rem;min-height:2rem;padding:.35rem .6rem;border-radius:999px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);color:#f5e7c8db;font-size:.78rem}.task-control-chip kbd{display:inline-flex;align-items:center;justify-content:center;min-width:2.2rem;padding:.18rem .45rem;border-radius:10px;background:#07090e8c;border:1px solid rgba(255,255,255,.08);color:#fff1c0;font-family:var(--font-brand);font-size:.74rem;font-weight:700}.task-feedback{margin-bottom:1rem;padding:.75rem .9rem;border-radius:14px;border:1px solid rgba(255,255,255,.08);font-size:.82rem;line-height:1.45}.task-feedback.info{background:#5089ff1f;color:#d8e6ff}.task-feedback.error{background:#d0505024;color:#ffd6d6}.task-feedback.success{background:#5cc08024;color:#dff8e8}.task-selection-summary{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:space-between;color:#f5e7c8c7;font-size:.82rem}.task-board{display:grid;gap:1rem;padding:1rem;border-radius:18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.07)}.eggs-board,.rope-board{grid-template-columns:repeat(2,minmax(0,1fr))}.task-column,.rope-column,.egg-row,.basket-grid,.stamp-board,.valve-board,.battery-board{display:grid;gap:.75rem}.egg-row{grid-template-columns:repeat(2,minmax(0,1fr))}.basket-grid,.stamp-board,.valve-board,.battery-board{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.task-inline-actions{display:flex;gap:.75rem;flex-wrap:wrap}.egg-token,.valve-wheel,.rope-end,.rope-post,.battery-lead,.stamp-crate,.basket-drop{min-height:72px;border-radius:18px}.egg-white{background:linear-gradient(180deg,#fffef7,#d9d7c8);color:#2a2a2a}.egg-brown{background:linear-gradient(180deg,#b17747,#6b4022)}.basket-drop{min-height:120px;border:2px dashed rgba(255,255,255,.2);display:grid;place-items:center;text-align:center;background:#ffffff08}.egg-token.selected,.valve-wheel.selected,.rope-end.selected,.rope-post.selected,.battery-lead.selected,.stamp-crate.selected,.basket-drop.selected{border-color:#f8d66de0;box-shadow:0 0 0 3px #f8d66d2e}.valve-wheel{position:relative;overflow:hidden;align-content:end}.valve-indicator{position:absolute;width:52px;height:4px;background:#f5e7c8;top:28px;left:calc(50% - 26px)}.scale-track{position:relative;height:24px;border-radius:999px;background:#ffffff1f;overflow:hidden}.scale-success-zone{position:absolute;left:44%;width:12%;top:0;bottom:0;background:#5cc080bf}.scale-needle{position:absolute;top:-6px;width:8px;height:36px;border-radius:99px;background:#f8d66d;transform:translate(-50%)}.scale-action-button{width:100%}.rope-end.active,.battery-lead.active{background:var(--secondary)}.rope-end.done,.rope-post.done{background:#5cc080d9}.battery-meter{height:18px;border-radius:999px;background:#ffffff1a;overflow:hidden}.battery-meter-fill{height:100%;background:linear-gradient(90deg,#f6c453,#5cc080)}.task-sequence{font-size:.85rem;color:#f5e7c8bd}.task-progress-note{font-size:.8rem;color:#f5e7c89e}.meeting-chip-row{display:flex;gap:.55rem;flex-wrap:wrap}.meeting-chip{padding:.35rem .6rem;border-radius:999px;background:#ffffff14;color:#f5e7c8d1;font-size:.78rem}.meeting-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.meeting-card{display:grid;gap:.45rem;padding:.9rem;border-radius:18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.07)}.meeting-card.dead{opacity:.58}.meeting-card small{color:#f5e7c8ad;line-height:1.4}.meeting-actions{display:flex;justify-content:flex-end;margin-top:1rem}.theme-toggle{font-size:1.1rem}.hero-panel{display:none}@media(max-width:1100px){.match-layout,.split-top{grid-template-columns:1fr}}@media(max-width:960px){.meeting-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.character-summary-bar{flex-wrap:wrap;justify-content:center;text-align:center}.character-summary-info{align-items:center}}@media(max-width:768px){.top-bar{padding:.35rem .6rem;gap:.4rem;flex-wrap:wrap}.top-bar-brand .tagline,.top-bar-badges{display:none}.content-area{padding:.5rem}.character-summary-bar{flex-wrap:wrap;justify-content:center}.join-form{flex:1 1 100%}.join-form input{max-width:none}.match-action-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.meeting-grid,.eggs-board,.rope-board{grid-template-columns:1fr}.objectives-overlay,.camera-console-overlay{width:calc(100% - 2rem)}.character-editor-modal{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem)}}.skip-link{position:absolute;top:-100px;left:1rem;z-index:999;padding:.5rem 1rem;background:var(--primary);color:var(--mist);border-radius:var(--radius-md);font-weight:600;text-decoration:none;transition:top var(--speed) var(--ease)}.skip-link:focus{top:.5rem}.brand-icon{margin-right:.15rem;font-size:1.2rem}.voice-toggle-btn.voice-active{background:var(--mulberry-glow);border-color:var(--mulberry);color:var(--mulberry)}.toast-container{position:fixed;top:4rem;right:1rem;z-index:500;display:grid;gap:.5rem;max-width:340px;pointer-events:none}.toast-item{display:flex;align-items:center;gap:.55rem;padding:.65rem .85rem;border-radius:var(--radius-md);font-size:.8rem;font-weight:500;box-shadow:0 8px 24px var(--shadow-strong);pointer-events:auto;animation:toast-slide-in var(--speed-slow) var(--ease) forwards;border:1px solid var(--border)}.toast-item.info{background:var(--surface-strong);color:var(--text)}.toast-item.success{background:#3a8a5c26;border-color:#3a8a5c4d;color:var(--badge-ready)}.toast-item.error{background:var(--error-bg);color:var(--error-text);border-color:#c0404026}.toast-dismiss{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:transparent;border:none;color:inherit;cursor:pointer;font-size:.7rem;padding:0;opacity:.6;flex-shrink:0;min-width:auto;min-height:auto}.toast-dismiss:hover{opacity:1;background:#00000014}@keyframes toast-slide-in{0%{opacity:0;transform:translate(1.5rem)}to{opacity:1;transform:translate(0)}}.settings-overlay{position:fixed;inset:0;background:#07090e80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:190;padding:1rem;animation:overlay-fade-in var(--speed) var(--ease)}.settings-modal{width:min(420px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow-y:auto;border-radius:var(--radius-xl);padding:1.25rem}.settings-header-actions{display:flex;align-items:center;gap:.5rem}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.editor-steps{display:flex;align-items:center;gap:.35rem;padding:.55rem 0;margin-bottom:.75rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}.editor-step{padding:.25rem .55rem;border-radius:999px;background:var(--surface-soft);border:1px solid var(--border);transition:all var(--speed) var(--ease)}.editor-step.active{background:var(--mulberry-glow);border-color:var(--mulberry);color:var(--mulberry)}.editor-step-divider{color:var(--border-strong);font-size:.65rem}.character-editor-footer{position:sticky;bottom:-1.25rem;padding:.85rem 0;background:var(--surface);border-top:1px solid var(--border);margin-top:.5rem;z-index:2}.character-editor-footer button{width:100%}.avatar-card.selected{border-color:var(--mulberry);background:var(--mulberry-glow);box-shadow:0 0 0 3px var(--mulberry-glow)}.player-list-avatar{border-radius:var(--radius-sm);image-rendering:pixelated;flex-shrink:0;background:var(--surface-soft)}.ready-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--badge-waiting);transition:background var(--speed) var(--ease)}.ready-indicator.on{background:var(--badge-ready)}.ready-active{background:var(--badge-ready);color:#fff;border-color:var(--badge-ready)}.ready-active:hover{background:#2d7a4d}.dev-tools-toggle{font-size:.78rem;gap:.25rem}.dev-tools-row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end;width:100%;padding:.55rem .7rem;border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--border);animation:overlay-fade-in var(--speed) var(--ease)}.dev-tools-row .field{margin-bottom:0;min-width:8.5rem}.chat-empty-state{text-align:center;padding:2rem 1rem;color:var(--text-secondary);font-size:.82rem;font-style:italic}.chat-msg.grouped{padding-top:.15rem;margin-top:-.15rem}.chat-msg-body{display:inline}.chat-send-btn{flex-shrink:0;padding:.5rem .85rem;background:var(--primary);color:var(--mist)}.chat-send-btn:hover{background:var(--primary-hover)}.hud-collapse-btn{min-width:28px!important;min-height:28px!important;padding:.2rem!important;font-size:.8rem!important}.role-card.role-imposter strong{color:#e66}.role-card.role-friend strong{color:var(--badge-ready)}.match-result-panel{border-radius:var(--radius-md);padding:.85rem;background:var(--meeting-bg);border:1px solid var(--border);display:grid;gap:.65rem}.match-result-panel h4{margin-bottom:.1rem;color:var(--mulberry)}.match-result-winner{display:grid;gap:.2rem;padding:.65rem .8rem;border-radius:var(--radius-md);background:var(--surface-soft);border:1px solid var(--border);text-align:center}.match-result-winner strong{font-size:1.05rem}.role-reveal-list{list-style:none;padding:0;margin:0;display:grid;gap:.3rem}.role-reveal-list li{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;border-radius:var(--radius-sm);background:var(--surface-strong);border:1px solid var(--border);font-size:.8rem}.role-badge{margin-left:auto;font-size:.72rem;font-weight:600}.role-badge.role-imposter{color:#e66}.role-badge.role-friend{color:var(--badge-ready)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton-game{min-height:300px;position:relative;overflow:hidden}.skeleton-pulse{position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--surface-soft),transparent);animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.meeting-countdown-bar{height:6px;border-radius:3px;background:#ffffff14;overflow:hidden;margin-top:.35rem}.meeting-countdown-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--mulberry),#f6c453);transition:width 1s linear}.meeting-card-avatar{width:36px;height:36px;border-radius:var(--radius-sm);image-rendering:pixelated;background:var(--surface-soft)}.meeting-card .vote-btn{background:var(--primary);color:var(--mist)}.meeting-card .vote-btn:hover{background:var(--primary-hover)}.meeting-actions{display:flex;justify-content:center;margin-top:1rem}@keyframes btn-pulse{0%{box-shadow:0 0 0 0 var(--mulberry-glow)}70%{box-shadow:0 0 0 8px transparent}to{box-shadow:0 0 0 0 transparent}}.match-action-bar button:active:not(:disabled){animation:btn-pulse .4s ease-out}
