:root{--ink: #060b18;--ice: #d7e6ff;--mist: #9bb0d4;--accent: #7dd3fc;--line: rgba(186, 214, 255, .38);--line-strong: rgba(210, 230, 255, .72);--cta: #f4f7ff;--glass: rgba(8, 14, 32, .72);--sans: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--display: "Instrument Serif", "Iowan Old Style", Palatino, Georgia, serif;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);color:var(--ice);background:var(--ink);font-family:var(--sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--ink);overflow:hidden;overscroll-behavior:none;touch-action:manipulation}body{min-height:100dvh}body.miss{box-shadow:inset 0 0 90px #ff465a47}button,input{font:inherit;color:inherit}button{cursor:pointer}[hidden]{display:none!important}::selection{color:#fff;background:#7dd3fc59}.atmosphere{position:fixed;inset:0;z-index:0;background:radial-gradient(65% 50% at 50% 42%,rgba(48,88,170,.34),transparent 68%),radial-gradient(50% 40% at 18% 88%,rgba(90,55,150,.2),transparent 65%),linear-gradient(#06101f,#0c1734 42%,#070c1a)}#c{position:fixed;inset:0;z-index:1;width:100%;height:100%;display:block;touch-action:none}.hub-frame{position:fixed;inset:clamp(.75rem,2.5vw,1.75rem);border:1px solid var(--line);pointer-events:none;z-index:4}.hub-frame-v{position:absolute;top:-1px;bottom:-1px;width:1px;background:var(--line);opacity:.7}.hub-frame-v.left{left:12%}.hub-frame-v.right{right:12%}.hub-frame:before,.hub-frame:after{content:"";position:absolute;left:-1px;right:-1px;height:1px;background:var(--line);opacity:.7}.hub-frame:before{top:18%}.hub-frame:after{bottom:18%}.hub-tick{position:absolute;width:14px;height:14px;border-color:var(--line-strong);border-style:solid}.hub-tick.tl{top:-1px;left:-1px;border-width:1.5px 0 0 1.5px}.hub-tick.tr{top:-1px;right:-1px;border-width:1.5px 1.5px 0 0}.hub-tick.bl{bottom:-1px;left:-1px;border-width:0 0 1.5px 1.5px}.hub-tick.br{bottom:-1px;right:-1px;border-width:0 1.5px 1.5px 0}body[data-mode=play] .hub-frame,body[data-mode=coach] .hub-frame,body[data-mode=revive] .hub-frame,body[data-mode=dying] .hub-frame{opacity:.28}#topbar{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:calc(.7rem + var(--safe-t)) clamp(1rem,4vw,2.2rem) .4rem;pointer-events:none}#topbar button,#topbar .chip,#topbar .emps{pointer-events:auto}#brand{display:flex;flex-direction:column;gap:2px;min-width:0}.brand-mark{font-size:.78rem;letter-spacing:.22em;font-weight:500}.brand-mark span{color:var(--accent)}.brand-sub{color:var(--mist);font-size:.62rem;letter-spacing:.16em}body[data-mode=play] #brand,body[data-mode=coach] #brand,body[data-mode=revive] #brand,body[data-mode=dying] #brand,body[data-mode=pause] #brand{display:none}#hud{display:flex;gap:clamp(.8rem,3vw,2rem);align-items:flex-end;pointer-events:none;flex-wrap:wrap}.stat{display:flex;flex-direction:column;gap:1px}.stat span,.over-grid span,.next-prize span{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mist)}.stat b,.over-grid b{font-family:var(--mono);font-weight:500;font-size:clamp(1.05rem,2.4vw,1.55rem);color:var(--accent);letter-spacing:.04em}.stat em{font-style:normal;font-family:var(--mono);color:#ffd27a;font-size:.78rem;letter-spacing:.08em}.top-right{display:flex;align-items:center;gap:8px;margin-left:auto}.hub-menu{position:relative;z-index:52;pointer-events:auto}.hub-toggle{min-width:4.6rem;letter-spacing:.14em}.hub-toggle.on{border-color:var(--line-strong);color:var(--accent)}.hub-panel{position:absolute;top:calc(100% + 8px);right:0;width:min(16.5rem,calc(100vw - 1.5rem));display:flex;flex-direction:column;gap:2px;padding:.55rem;border:1px solid var(--line);background:#080e20f0;backdrop-filter:blur(16px);box-shadow:0 18px 48px #00000073;text-align:left}.hub-panel-k{margin:0 0 .25rem;padding:.15rem .55rem;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mist)}.hub-link{display:block;padding:.55rem .65rem;color:var(--ice);text-decoration:none;letter-spacing:.06em;font-size:.86rem;border:1px solid transparent}.hub-link:hover,.hub-link:focus-visible{border-color:var(--line);background:#7dd3fc14;outline:none}.hub-link.on{color:var(--accent);border-color:#7dd3fc73;background:#7dd3fc1a}.hub-link.on:after{content:" · here";color:var(--mist);font-size:.72rem;letter-spacing:.08em;text-transform:lowercase}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#080e208c;backdrop-filter:blur(10px);border-radius:999px;padding:.35rem .7rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ice)}body:not([data-mode=title]):not([data-mode=over]):not([data-mode=pause]) #rp-chip,body:not([data-mode=title]) #best-chip{display:none}.display{font-family:var(--display);font-weight:400;font-style:italic;letter-spacing:-.02em;line-height:.95;margin:0}.kicker{margin:0;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--mist)}.lede{max-width:min(34rem,100%);margin:.4rem auto 0;color:var(--ice);font-size:.98rem;line-height:1.45}.hint{margin:.35rem 0 0;color:var(--mist);font-size:.75rem;letter-spacing:.04em;text-align:center}.hint.keys{letter-spacing:.06em;text-transform:uppercase;font-size:.66rem}.overlay{position:fixed;inset:0;z-index:18;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:.7rem;padding:calc(4.4rem + var(--safe-t)) 1rem calc(1.2rem + var(--safe-b));overflow:auto;pointer-events:none;text-align:center}.overlay>*{pointer-events:auto}.sheet-end{justify-content:flex-end;padding-bottom:calc(7.5rem + var(--safe-b))}#pause{z-index:26;background:#060b1847}#over{z-index:28;background:#060b1861}#coach{z-index:22}#title{gap:.4rem;justify-content:safe center;padding:calc(3.2rem + var(--safe-t)) .85rem calc(.55rem + var(--safe-b));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;pointer-events:auto}#title .giant{pointer-events:none}.giant{position:absolute;top:12%;left:50%;transform:translate(-50%);margin:0;font-family:var(--sans);font-weight:200;font-size:clamp(7rem,22vw,14rem);line-height:.8;color:#7daaff1f;pointer-events:none;user-select:none}h1.display{font-size:clamp(3.4rem,9vw,6.4rem);position:relative}.btn-cta,.btn-ghost,.btn-text,.btn-emp,.pills button,.card,.letter{border-radius:0;background:transparent}.btn-cta{border:1px solid var(--cta);color:var(--cta);letter-spacing:.16em;text-transform:uppercase;min-width:11rem;padding:.95rem 1.6rem;font-size:.8rem;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;transition:background .2s,color .2s,box-shadow .2s}.btn-cta:hover{background:var(--cta);color:var(--ink);box-shadow:0 0 32px #d7e6ff38}.btn-ghost{border:1px solid var(--line);color:var(--ice);letter-spacing:.12em;text-transform:uppercase;padding:.55rem .9rem;font-size:.72rem;background:#0a12288c;backdrop-filter:blur(8px)}.btn-ghost:hover{border-color:var(--line-strong)}.btn-text{border:0;background:transparent;color:var(--mist);letter-spacing:.14em;text-transform:uppercase;font-size:.7rem;padding:.2rem .4rem}.btn-text:hover{color:var(--ice)}.tri{width:0;height:0;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent currentColor}.settings{display:flex;flex-direction:column;align-items:center;gap:.55rem;width:min(100%,46rem);max-width:100%;min-width:0;margin-inline:auto}.settings-row{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;align-items:center}.pills{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;padding:4px;border-radius:999px;background:#080e208c;border:1px solid var(--line);backdrop-filter:blur(12px)}.pills button{border:0;border-radius:999px;color:var(--mist);padding:.48rem .78rem;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;min-height:36px}.pills button.on,.sound-btn.on{background:#ffffff1f;color:var(--ice)}.sound-btn{border-radius:999px;padding-inline:.9rem}.loadout{width:min(100%,38rem);max-width:100%;min-width:0;margin-inline:auto;display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}.loadout-tabs{margin:0 auto}.loadout-pane{width:100%;min-width:0}.roster{display:flex;flex-wrap:wrap;justify-content:center;align-content:flex-start;gap:8px;width:100%;max-width:100%;min-width:0;margin-inline:auto;padding:0}.card{width:8.4rem;max-width:calc(25% - 8px);min-width:0;margin-inline:0;text-align:center;border:1px solid var(--line);background:#080e2094;backdrop-filter:blur(12px);border-radius:10px;padding:.35rem .45rem .5rem;color:var(--ice)}.card canvas{width:78px;height:44px;display:block;margin:0 auto}.card strong{display:block;font-size:.84rem;font-weight:500}.card small{display:block;color:var(--mist);font-size:.64rem;line-height:1.25;min-height:2.4em}.card .cost{display:block;margin-top:.18rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.card.on{border-color:#7dd3fcd9;box-shadow:0 0 24px #7dd3fc29}.card.can{outline:1px solid rgba(255,178,92,.7)}.card:focus-visible,.btn-cta:focus-visible,.btn-ghost:focus-visible,.pills button:focus-visible,.letter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.panel{width:min(100%,36rem);max-height:min(86dvh,42rem);overflow:auto;border:1px solid var(--line);background:#080e20d1;backdrop-filter:blur(16px);box-shadow:0 24px 80px #00000073;padding:1.25rem 1.25rem 1.1rem;text-align:left}.coach-card,.pause-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.7rem}.coach-card p,.pause-card .hint{max-width:36rem}.pause-card .settings{margin:.3rem 0}.row-btns{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.over-card{width:min(100%,40rem)}.over-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1.2rem}.over-card hr{border:0;border-top:1px solid rgba(125,211,252,.45);margin:.85rem 0}.best{display:flex;align-items:center;gap:.5rem;color:#ffb020;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;margin:.2rem 0}.hex-badge{width:14px;height:16px;background:#ffb020;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}.rp-line{margin:.2rem 0 .6rem;font-family:var(--mono);color:var(--ice);letter-spacing:.06em}.next-prize{margin-bottom:1rem}.next-row{display:flex;justify-content:space-between;gap:1rem}.bar{height:3px;background:#bad6ff2e;margin-top:.4rem}.bar i{display:block;height:100%;width:0;background:var(--accent)}.banner{position:fixed;left:50%;top:30%;transform:translate(-50%,-50%);z-index:16;text-align:center;pointer-events:none}.banner-kicker{margin:0 0 .3rem;letter-spacing:.24em;text-transform:uppercase;color:var(--mist);font-size:.72rem}.banner-title{font-size:clamp(3rem,8vw,5.6rem);color:var(--ice);text-shadow:0 10px 40px rgba(0,0,0,.35)}#dock{position:fixed;left:0;right:0;bottom:0;z-index:34;display:flex;flex-direction:column;gap:6px;padding:.4rem .7rem calc(.55rem + var(--safe-b));background:linear-gradient(to top,rgba(6,11,24,.92),rgba(6,11,24,.5) 70%,transparent);pointer-events:none}#dock button,#dock .letters{pointer-events:auto}.letters{display:flex;gap:6px;overflow-x:auto;justify-content:center;min-height:0}.letter{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:#080e20cc;color:var(--ice);font-family:var(--mono);font-size:1.05rem;text-transform:uppercase}.letter.on{border-color:var(--accent);color:var(--accent);box-shadow:0 0 16px #7dd3fc40}.dock-actions{display:flex;gap:8px;justify-content:center}.btn-emp{border:0;min-width:7.5rem;min-height:44px;padding:.55rem 1rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#241804;background:#f0c14a;clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,12px 100%,0 50%)}.btn-emp b{font-family:var(--mono)}.btn-emp:disabled,.btn-emp.off{background:#9bb0d433;color:var(--mist)}.emps{display:flex;gap:5px}.emp-hex{width:34px;height:38px;border:0;padding:0;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:#f0c14a;color:#241804;font-family:var(--mono);font-weight:600}.emp-hex.off{background:#9bb0d429;color:#9bb0d473}.buffs{display:flex;gap:6px;justify-content:flex-start;flex-wrap:wrap;align-items:center}.buff{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:.15rem .45rem;color:var(--ice);background:#080e20b3}.buff.shield{color:#b7f7cf}.buff.slow{color:#c4b5fd}.buff.pierce{color:#ffd27a}.buff.magnet{color:#ff9ec8}.buff.boost{color:#ffb020}.buff.regen{color:#9dffc4}.pips{display:flex;gap:3px;align-items:flex-end;min-height:1.15rem}.pip{width:8px;height:13px;border-radius:2px;background:#9bb0d429;box-shadow:inset 0 0 0 1px #d7e6ff33}.pip.on{background:#7dd3fc;box-shadow:0 0 8px #7dd3fc8c}.pip.on.warn{background:#ffb020;box-shadow:0 0 8px #ffb02073}.pip.on.crit{background:#ff5a6e;box-shadow:0 0 8px #ff5a6e80}.lives{display:flex;gap:4px;align-items:flex-end;min-height:1.15rem}.life{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:9px solid rgba(155,176,212,.28);filter:drop-shadow(0 0 0 transparent)}.life.on{border-bottom-color:#7dd3fc;filter:drop-shadow(0 0 4px rgba(125,211,252,.7))}.toast{position:fixed;left:50%;bottom:calc(5.5rem + var(--safe-b));transform:translate(-50%);z-index:48;padding:.45rem .8rem;border:1px solid var(--line);background:#080e20e6;color:var(--ice);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;pointer-events:none}#keytrap{position:fixed;left:0;bottom:0;width:1px;height:1px;opacity:0;border:0;padding:0;font-size:16px;background:transparent;color:transparent;caret-color:transparent}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:719px){.over-grid{grid-template-columns:1fr 1fr}.giant{display:none}#title{justify-content:flex-start;gap:.35rem;padding-top:calc(3rem + var(--safe-t))}h1.display{font-size:clamp(2.4rem,11vw,3.1rem)}.lede{font-size:.84rem;margin-top:.15rem}.loadout{width:min(100%,36rem)}.card{width:calc(50% - 8px);max-width:10rem}.card small,.hint.keys{display:none}.loadout-hint{font-size:.66rem}#hud{gap:.7rem}.stat b{font-size:1rem}.pills button{padding-inline:.48rem;font-size:.6rem;min-height:30px}.btn-cta{min-width:9rem;padding:.65rem 1.1rem}}@media(min-width:720px)and (max-height:980px){.giant{display:none}#title{gap:.28rem;padding-top:calc(2.8rem + var(--safe-t));padding-bottom:calc(.4rem + var(--safe-b));justify-content:safe center}#title>.kicker{font-size:.62rem;letter-spacing:.16em}h1.display{font-size:clamp(2.3rem,4.4vw,3rem)}#title .lede{font-size:.82rem;line-height:1.3;margin-top:.08rem;max-width:32rem}#btn-how{padding:.05rem .3rem;font-size:.6rem}.btn-cta{min-width:8.5rem;padding:.55rem 1.1rem;font-size:.7rem}.settings{gap:.28rem;width:min(100%,40rem)}.pills{padding:3px}.pills button{padding:.3rem .6rem;font-size:.6rem;min-height:30px}.loadout{gap:.28rem;width:min(100%,36rem)}.card{width:calc(25% - 7px);max-width:8rem;padding:.28rem .35rem .4rem}.card canvas{width:64px;height:36px}.card strong{font-size:.76rem}.card small{display:none}.card .cost{font-size:.58rem}.roster{gap:7px}.loadout-hint{font-size:.64rem}.hint.keys{display:none}}@media(min-width:720px)and (max-height:820px){#title{gap:.18rem;padding-top:calc(2.45rem + var(--safe-t))}#title .lede,#btn-how,.loadout-hint{display:none}h1.display{font-size:clamp(2.05rem,3.8vw,2.55rem)}.btn-cta{padding:.45rem .95rem;min-width:7.8rem;font-size:.66rem}.card{max-width:7.4rem;padding:.22rem .3rem .32rem}.card canvas{width:56px;height:32px}.card strong{font-size:.72rem}}@media(min-width:720px)and (max-height:700px){#title{gap:.12rem;padding-top:calc(2.2rem + var(--safe-t))}h1.display{font-size:clamp(1.8rem,3.3vw,2.2rem)}#title>.kicker{display:none}.btn-cta{padding:.38rem .8rem;min-width:7rem}.card{max-width:6.8rem}.card canvas{width:48px;height:28px}}@media(max-height:640px){.giant{display:none}#title{justify-content:flex-start;gap:.18rem;padding-top:calc(2.3rem + var(--safe-t))}#title .lede,#btn-how,.hint.keys,.loadout-hint,#title>.kicker{display:none}h1.display{font-size:clamp(1.7rem,7vw,2.2rem)}.card small{display:none}.card{width:calc(33.333% - 6px);max-width:7rem}}
