:root{color-scheme:dark;--bg: #0b0810;--panel: #171226;--panel-2: #1d1630;--ink: #efe9dc;--muted: #a49fb8;--dim: #756f8a;--line: #372f52;--line-soft: #2a2440;--amber: #f2c94c;--orange: #ff9a30;--hot: #ff6b1a;--magenta: #ff3db1;--violet: #b14bff;--purple: #7b2ff7;--cyan: #4de1ff;--green: #5ad469;--red: #ff6b62}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:radial-gradient(120% 90% at 50% -20%,#1a0f2e 0%,transparent 55%),radial-gradient(90% 70% at 15% 115%,#24123a 0%,transparent 50%),radial-gradient(90% 70% at 85% 115%,#2a0f26 0%,transparent 50%),var(--bg);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}h2{text-transform:uppercase;letter-spacing:.12em;font-weight:700}.app{overflow-y:auto;width:100vw;height:100vh;height:100dvh;display:flex;padding:0 env(safe-area-inset-right) 0 env(safe-area-inset-left)}.app>*{margin:auto}.home,.lobby,.results,.ladder{position:relative;z-index:1}.stage-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.stage-bg .glow{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(60px);opacity:.26;mix-blend-mode:screen;animation:drift 26s ease-in-out infinite alternate}.stage-bg .g1{background:radial-gradient(circle,var(--purple),transparent 60%);top:-20vmax;left:-10vmax}.stage-bg .g2{background:radial-gradient(circle,var(--hot),transparent 60%);bottom:-20vmax;right:-8vmax;animation-delay:-8s}.stage-bg .g3{background:radial-gradient(circle,var(--magenta),transparent 60%);bottom:-18vmax;left:10vmax;animation-delay:-14s;opacity:.2}@keyframes drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(4vmax,3vmax,0) scale(1.12)}}.stage-bg .bolt{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 48%,rgba(77,225,255,.5) 49.4%,rgba(255,255,255,.9) 50%,rgba(177,75,255,.5) 50.6%,transparent 52%);opacity:0;mix-blend-mode:screen;animation:bolt 9s steps(1) infinite}@keyframes bolt{0%,96%,to{opacity:0}96.6%{opacity:.5}97%{opacity:0}97.4%{opacity:.75}98%{opacity:0}}.lobby h2,.ladder h2,.results h2{margin:0;text-align:center;font-weight:800;letter-spacing:.14em;font-size:clamp(1.5rem,6vw,2.1rem);line-height:1;background:linear-gradient(180deg,#fff 4%,var(--amber) 34%,var(--orange) 62%,var(--hot) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 10px rgba(255,120,40,.4)) drop-shadow(0 2px 0 rgba(120,20,90,.55))}.results h2{background:linear-gradient(180deg,#fff,var(--magenta) 55%,var(--purple));-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 14px rgba(255,61,177,.45))}.bird{display:inline-flex}.bird svg{display:block;fill:currentColor;width:1.05rem;height:1.05rem;vertical-align:-.16em}.home{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.2em;width:min(26em,92vw)}.home-logo{display:block;width:min(100%,25rem);height:auto;margin:-1.6rem 0 -.6rem;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 8px 30px rgba(123,47,247,.32))}.home input,.home button{font:inherit;text-transform:uppercase;letter-spacing:.08em}.home .handle-input{width:100%;padding:.75em;background:#0d0917;color:var(--ink);border:1px solid var(--line-soft);border-radius:10px;text-align:center}.home .handle-input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan),0 0 18px #4de1ff38}.home .buttons{display:flex;flex-direction:column;gap:.6em;align-items:stretch;width:100%}.home .buttons>button{width:100%;min-width:0}.home .join-row{display:grid;grid-template-columns:1fr 1.3fr;gap:.5em}.home .join-row button{min-width:0}.home .join-row input{width:100%;min-width:0;padding:.75em .6em;background:#0d0917;color:var(--ink);border:1px solid var(--line-soft);border-radius:10px;text-align:center;letter-spacing:.18em;text-transform:uppercase;font:inherit}.home .join-row input::placeholder{color:var(--dim);letter-spacing:.12em}.home .join-row input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan),0 0 18px #4de1ff38}button{--tint: var(--line);position:relative;background:linear-gradient(180deg,var(--panel-2),#100b1c);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:.85em 1.4em;font:inherit;text-transform:uppercase;letter-spacing:.1em;font-weight:700;cursor:pointer;min-width:14em;overflow:hidden;box-shadow:inset 0 1px #ffffff0f,0 6px 16px #0006;transition:transform .1s ease,box-shadow .2s,border-color .2s,color .15s}button:before{content:"";position:absolute;top:0;left:12%;right:12%;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--tint),transparent);opacity:.5}button:hover:not(:disabled){transform:translateY(-2px);border-color:var(--tint);color:#fff;box-shadow:inset 0 1px #ffffff1a,0 0 22px color-mix(in srgb,var(--tint) 45%,transparent),0 8px 20px #00000080}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{--tint: var(--orange);color:#180a02;background:linear-gradient(180deg,#ffd36b,var(--orange) 55%,var(--hot));border-color:transparent;text-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 0 0 1px #ffb45a8c,0 0 24px #ff782866,0 8px 22px #00000080}button.primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.5) 48%,transparent 66%);transform:translate(-120%);animation:shine 3.6s ease-in-out infinite}button.primary:hover:not(:disabled){color:#180a02}@keyframes shine{0%,60%{transform:translate(-120%)}80%,to{transform:translate(120%)}}button.accent-cyan{--tint: var(--cyan)}button.accent-violet{--tint: var(--violet)}button.accent-magenta{--tint: var(--magenta)}button.ghost{background:transparent;border-color:var(--line);color:#c4bed6;box-shadow:none}button.ghost:hover:not(:disabled){color:var(--ink)}.lobby{display:flex;flex-direction:column;align-items:stretch;gap:1em;width:min(26em,92vw)}.lobby .room-code{display:flex;align-items:center;justify-content:space-between;gap:.6em;padding:.6em .9em;border:1px solid var(--line-soft);border-radius:12px;background:#0d0917}.lobby .room-code .code{font-size:1.9em;letter-spacing:.32em;font-weight:700;padding-left:.18em;background:linear-gradient(180deg,#fff,var(--amber));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 10px rgba(242,201,76,.35));-webkit-user-select:all;user-select:all}.lobby .room-code button{padding:.5em 1em;min-width:0}.lobby .players{display:flex;flex-direction:column;gap:.45em;min-height:3em}.lobby .lobby-player{display:flex;align-items:center;justify-content:space-between;gap:.6em;padding:.65em .85em;border:1px solid var(--line-soft);border-radius:10px;background:linear-gradient(180deg,var(--panel),#120d20)}.lobby .lobby-player.me{border-color:var(--amber);box-shadow:inset 0 0 0 1px #f2c94c59,0 0 16px #f2c94c1f}.lobby .lobby-player .name{display:inline-flex;align-items:center;gap:.4em;flex-wrap:wrap}.lobby .lobby-player .status{display:inline-flex;align-items:center;gap:.4em;opacity:.9;font-size:.8em;letter-spacing:.06em;color:var(--green)}.lobby .lobby-player .status:before{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}.lobby .lobby-player .status.off{color:var(--red)}.lobby .lobby-player .status.off:before{background:var(--red);box-shadow:0 0 8px var(--red)}.lobby .lobby-hint{text-align:center;color:var(--dim);font-size:.9em}.lobby .lobby-error{padding:8px 12px;border:1px solid var(--red);border-radius:8px;color:#ffb3ad;background:#e0554d1f;font-size:14px;text-align:center}.lobby .lobby-actions{display:flex;flex-direction:column;gap:.6em;align-items:stretch}.lobby .lobby-actions button{width:100%}.mount-tag{display:inline-flex;align-items:center;gap:.35em;color:var(--muted);font-size:.85em}.home .mounts{display:grid;grid-template-columns:repeat(3,1fr);gap:.5em;width:100%;margin:.4em 0 .6em}.home .mount{position:relative;overflow:visible;min-width:0;padding:.7em .3em .6em;font-size:.85em;font-weight:700;color:var(--muted);background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line-soft);border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:.35em;transition:transform .12s ease,border-color .15s,color .15s,box-shadow .2s}.home .mount .bird svg{width:2.2rem;height:2.2rem}.home .mount:hover:not(.on){color:var(--ink);border-color:var(--line);transform:translateY(-2px)}.home .mount.on{color:var(--amber);border-color:var(--amber);box-shadow:0 0 0 1px var(--amber),0 0 22px #f2c94c4d,inset 0 0 20px #f2c94c12}.home .mount.on:after{content:"▸ SELECTED";position:absolute;top:-.55rem;left:50%;transform:translate(-50%);font-size:.5rem;letter-spacing:.2em;color:#150a02;background:var(--amber);padding:.12rem .4rem;border-radius:999px;white-space:nowrap}.home .mount-blurb{margin:-.4em 0 .6em;font-size:.82em;color:var(--dim);min-height:1.2em;letter-spacing:.03em}.ladder table,.results table{width:100%;border-collapse:collapse;font-size:.9em;background:linear-gradient(180deg,#1d1630d9,#100b1ad9);border:1px solid var(--line-soft);border-radius:12px;overflow:hidden}.ladder thead th,.results thead th{text-align:right;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.62em;color:var(--dim);padding:.7em .7em .6em;border-bottom:1px solid var(--line-soft)}.ladder thead th:nth-child(1),.ladder thead th:nth-child(2),.results thead th:nth-child(1),.results thead th:nth-child(2){text-align:left}.ladder tbody td,.results tbody td{padding:.55em .7em;border-bottom:1px solid rgba(55,47,82,.4);text-align:right}.ladder tbody td:nth-child(1),.results tbody td:nth-child(1){text-align:center;color:var(--dim);width:2.6em}.ladder tbody td:nth-child(2),.results tbody td:nth-child(2){text-align:left;text-transform:uppercase;letter-spacing:.04em}.ladder tbody tr:last-child td,.results tbody tr:last-child td{border-bottom:none}.ladder tbody tr.me td{background:#f2c94c14}.ladder tbody tr.me td:nth-child(2){color:var(--amber)}.rank{display:inline-grid;place-items:center;min-width:1.7em;height:1.7em;padding:0 .35em;border-radius:6px;font-weight:800}.rank.g1{color:#3a2600;background:linear-gradient(180deg,#ffe680,#f2b100);box-shadow:0 0 14px #f2b10080}.rank.g2{color:#20222a;background:linear-gradient(180deg,#eef1f6,#b9c2d0)}.rank.g3{color:#2a1206;background:linear-gradient(180deg,#f0a862,#cd7f32)}.results .val-up{color:var(--green)}.results .val-dn{color:var(--red)}.results .medal{margin-left:.25em}.results{display:flex;flex-direction:column;align-items:center;gap:1em;width:min(28em,92vw)}.results .champion{display:flex;flex-direction:column;align-items:center;gap:.15em}.results .champion .crown{font-size:2.2rem;line-height:1;filter:drop-shadow(0 0 12px rgba(242,201,76,.55))}.results .champion .who-won{text-transform:uppercase;letter-spacing:.12em;font-weight:800;font-size:1.2rem;color:var(--amber)}.results .champion .label{font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--dim)}.results .results-note{color:var(--dim);font-size:.82em;text-align:center}.results-actions{display:flex;gap:.6em;justify-content:center;width:100%}.results-actions button{flex:1;min-width:0}.ladder{display:flex;flex-direction:column;align-items:stretch;gap:.9em;width:min(30em,94vw)}.ladder .muted{opacity:.6;text-align:center}.ladder .ladder-me{display:flex;flex-direction:column;gap:.4em;align-items:center;color:var(--muted);font-size:.9em}.ladder .ladder-me b{color:var(--ink)}.ladder .around{margin-top:.4em;font-size:.9em}.ladder>button{align-self:center}.home-footer{margin-top:20px;display:flex;flex-direction:column;gap:6px;align-items:center;color:var(--dim);font-size:12px}.home-footer .link{background:none;border:none;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;font:inherit;padding:0;min-width:0}.home-footer .link:hover{color:var(--cyan)}.home-footer .credits{letter-spacing:.02em;line-height:1.5}.home-footer .ios-tip{display:inline-flex;gap:.6em;align-items:center;padding:.35em .8em;border:1px solid rgba(242,201,76,.35);border-radius:999px;color:var(--ink)}.home-footer .ios-tip .link{text-decoration:none;opacity:.7}.home-error{margin-top:6px;padding:8px 12px;border:1px solid var(--red);border-radius:8px;color:#ffb3ad;background:#e0554d1f;font-size:14px;text-align:center}.home button:disabled{opacity:.55;cursor:progress}.home .who{display:flex;gap:.9em;align-items:baseline;flex-wrap:wrap;justify-content:center;color:var(--muted);font-size:.85em}.home .who b{color:var(--ink);text-transform:uppercase;letter-spacing:.08em}.home .gate{display:flex;flex-direction:column;gap:.8em;align-items:stretch;width:100%}.home .gate-intro{margin:0;color:var(--muted)}.home .gate-hint{margin:0;color:var(--dim);font-size:.75em;line-height:1.4}.home .passcode-input{letter-spacing:.3em}.home .passcode-card{display:flex;flex-direction:column;gap:.6em;align-items:center;padding:1em;border:1px solid var(--amber);border-radius:12px;background:#0d0917;box-shadow:0 0 24px #f2c94c1f}.home .passcode-card p{margin:0}.home .passcode-label{color:var(--muted);font-size:.8em}.home .passcode{font-size:2.2rem;letter-spacing:.25em;font-weight:700;background:linear-gradient(180deg,#fff,var(--amber));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 10px rgba(242,201,76,.35));-webkit-user-select:all;user-select:all}.home .passcode-actions{display:flex;gap:1.2em;align-items:center;justify-content:center;width:100%;margin-top:.4em}.home .passcode-actions button{min-width:0;flex:1}.home .who .link{background:none;border:none;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:3px;font:inherit;text-transform:lowercase;letter-spacing:.04em;padding:0;min-width:0;box-shadow:none}.home .who .link:hover{color:var(--ink);transform:none}.queue .radar{position:relative;width:6.5rem;height:6.5rem;margin:.2rem auto}.queue .radar .ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid rgba(77,225,255,.25)}.queue .radar .ring.pulse{animation:radar-pulse 2.4s ease-out infinite}.queue .radar .ring.pulse.d{animation-delay:1.2s}@keyframes radar-pulse{0%{transform:scale(.4);opacity:.9}to{transform:scale(1);opacity:0}}.queue .radar .core{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--cyan)}.queue .radar .core .bird svg{width:2.6rem;height:2.6rem;filter:drop-shadow(0 0 10px rgba(77,225,255,.5))}.queue .queue-box{display:flex;flex-direction:column;align-items:center;gap:.6em;padding:1.4em 1em;border:1px solid var(--line-soft);border-radius:14px;background:linear-gradient(180deg,#1d1630e6,#100b1ae6);box-shadow:inset 0 1px #ffffff0d,0 18px 50px #00000080;text-align:center}.queue .queue-count{font-size:1.2em}.queue .queue-count b{font-size:1.5em;color:var(--amber);filter:drop-shadow(0 0 12px rgba(242,201,76,.4))}.queue .queue-when b{color:var(--amber)}.queue .queue-when{color:var(--muted);min-height:1.4em}.queue .queue-box .lobby-hint{display:inline-flex;align-items:center;gap:.35em;flex-wrap:wrap;justify-content:center}.home,.lobby,.results,.ladder{margin:auto;padding:1em 0}@media(orientation:landscape)and (max-height:480px){.home{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"logo actions" "who actions" "mounts actions" "blurb actions" "error actions" "footer footer";align-items:center;align-content:center;column-gap:1.5em;row-gap:.4em;width:min(46em,94vw);padding:.6em 0}.home>picture{grid-area:logo;justify-self:center}.home-logo{width:min(100%,17rem);margin:-.8rem 0 -.4rem}.home>.who,.home>.gate-intro{grid-area:who}.home>.mounts{grid-area:mounts;margin:.7em 0 0}.home>.mount-blurb{grid-area:blurb}.home>.buttons,.home>.gate{grid-area:actions;align-self:center}.home>.home-error{grid-area:error}.home>.home-footer{grid-area:footer;margin-top:0}.home .buttons{gap:.4em}.home .gate{gap:.5em}.home input,.home button{padding:.5em 1em}.lobby,.results{gap:.6em;padding:.6em 0}.lobby .room-code{font-size:.9em}.results .champion .crown{font-size:1.6rem}}.loading,.crash{text-align:center;opacity:.8}.crash pre{white-space:pre-wrap;max-width:40em;opacity:.7}.update-banner{position:fixed;left:50%;bottom:1.5rem;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:.85rem;padding:.55rem .7rem .55rem 1rem;border-radius:.7rem;background:#121426f5;border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 34px #00000080;font-size:.9rem;white-space:nowrap}.update-banner button{padding:.35rem .9rem;font-size:.85rem}@media(prefers-reduced-motion:reduce){.stage-bg .glow,.stage-bg .bolt,button.primary:after,.queue .radar .ring.pulse{animation:none}}
