.tut{display:flex;flex-direction:column;gap:10px;width:100%;box-sizing:border-box}.tut-stage{position:relative;display:flex;align-items:center;aspect-ratio:16 / 7;max-height:30vh;overflow:hidden;border:1px solid var(--panel-border);border-radius:14px;background:#070b1499;touch-action:pan-y}.tut-track{display:flex;width:100%;height:100%;transition:transform .38s cubic-bezier(.22,1,.36,1)}.tut-scene{position:relative;flex:0 0 100%;height:100%}.tut-scene-art{position:absolute;inset:0}.tut-safe{position:absolute;inset:6% 13%;container-type:size}.tut-safe{--node: 36cqh}.tut-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid var(--panel-border);background:#070b14cc;color:var(--cyan);font:700 26px var(--font-display);line-height:1;cursor:pointer;pointer-events:auto}.tut-arrow:first-of-type{left:8px}.tut-arrow:last-of-type{right:8px}.tut-caption{display:flex;align-items:baseline;gap:12px;min-height:2.6em}.tut-num{flex:0 0 auto;font:900 22px var(--font-display);color:var(--cyan)}.tut-text{font:600 17px var(--font-mono);line-height:1.35;color:var(--text)}.tut-text.warn{color:var(--gold)}.tut-foot{display:flex;align-items:center;gap:14px}.tut-dots{display:flex;gap:8px}.tut-dot{width:10px;height:10px;border-radius:50%;background:#e6edf733;cursor:pointer;pointer-events:auto;transition:background .2s,transform .2s}.tut-dot.seen{background:#6ee7ff80}.tut-dot.on{background:var(--cyan);transform:scale(1.3)}.tut-progress{flex:1 1 auto;height:4px;border-radius:2px;background:#6ee7ff24;overflow:hidden}.tut-progress .fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--gold));transition:width .38s ease}.tut-grid{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(110,231,255,.07) 0 1px,transparent 1px),linear-gradient(0deg,rgba(110,231,255,.07) 0 1px,transparent 1px);background-size:8.33% 14.3%}.tut-wires{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:visible}.tut-wires path{fill:none;stroke:var(--cyan);stroke-width:.7;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}.playing .tut-wires .w1{animation:tut-trace 5s ease-out infinite}.playing .tut-wires .w2{animation:tut-trace 5s ease-out infinite;animation-delay:.25s}.playing .load .tut-wires .w2,.playing.load .tut-wires .w2{animation-name:tut-trace-late;animation-delay:0s}@keyframes tut-trace{0%,10%{stroke-dashoffset:1}30%,92%{stroke-dashoffset:0}98%,to{stroke-dashoffset:1}}@keyframes tut-trace-late{0%,68%{stroke-dashoffset:1}78%,96%{stroke-dashoffset:0}99%,to{stroke-dashoffset:1}}.tut-node{position:absolute;z-index:1;height:var(--node);width:var(--node);transform:translate(-50%,-50%);border-radius:10px;border:2px solid var(--cyan);background:#0d1626f2;display:grid;place-items:center;box-shadow:0 0 18px #6ee7ff40}.tut-node img{width:58%;height:58%;object-fit:contain}.tut-name{position:absolute;top:116%;left:50%;transform:translate(-50%);font:600 11px var(--font-mono);letter-spacing:.5px;color:var(--text-dim);white-space:nowrap}.tut-node[data-kind=ec2],.tut-node[data-kind=fargate]{border-color:#ed7100;box-shadow:0 0 18px #ed71004d}.tut-node[data-kind=s3]{border-color:#7aa116;box-shadow:0 0 18px #7aa1164d}.tut-node[data-kind=shield]{border-color:#dd344c;box-shadow:0 0 18px #dd344c59}.tut-node[data-kind=elasticache]{border-color:#8c4fff}.tut-net{position:absolute;z-index:1;height:calc(var(--node) * .9);width:calc(var(--node) * .9);left:10%;top:50%;transform:translate(-50%,-50%);border-radius:50%;border:2px solid var(--cyan);background:#0d1626f2;display:grid;place-items:center;box-shadow:0 0 18px #6ee7ff4d}.tut-net:after{content:"";width:26%;aspect-ratio:1;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 5px #6ee7ff40,0 0 14px #6ee7ffe6}.tut-group-label{position:absolute;top:calc(70% - var(--node) / 2 - 18px);transform:translate(-50%);color:var(--text-dim, var(--dim));font:600 11px var(--font-mono, var(--mono, monospace));white-space:nowrap}.tut-group-label.slot-a{left:calc(var(--node) * .72)}.tut-group-label.slot-b,.drag .tut-node.slot-b{left:max(calc(var(--node) * 2.02),calc(var(--node) * .72 + 60px))}.tut-node.slot-a{left:calc(var(--node) * .72);top:70%}.tut-node.slot-b{left:calc(var(--node) * 2.02);top:70%}.tut-node.ghosted{opacity:.5}.playing .tut-node.slot-a{animation:tut-vacate 3s ease-in-out infinite}@keyframes tut-vacate{0%,14%{opacity:.5}22%,86%{opacity:.12}96%,to{opacity:.5}}.tut-cell{position:absolute;left:72%;top:26%;height:var(--node);width:var(--node);transform:translate(-50%,-50%);border:1px dashed rgba(110,231,255,.45);border-radius:10px}.tut-cell-ring{position:absolute;inset:-6px;border-radius:14px;border:2px solid var(--good);opacity:0}.tut-node.flying{left:calc(var(--node) * .72);top:70%}.tut-node.flying .tut-name{opacity:0}.playing .tut-node.flying{animation:tut-fly 3s ease-in-out infinite}.playing .tut-node.flying .tut-name{animation:tut-label-in 3s ease-out infinite}.playing .tut-cell-ring{animation:tut-ring 3s ease-out infinite}@keyframes tut-fly{0%,8%{left:calc(var(--node) * .72);top:70%;opacity:0}16%{left:calc(var(--node) * .72);top:70%;opacity:1}62%,to{left:72%;top:26%;opacity:1}}@keyframes tut-label-in{0%,58%{opacity:0}70%,to{opacity:1}}@keyframes tut-ring{0%,58%{opacity:0;transform:scale(.85)}68%{opacity:1;transform:scale(1)}88%,to{opacity:0;transform:scale(1.3)}}.tut-node.at-right{left:72%;top:50%}.tut-packet{position:absolute;z-index:2;width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 10px var(--good);transform:translate(-50%,-50%);opacity:0}.wire .tut-packet,.tut-scene-art.wire .tut-packet{left:10%;top:50%}.playing .tut-scene-art.wire .tut-packet,.playing .wire .tut-packet{animation:tut-travel 3.4s linear infinite;animation-delay:calc(1.5s + var(--i) * .32s)}@keyframes tut-travel{0%{left:10%;opacity:0}8%{opacity:1}52%{left:72%;opacity:1}58%,to{left:72%;opacity:0}}.tut-pop{position:absolute;left:78%;top:22%;font:900 18px var(--font-display);color:var(--good);opacity:0}.playing .tut-pop{animation:tut-popup 3.4s ease-out infinite;animation-delay:2.1s}@keyframes tut-popup{0%{opacity:0;transform:translateY(0)}18%{opacity:1}50%,to{opacity:0;transform:translateY(-22px)}}.tut-drag{position:absolute;z-index:3;left:10%;top:50%;width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--cyan) 65%,rgba(110,231,255,.2));box-shadow:0 0 16px #6ee7ffd9;transform:translate(-50%,-50%);opacity:0}.playing .tut-drag{animation:tut-drag 3.4s ease-in-out infinite}@keyframes tut-drag{0%,10%{left:10%;opacity:0;transform:translate(-50%,-50%) scale(1.15)}14%{left:10%;opacity:1;transform:translate(-50%,-50%) scale(.85)}40%{left:72%;opacity:1;transform:translate(-50%,-50%) scale(.85)}48%{left:72%;opacity:1;transform:translate(-50%,-50%) scale(1.15)}56%,to{left:72%;opacity:0;transform:translate(-50%,-50%) scale(1.15)}}.tut-node.hot{left:72%;top:24%}.tut-node.relief{left:72%;top:72%;opacity:0}.tut-bar{position:absolute;left:10%;right:10%;bottom:5px;height:4px;border-radius:2px;background:#0000008c;overflow:hidden}.tut-bar:after{content:"";position:absolute;inset:0 100% 0 0;background:var(--good)}.playing .tut-node.hot{animation:tut-strain 5s ease-in-out infinite}.playing .tut-node.hot .tut-bar:after{animation:tut-fill 5s ease-in-out infinite}.playing .tut-node.relief{animation:tut-arrive 5s ease-out infinite}.playing .tut-node.relief .tut-bar:after{animation:tut-share 5s ease-out infinite}@keyframes tut-strain{0%,12%{border-color:#ed7100;box-shadow:0 0 18px #ed71004d}30%{border-color:var(--amber);box-shadow:0 0 26px #ffb02099}46%{border-color:var(--bad);box-shadow:0 0 34px #ff2d55d9}72%,to{border-color:var(--good);box-shadow:0 0 20px #4ade8073}}@keyframes tut-fill{0%,12%{inset:0 65% 0 0;background:var(--good)}46%{inset:0;background:var(--bad)}72%,to{inset:0 55% 0 0;background:var(--good)}}@keyframes tut-arrive{0%,50%{opacity:0;transform:translate(-50%,-50%) scale(.7)}60%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}68%,to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes tut-share{0%,58%{inset:0 100% 0 0}76%,to{inset:0 55% 0 0;background:var(--good)}}.tut-packet.to-up,.tut-packet.to-down{left:10%;top:50%}.playing .tut-packet.to-up{animation:tut-run-up 2.5s linear infinite;animation-delay:calc(var(--i) * .41s)}.playing .tut-packet.to-down{animation:tut-run-down 5s linear infinite;animation-delay:calc(var(--i) * .1s)}@keyframes tut-run-up{0%{left:10%;top:50%;opacity:0}8%{opacity:1}38%{left:41%;top:38.5%;opacity:1}62%{left:72%;top:24%;opacity:1}70%,to{left:72%;top:24%;opacity:0}}@keyframes tut-run-down{0%,78%{left:10%;top:50%;opacity:0}79%{left:10%;top:50%;opacity:1}83%{left:41%;top:61.5%;opacity:1}87%{left:72%;top:72%;opacity:1}88%,to{left:72%;top:72%;opacity:0}}.tut-node.behind{left:78%;top:50%}.tut-node.guard{left:44%;top:50%;opacity:0}.playing .tut-node.guard{animation:tut-guard 4.4s ease-out infinite}@keyframes tut-guard{0%,34%{opacity:0;transform:translate(-50%,-50%) scale(.6)}44%{opacity:1;transform:translate(-50%,-50%) scale(1.14)}52%,to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.tut-attack{position:absolute;z-index:2;left:10%;top:50%;width:8px;height:8px;border-radius:50%;background:var(--bad);box-shadow:0 0 12px var(--bad);transform:translate(-50%,-50%);opacity:0}.playing .tut-attack{animation:tut-attack-through 4.4s linear infinite;animation-delay:calc(var(--i) * .17s)}.playing .tut-attack.blocked{animation-name:tut-attack-blocked;animation-delay:calc(1.5s + (var(--i) - 4) * .2s)}@keyframes tut-attack-through{0%{left:10%;opacity:0}6%{opacity:1}26%{left:78%;opacity:1}32%,to{left:78%;opacity:0}}@keyframes tut-attack-blocked{0%{left:10%;opacity:0;transform:translate(-50%,-50%) scale(1)}10%{opacity:1}30%{left:44%;opacity:1;transform:translate(-50%,-50%) scale(1)}38%{left:44%;opacity:0;transform:translate(-50%,-50%) scale(2.4)}to{left:44%;opacity:0}}.tut-node.dying{left:50%;top:44%}.playing .tut-node.dying{animation:tut-die 4s ease-in-out infinite}.playing .tut-node.dying img{animation:tut-dim 4s ease-in-out infinite}@keyframes tut-die{0%,8%{border-color:#ed7100;box-shadow:0 0 18px #ed71004d}20%,55%{border-color:#555e6e;box-shadow:none}70%,to{border-color:var(--good);box-shadow:0 0 24px #4ade808c}}@keyframes tut-dim{0%,8%{opacity:1;filter:none}20%,55%{opacity:.28;filter:grayscale(1)}70%,to{opacity:1;filter:none}}.tut-tap{position:absolute;left:50%;top:44%;height:var(--node);width:var(--node);transform:translate(-50%,-50%);border-radius:10px;border:2px solid var(--cyan);opacity:0}.playing .tut-tap{animation:tut-tap 4s ease-out infinite}@keyframes tut-tap{0%,48%{opacity:0;transform:translate(-50%,-50%) scale(.9)}58%{opacity:.9;transform:translate(-50%,-50%) scale(1)}74%,to{opacity:0;transform:translate(-50%,-50%) scale(1.55)}}.tut-tapword{position:absolute;left:50%;bottom:0;transform:translate(-50%);white-space:nowrap;font:700 11px var(--font-mono);letter-spacing:1px;color:#38bdf8;border:1px solid rgba(56,189,248,.5);border-radius:5px;padding:2px 7px;background:#070b14d9;opacity:0}.playing .tut-tapword{animation:tut-tapword 4s ease-out infinite}@keyframes tut-tapword{0%,16%{opacity:0}24%,52%{opacity:1}60%,to{opacity:0}}.tut-finger{position:absolute;left:50%;top:8%;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--cyan) 65%,rgba(110,231,255,.2));box-shadow:0 0 16px #6ee7ffcc;transform:translate(-50%,-50%);opacity:0}.playing .tut-finger{animation:tut-poke 4s ease-out infinite}@keyframes tut-poke{0%,36%{opacity:0;top:4%;transform:translate(-50%,-50%) scale(1)}46%{opacity:1;top:20%;transform:translate(-50%,-50%) scale(1)}56%{opacity:1;top:32%;transform:translate(-50%,-50%) scale(.72)}66%{opacity:1;top:24%;transform:translate(-50%,-50%) scale(1)}80%,to{opacity:0;top:16%;transform:translate(-50%,-50%) scale(1)}}@media(max-height:559px){.tut-stage{aspect-ratio:16 / 5;max-height:42vh}.tut-arrow{width:36px;height:36px;font-size:20px}.tut-text{font-size:15px}.tut-caption{min-height:2.2em}.tut-name{font-size:9px}}@media(max-height:559px)and (max-width:639px){.guide-root .guide-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:96vh;height:96dvh;gap:6px;padding:10px 16px 8px;overflow:hidden}.guide-root .guide-brief{gap:4px}.guide-root .guide-goal{font-size:14px}.guide-root .tut{min-height:0;overflow-y:auto;overscroll-behavior:contain;gap:6px}.guide-root .tut-stage{flex-shrink:0;height:28vh;height:28dvh}.guide-root .tut-arrow{width:44px;height:44px}.guide-root .tut-caption{flex-shrink:0}.guide-root .guide-start-row{position:static;justify-content:center;margin:0;padding:6px 0 0;box-shadow:none}.guide-root .guide-start-row .btn-primary{min-height:44px;padding:8px 14px;font-size:14px;letter-spacing:1px;margin:0}}@media(max-height:559px){.lobby-card:has(.lobby-countdown:not(.hidden)){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:safe center;justify-items:center;gap:4px 14px;padding:10px 16px 8px}.lobby-card:has(.lobby-countdown:not(.hidden))>.guide-title{grid-area:1 / 1 / 2 / 3;max-width:100%;text-align:center}.lobby-card:has(.lobby-countdown:not(.hidden))>.guide-goal{grid-area:2 / 1;font-size:12px;align-self:end}.lobby-card:has(.lobby-countdown:not(.hidden))>.lobby-brief{grid-area:3 / 1;gap:4px;min-width:0}.lobby-card:has(.lobby-countdown:not(.hidden))>.tut{grid-area:2 / 2 / 5 / 3;min-width:0;margin:0;align-self:center}.lobby-card:has(.lobby-countdown:not(.hidden)) .lobby-status{font-size:12px;margin-top:0}.lobby-card:has(.lobby-countdown:not(.hidden)) .lobby-roster{width:100%;margin-top:0}.lobby-card:has(.lobby-countdown:not(.hidden)) .lobby-roster-label{font-size:11px;letter-spacing:1px}.lobby-card:has(.lobby-countdown:not(.hidden)) .lobby-player{font-size:12px;padding:5px 8px;gap:6px}.lobby-card:has(.lobby-countdown:not(.hidden)) .lobby-player .state{font-size:10px}.lobby-card:has(.lobby-countdown:not(.hidden))>.lobby-countdown{grid-area:4 / 1;margin:0;font-size:clamp(24px,8.4vh,46px);line-height:1}.lobby-card:has(.lobby-countdown:not(.hidden))>.guide-start-row{grid-area:5 / 1 / 6 / 3;position:static;justify-content:center;margin:0;padding:4px 0 0;background:none;border:0;box-shadow:none}.lobby-card:has(.lobby-countdown:not(.hidden)) .btn-ghost{min-height:44px;padding:8px 20px;font-size:15px}.lobby-card:has(.lobby-countdown:not(.hidden)) .tut-arrow{width:44px;height:44px}}@media(min-height:851px)and (max-height:1000px){.lobby-card:has(.lobby-ready.hidden)>.lobby-countdown{font-size:52px}}@media(max-height:559px){.results-panel:has(>.btn-primary:not(.hidden)+.btn-primary:not(.hidden)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:1fr auto auto;align-content:safe center;gap:8px 14px;padding:10px 14px}.results-panel:has(>.btn-primary:not(.hidden)+.btn-primary:not(.hidden))>.results-brief{grid-area:1 / 1 / 4 / 2;align-self:center}.results-panel:has(>.btn-primary:not(.hidden)+.btn-primary:not(.hidden))>.match-verdict{grid-area:1 / 2;align-self:end;font-size:16px;letter-spacing:1px;line-height:1.35;margin:0}.results-panel:has(>.btn-primary:not(.hidden)+.btn-primary:not(.hidden))>.btn-primary{position:static;width:100%;min-width:0;min-height:44px;box-sizing:border-box;padding:8px 10px;font-size:15px;letter-spacing:1px;box-shadow:none}.results-panel:has(>.btn-primary:not(.hidden)+.btn-primary:not(.hidden))>.btn-primary:nth-last-child(2){grid-area:2 / 2}.results-panel:has(>.btn-primary:not(.hidden)+.btn-primary:not(.hidden))>.btn-primary:last-child{grid-area:3 / 2}}@media(max-height:559px)and (min-width:640px){.results-panel:has(.entry-wrap:not(.hidden))>.results-brief{padding-bottom:56px}.results-panel:has(.entry-wrap:not(.hidden))>.btn-primary:last-child{grid-area:1 / 1;align-self:end;position:sticky;bottom:0}}@media(max-height:559px)and (max-width:639px),(min-height:560px)and (max-height:850px){.results-panel:has(.entry-wrap:not(.hidden)){display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:safe center}.results-panel:has(.entry-wrap:not(.hidden))>.results-brief{grid-area:1 / 1 / 2 / 3;gap:4px}.results-panel:has(.entry-wrap:not(.hidden)) .results-title,.results-panel:has(.entry-wrap:not(.hidden)) .results-scenario{align-self:flex-start;max-width:calc(100% - 164px);text-align:left}.results-panel:has(.entry-wrap:not(.hidden))>.entry-wrap{grid-area:2 / 1 / 3 / 3}.results-panel:has(.entry-wrap:not(.hidden))>.match-verdict{display:none}.results-panel:has(.entry-wrap:not(.hidden))>.btn-primary:last-child{grid-area:1 / 2;align-self:start;position:static;min-height:44px;padding:8px 12px;font-size:15px;letter-spacing:1px;box-shadow:none}.results-panel:has(.entry-wrap:not(.hidden)) .entry-wrap>.btn-primary{position:sticky;bottom:0;z-index:2;min-height:44px;padding:8px 20px;font-size:16px;box-shadow:0 0 0 10px #0a101c}}@media(max-height:559px)and (max-width:639px){.results-panel:has(.entry-wrap.hidden)>.btn-primary{box-shadow:none}}@media(max-height:559px){.guide-card,.join-card,.lobby-card,.lobby-name,.results-panel{align-content:safe center}.entry-name,.lobby-entry .entry-name{box-sizing:border-box;max-width:100%;min-height:44px;overflow-wrap:anywhere;text-align:center}}@font-face{font-family:Orbitron;src:url(/fonts/Orbitron.woff2) format("woff2");font-weight:400 900;font-display:block}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-400.woff2) format("woff2");font-weight:400;font-display:block}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-600.woff2) format("woff2");font-weight:600;font-display:block}:root{--bg-deep: #070b14;--text: #e6edf7;--text-dim: #8a97ad;--cyan: #6ee7ff;--good: #4ade80;--bad: #ff2d55;--gold: #ffd166;--amber: #ffb020;--panel: rgba(10, 16, 28, .82);--panel-border: rgba(110, 231, 255, .18);--font-display: "Orbitron", sans-serif;--font-mono: "IBM Plex Mono", monospace;--service-dock-height: 156px}@media(max-width:1470px)and (min-height:560px){:root{--service-dock-height: 136px}}html,body{margin:0;padding:0;width:100%;height:100%;height:100dvh;overflow:hidden;background:var(--bg-deep);color:var(--text);font-family:var(--font-mono);user-select:none;-webkit-user-select:none;cursor:default;touch-action:manipulation}:where(body *){touch-action:manipulation}#app{position:fixed;inset:0;height:100%;height:100dvh}#canvas-host{position:absolute;inset:0;touch-action:none}#canvas-host canvas{display:block}#hud,#hints,#dock,#screen{position:absolute;inset:0;pointer-events:none}#scrim{position:absolute;inset:0;pointer-events:none;z-index:50;background:repeating-linear-gradient(0deg,rgba(0,0,0,.07) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 55%,rgba(2,4,10,.55) 100%)}.boot-error{position:fixed;inset:0;display:grid;place-items:center;font:600 24px var(--font-mono);color:var(--text)}.hud-bar{position:absolute;top:0;left:0;right:0;height:88px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;padding:10px 22px 0;box-sizing:border-box;gap:16px}.hud-cluster{display:flex;align-items:center;gap:18px;min-width:0}.hud-cluster.right{justify-content:flex-end}.hud-score{font:700 38px var(--font-display);color:var(--gold);text-shadow:0 0 18px rgba(255,209,102,.45);letter-spacing:1px;min-width:0}.hud-combo{font:600 18px var(--font-mono);color:var(--gold);background:#ffd1661a;border:1px solid rgba(255,209,102,.4);border-radius:8px;padding:6px 12px;opacity:0;transform:scale(.8);transition:opacity .15s,transform .15s}.hud-combo.show{opacity:1;transform:scale(1)}.hud-combo.bump{animation:combo-bump .3s ease}@keyframes combo-bump{40%{transform:scale(1.35)}}.hud-center{display:flex;flex-direction:column;align-items:center;gap:4px}.hud-timer{font:700 58px var(--font-display);letter-spacing:3px;color:var(--text);line-height:1;text-shadow:0 0 24px rgba(110,231,255,.25)}.hud-timer.warn{color:var(--amber)}.hud-timer.danger{color:var(--bad);animation:timer-pulse .5s infinite}@keyframes timer-pulse{50%{text-shadow:0 0 30px rgba(255,45,85,.9);transform:scale(1.04)}}.hud-phasebar{width:300px;height:6px;border-radius:3px;background:#6ee7ff1f;position:relative;overflow:hidden}.hud-phasebar .fill{position:absolute;inset:0 auto 0 0;width:0%;background:linear-gradient(90deg,var(--cyan),var(--gold));border-radius:3px}.hud-phasebar .seg{position:absolute;top:-2px;bottom:-2px;width:2px;background:#e6edf759}.hud-bar--duel{height:116px}.duel-panel{display:flex;flex-direction:column;gap:1px;border-left:3px solid var(--side-color, var(--cyan));padding-left:10px}.hud-cluster.right .duel-panel{border-left:none;border-right:3px solid var(--side-color, var(--cyan));padding-left:0;padding-right:10px;align-items:flex-end}.duel-player{font:700 16px var(--font-display);letter-spacing:2px;color:var(--side-color, var(--cyan))}.duel-score{font:700 42px var(--font-display);color:var(--text);line-height:1}.duel-sub{display:flex;gap:18px;margin-top:4px}.duel-stat{display:flex;flex-direction:column;gap:1px}.duel-stat .value{font:700 22px var(--font-display);color:var(--text);line-height:1.1}.duel-stat .cap{font:600 11px var(--font-mono);letter-spacing:1.5px;color:var(--text-dim)}.duel-sub .duel-grade,.duel-sub .duel-credits{color:var(--gold)}.hud-cluster.right .duel-stat{align-items:flex-end}.duel-leadbar{width:300px;height:5px;margin-top:4px;border-radius:3px;background:#ff6ec759;overflow:hidden}.duel-leadbar .lead-fill{height:100%;width:50%;background:var(--cyan);border-radius:3px;transition:width .3s}.hud-phasebar .evt{position:absolute;top:-4px;bottom:-4px;width:3px;border-radius:1px}.hud-phasebar .evt-ddos{background:var(--bad);box-shadow:0 0 6px #ff2d55cc}.hud-phasebar .evt-spike{background:var(--gold);box-shadow:0 0 6px #ffd166cc}.hud-phasebar .evt-maintenance{background:var(--cyan);box-shadow:0 0 6px #6ee7ffcc}.hud-phasebar .evt-az-outage{background:var(--gold);box-shadow:0 0 6px #ffd166cc}.hud-phasebar .evt-region-outage{background:var(--bad);box-shadow:0 0 6px #ff2d55cc}.hud-phasebar .evt-event{background:var(--cyan)}.hud-phasebar .evt-intake{background:var(--good)}.hud-phasebar .evt-pause{background:var(--gold)}.hud-stat{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font:600 16px var(--font-mono);color:var(--text-dim)}.hud-stat .value{font:700 26px var(--font-display);color:var(--text)}.hud-stat .value.good{color:var(--good);text-shadow:0 0 12px rgba(74,222,128,.4)}.hud-stat .value.warn{color:var(--amber)}.hud-stat .value.bad{color:var(--bad)}.hud-reset{pointer-events:auto;position:relative;overflow:hidden;align-self:center;margin-left:10px;font:700 15px var(--font-mono);letter-spacing:2px;color:var(--text-dim);background:#ff2d5514;border:1px solid rgba(255,45,85,.45);border-radius:10px;padding:12px 16px;min-height:48px;cursor:pointer;touch-action:none}.hud-reset .label{position:relative}.hud-reset .fill{position:absolute;inset:0 auto 0 0;width:0%;background:#ff2d5573}.hud-reset.holding{color:var(--text);border-color:var(--bad)}.hud-reset.holding .fill{animation:reset-fill 1.5s linear forwards}@keyframes reset-fill{to{width:100%}}.phase-banner{position:absolute;top:120px;left:50%;transform:translate(-50%) scaleY(0);font:700 34px var(--font-display);letter-spacing:6px;padding:14px 46px;color:var(--text);background:var(--panel);border:1px solid var(--panel-border);border-left:6px solid var(--banner-accent, var(--cyan));border-right:6px solid var(--banner-accent, var(--cyan));border-radius:10px;backdrop-filter:blur(8px);text-shadow:0 0 18px var(--banner-accent, var(--cyan));animation:banner-in 2.6s ease forwards;white-space:nowrap}@keyframes banner-in{0%{transform:translate(-50%) scaleY(0);opacity:0}8%{transform:translate(-50%) scaleY(1);opacity:1}85%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-12px) scaleY(1)}}.hint-pill{position:absolute;transform:translate(-50%,-100%);font:600 18px var(--font-mono);letter-spacing:1px;color:var(--cyan);background:var(--panel);border:1px solid rgba(110,231,255,.45);border-radius:999px;padding:12px 22px;white-space:nowrap;animation:hint-pulse 1.6s ease-in-out infinite;box-shadow:0 0 24px #6ee7ff2e;backdrop-filter:blur(8px)}.hint-pill.center{left:50%;top:170px;transform:translate(-50%)}.hint-pill .chev{position:absolute;left:50%;bottom:-26px;transform:translate(-50%);width:0;height:0;border:10px solid transparent;border-top-color:#6ee7ffcc;animation:chev-bob .8s ease-in-out infinite}@keyframes hint-pulse{50%{box-shadow:0 0 36px #6ee7ff61}}@keyframes chev-bob{50%{transform:translate(-50%) translateY(6px)}}.dock-bar{position:absolute;bottom:0;left:50%;transform:translate(-50%);display:flex;gap:10px;max-width:100vw;box-sizing:border-box;padding:12px 18px 14px;background:var(--panel);border:1px solid var(--panel-border);border-bottom:none;border-radius:16px 16px 0 0;backdrop-filter:blur(10px);pointer-events:auto}.dock-tile{width:120px;min-height:96px;border-radius:12px;background:#121a2ce6;border:1px solid rgba(110,231,255,.12);border-left:3px solid var(--cat, var(--cyan));display:flex;flex-direction:column;align-items:center;padding:8px 4px 6px;box-sizing:border-box;gap:2px;cursor:grab;touch-action:none;transition:transform .12s,box-shadow .12s,opacity .2s;position:relative}.dock-tile:hover,.dock-tile:active{transform:translateY(-6px);box-shadow:0 6px 22px #00000080,0 0 16px var(--cat, var(--cyan))}.dock-tile img{width:38px;height:38px;pointer-events:none}.dock-tile .name{font:600 16px var(--font-mono);color:var(--text);letter-spacing:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-tile .cost{font:600 16px var(--font-mono);color:var(--text-dim)}.dock-tile.broke{opacity:.35;filter:grayscale(.9);cursor:not-allowed}.dock-tile .tip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);width:220px;background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;padding:10px 12px;font:400 16px var(--font-mono);color:var(--text);opacity:0;pointer-events:none;transition:opacity .15s;z-index:5}.dock-tile .tip b{display:block;font-weight:600;color:var(--cyan);margin-bottom:4px;font-size:16px}.dock-tile:hover .tip{opacity:1}.dock-credits{display:flex;flex-direction:column;justify-content:center;align-items:center;font:600 16px var(--font-mono);color:var(--text-dim);padding:0 14px 0 6px}.dock-credits .value{font:700 30px var(--font-display);color:var(--gold);text-shadow:0 0 14px rgba(255,209,102,.4)}.screen-root{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:auto;background:radial-gradient(ellipse at center,#070b1473,#070b14e0);z-index:20}.attract-layout{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px}.attract-title{font:900 clamp(64px,10vw,150px) var(--font-display);letter-spacing:.14em;line-height:.92;text-align:center;background:linear-gradient(180deg,#ffffff 0%,var(--cyan) 55%,#2a7fa8 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 34px rgba(110,231,255,.35));animation:title-breathe 3.2s ease-in-out infinite;margin:0}.attract-title-word{display:block}@keyframes title-breathe{50%{filter:drop-shadow(0 0 60px rgba(110,231,255,.6))}}.attract-sub{font:600 clamp(18px,2vw,26px) var(--font-mono);letter-spacing:.45em;color:var(--text-dim);text-transform:uppercase}.attract-scenario{margin-top:12px;font:700 clamp(15px,1.5vw,20px) var(--font-display);letter-spacing:3px;color:var(--gold);text-shadow:0 0 18px rgba(255,209,102,.5);text-transform:uppercase}.attract-start{margin-top:30px;font:700 30px var(--font-display);letter-spacing:6px;color:var(--bg-deep);background:var(--cyan);border:none;border-radius:14px;padding:22px 58px;min-height:64px;cursor:pointer;animation:start-pulse 1.4s ease-in-out infinite;box-shadow:0 0 40px #6ee7ff80}@keyframes start-pulse{50%{box-shadow:0 0 70px #6ee7ffe6;transform:scale(1.045)}}.attract-start.armed{background:var(--gold);animation:armed-pulse .45s ease-in-out infinite;box-shadow:0 0 50px #ffd166b3}@keyframes armed-pulse{50%{box-shadow:0 0 85px #ffd166;transform:scale(1.06)}}.attract-board{position:absolute;right:36px;top:50%;transform:translateY(-50%);width:330px;background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:18px 20px;backdrop-filter:blur(10px)}.attract-board h3{margin:0 0 12px;font:700 20px var(--font-display);letter-spacing:3px;color:var(--cyan);text-align:center}.board-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto 30px;gap:10px;align-items:baseline;font:600 17px var(--font-mono);padding:5px 2px;color:var(--text)}.board-row>:nth-child(2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-row .pname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-row .rank{color:var(--text-dim)}.board-row .score{text-align:right;font-family:var(--font-display)}.board-row .grade{text-align:center;color:var(--text-dim)}.board-row.gold .rank,.board-row.gold .score{color:var(--gold)}.board-row.silver .rank,.board-row.silver .score{color:#cfd8e6}.board-row.bronze .rank,.board-row.bronze .score{color:#e0a36a}.board-row.is-new{background:#6ee7ff1f;border-radius:8px;animation:hint-pulse 1.2s infinite}.board-empty{font:400 16px var(--font-mono);color:var(--text-dim);text-align:center;padding:16px 0}.results-panel{width:min(720px,92vw);max-height:94vh;max-height:94dvh;overflow-y:auto;background:var(--panel);border:1px solid var(--panel-border);border-radius:20px;padding:12px 40px;backdrop-filter:blur(12px);display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;box-sizing:border-box}.results-title{font:700 20px var(--font-display);letter-spacing:8px;color:var(--text-dim);margin:0}.results-score{font:900 46px var(--font-display);color:var(--gold);text-shadow:0 0 36px rgba(255,209,102,.5);line-height:1}.results-stats{display:flex;gap:30px;font:600 17px var(--font-mono);color:var(--text-dim)}.results-stats b{display:block;font:700 24px var(--font-display);color:var(--text);margin-bottom:2px}.results-scenario{font:700 16px var(--font-display);letter-spacing:3px;color:var(--gold);text-transform:uppercase}.results-lesson{font:600 15px var(--font-mono);color:var(--cyan);max-width:560px;text-align:center;line-height:1.4}.results-grade{display:flex;align-items:center;gap:22px;margin-top:6px}.results-grade .letter{font:900 54px var(--font-display);line-height:1;color:var(--grade-color, var(--gold));text-shadow:0 0 42px var(--grade-color, var(--gold))}.results-grade .verdict{font:600 17px var(--font-mono);color:var(--text);max-width:380px;text-align:left;line-height:1.5}.entry-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.entry-prompt{font:600 17px var(--font-mono);letter-spacing:2px;color:var(--text-dim)}.entry-name{min-width:380px;min-height:50px;display:grid;place-items:center;overflow:hidden;font:700 28px var(--font-display);letter-spacing:4px;color:var(--text);background:#121a2cf2;border:2px solid var(--cyan);border-radius:12px;box-shadow:0 0 24px #6ee7ff40;padding:4px 18px}.entry-name.empty:after{content:"_";color:var(--cyan);animation:timer-pulse 1s infinite}.entry-status{font:600 16px var(--font-mono);color:var(--text-dim);min-height:20px}.entry-status.error{color:var(--bad)}.kb{display:flex;flex-direction:column;gap:7px;align-items:center}.kb-row{display:flex;gap:7px}.kb-key{min-width:44px;height:44px;font:600 18px var(--font-mono);color:var(--text);background:#6ee7ff12;border:1px solid var(--panel-border);border-radius:9px;cursor:pointer;padding:0 10px}.kb-key:active{background:#6ee7ff4d;transform:scale(.94)}.kb-key.wide,.kb-key.kb-wide{min-width:110px}.kb-key.danger{color:var(--bad);border-color:#ff2d5559}.btn-primary:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.results-rank{font:700 20px var(--font-display);letter-spacing:3px;color:var(--gold);text-align:center;margin-bottom:8px;min-height:24px}.btn-primary{font:700 24px var(--font-display);letter-spacing:4px;color:var(--bg-deep);background:var(--cyan);border:none;border-radius:12px;padding:16px 48px;min-height:56px;cursor:pointer;box-shadow:0 0 26px #6ee7ff66}.btn-primary:active{transform:scale(.97)}.results-board{width:100%;max-width:430px}.guide-root{z-index:30}.guide-card{width:min(640px,92vw);max-height:92vh;max-height:92dvh;overflow-y:auto;background:var(--panel);border:1px solid var(--panel-border);border-radius:20px;padding:34px 40px 38px;backdrop-filter:blur(12px);box-shadow:0 0 60px #0000008c;display:flex;flex-direction:column;align-items:center;gap:18px;box-sizing:border-box;animation:guide-in .22s ease forwards}@keyframes guide-in{0%{opacity:0;transform:scale(.94)}}.guide-title{margin:0;font:700 30px var(--font-display);letter-spacing:6px;color:var(--cyan);text-shadow:0 0 22px rgba(110,231,255,.4)}.guide-goal{font:600 21px var(--font-mono);color:var(--text);text-align:center;line-height:1.4}.guide-scenario{width:100%;padding:10px 16px;box-sizing:border-box;border:1px solid rgba(255,209,102,.35);border-left:5px solid var(--gold);border-radius:8px;background:#ffd16612;text-align:left}.guide-scenario .name{font:700 18px var(--font-display);letter-spacing:2px;color:var(--gold)}.guide-scenario .blurb{margin-top:4px;font:500 16px var(--font-mono);color:var(--text);line-height:1.4}.guide-steps{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:12px}.guide-step{display:flex;align-items:center;gap:16px;font:500 19px var(--font-mono);color:var(--text);line-height:1.35}.guide-step .num{flex:0 0 auto;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;font:700 18px var(--font-display);color:var(--bg-deep);background:var(--cyan);box-shadow:0 0 14px #6ee7ff59}.guide-step.warn{color:var(--gold);font-weight:600}.guide-step.warn .num{background:var(--gold);box-shadow:0 0 16px #ffd16699}.guide-start{margin-top:8px}.guide-start-row{display:flex;gap:16px}.btn-secondary{font:700 20px var(--font-display);letter-spacing:3px;color:var(--text-dim);background:transparent;border:1px solid var(--panel-border);border-radius:12px;padding:10px 24px;cursor:pointer}.hidden{display:none!important}.attract-event{display:flex;align-items:center;gap:14px;margin-top:14px}.attract-event-label{font:600 clamp(13px,1.1vw,16px) var(--font-mono);letter-spacing:2px;color:var(--text-dim);text-transform:uppercase}.attract-event-btn{font-size:14px;letter-spacing:2px;padding:10px 18px;min-height:44px}.attract-notice{margin-top:14px;font:700 clamp(14px,1.2vw,18px) var(--font-mono);letter-spacing:2px;color:var(--gold);text-transform:uppercase;text-align:center}.btn-ghost{background:transparent;color:var(--cyan);border:1px solid var(--panel-border);box-shadow:none}.btn-ghost:active{background:#6ee7ff24}.join-root{z-index:32}.join-card{width:min(600px,94vw);gap:14px}.join-blurb{margin:0;font:400 16px var(--font-mono);color:var(--text-dim);text-align:center}.join-slots{display:flex;gap:10px}.join-slot{width:46px;height:62px;display:flex;align-items:center;justify-content:center;font:700 30px var(--font-display);color:var(--cyan);border:2px solid var(--panel-border);border-radius:10px;background:#6ee7ff0d}.join-slot.filled{border-color:var(--cyan);box-shadow:0 0 18px #6ee7ff40}.join-status{min-height:22px;font:600 15px var(--font-mono);letter-spacing:1px;color:var(--text-dim);text-align:center}.join-status.error{color:var(--bad)}.join-actions{display:flex;gap:14px}.lobby-root{pointer-events:auto}.lobby-card{max-height:94vh;overflow-y:auto}.lobby-name{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:10px}.lobby-status{margin-top:12px;font:600 18px var(--font-mono);color:var(--cyan);letter-spacing:1px;min-height:22px;text-align:center}.lobby-roster{margin-top:10px;display:flex;flex-direction:column;gap:6px;width:min(520px,90%);align-self:center}.lobby-roster-label{font:700 16px var(--font-mono);color:var(--text-dim);letter-spacing:2px;text-align:center}.lobby-player{display:flex;justify-content:space-between;align-items:center;gap:12px;overflow:hidden;padding:8px 14px;background:#ffffff0a;border:1px solid var(--panel-border);border-radius:10px;font:600 18px var(--font-mono);color:var(--text)}.lobby-player.me{border-color:var(--cyan)}.lobby-player .name{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-player .state{flex:0 0 auto;font-size:15px;color:var(--text-dim);letter-spacing:1px}.lobby-player .state.ready{color:var(--good)}.lobby-ready.is-ready{background:var(--good)}.lobby-countdown{margin-top:12px;font:900 72px var(--font-display);color:var(--cyan);text-shadow:0 0 60px rgba(110,231,255,.7);text-align:center}.btn-ghost{background:transparent;border:1px solid var(--panel-border);color:var(--text-dim);border-radius:12px;padding:12px 22px;font:700 16px var(--font-mono);letter-spacing:2px;min-height:44px;cursor:pointer}.match-verdict{margin-top:6px;font:900 34px var(--font-display);letter-spacing:6px;color:var(--cyan)}.match-verdict.win{color:var(--gold);text-shadow:0 0 40px rgba(255,209,102,.6)}.match-verdict.lose{color:var(--text-dim)}.match-verdict.draw{color:var(--good)}.brief{display:flex;flex-direction:column;gap:10px;max-width:780px;margin:0 auto;text-align:left;box-sizing:border-box;padding:0 8px}.brief-title{font:700 26px var(--font-display);letter-spacing:4px;color:var(--text);text-align:center;margin-bottom:2px}.brief-heading{font:700 15px var(--font-display);letter-spacing:3px;color:var(--cyan)}.brief-para{margin:0;font-size:17px;line-height:1.45;color:var(--text)}.brief-tiers{display:flex;flex-direction:column;gap:4px;padding-left:14px}.brief-tier{display:grid;grid-template-columns:84px 1fr;gap:12px;align-items:baseline}.brief-tier-label{font:700 16px var(--font-display);letter-spacing:2px;color:var(--gold)}.brief-tier-text{font-size:16px;color:var(--text-dim)}.brief-have .brief-para{color:var(--text-dim)}.brief-reqs{margin:0;padding-left:26px;font-size:16px;line-height:1.5;color:var(--text)}@media(max-height:559px){.brief{gap:6px;max-height:62vh;overflow-y:auto}.brief-para,.brief-reqs,.brief-tier-text{font-size:14px}.brief-title{font-size:18px;letter-spacing:2px}.brief-heading{font-size:13px}}body.watching #dock,body.watching .hud-reset{display:none}.watch-bar{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 28px 24px;background:linear-gradient(#070b1400,#070b14eb);font:900 34px var(--font-display);letter-spacing:4px;z-index:30;pointer-events:none}.watch-name{flex:1}.watch-name.side-0{text-align:left;color:var(--cyan)}.watch-name.side-1{text-align:right;color:#ff6ec7}.watch-status{font:700 16px var(--font-mono);letter-spacing:3px;color:var(--text-dim)}.watch-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:min(760px,80vw);padding:26px 40px 32px;background:#070b14f0;border:1px solid var(--panel-border);border-radius:18px;box-shadow:0 30px 90px #000000b3;text-align:center;z-index:32;pointer-events:none}.watch-panel-title{font:900 46px var(--font-display);letter-spacing:8px;color:var(--text-dim);margin-bottom:18px}.watch-panel-title.win{color:var(--gold);text-shadow:0 0 60px rgba(255,209,102,.6)}.watch-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.watch-panel-col{padding:16px 18px;border:1px solid var(--panel-border);border-radius:14px;background:#ffffff08}.watch-panel-col.winner{border-color:var(--gold);background:#ffd16614}.watch-panel-col.dnf{border-style:dashed;border-color:#ffffff29;background:#ffffff04}.watch-panel-col.dnf .who,.watch-panel-col.dnf .grade,.watch-panel-col.dnf .score{color:var(--text-dim);opacity:.7;text-shadow:none}.watch-panel-col.dnf .sub{color:var(--amber);letter-spacing:2px}.watch-panel-col .who{font:900 26px var(--font-display);letter-spacing:4px;margin-bottom:6px}.watch-panel-col.side-0 .who{color:var(--cyan)}.watch-panel-col.side-1 .who{color:#ff6ec7}.watch-panel-col .grade{font:900 68px var(--font-display);line-height:1;color:var(--grade-color, var(--text));text-shadow:0 0 40px var(--grade-color, transparent)}.watch-panel-col .score{font:900 34px var(--font-display);color:var(--text);margin-top:4px}.watch-panel-col .sub{font:600 15px var(--font-mono);color:var(--text-dim);letter-spacing:1px;margin-top:6px}.watch-warn{position:absolute;left:50%;bottom:6vh;transform:translate(-50%);padding:10px 22px;border:2px solid var(--bad);border-radius:8px;background:#140000d9;color:var(--bad);font-size:18px;font-weight:700;letter-spacing:.08em;text-align:center;pointer-events:none}.watch-standby{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:min(680px,76vw);padding:30px 44px 36px;background:#070b14f0;border:1px solid var(--panel-border);border-radius:18px;box-shadow:0 30px 90px #000000b3;text-align:center;z-index:32;pointer-events:none}.watch-standby-title{font:900 40px var(--font-display);letter-spacing:8px;color:var(--cyan);margin-bottom:24px;text-shadow:0 0 48px rgba(110,231,255,.45)}.watch-standby-grid{display:grid;gap:14px}.watch-standby-row{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:16px 24px;border:1px solid var(--panel-border);border-left:4px solid var(--side-color, var(--cyan));border-radius:12px;background:#0c121eb3}.watch-standby-row.side-0{--side-color: var(--cyan)}.watch-standby-row.side-1{--side-color: #ff6ec7}.watch-standby-row .who{font:700 30px var(--font-display);letter-spacing:4px;color:var(--side-color)}.watch-standby-row .who.vacant{color:var(--text-dim);opacity:.5}.watch-standby-row .state{font:700 22px var(--font-mono);letter-spacing:3px}.watch-standby-row .state.ready{color:var(--good);text-shadow:0 0 30px rgba(74,222,128,.5)}.watch-standby-row .state.waiting{color:var(--amber)}.watch-standby-row .state.empty{color:var(--text-dim);opacity:.6}.watch-countdown{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font:900 clamp(140px,26vw,320px) var(--font-display);line-height:1;color:var(--cyan);text-shadow:0 0 30px rgba(110,231,255,.9),0 0 90px rgba(110,231,255,.55),0 0 180px rgba(110,231,255,.3);z-index:34;pointer-events:none}.watch-countdown.pop{animation:watch-count-pop .42s ease-out 1}@keyframes watch-count-pop{0%{transform:translate(-50%,-50%) scale(1.18);opacity:.85}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.duel-credits{color:var(--gold)}.watch-name.vacant{opacity:.4}.lobby-still{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;border-radius:inherit;background:#04070dfb;z-index:5}.lobby-still-title{font:900 40px var(--font-display);letter-spacing:6px;color:var(--amber);text-shadow:0 0 44px rgba(255,176,32,.45)}.lobby-still-body{font:600 18px var(--font-mono);letter-spacing:1.5px;color:var(--text-dim)}.lobby-still-body .count{font:700 26px var(--font-display);color:var(--bad)}.lobby-still-btn{min-width:220px;min-height:60px;font-size:22px}.lobby-player .state.idle,.watch-standby-row .state.away{color:var(--amber)}.join-entry,.guide-brief,.lobby-brief,.lobby-entry,.results-brief{display:flex;flex-direction:column;align-items:center;width:100%;box-sizing:border-box}.join-entry{gap:14px}.guide-brief,.lobby-brief{gap:18px}.lobby-entry{gap:8px}.results-brief{gap:9px}@media(max-height:559px){.hud-bar{height:44px;padding:2px 10px 0;gap:6px}.hud-score{font-size:22px}.hud-timer{font-size:26px}.hud-combo,.hud-stat{font-size:10px}.hud-stat .value{font-size:15px}.hud-reset{font-size:10px;padding:6px 10px}.duel-score{font-size:22px}.duel-player{font-size:11px}.duel-stat .value{font-size:14px}.duel-stat .cap{font-size:8px}.hud-bar--duel{height:62px}.dock-bar{inset:44px 0 0 auto;width:clamp(88px,11vw,92px);transform:none;flex-direction:column;justify-content:flex-start;align-items:stretch;overflow-y:auto;overflow-x:hidden;gap:4px;padding:6px 4px 10px;border-radius:0;border-top:none;border-right:none;scrollbar-width:thin;box-sizing:border-box;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}.dock-bar::-webkit-scrollbar{width:3px}.dock-bar::-webkit-scrollbar-thumb{background:#6ee7ff59;border-radius:2px}.dock-tile{width:auto;min-height:46px;flex:0 0 auto;touch-action:none;flex-flow:row wrap;align-items:center;align-content:center;justify-content:flex-start;gap:2px 6px;padding:4px;border-radius:8px;border-left-width:3px}.dock-tile img{order:1;width:18px;height:18px;flex:0 0 auto}.dock-tile .cost{order:2;margin-left:auto;font-size:10px;flex:0 0 auto}.dock-tile .name{order:3;flex:1 0 100%;font-size:9px;letter-spacing:0;line-height:1.1;text-align:left;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-tile .tip{display:none}.dock-credits{position:sticky;top:0;z-index:2;flex-direction:row;align-items:center;justify-content:center;gap:5px;font-size:9px;padding:3px 0 6px;background:var(--bg-deep);box-shadow:0 7px 7px -3px var(--bg-deep)}.dock-credits .value{font-size:16px}}.rotate-hint{position:fixed;inset:0;z-index:400;display:none;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:32px;text-align:center;background:var(--bg-deep)}@media(orientation:portrait)and (max-width:1100px){.rotate-hint{display:flex}}.rotate-hint .glyph{font-size:56px;animation:rotate-nudge 2.2s ease-in-out infinite}@keyframes rotate-nudge{0%,45%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}.rotate-hint .title{font:900 26px var(--font-display);letter-spacing:3px;color:var(--cyan)}.rotate-hint .body{font:500 15px var(--font-mono);color:var(--text-dim);line-height:1.6;max-width:300px}.hud-reset .label-short{display:none}@media(max-height:559px){.hud-reset .label{display:none}.hud-reset .label-short{display:inline}.hud-cluster{min-width:0}.hud-phasebar,.duel-leadbar{width:170px}.guide-card,.lobby-card{max-height:96vh;max-height:96dvh;padding:14px 20px 0}.guide-start-row{position:sticky;bottom:0;z-index:2;margin-top:6px;padding:10px 0 12px;background:#0a101c;border-top:1px solid var(--panel-border);box-shadow:0 -10px 14px -6px var(--bg-deep)}.guide-title,.lobby-title{font-size:clamp(15px,4.4vh,20px);letter-spacing:2px}.guide-step,.lobby-rule{font-size:13px}.btn-primary,.btn-secondary{font-size:16px;padding:12px 20px}}@media(max-height:559px){.attract-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(190px,30vw,290px);grid-auto-rows:min-content;align-content:center;justify-items:center;gap:0 clamp(10px,2vw,22px);padding:8px clamp(10px,2vw,20px);height:100%;box-sizing:border-box}.attract-layout>*{grid-column:1}.attract-title{font-size:clamp(30px,11vh,56px);letter-spacing:.1em;line-height:.88}.attract-sub,.attract-scenario{text-shadow:0 1px 6px var(--bg-deep),0 0 16px var(--bg-deep)}.attract-sub{font-size:clamp(10px,3vh,15px);letter-spacing:.3em;margin-top:2px}.attract-scenario{margin-top:clamp(2px,1vh,8px);font-size:clamp(10px,2.8vh,14px);letter-spacing:1.5px}.attract-start{margin-top:clamp(6px,2.5vh,18px);font-size:clamp(15px,4.4vh,24px);letter-spacing:3px;min-height:44px;padding:10px clamp(16px,5vw,40px);border-radius:10px}.attract-event{margin-top:clamp(4px,1.5vh,12px);gap:8px}.attract-board{position:static;transform:none;grid-column:2;grid-row:1 / -1;align-self:center;width:100%;padding:clamp(6px,2vh,14px) clamp(8px,1.5vw,16px);border-radius:10px;box-sizing:border-box}.attract-board h3{margin:0 0 6px;font-size:clamp(11px,3vh,16px);letter-spacing:1.5px}.board-row{grid-template-columns:20px minmax(0,1fr) auto 20px;gap:6px;font-size:clamp(10px,2.6vh,14px);padding:2px 0}}@media(max-height:559px){.join-card{gap:5px;width:min(600px,96vw)}.join-blurb{font-size:clamp(11px,2.8vh,14px)}.join-slots{gap:6px}.join-slot{width:clamp(26px,4vw,36px);height:clamp(34px,9vh,44px);font-size:clamp(17px,5vh,24px);border-width:1px;border-radius:7px}.join-status{min-height:13px;font-size:clamp(11px,2.6vh,14px)}.kb-key{min-width:clamp(36px,5.2vw,44px);padding:0 4px}.kb-key.wide,.kb-key.kb-wide{min-width:clamp(74px,11vw,110px)}.kb,.kb-row{gap:clamp(4px,.6vw,5px)}.join-actions{position:sticky;bottom:0;z-index:2;width:100%;justify-content:center;gap:10px;padding:6px 0 8px;background:#0a101c;border-top:1px solid var(--panel-border);box-shadow:0 -10px 14px -6px var(--bg-deep)}.join-card .kb{margin-bottom:58px}}@media(max-height:559px)and (min-width:640px){.join-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:minmax(0,1fr) auto;align-content:center;justify-items:center;gap:clamp(4px,1.5vh,10px) clamp(12px,2vw,26px);width:min(96vw,900px);padding:12px 18px}.join-entry{grid-area:1 / 1 / 3 / 2;align-self:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(2px,1vh,8px)}.join-card .kb{grid-area:1 / 2 / 3 / 3;align-self:center;margin-bottom:0}.join-actions{grid-area:2 / 1;align-self:end}.join-actions{position:static;background:none;padding:4px 0 0;border-top:0;box-shadow:none}.join-actions .btn-primary,.join-actions .btn-secondary{min-height:44px;padding:8px 18px;font-size:15px}}@media(max-height:559px)and (min-width:640px){.guide-root .guide-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-content:center;gap:clamp(4px,1.5vh,12px) clamp(14px,2.5vw,30px);width:min(96vw,940px);padding:12px 20px}.guide-brief{grid-area:1 / 1;display:flex;flex-direction:column;justify-content:center;gap:clamp(4px,1.5vh,12px);min-width:0}.guide-root .guide-steps{grid-area:1 / 2;align-self:center;margin:0;min-width:0}.guide-root .guide-start-row{grid-area:2 / 1 / 3 / 3;display:flex;justify-content:center}.guide-root .guide-goal{font-size:clamp(12px,3vh,16px)}.guide-root .guide-scenario .name{font-size:clamp(13px,3.2vh,18px)}.guide-root .guide-scenario .blurb{font-size:clamp(11px,2.6vh,14px)}}@media(max-height:559px)and (min-width:640px){.results-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:safe center;justify-items:center;grid-auto-flow:row;gap:clamp(4px,1.5vh,10px) clamp(14px,2.5vw,30px);width:min(96vw,940px);max-height:96vh;max-height:96dvh;padding:8px 20px;box-sizing:border-box}.results-brief{grid-area:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(2px,1vh,8px);min-width:0}.entry-wrap,.results-board{grid-area:1 / 2;align-self:center;width:auto;gap:clamp(2px,.7vh,6px)}.match-verdict{grid-area:2 / 1 / 3 / 3;margin-top:0;font-size:clamp(18px,6vh,32px);letter-spacing:4px;line-height:1}.results-panel>.btn-primary{grid-area:3 / 1 / 4 / 3}.results-title{font-size:clamp(13px,3.4vh,18px)}.results-scenario{font-size:clamp(11px,2.8vh,15px)}.results-score{font-size:clamp(24px,8vh,42px)}.results-stats{gap:clamp(10px,2.5vw,26px);font-size:clamp(10px,2.4vh,14px)}.results-stats b{font-size:clamp(14px,4vh,22px)}.results-grade{gap:clamp(8px,2vw,18px);margin-top:0}.results-grade .letter{font-size:clamp(28px,9vh,48px)}.results-grade .verdict{font-size:clamp(10px,2.6vh,15px)}.results-lesson{font-size:clamp(10px,2.4vh,14px)}.entry-prompt{font-size:clamp(11px,2.8vh,15px)}.entry-name{min-width:0;width:100%;min-height:clamp(30px,8vh,40px);font-size:clamp(12px,3.4vh,17px);letter-spacing:1px}.entry-status{font-size:clamp(10px,2.4vh,13px);min-height:12px}.entry-wrap .btn-primary,.results-panel>.btn-primary{min-height:44px;padding:8px 22px;font-size:15px}}@media(max-height:559px)and (max-width:639px){.hud-phasebar{display:none}.hud-phasebar.mission-timeline{display:block;width:96px}.hud-reset{flex:0 0 auto}.results-panel{max-height:96vh;max-height:96dvh;padding:10px 14px 0;gap:4px}.results-title{font-size:15px}.results-scenario{font-size:12px}.results-score{font-size:28px}.results-stats{gap:14px;font-size:11px}.results-stats b{font-size:15px}.results-grade{gap:10px;margin-top:0}.results-grade .letter{font-size:30px}.results-grade .verdict,.results-lesson{font-size:11px}.entry-prompt{font-size:12px}.entry-name{min-width:0;width:100%;min-height:34px;font-size:13px;letter-spacing:1px}.match-verdict{font-size:22px;letter-spacing:3px;margin-top:0}.entry-status{font-size:11px;min-height:12px}.entry-wrap .btn-primary,.results-panel>.btn-primary{position:sticky;bottom:0;z-index:2;min-height:44px;padding:8px 20px;font-size:15px;box-shadow:0 -6px 0 14px #0a101c}.lobby-name>.kb,.entry-wrap .kb{margin-bottom:62px}.entry-prompt{order:1}.entry-status{order:2}.entry-name{order:3}.entry-wrap .kb{order:4}.entry-wrap .btn-primary{order:5}}@media(max-height:559px)and (max-width:759px){.hud-bar:not(.hud-bar--duel)>.hud-cluster:not(.right){flex-direction:column;align-items:flex-start;justify-content:center;gap:1px}.hud-bar:not(.hud-bar--duel) .hud-score{line-height:1}.hud-bar:not(.hud-bar--duel) .hud-combo{padding:0 4px;line-height:1.1}}@media(min-height:560px)and (max-width:1199px){.hud-bar:not(.hud-bar--duel)>.hud-cluster:not(.right){flex-direction:column;align-items:flex-start;justify-content:center;gap:2px}.hud-bar:not(.hud-bar--duel) .hud-score{line-height:1}.hud-bar:not(.hud-bar--duel) .hud-combo{font-size:14px;padding:2px 6px}}@media(max-width:1470px)and (min-height:560px){.dock-bar{gap:6px;padding:10px 10px 12px}.dock-tile{width:auto;flex:1 1 0;min-width:62px;max-width:92px;padding:6px 2px}.dock-tile .name{font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-tile .cost{font-size:13px}}@media(max-height:559px)and (min-width:640px){.lobby-card{width:min(96vw,900px);padding:4px 18px}.lobby-name{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:center;justify-items:center;gap:clamp(3px,1vh,8px) clamp(12px,2vw,26px);width:100%}.lobby-entry{grid-area:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(3px,1vh,8px);min-width:0;width:100%}.lobby-name>.kb{grid-area:1 / 2;align-self:center}.lobby-entry .entry-name{min-width:0;width:100%;min-height:clamp(30px,8vh,40px);font-size:clamp(12px,3.4vh,17px);letter-spacing:1px}.lobby-entry .btn-primary{min-height:44px;padding:8px 22px;font-size:15px}.lobby-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:center;justify-items:center;gap:clamp(2px,.5vh,6px) clamp(12px,2.5vw,28px)}.lobby-card:has(.lobby-roster:not(.hidden)){align-content:start;align-content:safe center}.lobby-card>.lobby-title,.lobby-card>.guide-title{grid-area:1 / 1 / 2 / 3}.lobby-card>.guide-goal{grid-area:2 / 1;align-self:end}.lobby-brief{grid-area:3 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(2px,.8vh,8px);min-width:0}.lobby-card:has(.mission-brief):has(.lobby-roster:not(.hidden))>.lobby-brief{align-self:stretch}.lobby-card>.guide-steps{grid-area:2 / 2 / 4 / 3;align-self:center;margin:0;min-width:0}.lobby-card:has(.lobby-roster:not(.hidden)):not(:has(.mission-brief,.lobby-countdown:not(.hidden))){grid-template-rows:auto min-content auto auto auto}.lobby-card:has(.lobby-roster:not(.hidden)):not(:has(.mission-brief,.lobby-countdown:not(.hidden)))>:is(.guide-goal,.lobby-brief){align-self:start}.lobby-card:has(.lobby-roster:not(.hidden)):not(:has(.mission-brief,.lobby-countdown:not(.hidden)))>.tut{grid-area:2 / 2 / 4 / 3;align-self:start;min-width:0}.lobby-roster{width:100%;margin-top:4px}.lobby-roster-label{font-size:clamp(9px,2.4vh,13px);letter-spacing:1px}.lobby-player{font-size:clamp(11px,2.9vh,16px);padding:5px 10px;gap:8px}.lobby-player .state{font-size:clamp(9px,2.3vh,13px)}.lobby-name,.lobby-countdown{grid-area:4 / 1 / 5 / 3}.lobby-countdown{margin-top:0;font-size:clamp(24px,8.4vh,64px);line-height:1}.lobby-card>.guide-start-row{grid-area:5 / 1 / 6 / 3;position:static;background:none;display:flex;justify-content:center;gap:10px;padding:4px 0 8px}.lobby-card .guide-goal{font-size:clamp(11px,2.8vh,15px)}.lobby-card .lobby-status{font-size:clamp(10px,2.6vh,14px)}.lobby-card .btn-primary,.lobby-card .btn-ghost{min-height:44px;padding:8px 20px;font-size:15px}}@media(max-height:850px)and (min-height:560px){.lobby-card{gap:12px;padding:20px 40px 8px}.lobby-card .guide-goal{font-size:16px}.lobby-card .lobby-status,.lobby-card .lobby-roster{margin-top:4px}.lobby-card .lobby-countdown{font-size:52px;margin-top:2px}}@media(max-height:850px){.lobby-card:has(.lobby-roster:not(.hidden)):not(:has(.lobby-countdown:not(.hidden)))>.guide-start-row{position:sticky;bottom:0;z-index:2;background:#0a101c;padding:8px 0 10px}}@media(max-height:559px){.lobby-card:has(.lobby-roster:not(.hidden)):not(:has(.lobby-countdown:not(.hidden)))>.guide-start-row{border-top:1px solid var(--panel-border);box-shadow:0 -10px 14px -6px var(--bg-deep)}}@media(max-height:559px){.phase-banner{top:auto;bottom:46px;font-size:clamp(13px,3.6vh,18px);letter-spacing:1.5px;padding:5px 14px;border-left-width:4px;border-right-width:4px;border-radius:8px;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}.hint-pill.center{top:auto;bottom:6px;font-size:clamp(11px,3vh,14px);letter-spacing:.5px;padding:5px 14px;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}.hint-pill{font-size:clamp(11px,3vh,14px);letter-spacing:.5px;padding:6px 14px}.phase-banner,.hint-pill{background:#0a101cb8}}body.projecting #canvas-host,body.projecting #hud{display:none}.sb{--row-h: 58px;--sb-score-w: 210px;position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;padding:clamp(16px,2.5vh,28px) 40px;box-sizing:border-box;background:var(--bg-deep)}.sb-head{text-align:center;flex:0 0 auto;width:100%;min-width:0}.sb-title{font:900 clamp(28px,3.5vw,54px)/1.15 var(--font-display);letter-spacing:clamp(3px,.6vw,10px);overflow-wrap:anywhere;color:var(--cyan);text-shadow:0 0 60px rgba(110,231,255,.35)}.sb-sub{font:600 clamp(12px,1.3vw,18px)/1.4 var(--font-mono);letter-spacing:3px;color:var(--text-dim);margin-top:6px}.sb-clock{font:900 clamp(42px,7vh,72px) var(--font-display);line-height:1;color:var(--text);margin-top:4px}.sb-clock.danger{color:var(--bad);text-shadow:0 0 50px rgba(255,45,85,.6)}.sb-list{position:relative;width:min(1100px,100%);margin-top:16px;min-height:0;flex:1 1 auto}.sb-row{position:absolute;left:0;right:0;height:calc(var(--row-h) - 8px);display:grid;grid-template-columns:70px minmax(0,1fr) 90px var(--sb-score-w);align-items:center;gap:18px;padding:0 24px;box-sizing:border-box;background:#ffffff0a;border:1px solid var(--panel-border);border-radius:12px;transition:transform .55s cubic-bezier(.22,1,.36,1)}.sb-row.lead{border-color:var(--gold);background:#ffd1661a}.sb-row.stale{opacity:.45}.sb-row.waiting .sb-score{color:var(--text-dim)}.sb-rank{font:900 30px var(--font-display);color:var(--text-dim)}.sb-row.lead .sb-rank{color:var(--gold)}.sb-name{font:900 30px var(--font-display);letter-spacing:3px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sb-delta{font:700 20px var(--font-mono);color:var(--text-dim);text-align:center}.sb-delta.up{color:var(--good)}.sb-delta.down{color:var(--bad)}.sb-score{font:900 34px var(--font-display);color:var(--text);text-align:right;font-variant-numeric:tabular-nums}.sb-overflow{font:600 18px var(--font-mono);letter-spacing:3px;color:var(--text-dim);margin-top:10px;flex:0 0 auto;min-height:25px}.sb-bubbles{width:min(1100px,100%);flex:1 1 0;min-height:0;margin-top:18px;display:flex;flex-direction:column}.sb-bubbles.compact{flex:0 0 88px}.sb-bubbles-head{display:flex;justify-content:space-between;gap:12px;flex:0 0 22px;font:600 13px/22px var(--font-mono);letter-spacing:2px;color:var(--text-dim)}.sb-bubble-cloud{--bubble-cols: 4;display:grid;grid-template-columns:repeat(var(--bubble-cols),minmax(0,1fr));grid-auto-rows:72px;align-content:center;gap:12px;flex:1 1 0;min-height:0}.sb-bubbles.compact .sb-bubble-cloud{grid-auto-rows:56px;align-content:end}.sb-bubble{min-width:0;display:flex;align-items:center;gap:12px;padding:8px 16px 8px 10px;box-sizing:border-box;border:1px solid var(--panel-border);border-radius:999px;background:#6ee7ff12;animation:sb-arrive .4s ease-out 1}.sb-bubble.idle{opacity:.5}.sb-bubble-avatar{width:44px;height:44px;flex:0 0 44px}.sb-bubbles.compact .sb-bubble-avatar{width:36px;height:36px;flex-basis:36px}.sb-bubble-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:700 18px/1.3 var(--font-mono);color:var(--text)}.sb-bubbles.compact .sb-bubble-name{font-size:16px}@keyframes sb-arrive{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.sb-countdown{flex:0 0 auto;margin-top:14px;font:900 clamp(70px,18vh,180px) var(--font-display);line-height:1;color:var(--gold);text-shadow:0 0 120px rgba(255,209,102,.55);pointer-events:none}.sb-revealing .sb-countdown{margin-block:auto;font-size:clamp(90px,28vh,260px)}.sb-countdown.pop{animation:sb-pop .9s ease-out 1}@keyframes sb-pop{0%{transform:scale(.55);opacity:0}25%{transform:scale(1);opacity:1}to{transform:scale(1);opacity:1}}.sb-final{width:min(1100px,100%);margin-top:16px;display:flex;flex-direction:column;gap:8px;flex:1 1 0;min-height:0}.sb-final-row{display:grid;grid-template-columns:70px minmax(0,1fr) 80px var(--sb-score-w);align-items:center;gap:18px;padding:0 24px;flex:1 1 0;min-height:0;max-height:66px;box-sizing:border-box;background:#ffffff0a;border:1px solid var(--panel-border);border-radius:12px;animation:sb-rise .42s ease-out 1}.sb-final-row.win{border-color:var(--gold);background:#ffd1661a}.sb-final-row.win .sb-rank,.sb-final-row.win .sb-name{color:var(--gold)}.sb-grade{font:900 clamp(20px,3.5vh,38px) var(--font-display);text-align:center;color:var(--grade-color, var(--text));text-shadow:0 0 30px var(--grade-color, transparent)}.sb-final .sb-name,.sb-final .sb-rank{font-size:clamp(16px,3vh,30px)}.sb-final .sb-score{font-size:clamp(18px,3.4vh,34px)}@media(max-width:1100px){.sb{--sb-score-w: 180px;padding-inline:24px}.sb-row,.sb-final-row{grid-template-columns:50px minmax(0,1fr) 64px var(--sb-score-w);gap:12px;padding-inline:16px}.sb-row .sb-name,.sb-row .sb-rank{font-size:24px;letter-spacing:2px}.sb-row .sb-score{font-size:28px}}@media(prefers-reduced-motion:reduce){.sb-row{transition:none}.sb-bubble,.sb-countdown.pop,.sb-final-row{animation:none}}@keyframes sb-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.watch-sound{position:absolute;right:22px;bottom:100%;margin-bottom:8px;pointer-events:auto;cursor:pointer;font:700 14px var(--font-mono);letter-spacing:2px;color:var(--text-dim);background:#0a101ce6;border:1px solid var(--panel-border);border-radius:8px;padding:8px 14px}.watch-sound.on{color:var(--good);border-color:#4ade8073}.brief-overlay{position:absolute;inset:96px 12px var(--service-dock-height);z-index:40;display:flex;align-items:center;justify-content:center;background:#040812b8}.brief-overlay.hidden{display:none}.brief-overlay-card{box-sizing:border-box;pointer-events:auto;width:min(820px,100%);max-height:100%;min-height:0;overflow:hidden;padding:20px 24px;border:1px solid var(--panel-border);border-radius:14px;background:#0d1524f0;display:flex;flex-direction:column;gap:14px;align-items:center}.brief-overlay .brief{flex:1 1 auto;width:100%;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-gutter:stable}.brief-overlay-digit{flex:0 0 auto;font:700 30px var(--font-display);letter-spacing:4px;color:var(--cyan);text-align:center}@media(max-height:559px){.brief-overlay{inset:44px 122px 6px 8px}.brief-overlay-card{padding:10px 14px;gap:8px}.brief-overlay-digit{font-size:20px;letter-spacing:2px}}
