@font-face{font-family:Lilita One;src:url(lilita-one.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Lexend;src:url(lexend.woff2) format("woff2");font-weight:100 900;font-display:swap}:root{--ink: #14213a;--ink-2: #2a3656;--paper: #f2f7ff;--mist: #d5e2f2;--sun: #ffc52e;--sun-d: #e5a400;--tomato: #ff4d2e;--mint: #2fdcae;--sky: #10a4ea;--pink: #ff5fa2;--plum: #7a5cff;--floor: #17344d;--floor-2: #1e405e;--display: "Lilita One", "Arial Rounded MT Bold", "Trebuchet MS", sans-serif;--body: "Lexend", "Avenir Next", "Segoe UI", system-ui, sans-serif;--line: 4px;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0;background:var(--floor);color:var(--paper);font-family:var(--body);font-size:16px;overflow:hidden;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}h2{font:400 clamp(26px,3.4vw,38px)/1.1 var(--display);letter-spacing:.01em;text-wrap:balance}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:4px solid var(--sky);outline-offset:3px}svg{display:block;width:100%;height:100%}#gl{position:fixed;inset:0;width:100%;height:100%;display:block}.screen{position:fixed;inset:0;z-index:10;padding:18px max(16px,env(safe-area-inset-right,0px)) 18px max(16px,env(safe-area-inset-left,0px));pointer-events:none}.screen>*{pointer-events:auto}#confetti{position:fixed;inset:0;width:100%;height:100%;z-index:90;pointer-events:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:var(--line) solid var(--ink);border-radius:18px;background:var(--sun);color:var(--ink);font:400 20px/1 var(--display);letter-spacing:.02em;padding:14px 22px 15px;box-shadow:0 6px 0 var(--ink);transition:transform .08s,box-shadow .08s,background .15s}.btn:hover:not(:disabled){background:#ffd65c}.btn:active:not(:disabled){transform:translateY(5px);box-shadow:0 1px 0 var(--ink)}.btn:disabled{opacity:.55}.btn.big{font-size:clamp(24px,3vw,32px);padding:18px 30px 20px;border-radius:22px;box-shadow:0 8px 0 var(--ink)}.btn.big:active:not(:disabled){transform:translateY(7px);box-shadow:0 1px 0 var(--ink)}.btn i{width:32px;height:32px;display:block;flex:none}.btn.small{font-size:18px;padding:11px 18px 12px}.btn.tiny{font-size:16px;padding:8px 14px 9px;border-width:3px;border-radius:12px;box-shadow:0 4px 0 var(--ink)}.btn.alt{background:var(--paper)}.btn.alt:hover:not(:disabled){background:#fff}.btn.danger{background:var(--tomato);color:#fff}.btn.danger:hover:not(:disabled){background:#ff6a4f}.link{background:none;border:0;color:inherit;font-size:14px;text-decoration:underline;text-underline-offset:3px;padding:6px;opacity:.85}.link:hover{opacity:1}.eyebrow{font:600 13px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;opacity:.72}kbd{display:inline-flex;align-items:center;justify-content:center;font:400 18px/1 var(--display);background:var(--paper);color:var(--ink);border:3px solid var(--ink);border-radius:9px;min-width:36px;height:36px;padding:0 8px;box-shadow:0 4px 0 var(--ink)}#home{display:flex;align-items:center}.home-card{max-width:min(560px,100%);display:grid;gap:22px;justify-items:start;margin-left:clamp(0px,5vw,80px)}.logo{display:grid;font:400 clamp(72px,12vw,148px)/.86 var(--display);text-transform:uppercase;letter-spacing:-.005em;transform:rotate(-3deg);transform-origin:left center}.logo span{color:var(--paper);-webkit-text-stroke:8px var(--ink);paint-order:stroke fill;text-shadow:0 9px 0 var(--ink)}.logo .bipword{color:var(--sun);font-size:1.38em}.home-sub{font-size:clamp(17px,1.7vw,20px);line-height:1.45;max-width:26em;background:#14213ac7;padding:10px 14px;border-radius:12px}#keysdemo{display:flex;justify-content:flex-end;align-items:center;padding-right:clamp(16px,7vw,110px)}.keys-card{display:grid;gap:16px;justify-items:center}.keys{display:grid;grid-template-columns:repeat(3,92px);grid-template-rows:repeat(2,92px);gap:10px}.keys kbd{width:100%;height:100%;font-size:46px;border-width:5px;border-radius:18px;box-shadow:0 8px 0 var(--ink);animation:keypulse 1.5s infinite}.k-up{grid-area:1 / 2}.k-left{grid-area:2 / 1}.k-down{grid-area:2 / 2}.k-right{grid-area:2 / 3}.keys kbd.ghost{opacity:.4;animation:none}.keys kbd.done{background:var(--mint);animation:none;transform:translateY(4px);box-shadow:0 3px 0 var(--ink)}@keyframes keypulse{50%{background:var(--sun)}}#hub{display:grid;grid-template-columns:1fr minmax(280px,360px);grid-template-rows:auto 1fr auto;gap:14px;padding-top:18px}.hub-top{grid-column:1;grid-row:1;display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-self:start}.plate{display:flex;align-items:center;gap:10px;background:var(--paper);color:var(--ink);border:var(--line) solid var(--ink);border-radius:14px;padding:5px 16px 5px 6px;font:400 20px var(--display);box-shadow:0 4px 0 var(--ink);max-width:240px}.plate strong{font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plate-num{width:34px;height:34px;flex:none;display:grid;place-items:center;background:var(--tomato);color:#fff;border-radius:10px;font-size:18px}.nuts{display:flex;align-items:center;gap:7px;background:var(--ink);color:var(--sun);border-radius:14px;padding:7px 14px 7px 9px;font:400 22px var(--display);font-variant-numeric:tabular-nums;border:3px solid var(--ink-2)}.nuts i{width:26px;height:26px;display:block}.nuts.small{font-size:20px;padding:4px 11px 4px 7px}.nuts.bump{animation:bump .22s}@keyframes bump{40%{transform:scale(1.18)}}.hub-card{grid-column:2;grid-row:1 / 3;align-self:center;display:grid;gap:16px;justify-items:stretch;background:var(--paper);color:var(--ink);border:5px solid var(--ink);border-radius:24px;padding:22px;box-shadow:0 10px 0 var(--ink)}.hub-card .link{justify-self:center;font-size:13px}.hub-card h2{min-height:2.2em}.hub-free{display:flex;gap:8px}.vpick{flex:1;background:var(--mist);border:3px solid var(--ink);border-radius:12px;padding:9px;font:400 18px var(--display);color:var(--ink)}.vpick.on{background:var(--mint)}.badges{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.badges li{aspect-ratio:1;padding:5px;border-radius:50%;background:var(--mist);color:#a9b9cf;border:3px solid #bccbdd}.badges li.on{background:var(--sun);color:var(--ink);border-color:var(--ink);animation:pop .4s}@keyframes pop{0%{transform:scale(.4)}70%{transform:scale(1.15)}}.road{grid-column:1 / -1;grid-row:3;justify-self:center;list-style:none;margin:0;padding:7px 14px;display:flex;align-items:center;gap:8px;background:#14213adb;border-radius:18px;max-width:100%;overflow-x:auto}.road li{flex:none;width:14px;height:14px;border-radius:50%;background:var(--ink-2);position:relative;color:#8fa2bf}.road li.m,.road li.cup{width:36px;height:36px;padding:6px}.road li.done{background:var(--mint);color:var(--ink)}.road li.now{background:var(--sun);color:var(--ink);box-shadow:0 0 0 4px #ffc52e59;animation:nowpulse 1.8s infinite}@keyframes nowpulse{50%{box-shadow:0 0 0 8px #ffc52e2e}}#clock{position:fixed;z-index:55;top:max(14px,env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:9px;background:var(--ink);color:var(--paper);border:3px solid var(--mint);border-radius:16px;padding:6px 15px 7px 9px;pointer-events:none;transition:border-color .4s}#clock i{width:28px;height:28px;display:block;color:var(--mint);transition:color .4s}#clock b{font:700 21px/1.1 var(--body);font-variant-numeric:tabular-nums;display:block;min-width:3.1em;text-align:center}.clock-bar{display:block;height:5px;background:#ffffff2b;border-radius:3px;overflow:hidden;margin-top:3px}#clock-fill{display:block;height:100%;background:var(--mint);transform-origin:left;transition:background .4s}#clock[data-level=soon]{border-color:var(--sun)}#clock[data-level=soon] i{color:var(--sun)}#clock[data-level=soon] #clock-fill{background:var(--sun)}#clock[data-level=last]{border-color:#ff9a5a}#clock[data-level=last] i{color:#ff9a5a}#clock[data-level=last] #clock-fill{background:#ff9a5a}#clock.ping{animation:ping .9s 2}@keyframes ping{40%{transform:translate(-50%) scale(1.14)}}#btn-pause,#btn-full{position:fixed;z-index:55;width:46px;height:46px;padding:10px;background:var(--ink);color:var(--paper);border:3px solid var(--ink-2);border-radius:13px;top:max(14px,env(safe-area-inset-top,0px))}#btn-pause{right:max(16px,env(safe-area-inset-right,0px))}#btn-full{right:calc(max(16px,env(safe-area-inset-right,0px)) + 54px)}#btn-pause:hover,#btn-full:hover{background:var(--ink-2)}#btn-pause[hidden]+#btn-full{right:max(16px,env(safe-area-inset-right,0px))}#bip{position:fixed;z-index:50;left:max(14px,env(safe-area-inset-left,0px));bottom:64px;display:flex;align-items:flex-end;gap:4px;max-width:min(620px,calc(100vw - 28px));pointer-events:none}#bip-face{width:118px;height:128px;flex:none;animation:float 2.8s ease-in-out infinite}@keyframes float{50%{transform:translateY(-6px)}}#bip.talking .bip-mouth{animation:talk .22s infinite alternate;transform-origin:60px 66px}@keyframes talk{to{transform:scaleY(1.8) scaleX(.72)}}#bip[data-expr=oops] .eye{transform:scaleY(.28);transform-box:fill-box;transform-origin:center}#bip[data-expr=oops] .bip-mouth{transform:scaleY(-1);transform-origin:60px 66px}#bip[data-expr=think] .eye:last-child{transform:scale(.6);transform-box:fill-box;transform-origin:center}.bip-bulb{animation:bulb 1.4s steps(2) infinite}@keyframes bulb{50%{fill:#fff2bc}}#bip-bubble{pointer-events:auto;position:relative;display:flex;align-items:center;gap:10px;min-width:0;margin-bottom:44px;background:var(--paper);color:var(--ink);border:var(--line) solid var(--ink);border-radius:20px 20px 20px 5px;padding:12px 10px 12px 17px;font-size:clamp(16px,1.6vw,19px);font-weight:500;line-height:1.32;box-shadow:0 5px 0 var(--ink);cursor:pointer}#bip-bubble.pop{animation:bubble .2s ease-out}@keyframes bubble{0%{transform:scale(.88);transform-origin:0 100%}}#bip-replay{width:40px;height:40px;padding:8px;flex:none;border-radius:50%;background:var(--sun);color:var(--ink);border:3px solid var(--ink)}#bip-replay:hover{background:#ffd65c}#bip.in3d #bip-face{display:none}#bip.in3d #bip-bubble{margin-bottom:0;border-radius:20px}#bip.in3d{bottom:84px;left:max(20px,4vw);max-width:min(560px,calc(100vw - 420px))}#bip:not(.in3d):not(.compact){bottom:8px}#bip:not(.in3d):not(.compact) #bip-bubble{margin-bottom:30px}#bip.compact{bottom:88px}#bip.compact #bip-face{width:74px;height:80px}#bip.compact #bip-bubble{font-size:15px;padding:8px 8px 8px 13px;margin-bottom:22px}#bip.compact #bip-replay{display:none}#hud.off .hud-left,#hud.off .hud-bottom,#hud.off #mini{opacity:0;transition:opacity .3s}.hud-left{position:absolute;top:14px;left:max(16px,env(safe-area-inset-left,0px));display:grid;gap:7px;justify-items:start;pointer-events:none}.pos{display:flex;align-items:flex-start;font:400 72px/.9 var(--display);color:var(--sun);-webkit-text-stroke:7px var(--ink);paint-order:stroke fill}.pos sup{font-size:30px;line-height:1.2}.lap{background:var(--ink);padding:4px 11px;border-radius:9px;font:600 15px var(--body)}#mini{position:absolute;top:72px;right:max(16px,env(safe-area-inset-right,0px));width:clamp(110px,12vw,170px);height:clamp(110px,12vw,170px);pointer-events:none;background:#14213a73;border-radius:50%}.hud-bottom{position:absolute;right:max(16px,env(safe-area-inset-right,0px));bottom:18px;display:flex;align-items:flex-end;gap:12px;pointer-events:none}.speed{display:flex;align-items:baseline;gap:5px;background:var(--ink);padding:5px 15px 7px;border-radius:14px}.speed b{font:400 40px var(--display);font-variant-numeric:tabular-nums;color:var(--paper);min-width:2em;text-align:right}.speed span{font-size:14px;opacity:.78}.turbo,.horn{display:flex;align-items:center;gap:8px;background:var(--ink);padding:8px 11px;border-radius:14px;font-size:13px}.turbo kbd,.horn kbd{font-size:14px;height:30px;min-width:30px;box-shadow:0 3px #000;border-color:#000}#hud-turbo-pips{display:flex;gap:4px}#hud-turbo-pips i{width:11px;height:24px;background:var(--ink-2);border-radius:3px}#hud-turbo-pips i.on{background:linear-gradient(#ffd65c,#ff7a2e)}.keyhint{position:absolute;left:50%;bottom:14%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:#14213ae6;padding:13px 20px;border-radius:18px;font:400 22px var(--display);white-space:nowrap;pointer-events:none}kbd.big{width:54px;height:54px;font-size:30px}kbd.big.wide{width:auto;padding:0 22px;font-size:22px}.wrongway{position:absolute;top:24%;left:50%;transform:translate(-50%);background:var(--sun);color:var(--ink);border:5px solid var(--ink);border-radius:18px;padding:8px 22px 10px;font:400 32px var(--display);display:flex;gap:10px;pointer-events:none}.countdown{position:absolute;top:28%;left:0;right:0;text-align:center;font:400 clamp(64px,12vw,136px)/1 var(--display);color:var(--paper);-webkit-text-stroke:10px var(--ink);paint-order:stroke fill;pointer-events:none}.countdown.go{animation:cd .8s ease-out both}@keyframes cd{0%{transform:scale(1.7);opacity:0}25%{transform:scale(1);opacity:1}80%{opacity:1}to{opacity:0}}#speedlines{position:fixed;inset:0;z-index:5;pointer-events:none;opacity:0;transition:opacity .2s;background:repeating-conic-gradient(from 0deg at 50% 54%,rgba(255,255,255,.22) 0 .55deg,transparent .55deg 4deg);-webkit-mask:radial-gradient(circle at 50% 54%,transparent 32%,#000 78%);mask:radial-gradient(circle at 50% 54%,transparent 32%,#000 78%)}#speedlines.on{opacity:1}.touch{position:absolute;inset:auto max(14px,env(safe-area-inset-right,0px)) 74px max(14px,env(safe-area-inset-left,0px));display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none}.touch>div{display:flex;gap:10px;pointer-events:auto}.touch button{width:70px;height:70px;font:400 30px var(--display);background:#f2f7ffdb;color:var(--ink);border:4px solid var(--ink);border-radius:18px;touch-action:none}.touch button.go{background:var(--sun)}#results{display:flex;align-items:center;justify-content:center}.res-card{display:grid;gap:15px;justify-items:center;text-align:center;width:min(490px,100%);background:var(--paper);color:var(--ink);border:5px solid var(--ink);border-radius:26px;padding:22px 24px 18px;box-shadow:0 10px 0 var(--ink);animation:pop .35s}.res-pos{display:flex;align-items:flex-start;font:400 92px/.86 var(--display);color:var(--sun);-webkit-text-stroke:8px var(--ink);paint-order:stroke fill}.res-pos sup{font-size:34px;line-height:1.2}.record{background:var(--mint);padding:5px 13px;border-radius:9px;font-weight:700}.res-stats{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}.res-stats div{background:var(--mist);border-radius:12px;padding:9px 4px}.res-stats dt{font-size:12px;opacity:.78}.res-stats dd{margin:3px 0 0;font:400 24px var(--display);font-variant-numeric:tabular-nums}.res-actions{display:grid;gap:7px;justify-items:center}#ended{display:flex;align-items:center;justify-content:flex-end}.end-card{width:min(450px,100%);display:grid;gap:14px;background:var(--paper);color:var(--ink);border:5px solid var(--ink);border-radius:24px;padding:24px;box-shadow:0 10px 0 var(--ink);margin-right:clamp(0px,3vw,44px)}.end-next{font-size:18px;line-height:1.4;font-weight:500}.end-skills{list-style:none;padding:0;margin:0;display:grid;gap:7px}.end-skills li{display:flex;align-items:center;gap:10px;background:var(--mist);border-radius:11px;padding:7px 11px;font-weight:500}.end-skills svg{width:25px;height:25px;flex:none}.end-skills li.empty{font-weight:400}.end-total b{font:400 24px var(--display)}.overlay{position:fixed;inset:0;z-index:70;background:#0d182cc7;display:flex;align-items:center;justify-content:center;padding:18px max(16px,env(safe-area-inset-right,0px)) 18px max(16px,env(safe-area-inset-left,0px))}.pause-card{display:grid;gap:14px;background:var(--paper);color:var(--ink);border:5px solid var(--ink);border-radius:24px;padding:26px;width:min(380px,100%);text-align:center;box-shadow:0 10px 0 var(--ink)}#mission{z-index:20;pointer-events:auto;overflow:auto;padding-top:70px;padding-bottom:132px;display:grid;grid-template-rows:auto 1fr;gap:10px;background-color:var(--floor);background-image:conic-gradient(var(--floor-2) 25%,transparent 0 50%,var(--floor-2) 0 75%,transparent 0);background-size:112px 112px}#mission:before{content:"";position:fixed;left:0;right:0;top:0;height:12px;background:repeating-linear-gradient(-45deg,var(--sun) 0 22px,var(--ink) 22px 44px)}.m-head{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}.m-dots{list-style:none;margin:0;padding:0;display:flex;gap:7px}.m-dots li{width:18px;height:18px;border-radius:50%;background:var(--ink);border:3px solid var(--ink-2)}.m-dots li.done{background:var(--mint);border-color:var(--ink)}.m-dots li.now{background:var(--sun);border-color:var(--ink)}.m-body{min-height:0}.spot,.nudge{animation:spot 1.15s infinite}@keyframes spot{0%,to{box-shadow:0 0 #ffc52ed9}60%{box-shadow:0 0 0 16px #ffc52e00}}#mission.opening{animation:opening .65s ease-in forwards}@keyframes opening{to{transform:scale(1.25);opacity:0}}.lock{display:grid;grid-template-columns:minmax(0,470px) auto;gap:clamp(18px,4vw,54px);justify-content:center;align-items:center}.safe{display:grid;gap:20px;justify-items:center;background:var(--ink);border:5px solid var(--ink-2);border-radius:24px;padding:22px clamp(14px,3vw,28px);box-shadow:0 9px #0c1526}.padlock{width:72px;height:82px}.padlock .shackle{transition:transform .5s cubic-bezier(.3,1.6,.5,1);transform-origin:46px 34px}.padlock.open .shackle{transform:translateY(-7px) rotate(32deg)}.lslots{display:flex;gap:clamp(5px,1vw,9px)}.lslot{width:clamp(42px,8vw,62px);height:clamp(56px,10vw,80px);display:grid;place-items:center;background:#0a1120;border:4px solid var(--ink-2);border-radius:12px;color:var(--mint);font:400 clamp(30px,5vw,46px)/1 var(--display)}.lslot.now{border-color:var(--sun);animation:slotnow 1.1s infinite}@keyframes slotnow{50%{background:#1e2a44}}.lslot.ok{border-color:var(--mint);animation:pop .28s}.safe.won .lslot{background:var(--mint);color:var(--ink)}.legend{display:flex;gap:10px}.lg{display:flex;align-items:center;gap:8px;padding:7px 15px 7px 10px;border:3px solid var(--ink-2);border-radius:12px;background:#0a1120;color:var(--paper);font:400 18px var(--display)}.lg svg{width:24px;height:24px}.lg.yes svg{color:var(--mint)}.lg.no svg{color:#ff8e73}.lg.ping{animation:pop .35s}.pad{display:grid;grid-template-columns:repeat(3,clamp(68px,13vh,96px));gap:11px;justify-content:center}.pkey{aspect-ratio:1;background:var(--paper);color:var(--ink);border:5px solid var(--ink);border-radius:18px;box-shadow:0 7px 0 var(--ink);font:400 clamp(32px,5.5vh,44px)/1 var(--display);transition:transform .08s,box-shadow .08s,background .12s}.pkey:hover{transform:translateY(-3px);box-shadow:0 10px 0 var(--ink);background:#fff}.pkey:active{transform:translateY(6px);box-shadow:0 1px 0 var(--ink)}.pkey[data-d="0"]{grid-column:2}.pkey.glow{background:var(--sun);animation:spot 1s infinite}.pkey.led-yes{background:var(--mint)}.pkey.led-no{background:#ffb7a6}.pkey.shake{animation:shake .34s}.wheels{display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,40px);padding-left:min(0px,0vw);flex-wrap:wrap}.wh-stage{position:relative;width:min(56vh,520px,92vw);aspect-ratio:520 / 420;flex:none;touch-action:none}.kart-top{position:absolute;inset:0}.wheel{position:absolute;width:21%;aspect-ratio:1;background:none;border:0;padding:0;transform:translate(-50%,-50%)}.wheel.old{cursor:pointer;transition:transform .1s}.wheel.old:hover:not(:disabled){transform:translate(-50%,-50%) scale(1.09) rotate(10deg)}.wheel.off{animation:wheeloff .5s ease-in forwards;pointer-events:none}@keyframes wheeloff{to{transform:translate(calc(-50% + var(--fx, 100px)),200%) rotate(220deg);opacity:0}}.dust{position:absolute;inset:0;width:100%;height:100%;border-radius:22px;cursor:crosshair;transition:opacity .6s;touch-action:none}.dust.gone{opacity:0}.slot{position:absolute;width:21%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);border:5px dashed var(--sun);background:#ffc52e2e;animation:slot 1.3s infinite;pointer-events:none}.slot.hot{background:#ffc52e8c;transform:translate(-50%,-50%) scale(1.14)}.slot.filled{border:0;background:none;animation:pop .3s}@keyframes slot{50%{background:#ffc52e66}}.wh-rack{display:grid;grid-template-columns:repeat(2,minmax(70px,110px));gap:13px;padding:15px;background:var(--ink);border-radius:22px;border:4px solid var(--ink-2)}.wheel.new{position:relative;width:100%;transform:none;cursor:grab;touch-action:none;transition:transform .1s}.wheel.new:hover{transform:scale(1.08) rotate(-8deg)}.wheel.new.lifted{opacity:.15}.wheel.ghost{position:fixed;left:0;top:0;width:clamp(80px,12vh,110px);z-index:80;pointer-events:none;filter:drop-shadow(0 12px 0 rgba(0,0,0,.3))}.hand{position:fixed;z-index:85;width:62px;height:62px;left:0;top:0;pointer-events:none;animation:handmove 2.2s ease-in-out 2}@keyframes handmove{0%{transform:translate(var(--ax),var(--ay));opacity:0}15%{transform:translate(var(--ax),var(--ay)) scale(.88);opacity:1}80%{transform:translate(var(--bx),var(--by)) scale(.88);opacity:1}to{transform:translate(var(--bx),var(--by));opacity:0}}.os{position:relative;width:min(1000px,100%);margin:0 auto;border:6px solid var(--ink);border-radius:20px;background:linear-gradient(150deg,#2a9dd8,#6b6be0 60%,#d369b7);min-height:min(52vh,460px);padding:14px;box-shadow:0 9px 0 var(--ink);display:grid;gap:11px;align-content:start;justify-items:center}.os.win-open .os-desk{display:none}.os-desk{justify-self:start}.os-desk{display:flex;gap:22px;align-items:flex-start}.os-icon{display:grid;gap:6px;justify-items:center;width:92px;background:none;border:0;color:#fff;font-weight:600;font-size:15px;padding:7px;border-radius:13px;text-shadow:0 1px 2px rgba(0,0,0,.6)}button.os-icon:hover,.os-icon.sel{background:#ffffff3d}.os-icon.off{opacity:.55}.os-ico{width:62px;height:62px;padding:11px;border-radius:15px;background:var(--paper);border:3px solid var(--ink);display:block}.os-ico.deco{color:var(--tomato)}.os-ico.mus{color:var(--sky)}.os-ico.cal{color:var(--plum)}.win{width:min(840px,100%);background:var(--paper);color:var(--ink);border:4px solid var(--ink);border-radius:15px;overflow:hidden;box-shadow:0 16px 34px #0d182c6b}.win.open{animation:winopen .22s ease-out}.win.closing{animation:winclose .28s ease-in forwards}@keyframes winopen{0%{transform:scale(.72);opacity:0}}@keyframes winclose{to{transform:scale(.72);opacity:0}}.win-bar{display:flex;align-items:center;gap:7px;background:var(--mist);padding:9px 13px;border-bottom:3px solid var(--ink);font-weight:600}.win-bar strong{margin-left:12px;font-weight:600}.win-close{width:34px;height:34px;border-radius:50%;background:var(--tomato);border:3px solid var(--ink);color:#fff;font:700 20px/1 var(--body);padding:0 0 2px;opacity:.5}.win-close:not(:disabled){opacity:1}.win-dot{width:16px;height:16px;border-radius:50%;background:#b9c7d8;border:2px solid #8a9ab0}.win-body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px;padding:13px 16px;align-items:center}.win-form{display:grid;gap:11px}.row{display:none;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:9px;font-weight:600;opacity:.55;pointer-events:none;padding:5px;border-radius:11px}.row.seen{display:grid}.row.active{display:grid;opacity:1;pointer-events:auto;background:#ffc52e3d}.row input{font:600 21px var(--body);padding:8px 11px;background:#fff;color:var(--ink);border:3px solid var(--ink);border-radius:10px;width:100%;min-width:0}.swatches{display:flex;flex-wrap:wrap;gap:7px;grid-column:2 / -1}.swatch{width:40px;height:40px;border-radius:50%;border:3px solid var(--ink);padding:0;transition:transform .1s}.swatch:hover{transform:scale(1.12)}.swatch.on{box-shadow:0 0 0 3px var(--paper),0 0 0 6px var(--ink)}#row-save{grid-template-columns:auto minmax(0,1fr)}.save svg{width:23px;height:23px}.saving{height:13px;border:3px solid var(--ink);border-radius:7px;overflow:hidden}.saving i{display:block;height:100%;background:var(--mint);animation:saving 1.15s linear}@keyframes saving{0%{width:0}to{width:100%}}.win-preview{background:var(--mist);border-radius:14px;padding:9px}.win-preview svg{max-height:138px}.win-preview svg{height:auto}#pv-num,#pv-name{font-family:var(--display)}.osk{display:grid;gap:5px;background:#14213aeb;padding:11px;border-radius:15px;width:max-content;max-width:calc(100% - 20px)}.osk>div{display:flex;justify-content:center;gap:5px;flex-wrap:wrap}.osk kbd{min-width:35px;height:35px;font-size:16px;box-shadow:0 3px #000;border-width:2px;transition:transform .05s}.osk kbd.wide{padding:0 11px;font-size:14px}.osk kbd.enter{background:var(--sun)}.osk kbd.lit{background:var(--mint);transform:translateY(3px);box-shadow:0 0 #000}.osk[data-mode=letters] .digits,.osk[data-mode=digits]>div:not(.digits):not(:nth-child(3)){display:none}.osk[data-mode=digits]>div:nth-child(3) kbd:not(.wide){display:none}.prog-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,460px);gap:clamp(14px,3vw,34px);align-items:center;width:min(1120px,100%);margin:0 auto}.board-box{display:grid;place-items:center;min-width:0}.board{--cell: min(calc((min(100vw, 1120px) * .52 - 60px) / var(--w)), calc((100vh - 330px) / var(--h)), 118px);position:relative;display:grid;grid-template-columns:repeat(var(--w),var(--cell));grid-template-rows:repeat(var(--h),var(--cell));background:var(--ink);border:6px solid var(--ink);border-radius:18px;gap:3px}.cell{background:#cfe0f2;border-radius:9px;position:relative}.cell.block{background:repeating-linear-gradient(-45deg,var(--sun) 0 11px,var(--ink) 11px 22px)}.cell.trail:after{content:"";position:absolute;inset:37%;border-radius:50%;background:var(--sun);border:3px solid var(--ink);animation:pop .4s}.obj{position:absolute;left:calc(var(--x) * (var(--cell) + 3px));top:calc(var(--y) * (var(--cell) + 3px));width:var(--cell);height:var(--cell);padding:calc(var(--cell) * .17);color:var(--ink);pointer-events:none}.obj.goal{color:var(--tomato);animation:float 1.8s infinite ease-in-out}.obj.pick{color:#e5a400}.obj.got{scale:0;opacity:0;transition:scale .2s,opacity .2s;animation:none}.bot{position:absolute;left:calc(var(--x) * (var(--cell) + 3px));top:calc(var(--y) * (var(--cell) + 3px));width:var(--cell);height:var(--cell);padding:calc(var(--cell) * .1);transition:left .36s cubic-bezier(.3,1.3,.5,1),top .36s cubic-bezier(.3,1.3,.5,1);pointer-events:none;z-index:2}.bot-arrow{position:absolute;inset:0;color:var(--tomato);transform:rotate(var(--r, 0deg));transition:transform .3s;z-index:1}.bot-arrow svg{position:absolute;left:50%;top:-14%;width:30%;height:30%;transform:translate(-50%)}.bot.oops{animation:shake .34s}.bot.win{animation:hop .45s 2}@keyframes shake{25%{translate:-8% 0}75%{translate:8% 0}}@keyframes hop{50%{translate:0 -22%}}.code{display:grid;gap:14px;justify-items:stretch;background:var(--paper);color:var(--ink);border:5px solid var(--ink);border-radius:22px;padding:16px;box-shadow:0 8px 0 var(--ink)}.palette{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding-bottom:12px;border-bottom:3px dashed var(--mist)}.program{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;min-height:96px;align-items:center}.blk{display:grid;justify-items:center;gap:2px;width:88px;height:88px;padding:9px 3px 7px;border:4px solid var(--ink);border-radius:16px;color:#fff;font:600 13px/1 var(--body);box-shadow:0 4px 0 var(--ink);transition:transform .08s}.blk svg{width:40px;height:40px}.blk:hover{transform:translateY(-2px)}.blk:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.blk.b-fwd{background:#0e87c7}.blk.b-back{background:#d13a20}.blk.b-turn{background:#6a4be8}.blk.b-rep{background:var(--sun);color:var(--ink)}.blk.active{box-shadow:0 0 0 5px var(--mint);transform:scale(1.06)}.blk.fixed{box-shadow:0 0 0 4px var(--mint)}.blk.find{animation:findme 1.4s infinite}@keyframes findme{50%{border-color:var(--sun);box-shadow:0 4px 0 var(--ink),0 0 0 4px var(--sun)}}.blk.glow{animation:spot 1s infinite}.pslot{position:relative;min-width:88px}.pslot.empty{width:88px;height:88px;display:grid;place-items:center;border:3px dashed #a9b9cf;border-radius:16px;color:#8ea1bd;font:400 22px var(--display)}.rep{position:relative;display:grid;gap:8px;background:var(--sun);border:4px solid var(--ink);border-radius:16px;padding:8px 12px 12px;box-shadow:0 4px 0 var(--ink)}.rep.active{box-shadow:0 0 0 5px var(--mint)}.rep-top{display:flex;align-items:center;justify-content:center;gap:7px;font-weight:700}.rep-top svg{width:25px;height:25px}.rep-top b{font:400 25px var(--display);min-width:1em;text-align:center}.cnt{width:33px;height:33px;border-radius:9px;background:var(--paper);border:3px solid var(--ink);font:700 20px/1 var(--body);padding:0 0 2px;color:var(--ink)}.rep-in{display:grid;place-items:center;min-height:88px;background:#ffffff80;border-radius:11px;padding:5px;min-width:150px}.rep-empty{font-size:14px;font-weight:500}.rep-del{position:absolute;right:-12px;top:-12px;width:30px;height:30px;border-radius:50%;background:var(--paper);border:3px solid var(--ink);font:700 17px/1 var(--body);padding:0 0 2px;color:var(--ink)}.picker{position:absolute;z-index:5;bottom:calc(100% + 11px);left:50%;transform:translate(-50%);display:flex;gap:6px;background:var(--ink);padding:8px;border-radius:14px}.picker .blk{width:72px;height:72px;font-size:12px}.picker .blk svg{width:32px;height:32px}.btn.go{background:var(--mint);justify-self:center;font-size:24px;padding:13px 34px 15px}.btn.go:hover:not(:disabled){background:#5be8c3}.btn.go svg{width:25px;height:25px}#parent{z-index:95;align-items:flex-start;overflow:auto}.p-gate,.p-panel{background:var(--paper);color:var(--ink);border-radius:18px;width:min(860px,100%)}.p-gate{width:min(420px,100%);padding:26px;display:grid;gap:13px;margin:auto}.p-gate form{display:grid;gap:9px}.p-gate label{font-weight:600}.p-row{display:flex;gap:9px}.p-gate input{flex:1;min-width:0;font:600 20px var(--body);padding:9px 11px;border:3px solid var(--ink);border-radius:10px;background:#fff;color:var(--ink)}.p-err{color:#c22d13;font-weight:500;font-size:14px}.p-panel{padding:20px clamp(16px,3vw,30px) 16px;display:grid;gap:21px;font-size:15px}.p-head{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:center}.p-head p{margin-top:4px}.p-panel h3{font:400 21px var(--display);margin-bottom:9px}.p-time{display:flex;align-items:baseline;gap:9px;margin-bottom:11px}.p-time strong{font:700 34px var(--body);font-variant-numeric:tabular-nums}.p-actions{display:flex;flex-wrap:wrap;gap:11px;align-items:center}.p-field{display:inline-flex;align-items:center;gap:8px;font-weight:500}.p-field select{font:500 15px var(--body);padding:6px 8px;border:2px solid var(--ink);border-radius:8px;background:#fff;color:var(--ink)}.p-note{margin-top:9px;font-size:14px;line-height:1.45;color:#435373;max-width:62ch}.p-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:520px;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:8px 9px;border-bottom:1px solid var(--mist)}thead th{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:#435373;font-weight:600}tbody th{font-weight:600}tbody th small{display:block;font-weight:400;color:#435373;margin-left:31px}.p-ico{display:inline-block;width:22px;height:22px;vertical-align:-5px;margin-right:9px}.chip{display:inline-block;font-size:12px;font-weight:600;padding:3px 8px;border-radius:7px;background:var(--mist);color:var(--ink)}.chip.ok{background:#bff3e0}.chip.wip{background:#ffe9ae}.p-races{list-style:none;margin:0;padding:0;display:grid;gap:4px}.p-races li{display:grid;grid-template-columns:42px repeat(4,minmax(0,1fr));gap:8px;padding:6px 2px;border-bottom:1px solid var(--mist);font-size:14px;font-variant-numeric:tabular-nums}.p-races li.empty{display:block;color:#435373}.p-toggles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:11px}.tog{display:flex;align-items:center;gap:9px;font-weight:500;cursor:pointer}.tog input{position:absolute;opacity:0}.tog i{width:41px;height:24px;flex:none;border-radius:13px;background:#aab8cb;position:relative;transition:background .15s}.tog i:after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s}.tog input:checked+i{background:#0f9e74}.tog input:checked+i:after{transform:translate(17px)}.tog input:focus-visible+i{outline:3px solid var(--sky);outline-offset:2px}.p-lines{display:grid;gap:2px;max-height:300px;overflow:auto;border:1px solid var(--mist);border-radius:11px;margin-top:9px}.p-line{display:flex;gap:11px;justify-content:space-between;align-items:center;padding:6px 9px;border-bottom:1px solid var(--mist);flex-wrap:wrap}.p-line-t{flex:1 1 260px;min-width:0;font-size:14px}.p-line-a{display:flex;align-items:center;gap:6px}.ic{display:grid;place-items:center;width:33px;height:33px;padding:7px;background:var(--mist);color:var(--ink);border:0;border-radius:9px;cursor:pointer;font-weight:700}.ic:hover{background:#c4d5e9}.ic.rec i{width:14px;height:14px;border-radius:50%;background:var(--tomato);display:block}.ic.rec.on i{border-radius:3px;animation:nowpulse 1s infinite}.p-danger{border-top:1px solid var(--mist);padding-top:15px}.p-foot{font-size:13px;color:#435373}.noscript{position:fixed;inset:40% 0 auto;text-align:center;z-index:100}@media(max-width:900px){.lock{grid-template-columns:minmax(0,1fr)}.padlock{display:none}.safe{padding:12px;gap:12px}.pad{grid-template-columns:repeat(3,min(74px,11vh))}#hub{grid-template-columns:1fr;grid-template-rows:auto 1fr auto auto;overflow:auto;padding-top:70px;padding-bottom:92px}.hub-card{grid-column:1;grid-row:3;padding:14px;gap:10px}.hub-card h2{min-height:0}.road{grid-row:4}#bip,#bip.in3d,#bip:not(.in3d):not(.compact){bottom:8px;left:max(10px,env(safe-area-inset-left,0px));max-width:calc(100vw - 20px)}#bip-face{width:66px;height:72px}#bip-bubble{margin-bottom:18px;font-size:15px;padding:8px 7px 8px 12px}#bip.compact{bottom:170px}.prog-wrap{grid-template-columns:minmax(0,1fr)}.board{--cell: min(calc((100vw - 60px) / var(--w)), calc(38vh / var(--h)), 92px)}.win.open,.win.closing{animation:none}.win-body{grid-template-columns:minmax(0,1fr)}.win-preview{display:none}.os-icon{width:76px;font-size:13px}.os-ico{width:52px;height:52px}#mission{padding-bottom:130px}#clock{padding:4px 11px 4px 7px}#clock b{font-size:17px}#clock i{width:23px;height:23px}#btn-full{display:none}.logo span{-webkit-text-stroke-width:6px}#ended{justify-content:center;align-items:flex-start;overflow:auto;padding-top:74px}.hud-bottom .horn{display:none}.hud-bottom{bottom:auto;top:76px;right:auto;left:max(16px,env(safe-area-inset-left,0px));transform:translateY(124px)}.speed b{font-size:25px}.speed{padding:2px 9px 4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
