:root{color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:#0b0810;color:#e8e4d8;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}h1,h2,h3{text-transform:uppercase;letter-spacing:.12em;font-weight:700}.app{overflow-y:auto;width:100vw;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center}.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:-2.3rem 0 -3.5rem;pointer-events:none;-webkit-user-select:none;user-select:none}.home input,.home button{font:inherit;text-transform:uppercase;letter-spacing:.08em}.home .handle-input{width:100%;padding:.6em;background:#171226;color:#e8e4d8;border:1px solid #4a4560;text-align:center}.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.4fr;gap:.4em}.home .join-row button{min-width:0}.home .join-row input{width:100%;min-width:0;padding:.6em;background:#171226;color:#e8e4d8;border:1px solid #4a4560;text-align:center}button{background:#2a2740;color:#e8e4d8;border:1px solid #4a4560;padding:.6em 1.6em;font:inherit;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;min-width:14em}button:hover:not(:disabled){background:#3a3555;border-color:#f2c94c;color:#f2c94c}button:disabled{opacity:.45;cursor:not-allowed}.lobby{display:flex;flex-direction:column;align-items:stretch;gap:1em;width:min(26em,92vw)}.lobby h2{margin:0;color:#f2c94c;text-align:center}.lobby .room-code{display:flex;align-items:center;justify-content:space-between;gap:.6em;padding:.6em .8em;border:1px solid #4a4560;border-radius:6px;background:#171226}.lobby .room-code .code{font-size:1.8em;letter-spacing:.3em;color:#f2c94c;-webkit-user-select:all;user-select:all}.lobby .room-code button{padding:.5em 1em}.lobby .players{display:flex;flex-direction:column;gap:.3em;min-height:3em}.lobby .lobby-player{display:flex;justify-content:space-between;padding:.5em .8em;border:1px solid #2a2740;border-radius:6px}.lobby .lobby-player.me{border-color:#f2c94c}.lobby .lobby-player .status{opacity:.7;font-size:.85em}.lobby .lobby-player .status.off{color:#ffb3ad}.lobby .lobby-hint{text-align:center;opacity:.6;font-size:.9em}.lobby .lobby-error{padding:8px 12px;border:1px solid #e0554d;border-radius:6px;color:#ffb3ad;background:#e0554d1f;font-size:14px;text-align:center}.lobby .lobby-actions{display:flex;flex-direction:column;gap:.6em;align-items:stretch}.lobby button.ghost{background:transparent}.game{position:relative;width:100vw;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;background:#0b0810;touch-action:none;user-select:none;-webkit-user-select:none}.game canvas{display:block;box-shadow:0 0 40px #000c}.hud{position:absolute;top:.6em;left:.6em;display:flex;gap:.6em}.card{background:#0000008c;border-left:3px solid #f2c94c;padding:.35em .7em;min-width:8em}.card .handle{font-weight:700}.card .score{margin-left:.5em;color:#f2c94c}.card .lives{display:block;color:#5ad469;letter-spacing:.05em}.card .hunt{margin-left:.5em;color:#ff9a30;font-size:.85em}.card.dead{opacity:.55}.banner{position:absolute;top:32%;left:0;right:0;text-align:center;font-size:2.6rem;color:#f2c94c;text-shadow:0 0 16px rgba(0,0,0,.9);pointer-events:none;animation:banner-in .35s ease-out}@keyframes banner-in{0%{transform:translateY(-48px);opacity:0}to{transform:translateY(0);opacity:1}}.pops{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.score-pop{position:fixed;transform:translate(-50%,-50%);color:#f2c94c;font-size:1.2rem;font-weight:700;text-shadow:0 0 8px rgba(0,0,0,.9);animation:score-pop .8s ease-out forwards}@keyframes score-pop{0%{opacity:0;transform:translate(-50%,-30%)}20%{opacity:1}to{opacity:0;transform:translate(-50%,-130%)}}.toasts{position:absolute;bottom:1.2em;left:50%;transform:translate(-50%);display:flex;gap:.5em}.toast{background:#0009;border:1px solid #5ad469;padding:.35em .8em;color:#5ad469}.home-footer{margin-top:24px;display:flex;flex-direction:column;gap:6px;align-items:center;opacity:.7;font-size:12px}.home-footer .link{background:none;border:none;color:inherit;cursor:pointer;text-decoration:underline;font:inherit;padding:0}.home-footer .credits{letter-spacing:.02em}.results-actions{display:flex;gap:.6em;justify-content:center;margin-top:.8em}.home-error{margin-top:12px;padding:8px 12px;border:1px solid #e0554d;border-radius:6px;color:#ffb3ad;background:#e0554d1f;font-size:14px;text-align:center}.home button:disabled{opacity:.55;cursor:progress}.home .mounts{display:flex;gap:.4em;width:100%;margin:.4em 0 .8em}.home .mount{flex:1 1 0;min-width:0;padding:.4em .3em;font-size:.85em;opacity:.55;border-color:#4a4560}.home .mount.on{opacity:1;border-color:#f2c94c;color:#f2c94c}.home .mount-blurb{margin:-.4em 0 .8em;font-size:.8em;opacity:.6;min-height:1.2em}.lobby-player .mount-tag{opacity:.7;font-size:.85em}.touch-zones{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:1fr 1fr 2fr;pointer-events:none}.touch-zones .zone{display:flex;align-items:flex-end;justify-content:center;padding-bottom:max(1.2em,env(safe-area-inset-bottom));font-size:1.6em;color:#f2c94c;opacity:.12;transition:opacity .6s}.touch-zones .zone.flap{letter-spacing:.3em}.touch-zones.hint .zone{opacity:.85}.touch-zones .steer-left{border-right:1px dashed rgba(242,201,76,.2)}.touch-zones .steer-right{border-right:1px dashed rgba(242,201,76,.35)}.rotate-overlay{display:none;position:absolute;top:0;right:0;bottom:0;left:0;background:#0b0810;flex-direction:column;align-items:center;justify-content:center;gap:.6em;text-transform:uppercase;letter-spacing:.1em;z-index:10}.rotate-overlay .phone{font-size:3em;transform:rotate(90deg)}@media(orientation:portrait)and (pointer:coarse){.rotate-overlay{display:flex}}@media(pointer:coarse){.hud{top:max(.4em,env(safe-area-inset-top));left:max(.4em,env(safe-area-inset-left));gap:.4em}.card{font-size:.75em;min-width:6em;padding:.25em .5em}.banner{font-size:1.4em}}.home,.lobby,.results,.ladder{margin:auto;padding:1em 0}@media(max-height:480px){.home-logo{width:min(88%,17rem);margin:-1.6rem 0 -2.4rem}.home{gap:.5em}.home .buttons{gap:.4em}.home input,.home button{padding:.4em 1em}.home-footer{margin-top:4px}}.game .quit{position:absolute;top:max(.5em,env(safe-area-inset-top));right:max(.5em,env(safe-area-inset-right));padding:.3em .7em;font-size:1em;opacity:.55;z-index:5}.game .quit:hover{opacity:1}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8em;background:#0b0810d9;z-index:20;text-align:center}.overlay-title{font-size:1.6em;color:#f2c94c;text-transform:uppercase;letter-spacing:.1em}.loading,.crash{text-align:center;opacity:.8}.crash pre{white-space:pre-wrap;max-width:40em;opacity:.7}.queue .queue-box{display:flex;flex-direction:column;align-items:center;gap:.5em;padding:1.4em 1em;border:1px solid #4a4560;border-radius:6px;background:#171226;text-align:center}.queue .queue-count{font-size:1.3em}.queue .queue-count b,.queue .queue-when b{color:#f2c94c}.queue .queue-when{opacity:.85;min-height:1.4em}.ladder .muted{opacity:.6;text-align:center}.home .who{display:flex;gap:.9em;align-items:baseline;flex-wrap:wrap;justify-content:center;color:#a9a4b8;font-size:.85em}.home .who b{color:#e8e4d8;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:#a9a4b8}.home .gate-hint{margin:0;color:#7f7a92;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 #f2c94c;background:#171226}.home .passcode-card p{margin:0}.home .passcode-label{color:#a9a4b8;font-size:.8em}.home .passcode{font-size:2.2rem;letter-spacing:.25em;color:#f2c94c;-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,.home .gate .link{background:none;border:none;color:#a9a4b8;cursor:pointer;text-decoration:underline;font:inherit;text-transform:lowercase;letter-spacing:.04em;padding:0;min-width:0}.home .who .link:hover,.home .gate .link:hover{color:#e8e4d8}.ladder .ladder-me{display:flex;flex-direction:column;gap:.4em;align-items:center}.ladder .around{margin-top:.4em;font-size:.9em}
