:root{--bg-0:#050508;--bg-1:#0a0812;--bg-2:#120f1c;--ash:#2a2438;--rot:#1a1528;--fog:#7850c81f;--ink:#e8e4f0;--ink-dim:#8a8498;--blight:#9d7cff;--blight-deep:#6b4fd4;--blight-glow:#9d7cff59;--danger:#e0456a;--danger-glow:#e0456a66;--hazard:#c9a227;--hazard-dim:#c9a2278c;--void-accent:#4fd1c5;--line:#9d7cff29;--panel:#080610eb;--radius:4px;--font-display:"Cinzel", "Palatino Linotype", serif;--font-body:"Literata", "Georgia", serif;--font-stamp:"Share Tech Mono", "Courier New", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(1100px 640px at 18% -8%, #9d7cff1f, transparent 55%), radial-gradient(900px 560px at 92% 8%, #50287859, transparent 52%), radial-gradient(700px 480px at 50% 110%, #e0456a1a, transparent 50%), linear-gradient(168deg, var(--bg-0) 0%, var(--bg-1) 42%, #08060f 100%);isolation:isolate;margin:0;line-height:1.45;position:relative}body:before{content:"";z-index:40;pointer-events:none;opacity:.09;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:180px 180px;position:fixed;inset:0}body:after{content:"";z-index:41;pointer-events:none;background:radial-gradient(#0000 42%,#000000b8 100%);position:fixed;inset:0}button,input{font:inherit}.app{z-index:1;max-width:920px;margin:0 auto;padding:1rem 1rem 3rem;position:relative;overflow:hidden}.mist{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.mist-layer{background:radial-gradient(circle at 28% 38%, var(--fog), transparent 42%), radial-gradient(circle at 72% 62%, #4637281a, transparent 46%);will-change:transform;animation:18s ease-in-out infinite alternate drift;position:absolute;inset:-22%}.mist-a{opacity:.9}.mist-b{opacity:.65;background:radial-gradient(circle at 60% 30%,#78965a1a,#0000 40%),radial-gradient(circle at 20% 70%,#32462d1f,#0000 48%);animation-duration:26s;animation-direction:alternate-reverse}.mist-c{opacity:.4;background:radial-gradient(at 50% 80%,#c6de3a0f,#0000 50%),radial-gradient(circle at 80% 20%,#1e322326,#0000 45%);animation-duration:34s}@keyframes drift{0%{transform:translate(-2.5%,-1.5%)scale(1)}to{transform:translate(3.5%,2.5%)scale(1.06)}}.spore-field{opacity:.7;background-image:radial-gradient(1.5px 1.5px at 12% 22%,#c6de3a8c,#0000),radial-gradient(1px 1px at 28% 68%,#c6de3a66,#0000),radial-gradient(2px 2px at 44% 18%,#d4a01759,#0000),radial-gradient(1px 1px at 58% 52%,#c6de3a80,#0000),radial-gradient(1.5px 1.5px at 72% 78%,#c6de3a59,#0000),radial-gradient(1px 1px at 86% 34%,#b84a3266,#0000),radial-gradient(2px 2px at 18% 88%,#c6de3a4d,#0000),radial-gradient(1px 1px at 64% 12%,#d4a01773,#0000),radial-gradient(1.5px 1.5px at 92% 62%,#c6de3a66,#0000),radial-gradient(1px 1px at 36% 42%,#c6de3a47,#0000);background-size:100% 100%;animation:22s linear infinite spores;position:absolute;inset:0}@keyframes spores{0%{opacity:.55;transform:translateY(0)translate(0)}50%{opacity:.85;transform:translateY(-4%)translate(1.5%)}to{opacity:.55;transform:translateY(-8%)translate(-1%)}}.hazard-rail{z-index:2;background:repeating-linear-gradient(-45deg, var(--hazard) 0 10px, #1a1208 10px 20px);height:10px;box-shadow:0 2px 0 #00000073, 0 0 18px var(--hazard-dim);opacity:.85;position:absolute;top:0;left:0;right:0}.topbar,.panel,.play,.banner,.conn-badge{z-index:1;position:relative}.topbar{justify-content:space-between;align-items:center;margin-bottom:1rem;padding-top:.35rem;display:flex}.brand{color:var(--ink);font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-shadow:0 0 18px var(--blight-glow);background:0 0;border:0;font-size:1.15rem}.brand:hover{color:var(--blight)}.row{align-items:center;gap:.5rem;display:flex}.row.wrap,.wrap{flex-wrap:wrap}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.25rem 1.35rem;animation:.55s both rise;box-shadow:inset 0 1px #c6de3a0f,0 12px 40px #00000059}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.hero{text-align:center;background:linear-gradient(#122016f0,#080e0af5),radial-gradient(at 50% -10%,#c6de3a29,#0000 58%);border-color:#c6de3a38;padding:2.75rem 1.5rem 2.15rem;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;opacity:.55;mix-blend-mode:multiply;background:repeating-linear-gradient(0deg,#0000 0 2px,#0000001f 2px 3px);position:absolute;inset:0}.outbreak-stamp{z-index:1;font-family:var(--font-stamp);letter-spacing:.28em;text-transform:uppercase;color:#e07058;box-shadow:inset 0 0 12px #b84a3240, 0 0 20px var(--danger-glow);background:#280c0873;border:2px solid #c4563e;border-radius:2px;margin:0 0 1rem;padding:.35rem .85rem;font-size:.78rem;animation:2.4s ease-in-out infinite stampPulse;display:inline-block;position:relative;transform:rotate(-6deg)}@keyframes stampPulse{0%,to{opacity:.75;box-shadow:inset 0 0 12px #b84a3233,0 0 12px #b84a3240}50%{opacity:1;box-shadow:inset 0 0 16px #b84a3266,0 0 28px #b84a328c}}.logo{z-index:1;font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);text-shadow:0 0 42px var(--blight-glow), 0 2px 0 #00000080;margin:0;font-size:clamp(2.7rem,10vw,4.6rem);font-weight:700;line-height:1.05;animation:.95s both brandIn;position:relative}@keyframes brandIn{0%{opacity:0;letter-spacing:.22em;filter:blur(5px);transform:translateY(8px)}to{opacity:1;letter-spacing:.06em;filter:none;transform:none}}.tagline{z-index:1;font-family:var(--font-display);color:var(--blight);letter-spacing:.04em;margin:.85rem 0 0;font-size:1.15rem;position:relative}.support{z-index:1;max-width:38rem;color:var(--ink-dim);margin:.9rem auto 1.45rem;position:relative}.cta-row{z-index:1;flex-wrap:wrap;justify-content:center;gap:.65rem;display:flex;position:relative}.btn{appearance:none;border:1px solid var(--blight-deep);background:linear-gradient(180deg, #d4ea52, var(--blight-deep));color:#0c140a;font-family:var(--font-display);letter-spacing:.04em;border-radius:var(--radius);cursor:pointer;padding:.65rem 1.15rem;font-weight:700;transition:transform .15s,filter .15s,box-shadow .15s;box-shadow:0 0 #c6de3a00}.btn:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 0 18px var(--blight-glow);transform:translateY(-1px)}.btn-ghost{color:var(--ink);box-shadow:none;font-family:var(--font-body);letter-spacing:0;background:0 0;border-color:#d9d4c438;font-weight:600}.btn-ghost:hover:not(:disabled){border-color:var(--blight);color:var(--blight);box-shadow:none;filter:none}.btn-accent{color:var(--blight);border-color:#c6de3a80}.btn-small{padding:.4rem .7rem;font-size:.9rem}.selected-mode{background:#c6de3a14;border-color:var(--blight)!important;color:var(--blight)!important}label{text-align:left;gap:.35rem;display:grid}label.row{align-items:center;gap:.5rem;display:flex}input[type=text],input:not([type]),input[type=search]{border-radius:var(--radius);border:1px solid var(--line);width:100%;color:var(--ink);background:#050a07bf;padding:.7rem .8rem}input:focus{border-color:#c6de3a73;outline:none;box-shadow:0 0 0 2px #c6de3a1f}.muted{color:var(--ink-dim)}.error{color:#f0a090;font-family:var(--font-stamp);letter-spacing:.03em;margin-top:.75rem}.banner{border-radius:var(--radius);font-family:var(--font-stamp);background:#243412a6;border:1px solid #c6de3a59;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem;padding:.65rem .85rem;font-size:.92rem;display:flex}.conn-badge{z-index:5;border-radius:var(--radius);text-align:center;font-family:var(--font-stamp);letter-spacing:.06em;text-transform:uppercase;color:#e8a090;background:#30160eeb;border:1px solid #b84a328c;margin-bottom:.75rem;padding:.45rem .75rem;font-size:.82rem;position:sticky;top:.5rem}.conn-badge.connecting{border-color:var(--hazard);color:var(--hazard);background:#281e08eb}.conn-badge.disconnected{border-color:var(--danger);color:#f0a090}.how-to{z-index:1;text-align:left;max-width:28rem;color:var(--ink-dim);margin:1.35rem auto 0;position:relative}.how-to summary{cursor:pointer;font-family:var(--font-display);color:var(--ink);letter-spacing:.04em}.how-to ol{margin:.5rem 0 0;padding-left:1.2rem}.sister-games{gap:.65rem;margin-top:1.4rem;display:grid}.sister-games.compact{margin-top:1rem}.sister-game{text-align:left;color:inherit;border:1px solid var(--line);border-radius:var(--radius);background:#00000047;gap:.15rem;padding:.75rem .85rem;text-decoration:none;transition:border-color .15s,background .15s;display:grid}.sister-game:hover{background:#c6de3a0d;border-color:#c6de3a66}.sister-game.compact{padding:.55rem .7rem}.sister-game strong{font-family:var(--font-display)}.sister-game em{color:var(--blight);font-size:.9rem;font-style:normal}.party-box{border-top:1px solid var(--line);margin-top:1.25rem;padding-top:1rem}.party-box.compact{margin-top:1rem}.lobby-list{gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:grid}.lobby-list .btn{justify-content:space-between;gap:1rem;width:100%;display:flex}.play{animation:.45s both rise}.play-top{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem;display:flex}.phase-label{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--blight);text-shadow:0 0 20px var(--blight-glow);flex-wrap:wrap;align-items:baseline;gap:.55rem .75rem;margin:0;font-size:1.35rem;display:flex}.phase-timer{font-family:var(--font-stamp);letter-spacing:.04em;color:var(--ink);text-shadow:none;opacity:.85;font-size:.72em}.phase-timer.urgent{color:#e8a090;opacity:1;animation:.7s infinite alternate timerPulse}@keyframes timerPulse{0%{opacity:.75}to{opacity:1}}.meters{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-bottom:.85rem;display:grid}.meter{border:1px solid var(--line);border-radius:var(--radius);background:#00000059;gap:.15rem;padding:.55rem .65rem;display:grid;box-shadow:inset 0 0 20px #00000040}.meter span{color:var(--ink-dim);font-family:var(--font-stamp);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.meter strong{font-family:var(--font-stamp);color:var(--blight);letter-spacing:.04em;font-size:1.25rem}.meter.danger{background:#280e0a73;border-color:#b84a3273}.meter.danger strong{color:#e87860;text-shadow:0 0 12px var(--danger-glow)}.room-code{font-family:var(--font-stamp);letter-spacing:.28em;color:var(--blight);text-shadow:0 0 24px var(--blight-glow);margin:.25rem 0 .75rem;font-size:2.5rem;display:block}.roster h3{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;margin:.75rem 0 .25rem;font-size:1rem}.roster table{border-collapse:collapse;width:100%;margin-top:.5rem}.roster th,.roster td{text-align:left;border-bottom:1px solid var(--line);padding:.45rem .3rem}.roster th{font-family:var(--font-stamp);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);font-size:.75rem;font-weight:400}.host-controls{gap:.75rem;margin-top:1rem;display:grid}.redeem{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.redeem input{flex:1;min-width:8rem}.world-map{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:.75rem 0 1rem;display:grid}.world-map.svg-map{border-radius:calc(var(--radius) + 4px);background:radial-gradient(55% 45% at 50% 48%,#78281e33,#0000 70%),radial-gradient(80% 60% at 50% 20%,#28462d29,#0000 65%),#00000047;border:1px solid #5a8c4638;margin:.35rem 0 .85rem;padding:.55rem}.outbreak-svg{width:100%;height:auto;max-height:min(52vh,420px);display:block}.land-path{stroke:#d2c8a073;cursor:default;transition:fill .7s,filter .45s,stroke .3s}.land-path.nest{stroke:#dc785abf;stroke-width:2px}.land-path.focus{stroke:#e8d278f2;filter:brightness(1.12)}.land-path.selected{stroke:#e8d278}.land-path.quarantined{stroke-dasharray:5 4;stroke:#d4a017e6;filter:saturate(.75)brightness(.9)}.land-path.seeping{animation:.9s seepPulse}.land-path.healing{animation:.9s healPulse}.land-path[role=button]{cursor:pointer}.land-name{fill:#f2f0e6;font-family:var(--font-display);letter-spacing:.03em;paint-order:stroke;stroke:#0000008c;stroke-width:2.5px;font-size:11px}.land-pct{fill:#f2f0e6;font-family:var(--font-stamp);paint-order:stroke;stroke:#0000008c;stroke-width:2.5px;font-size:12px}.land-q{fill:#e8c86a;font-family:var(--font-stamp);letter-spacing:.06em;text-transform:uppercase;font-size:9px}.land-delta{font-family:var(--font-stamp);font-size:12px;font-weight:700;animation:1.4s both deltaPop}.land-delta.up{fill:#ffb0a0}.land-delta.down{fill:#b8e89a}.finale-log{text-align:left;border-left:3px solid var(--blight);font-family:var(--font-stamp);background:#00000047;margin:0 0 .85rem;padding:.65rem .75rem;font-size:.9rem}.finale-log p{margin:.25rem 0}.finale-roster{margin:0 0 1rem;font-size:.9rem}.play.tv .outbreak-svg{max-height:min(58vh,560px)}.world-map.geo .region-north_kingdom{grid-area:1/2}.world-map.geo .region-elf_woods{grid-area:2/1}.world-map.geo .region-plague_heart{z-index:1;grid-area:2/2;min-height:6.5rem}.world-map.geo .region-eastern_wastes{grid-area:2/3}.world-map.geo .region-southern_ports{grid-area:3/1}.world-map.geo .region-heartlands{grid-area:3/2/auto/4}.map-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem 1rem;margin-bottom:.15rem;display:flex}.map-header h3{margin:0}.map-live-hint{margin:0;font-size:.85rem}.focus-line{margin:0 0 .35rem}.region-tile{border-radius:var(--radius);background:linear-gradient(165deg, color-mix(in srgb, #b43a2c calc(var(--infection) * 1%), #3d8b4a) 0%, color-mix(in srgb, #4a1814 calc(var(--infection) * 1%), #1a3d24) 100%);color:#f2f0e6;text-align:left;min-height:5.5rem;font:inherit;cursor:default;border:1px solid #5a8c4647;align-content:space-between;width:100%;padding:.7rem;transition:background .85s,box-shadow .4s,transform .35s;animation:.5s both tileIn;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 30px #00000047}.region-tile.seeping{animation:.9s seepPulse;box-shadow:inset 0 0 30px #00000047,0 0 0 1px #b43a2c8c}.region-tile.healing{animation:.9s healPulse;box-shadow:inset 0 0 30px #00000047,0 0 0 1px #5ab4648c}.region-tile.focus{z-index:2;transform:scale(1.03);box-shadow:inset 0 0 30px #00000047,0 0 0 2px #d4c478d9,0 0 28px #b84a3259}.delta-badge{font-family:var(--font-stamp);letter-spacing:.04em;pointer-events:none;border-radius:2px;padding:.15rem .4rem;font-size:.85rem;animation:1.4s both deltaPop;position:absolute;top:.45rem;right:.45rem}.delta-badge.up{color:#ffd6cf;background:#8c1e18eb}.delta-badge.down{color:#d7f0c8;background:#235a30eb}@keyframes deltaPop{0%{opacity:0;transform:translateY(6px)scale(.85)}18%{opacity:1;transform:translateY(0)scale(1.05)}75%{opacity:1}to{opacity:0;transform:translateY(-10px)}}@keyframes seepPulse{0%{filter:brightness()}35%{filter:brightness(1.18)}to{filter:brightness()}}@keyframes healPulse{0%{filter:brightness()}35%{filter:brightness(1.2)saturate(1.15)}to{filter:brightness()}}.live-ticker{border-radius:0 var(--radius) var(--radius) 0;background:#080c0a8c;border:1px solid #b84a3259;border-left:3px solid #b84a32;margin:0 0 1rem;padding:.65rem .75rem}.live-ticker-label{font-family:var(--font-stamp);letter-spacing:.14em;text-transform:uppercase;color:#e8a090;margin-bottom:.35rem;font-size:.72rem;animation:1.4s infinite liveBlink;display:inline-block}@keyframes liveBlink{0%,to{opacity:1}50%{opacity:.45}}.live-ticker ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.live-item{font-family:var(--font-stamp);letter-spacing:.02em;color:var(--ink);font-size:.92rem;animation:.45s both tickerIn}.live-item.kind-seep,.live-item.kind-plague,.live-item.kind-breach{color:#e8b4a8}.live-item.kind-good,.live-item.kind-income{color:#c5e0a8}.live-item.kind-critical{color:#f0d060;font-weight:600}@keyframes tickerIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}.compact-council .vote-options{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}.compact-council .vote-card{min-height:0;padding:.7rem .8rem}.compact-council .vote-card span{font-size:.88rem;line-height:1.35}.resolve-banner{flex-wrap:wrap;align-items:center;gap:.65rem;margin:.5rem 0 .75rem;display:flex}.play.finale-active .meters,.play.finale-active .play-top{opacity:.35;filter:saturate(.7)}.finale-overlay{z-index:90;padding:max(.75rem, env(safe-area-inset-top)) 1rem max(.75rem, env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;box-sizing:border-box;background:radial-gradient(70% 55% at 50% 30%,#466e3747,#0000 60%),#060a08d1;justify-content:center;align-items:center;animation:.55s both finaleRise;display:flex;position:fixed;inset:0;overflow-y:auto}.finale-overlay.defeat{background:radial-gradient(70% 55% at 50% 35%,#781e1866,#0000 60%),#080606e0}.finale-overlay.victory.outcome-victory_cure{background:radial-gradient(70% 55% at 50% 28%,#b4c85a52,#0000 58%),#060a08d1}.finale-overlay.victory.outcome-victory_heart{background:radial-gradient(65% 50% at 50% 40%,#b84a3259,#0000 55%),#060a08d1}.finale-card{text-align:center;background:linear-gradient(165deg,#141c16f2,#0a0e0cfa);border:1px solid #d4c47859;flex-direction:column;width:min(34rem,100%);max-height:min(92vh,40rem);padding:0;animation:.7s cubic-bezier(.2,.9,.3,1.1) both finaleCard;display:flex;overflow:hidden;box-shadow:0 24px 60px #00000073}.finale-body{flex:auto;min-height:0;padding:1.5rem 1.35rem .75rem;overflow-y:auto}.finale-actions{background:#00000059;border-top:1px solid #5a8c4640;flex-direction:column;flex-shrink:0;gap:.55rem;padding:.85rem 1.35rem 1.25rem;display:flex}.finale-actions .btn{width:100%}.finale-kicker{font-family:var(--font-stamp);letter-spacing:.22em;text-transform:uppercase;color:var(--blight);margin:0 0 .35rem;font-size:.8rem;animation:.8s both titleSting}.finale-overlay.defeat .finale-kicker{color:#e8a090}.finale-title{font-family:var(--font-display);letter-spacing:.04em;color:var(--ink);text-shadow:0 0 28px var(--blight-glow);margin:0 0 .65rem;font-size:clamp(1.7rem,5vw,2.4rem);animation:.9s 80ms both titleSting}.finale-sub{font-family:var(--font-stamp);color:var(--ink-dim);margin:0 0 1.25rem;font-size:1.05rem;line-height:1.45}.finale-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-bottom:1.25rem;display:grid}.finale-stats div{background:#00000047;border:1px solid #5a8c4633;padding:.55rem .35rem}.finale-stats span{font-family:var(--font-stamp);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:.2rem;font-size:.68rem;display:block}.finale-stats strong{font-family:var(--font-display);font-size:1.15rem}.finale-cta{justify-content:center}@keyframes finaleRise{0%{opacity:0}to{opacity:1}}@keyframes finaleCard{0%{opacity:0;transform:translateY(18px)scale(.96)}to{opacity:1;transform:none}}@keyframes titleSting{0%{opacity:0;letter-spacing:.35em}to{opacity:1}}.region-tile.clickable{cursor:pointer}.region-tile.clickable:hover,.region-tile.clickable:focus-visible{outline-offset:2px;outline:2px solid #d4c478bf}.region-tile.selected{outline-offset:2px;outline:2px solid #e8d278f2}.region-tile:first-child{animation-delay:20ms}.region-tile:nth-child(2){animation-delay:60ms}.region-tile:nth-child(3){animation-delay:.1s}.region-tile:nth-child(4){animation-delay:.14s}.region-tile:nth-child(5){animation-delay:.18s}.region-tile:nth-child(6){animation-delay:.22s}.region-tile:nth-child(7){animation-delay:.26s}@keyframes tileIn{0%{opacity:0;transform:scale(.94)translateY(6px)}to{opacity:1;transform:none}}.region-tile strong{font-family:var(--font-display);letter-spacing:.03em;font-size:.92rem}.region-tile em{font-style:normal;font-family:var(--font-stamp);color:var(--ink);letter-spacing:.04em;font-size:.85rem}.region-plague_heart{border-color:#b84a3273;grid-column:2;box-shadow:inset 0 0 36px #b84a3233,0 0 16px #b84a3226}.blight-meter{background:#00000073;border:1px solid #0000004d;border-radius:1px;height:4px;margin:.4rem 0;display:block;overflow:hidden}.blight-meter i{background:linear-gradient(90deg, #3d8b4a, color-mix(in srgb, #c9a227 calc(var(--infection) * 1%), #3d8b4a), color-mix(in srgb, #b43a2c calc(var(--infection) * 1%), #c9a227));height:100%;transition:width .85s;display:block}.region-tile.quarantined,.quarantined{outline-offset:2px;filter:saturate(.7)brightness(.85);outline:1px dashed #d4a017a6}.quarantine-tag{font-size:.65rem;font-family:var(--font-stamp);letter-spacing:.06em;text-transform:uppercase;color:#f0d878;background:#00000073;border-radius:2px;padding:.15rem .35rem;position:absolute;top:.35rem;right:.4rem}.skills-row{gap:.4rem;margin-bottom:1rem;display:grid}.skill-chips{flex-wrap:wrap;gap:.4rem;display:flex}.skill-chip{color:var(--blight);font-family:var(--font-stamp);letter-spacing:.04em;background:#c6de3a0f;border:1px solid #c6de3a66;border-radius:2px;padding:.25rem .55rem;font-size:.82rem}.step-badge{width:fit-content;font-family:var(--font-stamp);letter-spacing:.08em;text-transform:uppercase;color:#d8c878;background:#00000047;border:1px solid #d8c87859;border-radius:2px;margin:0 0 .35rem;padding:.25rem .55rem;font-size:.78rem;display:inline-block}.step-badge.cure{color:#9ec8e8;border-color:#8cb4dc66}.vote-options{gap:.65rem;margin-top:.75rem;display:grid}.vote-card{text-align:left;border-radius:var(--radius);border:1px solid var(--line);color:inherit;cursor:pointer;font:inherit;background:#00000052;gap:.35rem;padding:.85rem .95rem;transition:border-color .15s,transform .15s,box-shadow .15s;display:grid}.vote-card:hover:not(:disabled){border-color:var(--blight);transform:translateY(-1px);box-shadow:0 0 16px #c6de3a1f}.vote-card.selected{border-color:var(--blight);background:#c6de3a14;box-shadow:inset 0 0 0 1px #c6de3a66,0 0 18px #c6de3a26}.vote-card.contain-card{border-color:#c6b45a47}.vote-card.cure-card{border-color:#78aad259}.vote-card.cure-card.selected{background:#64a0d21a;border-color:#8cbee6d9;box-shadow:inset 0 0 0 1px #8cbee673,0 0 18px #64a0d22e}.vote-card.locked{opacity:.5;cursor:not-allowed}.vote-card strong{font-family:var(--font-display)}.vote-card em{color:var(--blight);font-style:normal;font-family:var(--font-stamp);font-size:.9rem}.resolve-log{border-left:3px solid var(--blight);font-family:var(--font-stamp);letter-spacing:.02em;background:#00000047;margin:1rem 0;padding:.85rem 1rem;font-size:.92rem}.outcome{font-family:var(--font-display);color:var(--blight);letter-spacing:.05em;text-shadow:0 0 24px var(--blight-glow);margin:1rem 0;font-size:1.3rem}.tv-hint{text-align:center;font-family:var(--font-stamp);letter-spacing:.06em;margin-top:.75rem;font-size:.85rem}.play.tv{z-index:80;box-sizing:border-box;background:radial-gradient(90% 70% at 50% -10%,#466e3738,#0000 55%),radial-gradient(60% 50% at 85% 90%,#8c281e2e,#0000 50%),#0c100e;flex-direction:column;gap:.75rem;width:100%;max-width:none;margin:0;padding:clamp(1rem,2.5vh,2rem) clamp(1rem,3vw,2.5rem) clamp(1.25rem,3vh,2.5rem);animation:none;display:flex;position:fixed;inset:0;overflow:auto}:-webkit-any(.play.tv:fullscreen,.play.tv:-webkit-full-screen){background:radial-gradient(90% 70% at 50% -10%,#466e3738,#0000 55%),radial-gradient(60% 50% at 85% 90%,#8c281e2e,#0000 50%),#0c100e;width:100%;height:100%}:is(.play.tv:fullscreen,.play.tv:fullscreen){background:radial-gradient(90% 70% at 50% -10%,#466e3738,#0000 55%),radial-gradient(60% 50% at 85% 90%,#8c281e2e,#0000 50%),#0c100e;width:100%;height:100%}.play.tv .play-top{flex-shrink:0;margin-bottom:.25rem}.play.tv .phase-label{font-size:clamp(1.75rem,4vw,2.75rem)}.play.tv .meters{flex-shrink:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:.35rem}.play.tv .meter{padding:.85rem 1rem}.play.tv .meter span{font-size:.85rem}.play.tv .meter strong{font-size:clamp(1.6rem,3.5vw,2.4rem)}.play.tv .game-panel{min-height:0;box-shadow:none;background:0 0;border:0;flex-direction:column;flex:1;padding:0;display:flex}.play.tv .game-panel>h3{margin-bottom:.35rem;font-size:clamp(1.1rem,2vw,1.45rem)}.play.tv .world-map{flex:1;align-content:stretch;gap:.75rem;min-height:min(52vh,560px);margin:.35rem 0 .75rem}.play.tv .world-map.geo{grid-template-rows:minmax(7rem,1fr) minmax(9rem,1.2fr) minmax(7rem,1fr);grid-template-columns:1fr 1.2fr 1fr}.play.tv .live-ticker{font-size:1.05rem}.play.tv .live-item{font-size:1.1rem}.play.tv .region-tile{min-height:clamp(6.5rem,16vh,11rem);padding:1rem;font-size:1.15rem}.play.tv .region-tile strong{font-size:clamp(1rem,2vw,1.35rem)}.play.tv .region-tile em{font-size:1.05rem}.play.tv:not(.tv-interactive) .council .vote-options{display:none}.play.tv.tv-interactive .world-map{min-height:min(40vh,420px)}.play.tv.tv-interactive .vote-options{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.play.tv.tv-interactive .vote-card{padding:1rem 1.1rem;font-size:1.05rem}.play.tv .host-controls .party-box,.play.tv .lobby-panel .party-box{display:none}.play.tv .resolve-log{font-size:1.15rem}.play.tv .resolve-log h3{font-size:1.45rem}.play.tv .outcome{font-size:clamp(1.35rem,3vw,2rem)}.play.tv .tv-hint{flex-shrink:0;margin-top:auto;padding-top:.5rem;font-size:1rem}.play.tv .room-code{font-size:clamp(2.2rem,6vw,3.5rem)}.qr-placeholder{border:1px dashed var(--line);background:#00000059;margin:.75rem auto}@media (width<=720px){.app{padding:.75rem .75rem 2.5rem}.hero{padding:2rem 1rem 1.6rem}.outbreak-stamp{letter-spacing:.18em;font-size:.68rem}.meters,.world-map{grid-template-columns:repeat(2,minmax(0,1fr))}.world-map.geo{grid-template-rows:auto;grid-template-columns:1fr 1fr;min-height:0}.world-map.geo .region-north_kingdom,.world-map.geo .region-elf_woods,.world-map.geo .region-plague_heart,.world-map.geo .region-eastern_wastes,.world-map.geo .region-southern_ports,.world-map.geo .region-heartlands{grid-area:auto}.world-map.geo .region-plague_heart{grid-column:1/-1}.finale-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.region-plague_heart{grid-column:auto}.play-top{flex-direction:column;gap:.65rem}.room-code{letter-spacing:.18em;font-size:1.85rem}.cta-row{justify-content:stretch}.cta-row .btn{flex:auto}}@media (width<=420px){.meters{grid-template-columns:1fr 1fr}.world-map{grid-template-columns:1fr}.region-tile{min-height:4.5rem}}@media (prefers-reduced-motion:reduce){.mist-layer,.spore-field,.outbreak-stamp,.logo,.panel,.region-tile,.play,.lab-app.screen-urgent,.lab-tv.screen-urgent{animation:none!important}.lab-app.screen-urgent:before,.lab-tv.screen-urgent:before{opacity:.6;animation:none!important}}.home .hero{text-align:center;margin-bottom:1.5rem}.home .hero h1{font-family:var(--font-display);letter-spacing:.06em;margin:.25rem 0;font-size:clamp(2rem,8vw,2.75rem)}.home .tagline{color:var(--blight);margin:.5rem 0;font-size:1.05rem}.home .support{color:var(--ink-dim);max-width:36rem;margin:0 auto}.stamp{font-family:var(--font-stamp);letter-spacing:.14em;color:var(--hazard-dim);font-size:.72rem}.home-actions{flex-direction:column;gap:.65rem;max-width:22rem;margin:0 auto 1.5rem;display:flex}.join-form{flex-direction:column;gap:.75rem;max-width:22rem;margin:0 auto 1.5rem;display:flex}.join-form label{flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.join-form input{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:var(--radius);padding:.65rem .75rem}.lang-toggle{justify-content:center;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.lang-toggle button{border:1px solid var(--line);color:var(--ink-dim);cursor:pointer;background:0 0;padding:.35rem .65rem}.lang-toggle button.active{color:var(--blight);border-color:var(--blight-deep)}.how-to{border:1px solid var(--line);background:var(--panel);max-width:32rem;margin:2rem auto 0;padding:1rem}.how-to ol{color:var(--ink-dim);margin:.5rem 0 0;padding-left:1.2rem}.feedback-banner{border-radius:var(--radius);border:1px solid var(--hazard-dim);color:var(--hazard);background:#c9a2271f;margin:.5rem 0 0;padding:.55rem .75rem;font-size:.9rem}.error-banner{border:1px solid var(--danger);background:#b84a3233;margin-bottom:1rem;padding:.65rem .85rem}.game-view{flex-direction:column;gap:1rem;display:flex}.game-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.code-stamp{font-family:var(--font-stamp);letter-spacing:.2em;color:var(--blight);font-size:1.4rem;display:block}.phase-stamp{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.08em;font-size:.85rem}.timer{font-family:var(--font-stamp);color:var(--hazard);white-space:nowrap}.score-board{flex-wrap:wrap;gap:.5rem;display:flex}.score-cell{border:1px solid var(--line);background:var(--panel);flex-direction:column;flex:1;gap:.15rem;min-width:5.5rem;padding:.65rem .75rem;display:flex}.score-cell span{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.score-cell strong{font-family:var(--font-display);font-size:1.35rem}.score-cell.cleanse strong{color:var(--blight)}.score-cell.infect strong{color:var(--danger)}.phase-panel{border:1px solid var(--line);background:var(--panel);text-align:center;padding:1.25rem 1rem}.phase-panel.secret{border-color:#c6de3a59;box-shadow:inset 0 0 40px #c6de3a0f}.phase-title{font-family:var(--font-display);margin:0 0 .75rem;font-size:1.15rem}.role-card.innocent{border-color:#c6de3a73}.role-card.scourgeborn{border-color:#b84a328c;box-shadow:inset 0 0 50px #b84a321f}.role-card.scourgeborn .phase-title{color:var(--danger)}.role-desc{color:var(--ink-dim);margin:0 0 .75rem}.reveal-btn{width:100%;max-width:18rem;margin:0 auto;padding:1rem 1.5rem;font-size:1.05rem}.hint{color:var(--ink-dim);margin:.35rem 0;font-size:.9rem}.hint.dim{opacity:.75}.pick-grid{grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.5rem;display:grid}.pick-btn{padding:.85rem .5rem}.vote-row{flex-wrap:wrap;justify-content:center;gap:.65rem;margin-top:.75rem;display:flex}.vote-yes{border-color:var(--blight-deep);background:#c6de3a26;min-width:6rem}.vote-no{border-color:var(--danger);background:#b84a3226;min-width:6rem}.mission-cleanse{border-color:var(--blight-deep);background:#c6de3a1f;min-width:7rem}.mission-infect{border-color:var(--danger);background:#b84a322e;min-width:7rem}.team-line{font-family:var(--font-display);margin:.5rem 0;font-size:1.1rem}.player-list{margin:0;padding:0;list-style:none}.player-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:.75rem;padding:.55rem 0;font-size:.92rem;display:flex}.player-list li.offline{opacity:.55}.player-name .badge{border:1px solid var(--line);text-transform:uppercase;letter-spacing:.05em;margin-left:.35rem;padding:.1rem .35rem;font-size:.65rem;font-style:normal}.badge.leader{color:var(--hazard);border-color:var(--hazard-dim)}.badge.mission{color:var(--blight)}.role-tag.scourgeborn{color:var(--danger)}.role-tag.innocent{color:var(--blight)}.resolution.success{border-color:#c6de3a73}.resolution.fail{border-color:#b84a3280}.finale{flex-direction:column;min-height:70vh;display:flex}.finale-body{text-align:center;flex:1;padding:1rem 0 2rem}.finale-footer{background:linear-gradient(transparent, var(--bg-0) 30%);flex-wrap:wrap;justify-content:center;gap:.65rem;padding:1rem 0;display:flex;position:sticky;bottom:0}.finale.innocents h2{color:var(--blight)}.finale.scourgeborn h2{color:var(--danger)}.game-footer{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.5rem;display:flex}.host-tools{text-align:center;margin-top:1rem}.qr-wrap{margin-top:1rem}.conn{text-align:center;color:var(--ink-dim);margin-top:1.5rem;font-size:.75rem}.conn.disconnected{color:var(--danger)}.btn.primary{border-color:var(--blight-deep);color:var(--blight);background:#c6de3a2e}.btn.ghost{background:0 0}.btn.ghost.danger{color:var(--danger);border-color:#b84a3273}.btn{border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:var(--radius);padding:.65rem 1rem}.btn:disabled{opacity:.45;cursor:not-allowed}.notice{text-align:center;color:var(--hazard);margin-bottom:.5rem;font-size:.85rem}.lobby-find ul{margin:1rem 0;padding:0;list-style:none}.lobby-card{text-align:left;border:1px solid var(--line);background:var(--panel);width:100%;color:var(--ink);cursor:pointer;justify-content:space-between;margin-bottom:.5rem;padding:.75rem 1rem;display:flex}.game-view.tv .phase-panel.secret,.game-view.tv .mission-infect{display:none}.tv-app{max-width:1200px}@media (width>=768px){.game-view.tv{font-size:1.1rem}.code-stamp{font-size:2rem}}.void-backdrop{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.void-orb{filter:blur(60px);opacity:.45;border-radius:50%;animation:12s ease-in-out infinite alternate void-pulse;position:absolute}.void-orb-a{background:radial-gradient(circle,#9d7cff80,#0000 70%);width:420px;height:420px;top:-8%;left:-6%}.void-orb-b{background:radial-gradient(circle,#e0456a59,#0000 70%);width:360px;height:360px;animation-delay:-4s;bottom:-10%;right:-8%}.void-grid{background-image:linear-gradient(#9d7cff0a 1px,#0000 1px),linear-gradient(90deg,#9d7cff0a 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 80%);mask-image:radial-gradient(#000 30%,#0000 80%)}@keyframes void-pulse{0%{opacity:.35;transform:scale(1)}to{opacity:.55;transform:scale(1.08)}}.ritual-app,.ritual-home{z-index:1;position:relative}.matrix-hud{grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));gap:.5rem;margin-bottom:.75rem;display:grid}.hud-cell{border:1px solid var(--line);background:var(--panel);padding:.65rem .75rem}.hud-cell span{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);font-size:.7rem;display:block}.hud-cell strong{font-family:var(--font-display);font-size:1.2rem}.bar{background:#ffffff0f;border-radius:2px;height:4px;margin-top:.35rem;overflow:hidden}.bar-fill.health{background:linear-gradient(90deg, var(--void-accent), var(--blight));height:100%}.bar-fill.scourge{background:linear-gradient(90deg, var(--danger), var(--hazard));height:100%}.ritual-tools{flex-direction:column;gap:.75rem;margin:.75rem 0;display:flex}.tool-panel{border:1px solid var(--line);background:var(--panel);padding:1rem;box-shadow:inset 0 0 30px #9d7cff0f}.tool-panel h3{font-family:var(--font-display);color:var(--blight);margin:0 0 .65rem;font-size:.95rem}.tool-panel input[type=range]{width:100%;accent-color:var(--blight)}.glyph-grid{grid-template-columns:repeat(5,1fr);gap:.35rem;display:grid}.glyph-btn{text-transform:uppercase;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#9d7cff14;padding:.55rem .25rem;font-size:.65rem}.task-list{margin:.75rem 0;padding:0;list-style:none}.task-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:.5rem;padding:.55rem .65rem;font-size:.88rem;display:flex}.task-list li.live{border-left:3px solid var(--blight)}.task-list li.done{opacity:.55;border-left:3px solid var(--void-accent)}.task-list li.fail{border-left:3px solid var(--danger);color:var(--danger)}.affliction-modal{z-index:100;text-align:center;background:#050508eb;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.affliction-modal h2{color:var(--danger);font-family:var(--font-display);text-shadow:0 0 24px var(--danger-glow)}.scourge-btn{border-color:var(--danger)!important;color:#ffb3c6!important;background:#e0456a26!important}.miasma-banner{text-align:center;color:var(--danger);font-family:var(--font-stamp);letter-spacing:.1em;animation:1.2s infinite alternate miasma-flicker}.game-view.miasma .task-list{filter:blur(4px)opacity(.45)}@keyframes miasma-flicker{0%{opacity:.7}to{opacity:1}}.mode-tag{font-family:var(--font-stamp);color:var(--void-accent);margin-left:.5rem;font-size:.65rem}.event-line{color:var(--ink-dim);border-left:2px solid var(--blight-deep);margin:.5rem 0;padding-left:.65rem;font-size:.85rem}.vote-grid{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.45rem;display:grid}.panel.cleansing{border-color:#e0456a59}.finale.win h2{color:var(--void-accent)}.finale.loss h2{color:var(--danger)}.coach-banner{border:2px solid var(--blight-deep);background:#9d7cff1a;margin-bottom:.85rem;padding:1rem 1.1rem;box-shadow:0 0 24px #9d7cff1f}.coach-label{font-family:var(--font-stamp);letter-spacing:.12em;text-transform:uppercase;color:var(--blight);margin:0 0 .35rem;font-size:.7rem}.coach-text{color:var(--ink);margin:0;font-size:1.05rem;line-height:1.45}.coach-sub{color:var(--ink-dim);margin:.5rem 0 0;font-size:.88rem}.goal-details{color:var(--ink-dim);margin-top:.65rem;font-size:.85rem}.goal-details summary{cursor:pointer;color:var(--blight)}.tool-instruct{color:var(--ink-dim);margin:0 0 .75rem;font-size:.92rem}.feedback{margin:.5rem 0 0;font-weight:600}.feedback.ok{color:var(--void-accent)}.feedback.warn{color:var(--hazard)}.feedback.bad{color:var(--danger)}.glyph-sequence{flex-wrap:wrap;gap:.35rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.glyph-sequence li{border:1px solid var(--line);opacity:.45;padding:.35rem .55rem;font-size:.8rem}.glyph-sequence li.next{opacity:1;border-color:var(--blight);background:#9d7cff26;font-weight:700}.glyph-sequence li.done{opacity:.7;border-color:var(--void-accent);text-decoration:line-through}.task-list li.yours{background:#9d7cff0f}.team-tasks h3{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);margin:.75rem 0 .35rem;font-size:.85rem}.task-detail{color:var(--ink-dim);margin-top:.15rem;font-size:.8rem;display:block}.btn.small{padding:.45rem .75rem;font-size:.85rem}.cycle-panel,.lobby-panel{text-align:center}.lab-home .hero{text-align:center;max-width:36rem;margin:0 auto 1.5rem}.lab-home .support{color:var(--ink-dim);font-size:.95rem}.lab-view{max-width:480px;margin:0 auto;padding:1rem}.patients-section h3{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);margin:0 0 .5rem;font-size:.85rem}.patient-bar{gap:.5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.patient-card{border:2px solid var(--item-color,var(--line));border-radius:var(--radius);background:color-mix(in srgb, var(--item-color,var(--blight)) 12%, var(--panel));min-width:10rem;box-shadow:0 0 14px color-mix(in srgb, var(--item-glow,transparent) 60%, transparent);flex:none;padding:.6rem .75rem;font-size:.85rem}.patient-card.urgent{border-color:var(--danger);box-shadow:0 0 18px var(--danger-glow), 0 0 8px var(--item-glow,transparent);animation:.4s infinite alternate urgentShake}@keyframes urgentShake{0%{transform:translate(-1px)}to{transform:translate(1px)}}.patient-card strong{margin-bottom:.25rem;display:block}.workstation{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin:1rem 0;padding:1rem}.workstation h2{font-family:var(--font-display);color:var(--blight);margin:0 0 .5rem;font-size:1.25rem}.coach-line{color:var(--hazard);margin:0 0 .75rem;font-size:.9rem}.hand-display{border-radius:var(--radius);background:#9d7cff14;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.95rem}.action-row,.send-row,.station-tabs{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.action-col{flex-direction:column;gap:.5rem;display:flex}.btn.deliver-btn{background:var(--void-accent);color:#050508;font-weight:700}.btn.tab.active{border-color:var(--blight);background:#9d7cff33}.event-line{color:var(--void-accent);text-align:center;margin:.5rem 0;font-size:.9rem}.team-list{color:var(--ink-dim);margin:1rem 0;padding:0;font-size:.85rem;list-style:none}.team-list li{border-bottom:1px solid var(--line);padding:.35rem 0}.game-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.9rem;display:flex}.code-stamp{font-family:var(--font-stamp);letter-spacing:.12em;color:var(--blight)}.game-footer{border-top:1px solid var(--line);gap:.5rem;margin-top:1.5rem;padding-top:1rem;display:flex}.how-to{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);max-width:32rem;margin:2rem auto 0;padding:1rem}.how-to ol{color:var(--ink-dim);margin:0;padding-left:1.25rem;font-size:.9rem}.how-to li{margin-bottom:.35rem}.item-badge{border:2px solid var(--item-color,var(--blight));background:color-mix(in srgb, var(--item-color,var(--blight)) 22%, transparent);box-shadow:0 0 12px var(--item-glow,var(--blight-glow));font-weight:700;font-family:var(--font-stamp);letter-spacing:.06em;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .55rem;display:inline-flex}.item-badge.sm{padding:.15rem .4rem;font-size:.7rem}.item-badge.lg{padding:.35rem .7rem;font-size:1rem}.item-icon{font-size:1.1em}.recipe-strip{flex-wrap:wrap;justify-content:center;align-items:center;gap:.1rem;margin:.35rem 0;display:flex}.recipe-step{align-items:center;display:inline-flex}.recipe-arrow{color:var(--ink-dim);margin:0 .1rem;font-size:.75rem}.recipe-plus{color:var(--ink);margin:0 .05rem;font-size:.85rem;font-weight:700}.recipe-action{border-radius:.25rem;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;margin:0 .05rem;font-size:.8rem;display:inline-flex}.recipe-mix{background:#bf5fff40}.recipe-heat{background:#ff450040}.recipe-cool{background:#00bfff40}.patient-card{min-width:10rem}.patient-timer{font-family:var(--font-stamp);margin-top:.25rem;font-size:1.1rem;display:block}.team-board{margin:.75rem 0}.team-board h3{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);margin:0 0 .5rem;font-size:.85rem}.team-grid{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.5rem;display:grid}.team-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);text-align:center;padding:.55rem .65rem;font-size:.8rem}.team-card.you{border-color:var(--blight);box-shadow:0 0 10px var(--blight-glow)}.team-card.offline{opacity:.45}.team-station{letter-spacing:.05em;font-size:.7rem;font-weight:700;display:block}.team-hand{min-height:1.5rem;margin-top:.25rem;display:block}.team-stat{color:var(--void-accent);margin-top:.15rem;font-size:.7rem;display:block}.station-splash{z-index:100;background:#050508eb;flex-direction:column;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.splash-you{letter-spacing:.2em;color:var(--ink-dim);margin:0;font-size:1rem}.splash-icon{margin:.5rem 0;font-size:4rem}.station-splash h2{font-family:var(--font-display);color:var(--station-color,var(--blight));letter-spacing:.08em;margin:0;font-size:2rem}.splash-yell{color:var(--hazard);margin-top:1rem;font-size:1.1rem;font-weight:700}.splash-duty{text-align:center;max-width:22rem;color:var(--ink);margin:.75rem 1rem 0;font-size:.95rem;line-height:1.45}.patient-needs-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);margin-top:.25rem;font-size:.65rem;display:block}.station-hint{border-left:3px solid var(--station-color,var(--blight));color:var(--ink);background:#ffffff0d;margin:0 0 .75rem;padding:.5rem .75rem;font-size:.88rem;line-height:1.4}.party-play-guide{border-top:1px solid #ffffff14;margin-top:1.25rem;padding-top:1rem}.party-play-guide h4{color:var(--blight);margin:0 0 .5rem}.party-play-steps{margin:0 0 .5rem;padding-left:1.25rem;line-height:1.45}.goal-hint{color:var(--ink-dim);font-size:.85rem}.deliver-hint{color:var(--void-accent);margin:.25rem 0;font-weight:600}.incubator-hints{margin-bottom:.5rem}.incubator-hints .hint{margin:.15rem 0;font-size:.85rem}.lab-tv-host-hint{text-align:center;color:var(--ink-dim);margin:0 0 .75rem;padding:0 1rem;font-size:.95rem}.lab-tv-play-guide{border-top:1px solid #ffffff1a;margin-top:1.5rem;padding-top:1rem}.lab-tv-play-guide h3{color:var(--blight);margin:0 0 .5rem;font-size:1rem}.lab-tv-play-steps{margin:0;padding-left:1.25rem;font-size:.95rem;line-height:1.5}.lab-tv-goal{color:var(--ink-dim);margin:.75rem 0 0;font-size:.9rem}.alert-overlay{z-index:90;text-align:center;color:#050508;font-size:1.2rem;font-weight:800;font-family:var(--font-stamp);letter-spacing:.04em;background:linear-gradient(#c9a227f2,#c9a227b3);padding:1.25rem;position:fixed;top:0;left:0;right:0;box-shadow:0 4px 24px #0006}.alert-overlay p{margin:.5rem 0 0}.wave-banner{z-index:85;font-family:var(--font-display);letter-spacing:.1em;border:2px solid var(--blight);color:var(--blight);pointer-events:none;background:#080610f2;padding:1rem 2rem;font-size:1.5rem;font-weight:700;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.wave-banner.wave-4{border-color:var(--danger);color:var(--danger);animation:.5s infinite alternate pulse}.wave-chip{letter-spacing:.06em;color:var(--hazard);font-size:.65rem;font-family:var(--font-stamp)}.game-header{flex-wrap:wrap;gap:.35rem}.workstation{border-color:color-mix(in srgb, var(--station-color,var(--blight)) 40%, var(--line))}.workstation h2{color:var(--station-color,var(--blight))}.station-icon{margin-right:.35rem}.big-buttons .btn{flex:1;min-width:7rem;padding:.85rem;font-size:1.1rem}.btn.item-btn.red{color:#fff;background:#ff2d55;border-color:#ff2d55}.btn.item-btn.blue{color:#050508;background:#00d4ff;border-color:#00d4ff}.btn.item-btn.green{color:#050508;background:#39ff14;border-color:#39ff14}.btn.item-btn.yellow{color:#050508;background:#ffe600;border-color:#ffe600}.btn.item-btn.purple{color:#fff;background:#bf5fff;border-color:#bf5fff}.btn.item-btn.hot{color:#fff;background:#ff4500;border-color:#ff4500}.btn.item-btn.cold{color:#050508;background:#00bfff;border-color:#00bfff}.extract-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.extract-grid .btn{min-width:0;padding:.75rem .5rem;font-size:.95rem}.party-setup{text-align:left;border:2px solid var(--hazard);border-radius:var(--radius);background:#c9a22714;margin-bottom:1rem;padding:1rem}.party-setup h3{color:var(--hazard);font-family:var(--font-display);margin:0 0 .75rem}.party-steps{color:var(--ink);margin:0 0 1rem;padding-left:1.2rem;font-size:.9rem}.party-steps li{margin-bottom:.4rem}.party-host-block{text-align:center;border:1px dashed var(--line);border-radius:var(--radius);background:#0003;margin:1rem 0;padding:1rem}.room-code-big{font-family:var(--font-stamp);letter-spacing:.25em;color:var(--blight);text-shadow:0 0 20px var(--blight-glow);margin:.5rem 0;font-size:2.5rem}.tv-hint{color:var(--hazard);letter-spacing:.06em;text-transform:uppercase;font-size:.85rem;font-weight:700}.join-url{font-family:var(--font-stamp);color:var(--ink-dim);word-break:break-all;margin-bottom:.75rem;font-size:.75rem}.party-guest-msg{text-align:center;color:var(--void-accent);padding:1rem;font-size:1.05rem;font-weight:600}.party-roster{margin-top:1rem;font-size:.9rem}.party-roster ul{margin:.35rem 0 0;padding:0;list-style:none}.party-roster li{border-bottom:1px solid var(--line);padding:.3rem 0}.btn.party-start{width:100%;margin-top:.5rem;padding:1rem;font-size:1.15rem}.btn.send-btn{border-color:var(--void-accent);font-weight:700}.btn.ping{border-color:var(--hazard-dim);color:var(--hazard);padding:.4rem .55rem;font-size:.75rem}.btn.ping.urgent{border-color:var(--danger);color:var(--danger);font-weight:700}.ping-row{border-top:1px dashed var(--line);flex-wrap:wrap;gap:.35rem;margin-top:.75rem;padding-top:.75rem;display:flex}.tutorial-panel{border:1px solid var(--blight);border-radius:var(--radius);background:#9d7cff14;margin:1rem 0;padding:1rem}.tutorial-panel h3{color:var(--blight);margin:0 0 .5rem}.highlights{text-align:left;margin:1rem 0;max-width:16rem;margin-inline:auto}.highlights ul{padding:0;list-style:none}.highlights li{border-bottom:1px solid var(--line);padding:.35rem 0}.finale-score{font-size:1.1rem}.finale-actions{justify-content:center;gap:.5rem;margin-top:1rem;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes flashIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes shakeIn{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes pulse{0%{transform:translate(-50%,-50%)scale(1)}to{transform:translate(-50%,-50%)scale(1.05)}}.flash-in{animation:.3s flashIn}.shake-in{animation:.5s shakeIn}.patient-card.pulse .patient-timer{animation:.6s infinite alternate pulse}.lab-app.screen-urgent,.lab-tv.screen-urgent{animation:.11s linear infinite screenVibrate}.lab-app.screen-urgent:before,.lab-tv.screen-urgent:before{content:"";pointer-events:none;z-index:300;animation:.55s ease-in-out infinite alternate urgentVignette;position:fixed;inset:0;box-shadow:inset 0 0 80px #ff2d5559}@keyframes screenVibrate{0%,to{transform:translate(0)}20%{transform:translate(-3px,2px)}40%{transform:translate(3px,-2px)}60%{transform:translate(-2px,-3px)}80%{transform:translate(2px,3px)}}@keyframes urgentVignette{0%{opacity:.45}to{opacity:.85}}.lab-app.screen-flash-cure-strong:after,.lab-tv.screen-flash-cure-strong:after{content:"";pointer-events:none;z-index:200;background:#6ee7a059;animation:.45s flashIn;position:fixed;inset:0}.lab-app.screen-flash-cure:after,.lab-tv.screen-flash-cure:after{content:"";pointer-events:none;z-index:200;background:#4fd1c540;animation:.15s reverse fadeIn;position:fixed;inset:0}.lab-app.screen-shake-miss,.lab-tv.screen-shake-miss{animation:.35s shakeIn}.lab-tv-yell{text-align:center;color:#050508;background:linear-gradient(135deg,#c9a227f2,#ff4500d9);border-radius:.75rem;margin:.75rem 1rem;padding:1rem 1.25rem;font-size:1.35rem;font-weight:700;line-height:1.3;box-shadow:0 8px 32px #00000059}.lab-tv-yell p{margin:.35rem 0 0}.lab-tv-win-hint{text-align:center;color:var(--void-accent);margin:0 0 .5rem;padding:0 1rem;font-size:.85rem}.win-hint{text-align:center;color:var(--void-accent);margin:.25rem 0 .75rem;font-size:.85rem}.copy-link-btn{margin-top:.5rem}.finale-card-wrap{justify-content:center;padding:1rem;display:flex}.finale-card-wrap.victory .finale-card{border-color:var(--void-accent);box-shadow:0 0 40px #4fd1c540}.finale-card{background:#0c0c12f2;border:1px solid #ffffff1a;border-radius:1rem;width:min(100%,28rem);padding:1.5rem}.finale-card.win h2{color:var(--void-accent)}.finale-card.loss h2{color:var(--hazard)}.finale-sub{color:var(--ink);margin:0 0 1rem}.mvp-tags{color:var(--blight);font-size:.85rem;font-weight:700}.finale-player-stats{color:var(--ink-dim);font-size:.85rem}.finale-log{text-align:left;margin-top:1rem}.finale-log h3{color:var(--blight);margin:0 0 .35rem;font-size:.9rem}.finale-log ul{color:var(--ink-dim);margin:0;padding-left:1.1rem;font-size:.82rem;line-height:1.45}.solo-lab{margin:.75rem 0}.flow-hint{text-align:center;font-family:var(--font-stamp);letter-spacing:.06em;color:var(--void-accent);border:1px dashed var(--line);border-radius:var(--radius);margin:0 0 .75rem;padding:.4rem .6rem;font-size:.75rem}.hand-bar{border:2px solid var(--blight);border-radius:var(--radius);background:#9d7cff1a;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.75rem;display:flex}.hand-bar .hand-display{background:0 0;flex:1;margin:0;padding:0}.lab-pipeline{flex-direction:column;gap:.25rem;display:flex}.station-panel{border:2px solid color-mix(in srgb, var(--station-color,var(--blight)) 45%, var(--line));border-radius:var(--radius);background:color-mix(in srgb, var(--station-color,var(--blight)) 8%, var(--panel));padding:.85rem}.station-panel h3{color:var(--station-color,var(--blight));letter-spacing:.05em;margin:0 0 .6rem;font-size:.95rem}.flow-connector{text-align:center;color:var(--ink-dim);padding:.15rem 0;font-size:1.2rem;line-height:1}.lab-tv{z-index:100;box-sizing:border-box;background:radial-gradient(100% 80% at 50% -20%,#9d7cff2e,#0000 55%),radial-gradient(70% 60% at 90% 100%,#ff2d551f,#0000 50%),#07080c;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.lab-tv.is-fullscreen{padding:0}.lab-tv-fs-overlay{z-index:50;text-align:center;background:#07080ceb;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex;position:absolute;inset:0}.lab-tv-fs-title{font-family:var(--font-display);color:var(--hazard);letter-spacing:.08em;margin:0;font-size:clamp(1.75rem,4vw,3rem)}.lab-tv-fs-sub{color:var(--ink-dim);max-width:32rem;margin:0;font-size:clamp(1rem,2vw,1.25rem)}.lab-tv-fs-btn{margin-top:.5rem;padding:1rem 2.5rem;font-size:clamp(1.1rem,2.5vw,1.5rem)}.lab-tv-body{flex:1;min-height:0;padding:clamp(1rem,2.5vh,2rem) clamp(1rem,3vw,2.5rem);overflow:auto}.lab-tv-chrome{border-top:1px solid var(--line);opacity:.35;background:#00000073;flex-shrink:0;justify-content:space-between;align-items:center;padding:.5rem 1rem;transition:opacity .2s;display:flex}.lab-tv:hover .lab-tv-chrome,.lab-tv:focus-within .lab-tv-chrome{opacity:1}.lab-tv-brand{font-family:var(--font-display);letter-spacing:.12em;color:var(--ink-dim);font-size:.85rem}.lab-tv-chrome-actions{gap:.5rem;display:flex}.lab-tv-error{z-index:60;margin:0;position:relative}.lab-tv-host-actions{z-index:40;opacity:.4;transition:opacity .2s;position:fixed;bottom:3.5rem;right:1rem}.lab-tv:hover .lab-tv-host-actions{opacity:1}.lab-tv-lobby{flex-direction:column;gap:clamp(1rem,2vh,1.75rem);max-width:72rem;min-height:100%;margin:0 auto;display:flex}.lab-tv-lobby-head{text-align:center}.lab-tv-badge{font-family:var(--font-display);letter-spacing:.2em;color:var(--hazard);border:2px solid var(--hazard);border-radius:999px;margin-bottom:.75rem;padding:.35rem .85rem;font-size:clamp(.85rem,1.5vw,1rem);font-weight:700;display:inline-block}.lab-tv-lobby-head h1{font-family:var(--font-display);color:var(--ink);margin:0;font-size:clamp(2rem,5vw,3.5rem)}.lab-tv-lobby-main{flex:1;grid-template-columns:1fr minmax(16rem,22rem);align-items:start;gap:clamp(1.5rem,3vw,3rem);display:grid}.lab-tv-lobby-join{text-align:center;border:2px solid var(--blight);border-radius:var(--radius);background:#9d7cff14;padding:clamp(1.5rem,3vh,2.5rem);box-shadow:0 0 40px #9d7cff26}.lab-tv-code{font-family:var(--font-stamp);letter-spacing:.2em;color:var(--blight);text-shadow:0 0 30px var(--blight-glow);margin-bottom:1.5rem;font-size:clamp(4rem,12vw,8rem);line-height:1}.lab-tv-url{font-family:var(--font-stamp);color:var(--ink-dim);word-break:break-all;margin-top:1rem;font-size:clamp(.75rem,1.5vw,.95rem)}.lab-tv-lobby-side h2{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);margin:0 0 .35rem;font-size:clamp(1.1rem,2vw,1.4rem)}.lab-tv-player-count{font-family:var(--font-stamp);color:var(--void-accent);margin:0 0 1rem;font-size:clamp(2rem,4vw,3rem)}.lab-tv-roster{margin:0 0 1.5rem;padding:0;list-style:none}.lab-tv-roster li{border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:.65rem 0;font-size:clamp(1rem,2vw,1.25rem);display:flex}.lab-tv-roster li.offline{opacity:.45}.lab-tv-roster-name{font-weight:700}.lab-tv-roster-tag{text-transform:uppercase;letter-spacing:.06em;color:var(--hazard);font-size:.75rem}.lab-tv-wait-hint{color:var(--ink-dim);margin-bottom:1rem;font-size:.95rem}.lab-tv-start{width:100%;padding:1rem 1.5rem;font-size:clamp(1.1rem,2.5vw,1.4rem)}.lab-tv-steps{color:var(--ink-dim);columns:2;column-gap:2rem;margin:auto 0 0;padding-left:1.25rem;font-size:clamp(.85rem,1.5vw,1rem)}.lab-tv-steps li{break-inside:avoid;margin-bottom:.35rem}.lab-tv-tutorial{max-width:36rem;margin:1rem auto 0}.lab-tv-game{flex-direction:column;gap:clamp(.75rem,2vh,1.5rem);max-width:90rem;min-height:100%;margin:0 auto;display:flex}.lab-tv-game-head{border-bottom:2px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:1rem 2rem;padding-bottom:.75rem;display:grid}.lab-tv-head-code{font-family:var(--font-stamp);letter-spacing:.15em;color:var(--blight);font-size:clamp(2rem,5vw,3.5rem)}.lab-tv-head-wave{font-family:var(--font-display);color:var(--hazard);text-align:center;letter-spacing:.06em;font-size:clamp(1.25rem,3vw,2rem)}.lab-tv-head-stats{gap:1.5rem;display:flex}.lab-tv-stat{text-align:center}.lab-tv-stat span{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);font-size:.75rem;display:block}.lab-tv-stat strong{font-family:var(--font-stamp);color:var(--blight);font-size:clamp(2rem,4vw,3rem)}.lab-tv-stat.danger strong{color:var(--danger)}.lab-tv-patients h2,.lab-tv-team h2{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-dim);margin:0 0 .75rem;font-size:clamp(.9rem,1.5vw,1.1rem)}.lab-tv-patient-grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:clamp(.75rem,1.5vw,1.25rem);display:grid}.lab-tv-patient{border:3px solid var(--item-color,var(--line));border-radius:var(--radius);background:color-mix(in srgb, var(--item-color,var(--blight)) 14%, var(--panel));box-shadow:0 0 20px color-mix(in srgb, var(--item-glow,transparent) 50%, transparent);padding:clamp(.85rem,1.5vw,1.25rem)}.lab-tv-patient.urgent{border-color:var(--danger);box-shadow:0 0 24px var(--danger-glow);animation:.4s infinite alternate urgentShake}.lab-tv-patient-timer{font-family:var(--font-stamp);color:var(--ink);margin:.5rem 0;font-size:clamp(2.5rem,6vw,4.5rem);line-height:1}.lab-tv-patient.urgent .lab-tv-patient-timer{color:var(--danger)}.lab-tv-empty{text-align:center;color:var(--ink-dim);padding:2rem;font-size:1.25rem}.lab-tv-event{text-align:center;color:var(--void-accent);border:1px dashed var(--line);border-radius:var(--radius);margin:0;padding:.5rem 1rem;font-size:clamp(1rem,2vw,1.35rem);font-weight:600}.lab-tv-team-row{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.75rem;display:grid}.lab-tv-team-card{text-align:center;border:2px solid var(--station-color,var(--line));border-radius:var(--radius);background:color-mix(in srgb, var(--station-color,var(--blight)) 10%, var(--panel));padding:clamp(.75rem,1.5vw,1.1rem)}.lab-tv-team-card.offline{opacity:.4}.lab-tv-team-station{letter-spacing:.06em;color:var(--station-color);margin-bottom:.35rem;font-size:clamp(.85rem,1.5vw,1rem);font-weight:700;display:block}.lab-tv-team-name{margin-bottom:.5rem;font-size:clamp(1.1rem,2vw,1.5rem);display:block}.lab-tv-team-hand{justify-content:center;min-height:2rem;display:flex}.lab-tv-team-stat{color:var(--ink-dim);margin-top:.35rem;font-size:.85rem;display:block}@media (width<=720px){.lab-tv-lobby-main{grid-template-columns:1fr}.lab-tv-steps{columns:1}.lab-tv-game-head{text-align:center;grid-template-columns:1fr}.lab-tv-head-stats{justify-content:center}}@media (width>=1200px){.lab-tv-team-row{grid-template-columns:repeat(3,minmax(0,1fr))}}.lobby-options{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.75rem;margin-top:1rem;padding:.85rem;display:flex}.lobby-option-group strong{color:var(--ink-dim);margin-bottom:.35rem;font-size:.85rem;display:block}.option-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.btn.chip{padding:.35rem .75rem;font-size:.85rem}.btn.chip.active{border-color:var(--blight);background:#9d7cff33}.lobby-toggle{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.room-record{color:var(--ink-dim);font-size:.85rem}.room-record strong{margin-bottom:.2rem;display:block}.streak-chip,.race-chip{font-family:var(--font-stamp);color:var(--hazard);letter-spacing:.05em}.event-banner,.lab-tv-event-banner{text-align:center;color:var(--hazard);border:2px solid var(--hazard);border-radius:var(--radius);margin:.25rem 0;padding:.5rem;font-weight:700}.patient-kind-badge{letter-spacing:.08em;text-transform:uppercase;color:#ffc832;background:#ffc83233;border-radius:999px;margin-bottom:.35rem;padding:.15rem .45rem;font-size:.7rem;font-weight:700;display:inline-block}.patient-card.kind-vip .patient-kind-badge,.lab-tv-patient.kind-vip .patient-kind-badge{color:gold;background:#ffd70040}.patient-card.kind-mutant .patient-kind-badge,.lab-tv-patient.kind-mutant .patient-kind-badge{color:#c084fc;background:#b450ff40}.custom-yell{flex-direction:column;gap:.25rem;margin-top:.5rem;font-size:.85rem;display:flex}.custom-yell input{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:.45rem .6rem}.finale-series,.finale-race,.finale-streak,.finale-record{margin:.35rem 0;font-size:.95rem}.lab-tv-stat.streak strong{color:var(--hazard)}.lab-tv-stat.race strong{font-size:clamp(1rem,2vw,1.35rem)}.lab-tv-team-card.station-down{opacity:.55;filter:grayscale(.6)}.patient-special-tip,.special-patient-banner{color:var(--hazard);margin:.35rem 0 0;font-size:.82rem;font-weight:600;line-height:1.35}.special-patient-banner{text-align:center;border:1px dashed var(--hazard);border-radius:var(--radius);background:#ff785014;padding:.5rem .75rem}.mutant-next{border-top:1px dashed var(--line);margin-top:.45rem;padding-top:.35rem}.mutant-next-label{color:var(--ink-dim);margin-bottom:.25rem;font-size:.75rem;display:block}.finale-series-next{color:var(--void-accent);margin-top:.25rem;font-weight:600;display:block}.home-goal{text-align:center;max-width:28rem;margin:.5rem auto 0}.public-lobbies{border:1px solid var(--line);border-radius:var(--radius);max-width:28rem;margin:1.25rem auto 0;padding:1rem}.public-lobbies h2{margin:0 0 .35rem;font-size:1.05rem}.public-lobby-list{flex-direction:column;gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.public-lobby-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.public-lobby-meta strong{letter-spacing:.12em;margin-right:.35rem}.public-lobby-meta span{color:var(--ink-dim);font-size:.85rem}.spectator-panel{border:2px dashed var(--blight);border-radius:var(--radius);background:#9d7cff0f;padding:1rem}.spectator-panel h3{margin:0 0 .5rem}.sound-gate{text-align:center;border:1px solid var(--line);border-radius:var(--radius);background:#0003;margin-bottom:.75rem;padding:.75rem}.race-live-hint{text-align:center;color:var(--void-accent);font-weight:600}.create-public{justify-content:flex-start;margin-top:.5rem}
