:root{--bg:#0e110f;--bg-2:#121613;--panel:#171c18;--panel-2:#1d231e;--line:#2b332c;--line-2:#3a443b;--text:#e7e9e3;--muted:#98a197;--accent:#f2a93b;--accent-ink:#1b1305;--accent-soft:#f2a93b24;--danger:#e5604f;--danger-soft:#e5604f24;--ok:#5bb57d;--ok-soft:#5bb57d24;--info:#6aa5d8;--radius:12px;--radius-sm:8px;--shadow:0 10px 30px #00000059;--font:"Segoe UI", Roboto, "Helvetica Neue", Arial, system-ui, sans-serif;--mono:"Cascadia Mono", "JetBrains Mono", Consolas, ui-monospace, monospace;--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.4}body{background:radial-gradient(1200px 600px at 50% -200px, #f2a93b12, transparent 70%), repeating-linear-gradient(135deg, transparent 0 22px, #ffffff03 22px 44px), var(--bg);background-attachment:fixed}h1,h2,h3{margin:0;line-height:1.2}button,input,select{font:inherit;color:inherit}input,select{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);outline:none;min-width:0;padding:10px 12px;transition:border-color .15s}input:focus,select:focus{border-color:var(--accent)}input[type=range]{accent-color:var(--accent);padding:0}.muted{color:var(--muted)}.small{font-size:.85em}.center{text-align:center;justify-content:center}.row{align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--line-2);background:var(--panel-2);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-weight:600;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){background:#ffb94f}.btn.ghost{background:0 0}.btn.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.btn.small{padding:5px 10px;font-size:.85em}.btn.big{flex-direction:column;gap:2px;padding:14px 20px;font-size:1.05em}.btn.big small{opacity:.75;font-size:.78em;font-weight:400}.panel{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.panel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.panel-head h2{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.78rem;font-weight:700}.logo{color:var(--accent);letter-spacing:.32em;align-items:center;gap:10px;font-size:1.9rem;font-weight:900;display:inline-flex}.logo svg{width:1.4em;height:1.4em}.logo.small{letter-spacing:.24em;font-size:1.05rem}.badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 7px;font-size:.72rem;font-weight:700}.badge.dim{background:var(--panel-2);color:var(--muted)}.toasts{left:50%;bottom:calc(76px + var(--safe-bottom));z-index:100;pointer-events:none;flex-direction:column;gap:8px;width:min(440px,100vw - 32px);display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--panel-2);border:1px solid var(--line-2);border-left:4px solid var(--info);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:10px 14px;animation:.2s ease-out toast-in}.toast-error{border-left-color:var(--danger)}.toast-ok{border-left-color:var(--ok)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.conn-banner{z-index:90;background:var(--danger);color:#fff;text-align:center;padding:6px 12px;font-weight:600;position:sticky;top:0}.splash{text-align:center;place-content:center;gap:12px;min-height:100dvh;display:grid}.welcome{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:100dvh;padding:24px 16px;display:flex}.tagline{max-width:420px;color:var(--muted);margin:0}.invite-note{color:var(--accent);margin:0;font-weight:600}.welcome-form{text-align:left;flex-direction:column;gap:12px;width:min(380px,100%);display:flex}.home{flex-direction:column;gap:16px;max-width:760px;margin:0 auto;padding:24px 16px 48px;display:flex}.home-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.rename{gap:8px;display:flex}.return-banner{border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-weight:600;display:flex}.home-actions{grid-template-columns:1fr 1fr;gap:12px;display:grid}.join-code label{color:var(--muted);margin-bottom:8px;display:block}.join-code input{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;flex:1}.room-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.room-list li{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.room-list li>div{flex-direction:column;min-width:0;display:flex}.room-list strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-list .count{font-family:var(--mono);color:var(--accent)}.rules summary{cursor:pointer;font-weight:600}.rules ol{color:var(--muted);flex-direction:column;gap:6px;margin:10px 0 0;padding-left:20px;display:flex}.topbar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;align-items:center;gap:16px;padding:10px 16px;display:flex;position:sticky;top:0}.topbar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.room-code{flex-direction:column;line-height:1.1;display:flex}.room-code strong{font-family:var(--mono);letter-spacing:.18em;color:var(--accent);font-size:1.3rem}.code-chip{font-family:var(--mono);letter-spacing:.12em}.lobby-grid{grid-template-columns:minmax(0,1fr) 360px;gap:16px;max-width:1200px;margin:0 auto;padding:16px;display:grid}.lobby-main{flex-direction:column;gap:16px;display:flex}.lobby-chat{flex-direction:column;height:calc(100dvh - 108px);display:flex;position:sticky;top:76px}.members{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.members li{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:8px;min-width:0;padding:8px 10px;display:flex}.members li.offline{opacity:.55}.members li.bot{border-style:dashed}.avatar{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.member-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.member-actions{gap:2px;display:flex}.spectators-line{margin:10px 0 0}.preview{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;display:grid}.preview>div{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:2px;padding:10px;display:flex}.preview b{color:var(--accent);font-size:1.25rem}.preview span{color:var(--muted);font-size:.85em}.btn.start{width:100%}.settings fieldset{border:0;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:0;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--muted);font-size:.85em}.toggles{flex-wrap:wrap;grid-column:1/-1;gap:10px 22px;display:flex}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.toggle.disabled{cursor:default;opacity:.7}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:var(--line-2);border-radius:999px;flex:none;width:38px;height:22px;transition:background .15s;position:relative}.toggle-track:after{content:"";background:var(--text);border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track:after{background:var(--accent-ink);transform:translate(16px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.chat{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.chat-list{flex-direction:column;flex:1;gap:6px;min-height:160px;padding-right:4px;display:flex;overflow-y:auto}.chat-msg{word-break:break-word;font-size:.92em}.chat-msg b{color:var(--accent);margin-right:6px}.chat-msg.mine b{color:var(--ok)}.chat-msg.system{color:var(--muted);font-size:.85em;font-style:italic}.chat-msg.spectators{opacity:.85}.chat-msg .tag{border:1px solid var(--line-2);color:var(--muted);border-radius:4px;margin-right:6px;padding:0 4px;font-size:.7em}.chat-form{gap:6px;display:flex}.chat-form input{flex:1}.game{flex-direction:column;min-height:100dvh;display:flex}.game-top .phase{align-items:center;gap:14px;display:flex}.phase-round{letter-spacing:.02em;font-weight:700}.seats{color:var(--muted);gap:12px;display:flex}.seats b{color:var(--text);font-family:var(--mono)}.countdown{font-family:var(--mono);min-width:3.2ch;color:var(--accent);padding-bottom:4px;font-size:1.35rem;font-weight:800;position:relative}.countdown.urgent{color:var(--danger);animation:1s steps(2,end) infinite blink}.countdown.paused{color:var(--muted)}.countdown-bar{background:currentColor;border-radius:2px;height:3px;transition:width .25s linear;position:absolute;bottom:0;left:0}@keyframes blink{50%{opacity:.55}}.game-grid{flex:1;grid-template-columns:290px minmax(0,1fr) 370px;align-items:start;gap:14px;padding:14px;display:grid}.col-bunker,.col-side{flex-direction:column;gap:14px;max-height:calc(100dvh - 86px);display:flex;position:sticky;top:72px}.col-side .col-me{flex:none;max-height:52dvh;overflow-y:auto}.col-chat{flex-direction:column;flex:1;min-height:260px;display:flex}.col-table{flex-direction:column;gap:12px;min-width:0;display:flex}.actionbar{border-radius:var(--radius);border:1px solid var(--line-2);background:var(--panel-2);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:12px 14px;font-weight:600;display:flex}.actionbar.mine{border-color:var(--accent);background:var(--accent-soft)}.tiles{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;display:grid}.tiles.dense{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));font-size:.9em}.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:8px;padding:10px 12px 12px;transition:border-color .2s,box-shadow .2s,opacity .3s,transform .15s;display:flex;position:relative}.tile header{align-items:center;gap:8px;min-width:0;display:flex}.seat{background:var(--panel-2);border:1px solid var(--line-2);width:22px;height:22px;font-size:.75em;font-family:var(--mono);color:var(--muted);border-radius:6px;flex:none;place-items:center;display:grid}.tile-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:700;overflow:hidden}.tile-badges{gap:2px;font-size:.9em;display:flex}.tile.me{border-color:var(--line-2);background:linear-gradient(180deg, #5bb57d0f, transparent 60%), var(--panel)}.tile.speaking{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 24px #f2a93b40}.tile.nominee{border-color:var(--danger)}.tile.out{opacity:.45;filter:grayscale(.7)}.tile.exiled-now{animation:1.6s ease-in forwards exile}@keyframes exile{0%{opacity:1;filter:none}30%{box-shadow:0 0 0 2px var(--danger)}to{opacity:.45;filter:grayscale(.7)}}.tile.clickable{cursor:pointer}.tile.clickable:hover,.tile.clickable:focus-visible{border-color:var(--accent);outline:none;transform:translateY(-2px)}.tile.voted-for{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.tile-pick{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:.8em;font-weight:700}.tile.voted-for .tile-pick{color:var(--danger)}.tile-status{color:var(--danger);font-size:.8em;font-weight:600}.tile-votes{background:var(--danger-soft);color:var(--danger);border-radius:999px;align-self:flex-start;padding:2px 8px;font-size:.8em;font-weight:800}.traits{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.traits li{flex-direction:column;animation:.45s ease-out reveal;display:flex}@keyframes reveal{0%{opacity:0;transform:rotateX(80deg)}}.trait-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.7em}.trait-text{font-size:.93em}.used-specials{border-top:1px dashed var(--line-2);color:var(--info);flex-direction:column;gap:3px;margin:0;padding:6px 0 0;font-size:.8em;list-style:none;display:flex}.mycard{flex-direction:column;gap:8px;display:flex}.hint{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);margin:0;padding:8px 10px;font-size:.9em;font-weight:600}.pulse{animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 4px #f2a93b1f}}.my-traits,.specials{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.my-traits li{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-2);grid-template-columns:1fr auto;grid-template-areas:"label btn""text btn";align-items:center;column-gap:8px;padding:6px 8px;display:grid}.my-traits li.revealed{border-color:var(--line-2);background:0 0}.my-traits li.hidden .trait-text{color:var(--text)}.my-traits .trait-label{grid-area:label}.my-traits .trait-text{grid-area:text}.my-traits .btn{grid-area:btn}.specials-title{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-top:6px;font-size:.72rem}.specials li{border-radius:var(--radius-sm);border:1px dashed var(--info);justify-content:space-between;align-items:center;gap:8px;padding:7px 8px;font-size:.88em;display:flex}.specials li.used{opacity:.5;border-color:var(--line-2)}.catastrophe h3{color:var(--accent);margin-bottom:6px;font-size:1.15rem}.catastrophe p{margin:0 0 6px;font-size:.92em}.bunker-stats{gap:14px;margin-bottom:8px;display:flex}.bunker-stats b{color:var(--accent);font-family:var(--mono)}.bunker-items{flex-direction:column;gap:5px;margin:0 0 8px;padding:0;list-style:none;display:flex}.bunker-items li{border-radius:var(--radius-sm);background:var(--bg-2);border:1px solid var(--line);padding:6px 8px;font-size:.9em}.bunker-items li.locked{color:var(--muted);border-style:dashed;font-style:italic}.tabs{gap:4px;display:inline-flex}.tabs button{cursor:pointer;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;background:0 0;border:0;border-radius:6px;padding:2px 8px;font-size:.78rem;font-weight:700}.tabs button.active{background:var(--panel-2);color:var(--text)}.journal{flex-direction:column;flex:1;gap:5px;min-height:160px;margin:0;padding:0 4px 0 0;font-size:.88em;list-style:none;display:flex;overflow-y:auto}.journal li.round{color:var(--accent);margin-top:6px;font-weight:700}.intro{z-index:50;background:#050605d1;place-items:center;padding:16px;animation:1.2s ease-in-out 3 alarm;display:grid;position:fixed;inset:0}@keyframes alarm{50%{background:#460a06d9}}.intro-card{text-align:center;border:1px solid var(--danger);border-radius:var(--radius);background:var(--panel);max-width:560px;box-shadow:var(--shadow);flex-direction:column;align-items:center;gap:12px;padding:28px 24px;display:flex}.intro-card h1{color:var(--accent);font-size:2rem}.intro-card p{margin:0}.siren{background:var(--danger);width:18px;height:18px;box-shadow:0 0 24px var(--danger);border-radius:50%;animation:.6s steps(2,end) infinite blink}.verdict-kicker{text-transform:uppercase;letter-spacing:.18em;color:var(--muted);font-size:.75rem}.final{flex-direction:column;gap:14px;width:100%;max-width:1200px;margin:0 auto;padding:16px 16px 48px;display:flex}.verdict{border-radius:var(--radius);border:1px solid var(--line-2);background:var(--panel);flex-direction:column;gap:10px;padding:22px;display:flex}.verdict h1{font-size:1.8rem}.verdict-thrived{border-color:var(--ok);background:linear-gradient(180deg, var(--ok-soft), transparent 70%), var(--panel)}.verdict-survived{border-color:var(--accent);background:linear-gradient(180deg, var(--accent-soft), transparent 70%), var(--panel)}.verdict-failed{border-color:var(--danger);background:linear-gradient(180deg, var(--danger-soft), transparent 70%), var(--panel)}.reasons{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.reasons li:before{width:1.4em;font-weight:900;display:inline-block}.reason-good:before{content:"+";color:var(--ok)}.reason-warn:before{content:"±";color:var(--accent)}.reason-bad:before{content:"−";color:var(--danger)}.final-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;display:flex}.final-h{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-top:8px;font-size:.8rem}.final-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.tile.survivor{border-color:var(--ok)}.vote-history{flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:.92em;display:flex}.mobile-tabs{display:none}.scene-wrap{border-radius:var(--radius);border:1px solid var(--line);background:#0b0d0b;flex:none;height:min(58vh,640px);min-height:300px;position:relative;overflow:hidden}.scene-wrap canvas{display:block}.scene-wrap.final-scene{height:min(46vh,480px);margin:14px 16px 0}.scene-loading{color:var(--muted);letter-spacing:.08em;place-items:center;display:grid;position:absolute;inset:0}.scene-hint{color:#e7e9e373;pointer-events:none;font-size:.72rem;position:absolute;bottom:8px;right:10px}@media (pointer:coarse){.scene-hint{display:none}}.quality-picker{align-items:center;gap:4px;font-size:.85em;display:inline-flex}.quality-picker select{padding:4px 6px;font-size:.85em}.intro.see-through{pointer-events:none;background:linear-gradient(#0000 35%,#050605bf);align-items:end;padding-bottom:6vh;animation:none}.intro.see-through .intro-card{pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#171c18e0;padding:18px 20px}.intro.see-through .intro-card h1{font-size:1.6rem}.demo{flex-direction:column;min-height:100dvh;display:flex}.demo-title{color:var(--muted);font-weight:700}.demo-controls{flex-wrap:wrap}.demo-controls select{padding:5px 8px;font-size:.85em}.logo-link{text-decoration:none}.demo-status{flex-wrap:wrap;align-items:center;gap:14px;padding:10px 16px;display:flex}.scene-wrap.demo-scene{height:calc(100dvh - 118px);min-height:360px;margin:0 16px 16px}@media (max-width:1199px){.game-grid{grid-template-columns:minmax(0,1fr) 340px}.col-bunker{grid-area:1/1;grid-template-columns:1fr 1fr;max-height:none;display:grid;position:static}.col-table{grid-area:2/1}.col-side{grid-area:1/2/span 2}}@media (max-width:900px){.lobby-grid{grid-template-columns:1fr}.lobby-chat{height:420px;position:static}.preview{grid-template-columns:1fr 1fr}}@media (max-width:819px){body{font-size:14px}.topbar{flex-wrap:wrap;gap:10px;padding:8px 12px}.topbar .logo span,.game-top .seats{display:none}.game-grid{padding:10px 10px calc(70px + var(--safe-bottom));display:block}.col-side{display:contents}.col-bunker,.col-table,.col-me,.col-chat{max-height:none;display:none;position:static}.tab-table .col-table,.tab-me .col-me,.tab-chat .col-chat{display:flex}.tab-bunker .col-bunker{flex-direction:column;display:flex}.col-side .col-me{max-height:none;display:none}.tab-me .col-side .col-me{display:block}.tab-chat .col-chat{height:calc(100dvh - 150px)}.tiles,.tiles.dense{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.scene-wrap{height:46vh;min-height:260px}.scene-wrap.final-scene{height:40vh;margin:10px 10px 0}.demo-title,.game-top .quality-picker span{display:none}.tile{padding:8px 10px 10px}.mobile-tabs{z-index:30;background:var(--panel);border-top:1px solid var(--line);padding-bottom:var(--safe-bottom);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:14px 4px;font-weight:700}.mobile-tabs button.active{color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}.home-actions,.settings fieldset{grid-template-columns:1fr}.actionbar{text-align:center;flex-direction:column;align-items:stretch}.verdict h1{font-size:1.4rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
