.hud{position:fixed;inset:0;pointer-events:none;z-index:10;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;color:#deecffe6}.hud-health{position:absolute;left:0;top:0;opacity:0;will-change:transform,opacity}.hud-light{position:absolute;left:0;top:0;opacity:0;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#ffdeaae6;white-space:nowrap;will-change:transform,opacity}.hud-score{position:absolute;left:0;top:0;opacity:0;text-align:center;will-change:transform,opacity}.hud-score-value{font-size:30px;font-weight:600;letter-spacing:.08em;color:#e6f0ffd1;text-shadow:0 0 14px rgba(120,190,255,.35)}.hud-score.pop .hud-score-value{animation:hud-pop .45s cubic-bezier(.2,.9,.3,1.2)}.hud-score-note{margin-top:2px;font-size:11px;letter-spacing:.22em;color:#ffd68ccc;text-transform:uppercase}@keyframes hud-pop{0%{transform:scale(.8);opacity:.4}60%{transform:scale(1.12)}to{transform:scale(1);opacity:1}}.hud-beacon{position:absolute;left:0;top:0;opacity:0;will-change:transform,opacity}.hud-beacon-icon{position:absolute;left:-7px;top:-7px;width:14px;height:14px;box-sizing:border-box;border:1.5px solid rgba(255,200,110,.9);box-shadow:0 0 10px #ffbe5a66}.hud-beacon.offscreen .hud-beacon-icon{border:none;box-shadow:none;width:0;height:0;left:-6px;top:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:13px solid rgba(255,200,110,.9);filter:drop-shadow(0 0 5px rgba(255,190,90,.5))}.hud-beacon-label{position:absolute;left:0;top:13px;transform:translate(-50%);font-size:11px;letter-spacing:.14em;white-space:nowrap;color:#ffdca0d9;text-shadow:0 0 8px rgba(0,0,0,.6)}.hud-threat{position:absolute;left:0;top:0;width:0;height:0;margin:-5px 0 0 -4px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:9px solid rgba(255,90,80,.75);opacity:0;transition:opacity .25s;will-change:transform}.hud-reticle{position:absolute;left:-6px;top:-6px;width:12px;height:12px;box-sizing:border-box;border-radius:50%;border:1px solid rgba(200,235,255,.45);opacity:0;transition:opacity .4s;will-change:transform}.hud-pilot{position:absolute;left:0;top:0;font-size:11px;letter-spacing:.14em;white-space:nowrap;color:#ffd8aae6;text-shadow:0 0 8px rgba(255,150,70,.45);will-change:transform,opacity}.hud-gate{position:absolute;left:0;top:0;text-align:center;white-space:nowrap;opacity:0;transition:opacity .4s;will-change:transform,opacity}.hud-gate-name{font-size:13px;font-weight:600;letter-spacing:.32em;color:#e1fff0f2;text-shadow:0 0 12px rgba(80,255,190,.5)}.hud-gate-sub{margin-top:3px;font-size:10px;letter-spacing:.2em;color:#d2ebffb3}.hud-vignette{position:absolute;inset:0;opacity:0;mix-blend-mode:screen}.hud-vignette-hurt{background:radial-gradient(ellipse at center,#ff3c1400 45%,#ff461e8c 80%,#ff280ae6)}.hud-vignette-heal{background:radial-gradient(ellipse at center,#50ffbe00 50%,#5affc866 82%,#3cffb4bf)}:root{--ui-font: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--ui-ink: rgba(220, 236, 255, .9);--ui-ink-dim: rgba(220, 236, 255, .58);--ui-ink-faint: rgba(220, 236, 255, .3);--ui-head: rgba(160, 200, 255, .62);--ui-glow: 0 0 14px rgba(120, 180, 255, .45), 0 1px 2px rgba(0, 0, 0, .6);--ui-scene-glow: 0 0 2px rgba(0, 0, 0, .9), 0 0 10px rgba(0, 0, 0, .55), 0 0 22px rgba(110, 170, 255, .4);--ui-gold: rgba(255, 214, 140, .95);--ui-warm: rgba(255, 220, 176, .95)}@keyframes ui-fade-in{0%{opacity:0}}@keyframes ui-breathe{50%{opacity:.5}}.ui-typed{font-size:16px;font-weight:500;line-height:2;letter-spacing:.26em;padding-left:.26em;text-transform:uppercase;text-shadow:var(--ui-scene-glow);text-wrap:balance;transition:opacity .5s ease}.ui-typed .ui-ch{opacity:0;transition:opacity .14s ease-out}.ui-typed.on .ui-ch{opacity:1;transition-delay:calc(var(--i) * 32ms)}.ui-typed.out{opacity:0}.ui-chip{display:inline-block;min-width:1.05em;margin:0 .3em 0 .04em;padding:.14em .42em .2em;border-radius:5px;line-height:1.2;letter-spacing:0;text-align:center;color:#f4f9ff;background:linear-gradient(180deg,#96bef080,#40629680);box-shadow:inset 0 1px #ffffff61,inset 0 -2px #00000059,0 1px 2px #00000080,0 0 12px #96c8ff4d;text-shadow:0 1px 0 rgba(0,0,0,.5)}.ui-tutorial{position:fixed;inset:0;z-index:30;pointer-events:none;font-family:var(--ui-font);color:var(--ui-ink)}.ui-tut-text{position:absolute;left:50%;top:25%;width:min(92vw,940px);transform:translate(-50%,-50%);text-align:center}.ui-sendoff .ui-typed{line-height:2.1}.ui-sendoff .ui-typed:last-child{margin-top:.7em}.ui-tut-left,.ui-tut-right{position:absolute;top:67%;transform:translateY(-50%)}.ui-tut-left{left:max(7vw,calc(env(safe-area-inset-left) + 24px))}.ui-tut-right{right:max(8vw,calc(env(safe-area-inset-right) + 24px))}.ui-keys{display:flex;flex-direction:column;align-items:center;gap:8px}.ui-keys-row{display:flex;gap:8px}.ui-key{position:relative;width:58px;height:58px;border-radius:12px;background:linear-gradient(180deg,#060a1480,#03060e9e);box-shadow:inset 0 0 0 1px #78a0dc33,0 4px 12px #00000059;opacity:0;transform:translateY(8px);transition:opacity .9s ease,transform .9s ease,box-shadow .4s ease}.ui-keys.show .ui-key{opacity:1;transform:none;transition-delay:calc(var(--order) * .15s)}.ui-key-gap{visibility:hidden}.ui-key-cap{position:absolute;inset:3px 4px 8px;display:grid;place-items:center;isolation:isolate;border-radius:8px;font:700 21px var(--ui-font);color:#f0f8fffa;text-shadow:0 1px 0 rgba(0,0,0,.55);box-shadow:inset 0 0 0 1px #bedcff47,0 2px #00000073;transition:color .35s ease,transform .18s ease}.ui-key-cap:before,.ui-key-cap:after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit}.ui-key-cap:before{background:linear-gradient(180deg,#a0c6f59e,#3e609699);box-shadow:inset 0 1px #fff6,inset 0 -1px #0000004d;transition:opacity .45s ease}.ui-key-cap:after{background:#e9f4ff;box-shadow:0 0 26px #bee1ffd9;opacity:0;transition:opacity .22s ease-out}.ui-key[data-level="1"] .ui-key-cap{color:#f0f8ffb8}.ui-key[data-level="1"] .ui-key-cap:before{opacity:.4}.ui-key[data-level="0"] .ui-key-cap{color:#dcecff4d}.ui-key[data-level="0"] .ui-key-cap:before{opacity:.07}.ui-keys.show .ui-key[data-asked]{transform:scale(1.08);transition-delay:0s;box-shadow:0 0 0 2px #e1f2fff2,0 0 26px 3px #96d2ffa6,0 4px 12px #00000059;animation:ui-key-asked 1.4s ease-in-out infinite}@keyframes ui-key-asked{50%{box-shadow:0 0 0 2px #f0faff,0 0 44px 8px #a0d7ffe6,0 4px 12px #00000059}}.ui-key[data-held] .ui-key-cap{color:#0b1524;text-shadow:none;transform:translateY(2px);transition:none}.ui-key[data-held] .ui-key-cap:after{opacity:1;transition:none}.ui-mouse{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;opacity:0;transition:opacity .8s ease}.ui-mouse.show{opacity:1}.ui-mouse-arrows{position:absolute;top:30px;left:50%;transform:translate(-50%);display:flex;gap:96px;font-size:26px;font-weight:600;color:var(--ui-ink-dim);text-shadow:var(--ui-scene-glow);transition:opacity .4s ease}.ui-mouse-arrows span{animation:ui-nudge 1.5s ease-in-out infinite}.ui-mouse-arrows span:first-child{--dx: -5px}.ui-mouse-arrows span:last-child{--dx: 5px;animation-delay:.75s}@keyframes ui-nudge{50%{transform:translate(var(--dx));opacity:1;color:var(--ui-ink)}}.ui-mouse-body{position:relative;width:60px;height:94px;border-radius:30px 30px 27px 27px;border:2px solid rgba(220,238,255,.85);background:linear-gradient(180deg,#1e32548c,#060c1899);box-shadow:0 0 22px #96c8ff59,0 4px 14px #00000073,inset 0 1px #c8e1ff40;overflow:hidden;animation:ui-wiggle 2.6s ease-in-out infinite}@keyframes ui-wiggle{0%,to{transform:translate(-7px) rotate(-3deg)}25%{transform:translateY(-3px)}50%{transform:translate(7px) rotate(3deg)}75%{transform:translateY(3px)}}.ui-mouse-seam{position:absolute;left:50%;top:0;width:2px;height:36px;margin-left:-1px;background:#dceeff99}.ui-mouse-seam:after{content:"";position:absolute;top:36px;left:-30px;width:62px;height:1.5px;background:#dceeff59}.ui-mouse-wheel{position:absolute;left:50%;top:11px;width:6px;height:13px;margin-left:-3px;border-radius:3px;background:#ebf5fff2;box-shadow:0 0 8px #b4dcffcc}.ui-mouse-button{position:absolute;left:0;top:0;width:50%;height:36px;background:linear-gradient(180deg,#fff4de,#ffbe78d9);box-shadow:0 0 22px #ffc882e6;opacity:0;transition:opacity .45s ease}.ui-mouse-track{width:110px;height:1px;margin-top:6px;background:#c8e1ff14;transition:opacity .4s ease}.ui-mouse-progress{height:100%;background:#d2e6ff52;transform-origin:left;transform:scaleX(0);transition:transform .9s ease-out}.ui-mouse[data-mode=shoot] .ui-mouse-arrows,.ui-mouse[data-mode=shoot] .ui-mouse-track{opacity:0}.ui-mouse[data-mode=shoot] .ui-mouse-body{animation:none}.ui-mouse[data-mode=shoot] .ui-mouse-button[data-level="2"]{opacity:1;animation:ui-click 1.1s ease-in-out infinite}.ui-mouse[data-mode=shoot] .ui-mouse-button[data-level="1"]{opacity:.45;animation:ui-click 1.1s ease-in-out infinite}.ui-mouse[data-mode=shoot] .ui-mouse-button[data-level="0"]{opacity:.08}@keyframes ui-click{50%{filter:brightness(1.35)}}.ui-drag,.ui-tap{position:absolute;left:30%;top:62%;opacity:0;transition:opacity .8s ease}.ui-drag.show,.ui-tap.show{opacity:1}.ui-drag-trail{position:absolute;left:-44px;top:-1px;width:88px;height:2px;background:linear-gradient(90deg,transparent,rgba(220,236,255,.28),transparent)}.ui-drag-dot,.ui-tap-dot{position:absolute;left:-11px;top:-11px;width:22px;height:22px;border-radius:50%;background:#e6f2ff33;box-shadow:inset 0 0 0 1.5px #e6f2ffbf,0 0 16px #96c8ff73}.ui-drag-dot{animation:ui-drag 2.2s ease-in-out infinite}@keyframes ui-drag{0%,to{transform:translate(-40px,6px)}50%{transform:translate(40px,-6px)}}.ui-tap-ring{position:absolute;left:-11px;top:-11px;width:22px;height:22px;border-radius:50%;box-shadow:inset 0 0 0 1px #e6f2ffb3;animation:ui-ripple 1.6s ease-out infinite}.ui-tap-ring+.ui-tap-ring{animation-delay:.4s}@keyframes ui-ripple{0%{transform:scale(1);opacity:.9}to{transform:scale(3.2);opacity:0}}.ui-edges{opacity:0;transition:opacity .8s ease}.ui-edges.show{opacity:1}.ui-edge{position:absolute;top:30%;width:4px;height:40%;background:#ffffff38;overflow:hidden}.ui-edge-left{left:max(8px,calc(env(safe-area-inset-left) + 4px))}.ui-edge-right{right:max(8px,calc(env(safe-area-inset-right) + 4px))}.ui-edge:after{content:"";position:absolute;left:0;right:0;height:35%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.85),transparent);animation:ui-sweep 1.8s ease-in-out infinite}.ui-edge-right:after{animation-direction:reverse}@keyframes ui-sweep{0%{top:-35%}to{top:100%}}body[data-tutorial=throttle] .touch-throttle{animation:ui-throttle 1.4s ease-in-out infinite}@keyframes ui-throttle{50%{box-shadow:0 0 0 1.5px #fffc,0 0 28px #dceeffa6}}.ui-hint{position:fixed;left:50%;top:37%;z-index:31;width:min(92vw,940px);transform:translate(-50%);text-align:center;pointer-events:none;font-family:var(--ui-font);color:var(--ui-warm);transition:opacity .7s ease}.ui-hint .ui-typed{font-size:14px;letter-spacing:.2em;padding-left:.2em;text-shadow:0 0 2px rgba(0,0,0,.95),0 0 10px rgba(0,0,0,.65),0 0 24px rgba(255,160,80,.35)}.ui-hint.out{opacity:0}.ui-death{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);pointer-events:none;font-family:var(--ui-font);color:var(--ui-ink);text-align:center;text-shadow:var(--ui-scene-glow);background:radial-gradient(ellipse 60% 70% at 50% 50%,rgba(2,4,10,.5),transparent 75%);opacity:0;transition:opacity .9s ease}.ui-death.show{opacity:1}.ui-death-main{display:flex;flex-direction:column;align-items:center}.ui-death-title{font-size:12px;letter-spacing:.7em;padding-left:.7em;text-transform:uppercase;color:var(--ui-ink-dim)}.ui-death-score{margin-top:8px;font-size:68px;font-weight:300;letter-spacing:.06em;padding-left:.06em;font-variant-numeric:tabular-nums;color:#eef6ff;text-shadow:0 0 34px rgba(120,180,255,.55),0 0 3px rgba(255,255,255,.35),0 1px 2px rgba(0,0,0,.6)}.ui-death-best{margin-top:4px;font-size:11px;letter-spacing:.5em;padding-left:.5em;text-transform:uppercase;color:var(--ui-gold);text-shadow:0 0 16px rgba(255,190,90,.6),0 1px 2px rgba(0,0,0,.6)}.ui-death-stats{margin-top:12px;font-size:12px;line-height:1.8;letter-spacing:.14em;color:var(--ui-ink-dim);text-wrap:balance}.ui-stat{white-space:nowrap}.ui-stat+.ui-stat:before{content:"·";margin:0 .9em;opacity:.6}.ui-board{width:min(400px,88vw);margin-top:34px;font-size:13px;letter-spacing:.1em}.ui-board-wait{color:var(--ui-ink-faint);letter-spacing:.4em;animation:ui-breathe 1.6s ease-in-out infinite}.ui-row{position:relative;display:grid;grid-template-columns:2.4em minmax(0,1fr) auto;gap:1.2em;padding:3px 0;text-align:left;color:#dcecffa3;animation:ui-row-in .7s ease backwards;animation-delay:calc(var(--n) * 55ms)}@keyframes ui-row-in{0%{opacity:0;transform:translateY(5px)}}.ui-row-rank{color:var(--ui-ink-faint);font-variant-numeric:tabular-nums}.ui-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-row-score{text-align:right;font-variant-numeric:tabular-nums}.ui-row[data-medal="1"] .ui-row-rank{color:#ffd682f2}.ui-row[data-medal="2"] .ui-row-rank{color:#dce8fae6}.ui-row[data-medal="3"] .ui-row-rank{color:#e6a674e6}.ui-row.me{color:#f2f8ff;text-shadow:0 0 12px rgba(150,205,255,.8),0 1px 2px rgba(0,0,0,.6)}.ui-row.me:before{content:"›";position:absolute;left:-1.3em;color:#c8e4fff2}.ui-row-gap{display:block;text-align:center;color:var(--ui-ink-faint);letter-spacing:.5em;padding:0;line-height:1}.ui-claim{display:flex;align-items:baseline;justify-content:center;gap:16px;margin:30px 0 0;pointer-events:auto}.ui-claim-label{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--ui-ink-dim)}.ui-claim-input{width:15em;padding:4px 2px;border:0;border-bottom:1px solid rgba(200,225,255,.26);border-radius:0;background:transparent;color:var(--ui-ink);font:14px var(--ui-font);letter-spacing:.1em;text-shadow:var(--ui-scene-glow);caret-color:#bfe0ff;outline:none;-webkit-user-select:text;user-select:text;transition:border-color .3s ease}.ui-claim-input::placeholder{color:#dcecff4d}.ui-claim-input:focus{border-bottom-color:#d2e8ffbf}.ui-claim-done{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--ui-ink-dim);animation:ui-fade-in .8s ease}.ui-death-prompt{margin-top:40px;font-size:12px;letter-spacing:.42em;padding-left:.42em;text-transform:uppercase;opacity:0;transition:opacity 1.2s ease}.ui-death-prompt.show{opacity:1;animation:ui-breathe 2.8s ease-in-out 1.2s infinite}.ui-info-btn{position:fixed;top:calc(env(safe-area-inset-top) + 14px);left:calc(env(safe-area-inset-left) + 14px);z-index:60;width:24px;height:24px;padding:0;border:1px solid rgba(210,230,255,.45);border-radius:50%;background:transparent;color:var(--ui-ink);font:600 12px/1 var(--ui-font);text-shadow:var(--ui-glow);cursor:pointer;opacity:.45;transition:opacity .25s ease;-webkit-tap-highlight-color:transparent}.ui-info-btn:before{content:"";position:absolute;inset:-12px}.ui-info-btn:hover,.ui-info-btn:focus-visible{opacity:1;outline:none}.ui-info{position:fixed;inset:0;z-index:90;display:grid;place-items:center;box-sizing:border-box;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:#02040a6b;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--ui-font);color:var(--ui-ink);opacity:0;transition:opacity .3s ease}.ui-info.show{opacity:1}.ui-info-panel{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0 48px;width:min(800px,100%);max-height:100%;overflow:auto;box-sizing:border-box;padding:36px 42px 32px;border-radius:14px;background:#070c18bd;box-shadow:0 24px 90px #0000008c,inset 0 0 0 1px #a0c8ff12;transform:translateY(10px);transition:transform .35s ease;-webkit-user-select:none;user-select:none}.ui-info.show .ui-info-panel{transform:none}.ui-info-close{position:absolute;top:12px;right:14px;padding:8px;border:0;background:none;color:var(--ui-ink-dim);font:14px var(--ui-font);cursor:pointer;transition:color .2s ease}.ui-info-close:hover{color:var(--ui-ink)}.ui-info-title{margin:0 0 14px;font-size:17px;font-weight:600;letter-spacing:.55em;text-shadow:var(--ui-glow)}.ui-info-about{margin:0;font-size:12px;line-height:1.75;color:var(--ui-ink-dim)}.ui-info-head{margin:26px 0 10px;font-size:10px;font-weight:600;letter-spacing:.42em;text-transform:uppercase;color:var(--ui-head)}.ui-info-col>.ui-info-head:first-child{margin-top:36px}.ui-info-play{margin:0;padding:0;list-style:none;font-size:12px;line-height:1.65}.ui-info-play li+li{margin-top:5px}.ui-info-controls{display:grid;grid-template-columns:repeat(4,max-content);gap:7px 12px;margin:0;font-size:12px}.ui-info-controls dt{letter-spacing:.12em;white-space:pre}.ui-info-controls dd{margin:0 22px 0 0;color:var(--ui-ink-dim);white-space:nowrap}.ui-set{display:grid;grid-template-columns:5.6em minmax(0,1fr) 2.6em;align-items:center;gap:12px;min-height:30px;font-size:12px}.ui-set-label{color:var(--ui-ink-dim);letter-spacing:.1em}.ui-set-value{text-align:right;color:var(--ui-ink-dim);font-variant-numeric:tabular-nums}.ui-seg{grid-column:2 / 4;display:flex;gap:16px}.ui-seg-opt,.ui-link{padding:4px 0;border:0;background:none;font:inherit;letter-spacing:.08em;cursor:pointer;-webkit-tap-highlight-color:transparent}.ui-seg-opt{color:var(--ui-ink-faint);transition:color .2s ease}.ui-seg-opt:hover{color:var(--ui-ink-dim)}.ui-seg-opt.on{color:var(--ui-ink);text-shadow:var(--ui-glow);box-shadow:inset 0 -1px #d2e8ff99}.ui-link{color:var(--ui-ink);text-decoration:underline;text-decoration-color:#d2e8ff59;text-underline-offset:3px}.ui-info-reload{max-height:0;overflow:hidden;padding-left:calc(5.6em + 12px);font-size:11px;color:var(--ui-ink-faint);opacity:0;transition:opacity .4s ease,max-height .4s ease}.ui-info-reload.show{max-height:2.4em;opacity:1}.ui-set-track{display:flex;align-items:baseline;gap:12px;margin-top:4px;padding-left:calc(5.6em + 12px);font-size:12px}.ui-track{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-ink-dim)}.ui-music-toggle{color:var(--ui-ink-faint);text-decoration-color:#d2e8ff33}.ui-music-toggle.on{color:var(--ui-ink)}.ui-range{--fill: 50%;width:100%;height:18px;margin:0;background:transparent;cursor:pointer;-webkit-appearance:none;appearance:none}.ui-range:focus{outline:none}.ui-range::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,rgba(215,234,255,.72) var(--fill),rgba(215,234,255,.14) var(--fill))}.ui-range::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;margin-top:-4.5px;border-radius:50%;background:#e6f2ff;box-shadow:0 0 10px #96cdffcc}.ui-range::-moz-range-track{height:2px;background:#d7eaff24}.ui-range::-moz-range-progress{height:2px;background:#d7eaffb8}.ui-range::-moz-range-thumb{width:11px;height:11px;border:0;border-radius:50%;background:#e6f2ff;box-shadow:0 0 10px #96cdffcc}.ui-credit{display:inline-block;margin-top:30px;font-size:11px;letter-spacing:.14em;color:var(--ui-ink-faint);text-decoration:none;transition:color .2s ease}.ui-credit:hover{color:var(--ui-ink)}.ui-rotate{position:fixed;inset:0;z-index:150;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;background:#02040a;color:var(--ui-ink);font:12px var(--ui-font);letter-spacing:.42em;padding-left:.42em;text-transform:uppercase;text-shadow:var(--ui-glow);touch-action:none;animation:ui-fade-in .5s ease}.ui-rotate-phone{position:relative;width:36px;height:64px;border-radius:8px;box-shadow:inset 0 0 0 1.5px #dcecffd9,0 0 22px #78b4ff59;animation:ui-rotate 3s ease-in-out infinite}.ui-rotate-phone:after{content:"";position:absolute;left:50%;bottom:5px;width:12px;height:1.5px;margin-left:-6px;background:#dcecffb3}@keyframes ui-rotate{0%,20%{transform:rotate(0)}50%,80%{transform:rotate(-90deg)}to{transform:rotate(0)}}.ui-fs-exit{position:fixed;top:calc(env(safe-area-inset-top) + 4px);right:calc(env(safe-area-inset-right) + 4px);z-index:70;width:40px;height:40px;padding:0;border:0;background:none;color:#dcecff80;font:14px var(--ui-font);text-shadow:0 0 8px rgba(0,0,0,.7);touch-action:manipulation;-webkit-tap-highlight-color:transparent;animation:ui-fade-in .6s ease}.ui-fs-exit:active{color:var(--ui-ink)}@media(max-height:500px){.ui-typed{font-size:12.5px;letter-spacing:.2em;padding-left:.2em}.ui-hint .ui-typed{font-size:11.5px;letter-spacing:.16em}.ui-tut-text{top:22%}.ui-key{width:46px;height:46px;border-radius:10px}.ui-key-cap{font-size:17px;border-radius:7px}.ui-death{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"main board" "claim board" "prompt prompt";align-content:center;column-gap:7vw;padding-left:max(7vw,env(safe-area-inset-left));padding-right:max(7vw,env(safe-area-inset-right))}.ui-death-main{grid-area:main;align-self:end}.ui-death-score{font-size:50px}.ui-board{grid-area:board;align-self:center;width:auto;margin-top:0;font-size:12px}.ui-claim{grid-area:claim;align-self:start;flex-direction:column;align-items:center;gap:6px;margin-top:20px}.ui-death-prompt{grid-area:prompt;margin-top:26px}.ui-info-panel{padding:22px 28px 20px;gap:0 36px}.ui-info-head{margin-top:18px}.ui-info-col>.ui-info-head:first-child{margin-top:28px}.ui-credit{margin-top:18px}}@media(max-width:640px){.ui-info-panel{grid-template-columns:minmax(0,1fr)}.ui-info-col>.ui-info-head:first-child{margin-top:26px}}@media(prefers-reduced-motion:reduce){.ui-key[data-asked],.ui-mouse-body,.ui-mouse-arrows span,.ui-drag-dot,.ui-tap-ring,.ui-edge:after,.ui-rotate-phone,.ui-death-prompt.show{animation:none}}.ui-top{position:fixed;top:50%;right:calc(22px + env(safe-area-inset-right));width:230px;transform:translate(12px,-50%);opacity:0;transition:opacity .9s ease,transform .9s ease;pointer-events:none;z-index:25;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,monospace;font-size:11px;letter-spacing:.1em}.ui-top.on{opacity:1;transform:translateY(-50%)}.ui-top:before{content:"";position:absolute;inset:-34px -40px;z-index:-1;background:radial-gradient(closest-side,#02040a9e,#02040a00)}.ui-top .ui-row{text-shadow:0 1px 3px rgba(0,0,0,.85)}.ui-top-title{margin-bottom:6px;font-size:10px;letter-spacing:.36em;text-transform:uppercase;color:#aacdff8c}body.mobile .ui-top{right:calc(64px + env(safe-area-inset-right));width:200px}.ui-welcome{position:fixed;left:0;right:0;top:38%;text-align:center;pointer-events:none;z-index:29;opacity:0;font:700 22px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.5em;padding-left:.5em;text-transform:uppercase;color:#c8dcffe6;text-shadow:0 0 24px rgba(110,170,255,.45),0 1px 2px rgba(0,0,0,.6)}body.mobile .ui-welcome{font-size:16px}:root{--ink: rgba(222, 236, 255, .92);--ink-dim: rgba(200, 220, 255, .55);--glow: rgba(120, 190, 255, .45);--font: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace}html,body{margin:0;height:100%;background:#02040a;overflow:hidden;color:var(--ink);font-family:var(--font);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}canvas#game{display:block;width:100vw;height:100vh;height:100dvh;touch-action:none}.stats{position:fixed;top:8px;left:8px;padding:6px 8px;background:#0408108c;border-radius:6px;pointer-events:none;z-index:50}.stats pre{margin:4px 0 0;font:11px/1.35 var(--font);color:var(--ink)}.touch-ui{position:fixed;inset:0;pointer-events:none;opacity:0;transition:opacity .8s ease;z-index:20}.touch-ui.active{opacity:1}.touch-anchor,.touch-dot{position:absolute;left:0;top:0;border-radius:50%;transition:opacity .25s ease;will-change:transform}.touch-anchor{width:10px;height:10px;margin:-5px 0 0 -5px;background:#ffffffd9}.touch-dot{width:18px;height:18px;margin:-9px 0 0 -9px;border:1.5px solid rgba(255,214,120,.85)}.touch-throttle{position:absolute;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));width:34px;height:min(46vh,220px);border-radius:4px;border:1px solid rgba(200,225,255,.35);pointer-events:auto;touch-action:none;overflow:hidden}.touch-throttle-fill{position:absolute;left:0;right:0;bottom:0;height:calc(var(--cruise, 0) * 100%);background:linear-gradient(to top,color-mix(in srgb,#ff5a4a calc((1 - var(--light, 1)) * 100%),#64ffcc),#64ffcc40);opacity:.6}.tune-badge{position:fixed;right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));padding:4px 8px;font:11px var(--font);color:#ffcf80;background:#281804b3;border:1px solid rgba(255,200,110,.35);border-radius:4px;cursor:pointer;z-index:60;display:none}.lil-gui.root{z-index:70}
