:root{--ink:#eef2f6;--dim:#eef2f69e;--line:#eef2f62e;--glass:#0a0e148c;--accent:#7fd8ff;--warm:#ff8a5c;--font:"Rajdhani", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--font);background:#05070a;margin:0;overflow:hidden}canvas#c{outline:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}.hidden{display:none!important}#fade{opacity:0;pointer-events:none;background:#000;transition:opacity .6s;position:fixed;inset:0}.center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:fixed;inset:0}#boot{background:#05070a}.logo{letter-spacing:.32em;padding-left:.32em;font-size:clamp(42px,8vw,96px);font-weight:300}.logo span{color:var(--accent);font-weight:500}.logo .orb{vertical-align:-.04em;background:radial-gradient(circle at 34% 30%,#3a4048 0%,#14171c 38%,#050608 72%);border-radius:50%;width:.72em;height:.72em;margin:0 .32em 0 .04em;display:inline-block;position:relative;box-shadow:inset 0 0 0 1px #eef2f62e,0 0 .5em #ff6e3c2e}.logo .orb:after{content:"";background:linear-gradient(90deg,#0000,#ff8a5c 18%,#ffd2b8 50%,#ff8a5c 82%,#0000);border-radius:2px;height:7%;position:absolute;top:47%;left:-6%;right:-6%;box-shadow:0 0 .25em #ff6a3a,0 0 .6em #ff6a3a99}#boot .bar{opacity:0}#introSkip{right:calc(22px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));color:var(--dim);letter-spacing:.24em;text-transform:uppercase;pointer-events:none;font-size:12px;animation:.8s both skipIn;position:fixed}@keyframes skipIn{0%{opacity:0}to{opacity:.7}}#menu.enter .logo,#menu.enter .tag,#menu.enter nav,#menu.enter .foot{animation:1.1s cubic-bezier(.2,.7,.2,1) both menuIn}#menu.enter .tag{animation-delay:.15s}#menu.enter nav{animation-delay:.3s}#menu.enter .foot{animation-delay:.45s}@keyframes menuIn{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){#menu.enter *{animation:none!important}}.bar{background:var(--line);width:min(420px,70vw);height:2px;overflow:hidden}.bar i{background:var(--accent);width:0%;height:100%;transition:width .2s;display:block}.sub{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;font-size:15px}.ltitle{letter-spacing:.4em;font-size:clamp(26px,4vw,44px);font-weight:300}.panel{background:var(--glass);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:4px;width:min(560px,100vw - 32px);max-height:calc(100vh - 32px);padding:34px 38px;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}#menu{-webkit-backdrop-filter:none;background:0 0;border:0;width:min(560px,100vw - 32px);left:7vw;overflow:visible;transform:translateY(-50%)}#menu .logo{text-shadow:0 2px 30px #0006;padding-left:0;font-size:clamp(40px,6vw,76px)}.tag{color:var(--dim);letter-spacing:.18em;text-transform:uppercase;margin:6px 0 34px;font-size:14px}.foot{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;margin-top:28px;font-size:12px}h2{letter-spacing:.3em;text-transform:uppercase;margin:0 0 22px;font-size:26px;font-weight:300}nav{flex-direction:column;align-items:flex-start;gap:4px;display:flex}button{font:inherit;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);cursor:pointer;opacity:.82;background:0 0;border:0;padding:9px 0;font-size:19px;transition:opacity .15s,letter-spacing .2s,color .15s}button:hover,button:focus-visible{opacity:1;color:var(--accent);letter-spacing:.3em;outline:none}button:disabled{opacity:.3;cursor:default;letter-spacing:.22em;color:var(--ink)}.back{margin-top:18px;font-size:15px}label{border-bottom:1px solid var(--line);letter-spacing:.06em;justify-content:space-between;align-items:center;gap:16px;padding:9px 0;font-size:16px;display:flex}select,input[type=text]{font:inherit;color:var(--ink);border:1px solid var(--line);background:#ffffff0f;border-radius:3px;min-width:0;padding:6px 10px;font-size:16px}select option{background:#11161d}input[type=range]{accent-color:var(--accent);width:180px}input[type=checkbox]{accent-color:var(--accent);width:18px;height:18px}.list{flex-direction:column;display:flex}.list button{border-bottom:1px solid var(--line);justify-content:space-between;width:100%;padding:11px 0;font-size:17px;display:flex}.list button small{color:var(--dim);letter-spacing:.1em;font-size:13px}table.keys{border-collapse:collapse;width:100%;font-size:15px}table.keys th{text-align:left;color:var(--dim);letter-spacing:.1em;text-transform:uppercase;padding:4px 6px;font-size:13px;font-weight:500}table.keys td{border-top:1px solid var(--line);padding:7px 6px}table.keys td:first-child{color:var(--dim)}.note{color:var(--dim);font-size:15px;line-height:1.5}.row{flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0 8px;display:flex}.row input{text-transform:uppercase;letter-spacing:.3em;text-align:center;width:110px}details{color:var(--dim);margin:8px 0}details summary{cursor:pointer;letter-spacing:.1em;font-size:14px}details input{width:100%}.code{letter-spacing:.2em;margin:14px 0 6px;font-size:22px}.code b{color:var(--accent);letter-spacing:.4em;font-weight:600}.err{color:var(--warm);min-height:1.2em}#card{text-align:center;pointer-events:none;animation:7s forwards card;position:fixed;top:30vh;left:0;right:0}#card .pname{letter-spacing:.5em;text-shadow:0 2px 24px #00000073;padding-left:.5em;font-size:clamp(30px,6vw,70px);font-weight:300}#card .pline{color:var(--ink);opacity:.8;letter-spacing:.08em;text-shadow:0 1px 12px #0009;margin-top:12px;font-size:18px}@keyframes card{0%{opacity:0;transform:translateY(10px)}12%{opacity:1;transform:none}75%{opacity:1}to{opacity:0}}#hint{pointer-events:none;border-left:2px solid var(--accent);letter-spacing:.06em;text-align:center;background:#05080c73;max-width:calc(100vw - 32px);padding:10px 20px;font-size:17px;position:fixed;bottom:9vh;left:50%;transform:translate(-50%)}#hint.swap{animation:.35s both hintIn}@keyframes hintIn{0%{opacity:0}to{opacity:1}}#hint kbd{font:inherit;letter-spacing:.12em;white-space:nowrap;color:var(--accent);background:#7fd8ff14;border:1px solid #7fd8ff8c;border-radius:3px;margin:0 2px;padding:1px 7px;font-size:.88em;font-weight:600}#hint .ok{letter-spacing:.24em;text-transform:uppercase;color:var(--accent);font-weight:600}#mission{left:calc(22px + env(safe-area-inset-left,0px));top:calc(20px + env(safe-area-inset-top,0px));pointer-events:none;text-shadow:0 1px 6px #0009;width:250px;animation:.9s cubic-bezier(.2,.7,.2,1) both missionIn;position:fixed}@keyframes missionIn{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:none}}#mission .mhead{letter-spacing:.32em;text-transform:uppercase;color:var(--accent);justify-content:space-between;align-items:baseline;font-size:11px;display:flex}#mission .mhead b{letter-spacing:.14em;font-weight:600}#mission .mtitle{letter-spacing:.26em;text-transform:uppercase;margin:2px 0 10px;font-size:20px;font-weight:300}#mList{margin:0;padding:0;list-style:none}#mList li{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);border-left:2px solid #0000;align-items:center;gap:11px;padding:5px 10px;font-size:14px;transition:color .3s,background .3s,border-color .3s;display:flex;position:relative}#mList li i{border:1.5px solid;flex:none;width:9px;height:9px;transition:background .3s,border-color .3s;transform:rotate(45deg)}#mList li.active{color:var(--ink);border-left-color:var(--accent);background:#05080c66}#mList li.active i{border-color:var(--accent);animation:1.4s ease-in-out infinite mPulse}#mList li.done{color:#eef2f666}#mList li.done i{background:var(--accent);border-color:var(--accent)}#mList li.just{animation:.9s mDone}#mList li em{background:var(--line);height:2px;display:none;position:absolute;bottom:0;left:10px;right:10px}#mList li.active em{display:block}#mList li u{background:var(--accent);width:0;height:100%;transition:width .15s linear;display:block}@keyframes mPulse{50%{box-shadow:0 0 10px var(--accent)}}@keyframes mDone{0%{color:var(--ink);background:#7fd8ff66}to{background:0 0}}#beacon{pointer-events:none;color:var(--accent);letter-spacing:.24em;text-transform:uppercase;text-shadow:0 1px 6px #000000d9;white-space:nowrap;flex-direction:column;align-items:center;gap:7px;font-size:12px;display:flex;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}#beacon i{border:2px solid var(--accent);width:14px;height:14px;transform:rotate(45deg);box-shadow:0 0 12px #7fd8ff8c}#beacon.edge i{box-shadow:none;transform:rotate(calc(var(--a,0deg) + 45deg));border-bottom-color:#0000;border-left-color:#0000}body.touch-ui #mission{top:calc(14px + env(safe-area-inset-top,0px))}#toasts{pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;top:24px;right:24px}.toast{border-right:2px solid var(--accent);letter-spacing:.18em;text-transform:uppercase;background:#05080c80;padding:8px 16px;font-size:14px;animation:4s forwards toast}.toast.warm{border-color:var(--warm)}@keyframes toast{0%{opacity:0;transform:translate(20px)}10%{opacity:1;transform:none}80%{opacity:1}to{opacity:0}}#countdown{pointer-events:none;text-shadow:0 4px 40px #0006;justify-content:center;align-items:center;font-size:clamp(80px,18vw,220px);font-weight:300;display:flex;position:fixed;inset:0}#clickToPlay{letter-spacing:.3em;text-transform:uppercase;color:var(--dim);pointer-events:none;font-size:14px;position:fixed;top:22%;left:50%;transform:translate(-50%)}#hud{text-align:right;letter-spacing:.1em;color:var(--dim);pointer-events:none;text-shadow:0 1px 6px #0009;font-size:14px;position:fixed;bottom:20px;right:22px}#hud b{color:var(--ink);font-size:18px;font-weight:600}#hud .fps{opacity:.6;margin-top:4px;font-size:11px}#race{pointer-events:none;letter-spacing:.08em;text-shadow:0 1px 6px #0009;min-width:210px;font-size:15px;position:fixed;top:20px;left:22px}#race .rtime{letter-spacing:.12em;margin-bottom:6px;font-size:30px;font-weight:300}#race .rrow{border-left:2px solid var(--accent);background:#05080c59;justify-content:space-between;gap:20px;margin:3px 0;padding:3px 10px;display:flex}#race .rrow.rival{border-color:var(--warm)}#race .rpos{letter-spacing:.3em;text-transform:uppercase;color:var(--dim);margin-top:8px}#rivalTag{pointer-events:none;letter-spacing:.14em;color:var(--warm);text-shadow:0 1px 6px #000c;white-space:nowrap;flex-direction:column;align-items:center;gap:2px;font-size:13px;display:flex;position:fixed;top:0;left:0;transform:translate(-50%,-100%)}#rivalTag i{border:2px solid var(--warm);width:10px;height:10px;transform:rotate(45deg)}.choices{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.choice{text-align:left;text-transform:none;letter-spacing:.02em;border:1px solid var(--line);background:#ffffff0a;border-radius:4px;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;display:flex}.choice b{letter-spacing:.14em;text-transform:uppercase;font-size:20px;font-weight:600}.choice small{color:var(--dim);font-size:14px;line-height:1.35}.choice:hover,.choice:focus-visible{letter-spacing:.02em;border-color:var(--accent)}#touch{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;--sr:env(safe-area-inset-right,0px);--sl:env(safe-area-inset-left,0px);--sb:env(safe-area-inset-bottom,0px);--st:env(safe-area-inset-top,0px);position:fixed;inset:0}.tbtn{opacity:1;touch-action:none;letter-spacing:.12em;width:76px;height:76px;color:var(--ink);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080c1261;border:1.5px solid #eef2f66b;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:11px;font-weight:600;transition:background 80ms,border-color 80ms,transform 80ms;display:flex;position:absolute}.tbtn:hover,.tbtn:focus-visible{letter-spacing:.12em;color:var(--ink)}.tbtn.on{border-color:var(--accent);background:#7fd8ff52;transform:scale(.94)}.tbig{width:98px;height:98px;font-size:12px}.tmid{width:64px;height:64px}.tsmall{letter-spacing:.05em;width:44px;height:44px;font-size:13px}.tcal{border-radius:22px;width:auto;padding:0 14px;font-size:11px}#tGrav{right:calc(20px + var(--sr));bottom:calc(20px + var(--sb))}#tGrav.on{background:#6ea0ff5c}#tGlide{right:calc(130px + var(--sr));bottom:calc(26px + var(--sb))}#tJump{right:calc(34px + var(--sr));bottom:calc(132px + var(--sb))}#tBoost{right:calc(124px + var(--sr));bottom:calc(118px + var(--sb));border-color:#c878ffb3}#tPause{right:calc(14px + var(--sr));top:calc(14px + var(--st))}#tCal{right:calc(68px + var(--sr));top:calc(14px + var(--st))}#touch.mode-tilt #tGlide{right:auto;left:calc(20px + var(--sl));bottom:calc(20px + var(--sb));width:98px;height:98px}#touch.mode-tilt #tBoost{right:auto;left:calc(34px + var(--sl));bottom:calc(132px + var(--sb))}#tStick{pointer-events:none;opacity:.55;background:#080c122e;border:1.5px solid #eef2f640;border-radius:50%;width:124px;height:124px;margin:-62px 0 0 -62px;position:absolute}#tStick.active{opacity:1}#tStick i{background:#eef2f659;border:1.5px solid #eef2f699;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%}body.touch-ui #toasts{top:70px}body.touch-ui #hud{top:70px;bottom:auto}#rotateHint{pointer-events:none;border-left:2px solid var(--accent);letter-spacing:.12em;text-transform:uppercase;background:#05080c8c;padding:10px 18px;font-size:14px;position:fixed;top:40%;left:50%;transform:translate(-50%)}@media (max-height:520px){#menu .logo{font-size:34px}.tag{margin:4px 0 12px;font-size:12px}nav button{padding:5px 0;font-size:16px}.foot{margin-top:10px}.panel{max-height:calc(100dvh - 20px);padding:18px 22px}h2{margin-bottom:12px;font-size:21px}#card{top:18vh}#card .pname{font-size:32px}#mission{width:210px}#mission .mtitle{margin-bottom:4px;font-size:15px}#mList li:not(.active){display:none}#hint{bottom:auto;top:calc(12px + env(safe-area-inset-top,0px));left:calc(248px + env(safe-area-inset-left,0px));right:calc(66px + env(safe-area-inset-right,0px));max-width:none;font-size:15px;transform:none}}@media (max-width:640px){.panel{padding:22px 18px}#menu{left:16px}label{flex-wrap:wrap}input[type=range]{width:100%}}
