@font-face{font-family:Sora;src:url(../fonts/Sora-VF.subset.woff2)format("woff2");font-weight:100 800;font-display:swap}@font-face{font-family:Figtree;src:url(../fonts/Figtree-VF.subset.woff2)format("woff2");font-weight:300 900;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(../fonts/NotoSansSC-VF.subset.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{--ink:#120f2e;--ink-2:#1f1a47;--ink-3:#352d6e;--plate:#18143ad6;--cream:#fff6e6;--amber:#ffc861;--amber-2:#ff9f2e;--dust:#a8f6ff;--lilac:#c7a8ff;--coral:#ff6b81;--mint:#8ef5b0;--display:"Sora", "Noto Sans SC", system-ui, sans-serif;--body:"Figtree", "Noto Sans SC", system-ui, sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--notch:16px;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}:lang(zh-CN){--label-spacing:.08em;--display:"Noto Sans SC", "Sora", system-ui, sans-serif;--body:"Noto Sans SC", "Figtree", system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--cream);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;margin:0;overflow:hidden}#game{width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}button{font:inherit;color:inherit}.screen{opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s linear .3s;position:absolute;inset:0}.screen.is-active{opacity:1;visibility:visible;transition:opacity .3s}.screen.is-active :is(button,input,.modal){pointer-events:auto}.logo-text,.modal-title,.hud-clock b,.hud-dust b,.popup,.banner-name,.hud-streak b,.boot-logo,.logo-sub,.r-total,.hud-planet b{font-family:var(--display);paint-order:stroke fill;-webkit-text-stroke:.16em var(--ink);letter-spacing:.01em}.screen-boot{background:radial-gradient(120% 90% at 50% 40%, #2a2163 0%, var(--ink) 70%);flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex}.boot-emblem{width:56px;color:var(--amber);filter:drop-shadow(0 0 22px #ffbe50e6)drop-shadow(4px 5px #000);animation:2.4s ease-in-out infinite sway}.boot-logo{color:var(--amber);filter:drop-shadow(4px 5px #000);font-size:clamp(34px,7vw,64px);font-weight:900}.boot-bar{background:var(--ink-2);border:3px solid var(--ink-3);border-radius:8px;width:min(320px,70vw);height:14px;overflow:hidden;box-shadow:4px 4px #000}.boot-bar i{background:linear-gradient(90deg, var(--lilac), var(--dust));transform-origin:0;height:100%;transition:transform .3s;display:block;transform:scaleX(.04)}.boot-label{letter-spacing:.3em;text-transform:uppercase;opacity:.7;font-size:12px;font-weight:700}.menu{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.menu-row{flex-flow:wrap;justify-content:center;align-items:center;gap:16px}.btn{--skew:-9deg;cursor:pointer;min-width:270px;font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;text-align:left;color:var(--cream);isolation:isolate;background:0 0;border:0;outline:none;padding:14px 30px;font-size:21px;font-weight:800;transition:transform .14s cubic-bezier(.3,1.6,.5,1),color .14s;position:relative}:lang(zh-CN) .btn{letter-spacing:.12em;font-weight:900}.btn:before,.btn:after{content:"";transform:skewX(var(--skew));z-index:-1;border-radius:7px;position:absolute;inset:0}.btn:before{opacity:.75;background:#000;translate:6px 6px}.btn:after{background:var(--grain), linear-gradient(180deg, #3a3178f2, #1c1742f2);border:3px solid #fff6e638;box-shadow:inset 0 3px #ffffff1f,inset 0 -4px #00000040}.btn span{align-items:center;gap:12px;display:inline-flex;position:relative}.btn span:before{content:"";opacity:0;border-top:8px solid #0000;border-bottom:8px solid #0000;border-left:11px solid;width:0;height:0;margin-left:-23px;transition:all .14s;transform:translate(-8px)}.btn:is(:hover,:focus-visible,:focus){color:var(--ink);transform:translate(8px)scale(1.03)}.btn:is(:hover,:focus-visible,:focus):after{background:var(--grain), linear-gradient(180deg, #ffe7a8, var(--amber) 55%, var(--amber-2));border-color:#fff4d0;box-shadow:inset 0 3px #ffffff80,inset 0 -4px #a0460059}.btn:is(:hover,:focus-visible,:focus):before{background:var(--coral);opacity:1}.btn:is(:hover,:focus-visible,:focus) span:before{opacity:1;transform:none}.btn:active{transform:translate(8px)scale(.97)}.btn-primary{color:var(--amber)}.btn-primary:after{border-color:var(--amber)}.btn-alt{color:var(--dust)}.btn-alt:after{border-color:#a8f6ff99}.btn-small{min-width:0;padding:10px 22px;font-size:16px}.menu-row .btn{text-align:center;min-width:200px}.menu-row .btn span{justify-content:center}.menu-row .btn:is(:hover,:focus-visible,:focus){transform:translateY(-3px)scale(1.03)}kbd{background:var(--cream);min-width:1.9em;height:1.9em;color:var(--ink);font:800 .78em var(--display);vertical-align:.1em;border-radius:6px;place-items:center;margin:0 2px;padding:0 .45em;display:inline-grid;box-shadow:0 3px #000}kbd.wide{min-width:4.4em}kbd.round{background:var(--ink-3);color:var(--cream);border-radius:50%;padding:0;box-shadow:0 3px #000}kbd.a{background:#3fbf72}kbd.b{background:var(--coral)}kbd.mouse{border-radius:.65em;width:1.3em;min-width:1.3em;height:1.9em;padding:0;position:relative}kbd.mouse i{background:var(--ink);border-radius:1px;width:2px;height:.45em;margin-left:-1px;position:absolute;top:.3em;left:50%}.bottom-bar{padding:14px calc(26px + var(--safe-r)) calc(14px + var(--safe-b)) calc(26px + var(--safe-l));background:linear-gradient(#0000,#0a081cb3);justify-content:space-between;align-items:center;font-size:14px;font-weight:700;display:flex;position:absolute;bottom:0;left:0;right:0}.bottom-bar small{opacity:.55;font-size:11px;font-weight:500}.prompts{gap:22px;display:flex}.prompts span{align-items:center;gap:6px;display:inline-flex}.title-vignette{background:linear-gradient(90deg,#0c0922d1 0%,#0c092266 40%,#0000 66%),radial-gradient(140% 100%,#0000 55%,#08061899);position:absolute;inset:0}.title-block{left:calc(clamp(24px, 7vw, 110px) + var(--safe-l));flex-direction:column;gap:16px;display:flex;position:absolute;top:50%;transform:translateY(-54%)}.screen-title.is-active .title-block>*{animation:.7s cubic-bezier(.2,1.2,.4,1) both rise}.screen-title.is-active .tagline{animation-delay:80ms}.screen-title.is-active .menu{animation-delay:.16s}.logo{align-items:center;gap:18px;display:flex}.logo-lantern{width:clamp(46px,6vw,70px);color:var(--amber);filter:drop-shadow(0 0 22px #ffbe50d9)drop-shadow(5px 6px #000);transform-origin:50% 0;animation:3s ease-in-out infinite sway}.logo-words{flex-direction:column;gap:4px;display:flex}.logo-text{text-transform:uppercase;background:linear-gradient(180deg, #fffaf0 0%, #ffe6a6 38%, var(--amber) 62%, var(--amber-2) 100%);color:#0000;-webkit-text-stroke:.08em var(--ink);filter:drop-shadow(.05em .07em #000);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(52px,9.5vw,116px);font-style:italic;font-weight:800;line-height:.92}:lang(zh-CN) .logo-text{letter-spacing:.08em;-webkit-text-stroke:.045em var(--ink);filter:drop-shadow(.04em .05em #000);font-style:normal;font-weight:900}.logo-sub{letter-spacing:.34em;text-transform:uppercase;color:var(--dust);-webkit-text-stroke:.2em var(--ink);filter:drop-shadow(3px 3px #000);padding-left:.2em;font-size:clamp(15px,2vw,24px);font-weight:800}.tagline{opacity:.92;text-shadow:0 2px #000;max-width:34ch;margin:0 0 14px;font-size:clamp(15px,1.6vw,19px);font-weight:600;line-height:1.45}.title-best{top:calc(22px + var(--safe-t));right:calc(26px + var(--safe-r));background:var(--plate);border:3px solid var(--amber);font:800 15px var(--display);color:var(--amber);border-radius:999px;padding:9px 20px;position:absolute;box-shadow:4px 4px #000}.title-controls{right:calc(26px + var(--safe-r));bottom:calc(58px + var(--safe-b));text-shadow:0 2px #000;opacity:.9;flex-direction:column;align-items:flex-end;gap:8px;font-size:14px;font-weight:700;display:flex;position:absolute}.title-controls span{align-items:center;gap:6px;display:inline-flex}.is-hidden{display:none!important}.screen-modal{-webkit-backdrop-filter:blur(6px)saturate(.8);background:#0a081e8c;place-items:center;display:grid}.modal{background:var(--grain), linear-gradient(180deg, #342c70f7, #161236f7);width:min(460px,100vw - 32px);max-height:calc(100dvh - 24px);clip-path:polygon(var(--notch) 0, 100% 0, 100% calc(100% - var(--notch)), calc(100% - var(--notch)) 100%, 0 100%, 0 var(--notch));scrollbar-width:thin;border:3px solid #fff6e62e;flex-direction:column;align-items:center;gap:20px;padding:30px 34px 32px;display:flex;position:relative;overflow:auto;box-shadow:inset 0 3px #ffffff1a}.screen-modal.is-active .modal{animation:.36s cubic-bezier(.2,1.4,.4,1) both pop}.modal:before{content:"";background:linear-gradient(90deg, var(--lilac), var(--dust) 50%, var(--amber));height:6px;position:absolute;top:0;left:0;right:0}.modal .menu{align-items:stretch;width:100%}.modal .menu:not(.menu-row) .btn{text-align:center;min-width:0}.modal .menu:not(.menu-row) .btn span{justify-content:center}.modal .menu:not(.menu-row) .btn:is(:hover,:focus-visible,:focus){transform:scale(1.04)}.modal-wide{width:min(780px,100vw - 32px)}.modal-title{text-transform:uppercase;color:var(--cream);text-align:center;filter:drop-shadow(3px 4px #000);margin:0;font-size:clamp(32px,5vw,46px);font-style:italic;font-weight:800}:lang(zh-CN) .modal-title{letter-spacing:.1em;font-style:normal;font-weight:900}.pause-progress{opacity:.8;text-align:center;margin:-8px 0 0;font-weight:700}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px 22px;width:100%;display:grid}fieldset{background:#0a081e59;border:2px solid #fff6e61f;border-radius:12px;margin:0;padding:12px 16px 6px}fieldset.span{grid-column:1/-1}legend{font:800 12px var(--display);letter-spacing:.24em;text-transform:uppercase;color:var(--amber);padding:0 8px}.row{justify-content:space-between;align-items:center;gap:16px;min-height:46px;font-size:16px;font-weight:700;display:flex}.row>span:first-child{white-space:nowrap}.range-wrap{align-items:center;gap:10px;display:inline-flex}.range-wrap output{text-align:right;min-width:3.2em;font:800 14px var(--display);color:var(--dust)}input[type=range]{appearance:none;background:linear-gradient(90deg, var(--dust) var(--fill,50%), var(--ink) var(--fill,50%));border:2px solid var(--ink-3);cursor:pointer;border-radius:7px;outline:none;width:min(170px,24vw);height:14px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--cream);border:4px solid var(--ink);border-radius:50%;width:24px;height:24px;box-shadow:0 3px #000}input[type=range]::-moz-range-thumb{background:var(--cream);border:4px solid var(--ink);border-radius:50%;width:18px;height:18px}input[type=range]:focus-visible,input[type=range]:focus{border-color:var(--amber);box-shadow:0 0 0 3px #ffc86166}.toggle{cursor:pointer;background:0 0;border:0;outline:none;justify-content:flex-end;align-items:center;gap:10px;min-width:88px;padding:0;font-size:14px;font-weight:800;display:inline-flex}.toggle i{background:var(--ink);border:2px solid var(--ink-3);border-radius:14px;width:52px;height:28px;transition:all .18s;position:relative}.toggle i:after{content:"";background:#8a84b3;border-radius:50%;width:18px;height:18px;transition:all .18s cubic-bezier(.3,1.5,.5,1);position:absolute;top:3px;left:3px}.toggle[aria-pressed=true] i{background:var(--amber);border-color:var(--amber-2)}.toggle[aria-pressed=true] i:after{background:var(--ink);left:27px}.toggle:focus-visible i,.toggle:focus i{box-shadow:0 0 0 3px #ffc86180}.seg{background:var(--ink);border:2px solid var(--ink-3);border-radius:10px;gap:3px;padding:3px;display:inline-flex}.seg button{cursor:pointer;color:#fff6e6a6;background:0 0;border:0;border-radius:7px;outline:none;padding:8px 14px;font-size:14px;font-weight:800;transition:all .14s}.seg button[aria-pressed=true]{background:var(--amber);color:var(--ink);box-shadow:0 2px #000}.seg button:is(:focus-visible,:focus){color:var(--cream);box-shadow:0 0 0 3px #ffc86180}.seg button[aria-pressed=true]:is(:focus-visible,:focus){color:var(--ink)}.modal-board{width:min(560px,100vw - 32px)}.board-head,.board li{grid-template-columns:40px 1fr 56px 64px 92px;align-items:center;gap:8px;width:100%;display:grid}.board-head{font:800 11px var(--display);letter-spacing:var(--label-spacing,.18em);text-transform:uppercase;opacity:.6;padding:0 14px}.board-head em,.board em{text-align:right;font-style:normal}.board{flex-direction:column;gap:6px;width:100%;margin:-12px 0 0;padding:0;list-style:none;display:flex}.board li{font-variant-numeric:tabular-nums;background:#0a081e80;border:2px solid #0000;border-radius:9px;padding:10px 14px;font-weight:700}.board li b{font:800 18px var(--display);color:#fff6e699}.board li:first-child b{color:var(--amber)}.board li:nth-child(2) b{color:#d8dcef}.board li:nth-child(3) b{color:#f0a574}.board li em{font:800 17px var(--display);color:var(--amber)}.board li.is-me{border-color:var(--amber);background:#ffc86129}.board-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board .board-empty{text-align:center;opacity:.75;background:0 0;padding:22px;display:block}.modal-results{gap:12px;width:min(540px,100vw - 32px);padding-top:22px}.results-rating{align-items:flex-end;gap:14px;margin-top:2px;display:flex}.results-rating .lamp{color:#fff6e62e;filter:drop-shadow(0 4px #0006);width:40px}.results-rating .lamp:nth-child(2){width:54px}.results-rating .lamp .flame{opacity:.15}.results-rating .lamp.is-on{color:var(--amber);filter:drop-shadow(0 0 14px #ffbe50cc)drop-shadow(0 4px #000);animation:.6s cubic-bezier(.2,1.6,.4,1) both lampIn}.results-rating .lamp.is-on .flame{opacity:1}.results-best{background:var(--coral);color:var(--ink);font:800 13px var(--display);letter-spacing:.1em;text-transform:uppercase;border-radius:999px;margin-top:-8px;padding:4px 16px;animation:1s ease-in-out infinite pulse;display:none;box-shadow:3px 3px #000}.results-best.is-active{display:block}.results-table{flex-direction:column;gap:4px;width:100%;margin:0;display:flex}.results-table>div{font-variant-numeric:tabular-nums;background:#0a081e6b;border-radius:8px;grid-template-columns:1fr auto 100px;align-items:baseline;gap:12px;padding:6px 12px;display:grid}.results-table dt{opacity:.85;font-weight:700}.results-table dd{text-align:right;font:700 16px var(--display);margin:0}.results-table dd:last-child{color:var(--dust)}.results-table .r-total-row{background:#ffc86124;border:2px solid #ffc86173;margin-top:6px}.results-table .r-total-row dt{opacity:1;font:800 16px var(--display);text-transform:uppercase;letter-spacing:.1em;color:var(--amber)}.results-table .r-total{font-size:28px;color:var(--amber)!important}.results-save{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.results-name{border:3px solid var(--ink-3);background:var(--ink);max-width:220px;height:46px;color:var(--cream);font:700 16px var(--body);-webkit-user-select:text;user-select:text;border-radius:9px;outline:none;flex:160px;padding:0 14px;box-shadow:inset 0 3px #0006}.results-name:focus{border-color:var(--amber)}.results-saved,.results-rank{font:800 15px var(--display);color:var(--amber);display:none}.results-save.is-saved :is(.results-name,.btn){display:none}.results-save.is-saved :is(.results-saved,.results-rank){display:inline}.screen-hud{font-variant-numeric:tabular-nums}.screen-hud :is(.hud-top-left,.hud-top-center,.hud-top-right,.hud-streak,.touch){transition:opacity .5s}.screen-hud.is-cinematic :is(.hud-top-center,.hud-streak,.touch){opacity:0;pointer-events:none}.screen-hud.is-cinematic .hud-top-left,.screen-hud.is-cinematic .hud-top-right .hud-lanterns{opacity:.35}.hud-top-left,.hud-top-center,.hud-top-right{top:calc(16px + var(--safe-t));flex-direction:column;gap:8px;display:flex;position:absolute}.hud-top-left{left:calc(20px + var(--safe-l));align-items:flex-start}.hud-top-center{align-items:center;left:50%;transform:translate(-50%)}.hud-top-right{right:calc(20px + var(--safe-r));flex-direction:row;align-items:center;gap:12px}.hud-planet{background:var(--plate);border:2px solid #fff6e629;border-radius:999px;align-items:center;gap:8px;padding:4px 14px 4px 8px;display:inline-flex;box-shadow:3px 3px #000}.hud-planet-icon{width:20px;color:var(--mint)}.screen-hud[data-planet="1"] .hud-planet-icon{color:var(--dust)}.hud-planet b{-webkit-text-stroke:.14em var(--ink);font-size:16px;font-weight:800}.hud-route{gap:4px;margin-left:4px;display:inline-flex}.hud-route i{background:#fff6e633;border-radius:50%;width:8px;height:8px}.hud-route i.is-done{background:var(--dust)}.hud-route i.is-here{background:var(--amber);box-shadow:0 0 8px var(--amber)}.hud-panel{background:var(--grain), linear-gradient(180deg, #342c70e6, #161236e6);border:3px solid #fff6e629;border-radius:14px;align-items:center;gap:10px;padding:8px 18px 8px 10px;display:flex;box-shadow:4px 4px #000,inset 0 2px #ffffff1a}.hud-dust-icon{width:34px;color:var(--dust);filter:drop-shadow(0 0 10px #a8f6ffcc)}.hud-dust-body{gap:4px;display:grid}.hud-dust b{color:var(--cream);font-size:32px;font-weight:800;line-height:1}.hud-dust b small{opacity:.7;font-size:.55em}.hud-dust small{font:800 11px var(--display);letter-spacing:var(--label-spacing,.12em);text-transform:uppercase;opacity:.75}.hud-dust.pop .hud-dust-icon{animation:.4s cubic-bezier(.2,1.8,.4,1) dustPop}.hud-dust.is-charged{border-color:var(--dust);box-shadow:4px 4px #000,0 0 18px #a8f6ff73}.hud-dust.is-charged small{color:var(--dust);opacity:1;animation:1.2s ease-in-out infinite pulse}.hud-charge{gap:3px;display:flex}.hud-charge i{background:#fff6e629;border-radius:2px;width:14px;height:6px;transition:background .2s;transform:skew(-12deg)}.hud-charge i.is-lit{background:var(--dust);box-shadow:0 0 6px #a8f6ffcc}.hud-clock{text-align:center;background:var(--plate);min-width:118px;margin-top:calc(-16px - var(--safe-t));padding:4px 22px 6px;padding-top:calc(10px + var(--safe-t));border:3px solid #fff6e629;border-top:0;border-radius:0 0 16px 16px;box-shadow:4px 4px #000}.hud-clock b{color:var(--cream);font-size:30px;font-weight:800;line-height:1}.hud-score{text-shadow:0 2px #000;align-items:baseline;gap:8px;display:flex}.hud-score span{font:800 11px var(--display);letter-spacing:var(--label-spacing,.2em);text-transform:uppercase;opacity:.75}.hud-score b{font:800 20px var(--display);color:var(--amber)}.hud-lanterns{background:var(--plate);border:3px solid #fff6e629;border-radius:14px;gap:6px;padding:7px 12px;display:flex;box-shadow:4px 4px #000}.hud-lantern{width:24px;color:var(--amber);filter:drop-shadow(0 0 7px #ffbe50cc);transition:color .25s,filter .25s}.hud-lantern.is-out{color:#fff6e633;filter:none}.hud-lantern.is-out .flame{opacity:0}.hud-lantern.lost{animation:.5s ease-out lanternLost}.hud-lantern.regain{animation:.45s cubic-bezier(.2,1.8,.4,1) dustPop}.hud-pause{background:var(--plate);cursor:pointer;border:3px solid #fff6e629;border-radius:14px;place-items:center;width:50px;height:50px;padding:12px;display:grid;box-shadow:4px 4px #000}.hud-pause:active{transform:translate(2px,2px);box-shadow:2px 2px #000}.hud-streak{left:calc(24px + var(--safe-l));top:calc(150px + var(--safe-t));opacity:0;align-items:baseline;gap:8px;transition:all .2s;display:flex;position:absolute;transform:translate(-16px)}.hud-streak.is-active{opacity:1;transform:none}.hud-streak.pop b{animation:.35s cubic-bezier(.2,1.8,.4,1) comboPop}.hud-streak b{color:var(--lilac);font-size:40px;font-style:italic;font-weight:800;line-height:1;display:inline-block}.hud-streak span{font:800 12px var(--display);letter-spacing:var(--label-spacing,.25em);text-transform:uppercase;text-shadow:0 2px #000}.banner{opacity:0;text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:24%;left:0;right:0}.banner.show{animation:3.4s both banner}.banner-index{font:800 13px var(--display);letter-spacing:.4em;text-transform:uppercase;color:var(--cream);text-shadow:0 2px #000;background:#0a081e99;border-radius:999px;padding:4px 14px}.banner-name{color:var(--mint);filter:drop-shadow(4px 5px #000);-webkit-text-stroke:.12em var(--ink);font-size:clamp(44px,7vw,84px);font-weight:900;line-height:1}:lang(zh-CN) .banner-name{letter-spacing:.12em}.banner[data-planet="1"] .banner-name{color:var(--dust)}.banner[data-planet="2"] .banner-name{color:#ffab6b}.banner-sub{text-shadow:0 2px #000;opacity:.95;font-size:clamp(15px,1.7vw,19px);font-weight:700}.hint{left:50%;bottom:calc(40px + var(--safe-b));background:var(--grain), linear-gradient(180deg, #342c70f0, #161236f0);white-space:nowrap;opacity:0;border:3px solid #ffc8618c;border-radius:14px;align-items:center;gap:12px;padding:12px 22px 12px 12px;font-size:18px;font-weight:700;transition:opacity .25s,transform .3s cubic-bezier(.2,1.3,.4,1);display:flex;position:absolute;transform:translate(-50%,24px);box-shadow:5px 5px #000}.hint.is-active{opacity:1;animation:.4s cubic-bezier(.2,1.5,.4,1) hintIn;transform:translate(-50%)}.hint em{background:var(--amber);min-width:38px;height:30px;color:var(--ink);font:800 13px var(--display);border-radius:8px;place-items:center;padding:0 8px;font-style:normal;display:grid}.hint:not(.is-tutorial){border-color:#a8f6ff8c}.hint:not(.is-tutorial) em{background:var(--dust)}.hint span{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.popups{position:absolute;inset:0;overflow:hidden}.popup{color:var(--dust);white-space:nowrap;filter:drop-shadow(2px 3px #000);font-size:28px;font-style:italic;font-weight:800;animation:.95s ease-out both popup;position:absolute;transform:translate(-50%,-50%)}.popup-stomp{color:var(--lilac);font-size:32px}.popup-bonus{color:var(--amber)}.popup-hurt{color:var(--coral);font-size:34px}.hurt-vignette{opacity:0;background:radial-gradient(#0000 45%,#ff3c5a8c);position:absolute;inset:0}.hurt-vignette.flash{animation:.6s ease-out hurt}.flash{opacity:0;pointer-events:none;z-index:5;position:fixed;inset:0}.flash.go{animation-name:flash;animation-timing-function:ease-out;animation-fill-mode:both}.flash[data-kind=launch]{background:radial-gradient(circle at 50% 60%,#c8ffffd9,#7ff0ff59 60%,#0000)}.flash[data-kind=arrive]{background:radial-gradient(circle at 50% 60%,#ffffffb3,#ffffff26 70%)}.flash[data-kind=respawn]{background:#0a0820;animation-name:fadeDark!important}.flash[data-kind=finale]{background:radial-gradient(circle at 50% 40%,#fff0c8f2,#ffc86166 60%,#0000)}.touch{display:none}body.has-touch .touch{display:block}body.has-touch .title-controls,body[data-input=touch] .prompts{display:none}.touch-stick{opacity:.5;pointer-events:none;background:radial-gradient(circle,#120f2e1a,#120f2e66);border:3px solid #fff6e666;border-radius:50%;width:132px;height:132px;margin:-66px 0 0 -66px;position:absolute;top:70%;left:20%}.touch-stick.is-active{opacity:1}.touch-stick i{background:var(--cream);border:4px solid var(--ink);border-radius:50%;width:58px;height:58px;margin:-29px 0 0 -29px;position:absolute;top:50%;left:50%;box-shadow:0 4px #000}.touch-btn{border:4px solid var(--ink);font:900 13px var(--display);color:var(--ink);touch-action:none;pointer-events:auto;border-radius:50%;align-content:center;place-items:center;gap:0;display:grid;position:absolute;box-shadow:0 6px #000}.touch-btn svg{width:44%}.touch-btn.is-down{transform:translateY(5px);box-shadow:0 1px #000}.touch-jump{right:calc(30px + var(--safe-r));bottom:calc(34px + var(--safe-b));background:radial-gradient(circle at 40% 30%, #ffe7a8, var(--amber) 60%, var(--amber-2));width:104px;height:104px}.touch-jump svg{width:38%}.touch-cam{right:calc(150px + var(--safe-r));bottom:calc(40px + var(--safe-b));background:radial-gradient(circle at 40% 30%, #e4fdff, var(--dust));width:64px;height:64px}body.has-touch .hint{bottom:auto;top:calc(96px + var(--safe-t));white-space:normal;max-width:56vw;padding:8px 16px 8px 8px;font-size:15px;transform:translate(-50%,-12px)}body.has-touch .hint.is-active{transform:translate(-50%)}body.has-touch .hud-streak{top:calc(140px + var(--safe-t))}.fatal{text-align:center;place-items:center;padding:24px;font-weight:700;display:grid;position:fixed;inset:0}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}@keyframes pop{0%{opacity:0;transform:scale(.86)}}@keyframes sway{50%{transform:rotate(7deg)translateY(-3px)}}@keyframes pulse{50%{transform:scale(1.05)}}@keyframes lampIn{0%{opacity:0;transform:scale(0)translateY(20px)}}@keyframes comboPop{0%{transform:scale(1.7)}}@keyframes dustPop{40%{transform:scale(1.45)rotate(-8deg)}}@keyframes lanternLost{30%{color:var(--coral);transform:scale(1.4)rotate(10deg)}}@keyframes hintIn{0%{transform:translate(-50%,24px)scale(.9)}}@keyframes popup{0%{opacity:0;transform:translate(-50%,-30%)scale(.6)}15%{opacity:1;transform:translate(-50%,-60%)scale(1.15)}to{opacity:0;transform:translate(-50%,-190%)scale(1)}}@keyframes hurt{0%{opacity:1}}@keyframes flash{0%{opacity:0}12%{opacity:1}to{opacity:0}}@keyframes fadeDark{0%{opacity:0}35%{opacity:1}55%{opacity:1}to{opacity:0}}@keyframes banner{0%{opacity:0;transform:translateY(18px)scale(1.25)}10%{opacity:1;transform:none}82%{opacity:1;transform:none}to{opacity:0;transform:translateY(-16px)}}@media (max-width:820px),(max-height:520px){.btn{min-width:220px;padding:11px 24px;font-size:17px}.menu{gap:9px}.logo-text{font-size:clamp(40px,8vw,70px)}.tagline{margin-bottom:6px;font-size:14px}.title-block{gap:10px}.hud-dust b{font-size:24px}.hud-dust-icon{width:26px}.hud-clock b{font-size:22px}.hud-clock{min-width:90px}.hud-lantern{width:19px}.hud-pause{width:42px;height:42px;padding:10px}.bottom-bar small{display:none}.modal{gap:14px;padding:20px 20px 22px}.modal-title{font-size:28px}.row{min-height:40px;font-size:14px}.settings-grid{gap:10px 14px}.results-table>div{padding:4px 10px}.results-table dd{font-size:14px}.results-table .r-total{font-size:22px}.results-rating .lamp{width:30px}.results-rating .lamp:nth-child(2){width:40px}.banner-name{font-size:44px}.touch-jump{width:92px;height:92px}.title-controls{display:none}}@media (max-height:420px){.modal-results .results-table>div:nth-child(2){display:none}.modal-results{gap:8px;padding-top:14px}.hud-planet{padding:2px 10px 2px 6px}.hud-planet b{font-size:13px}.banner{top:18%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
