:root{--ink: #f4ead8;--ink-dim: rgba(244, 234, 216, .62);--glass: rgba(14, 18, 24, .42);--line: rgba(244, 234, 216, .16);--gold: #e3b766;--ember: #d9673a}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#05070a;color:var(--ink);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}canvas#c{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}.hidden{opacity:0;pointer-events:none!important}.intro{position:fixed;inset:0;display:grid;place-items:center;z-index:10;background:radial-gradient(ellipse at 50% 60%,#05070a26,#05070abf 75%);transition:opacity 1.4s ease,backdrop-filter 1.4s ease}.intro.gone{opacity:0;pointer-events:none}.intro-inner{text-align:center;padding:24px;max-width:560px}.runes{letter-spacing:.6em;color:var(--gold);opacity:.75;font-size:14px;margin-bottom:6px}.intro h1{font-family:Cormorant Garamond,serif;font-weight:600;font-size:clamp(56px,11vw,120px);line-height:.95;margin:0;letter-spacing:.04em;text-shadow:0 4px 40px rgba(0,0,0,.6);background:linear-gradient(180deg,#fff6e4 20%,#e9c58c 90%);-webkit-background-clip:text;background-clip:text;color:transparent}.sub{font-family:Cormorant Garamond,serif;font-size:clamp(18px,3vw,24px);color:var(--ink-dim);margin:6px 0 28px;font-style:italic}.loader{width:220px;height:2px;margin:0 auto 22px;background:var(--line);border-radius:2px;overflow:hidden}.loader .bar{height:100%;width:0%;background:linear-gradient(90deg,var(--ember),var(--gold));transition:width .3s ease}.start{font:600 15px Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#1a120a;cursor:pointer;padding:15px 34px;border-radius:40px;border:none;background:linear-gradient(180deg,#f6d9a0,#d9a254);box-shadow:0 10px 40px #d9a25459,inset 0 1px #fff9;transition:transform .2s ease,box-shadow .2s ease,opacity .3s}.start:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 50px #d9a25480}.start:disabled{opacity:.55;cursor:default}.hint-keys{margin-top:28px;display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;font-size:12.5px;color:var(--ink-dim)}.hint-keys b{color:var(--ink);font-weight:600;margin-right:4px}.hud{position:fixed;left:20px;bottom:20px;z-index:5;transition:opacity 1s ease;pointer-events:none}.gauge{display:flex;align-items:center;gap:14px;padding:12px 16px 12px 12px;border-radius:18px;background:var(--glass);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line)}.compass{width:58px;height:58px;border-radius:50%;border:1px solid var(--line);position:relative;background:radial-gradient(circle,rgba(255,255,255,.05),transparent 70%)}.compass .needle{position:absolute;left:50%;top:50%;width:2px;height:24px;margin-left:-1px;margin-top:-24px;background:linear-gradient(var(--ember),var(--gold));transform-origin:50% 100%;border-radius:2px}.compass .n{position:absolute;top:3px;left:50%;transform:translate(-50%);font-size:10px;color:var(--gold);font-weight:600}.stats{min-width:128px}.speed{font-family:Cormorant Garamond,serif;font-size:32px;font-weight:600;line-height:1}.speed small{font-family:Inter,sans-serif;font-size:11px;color:var(--ink-dim);margin-left:6px;letter-spacing:.08em}.row{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-dim);margin-top:6px}.row span{width:42px}.meter{flex:1;height:4px;border-radius:4px;background:var(--line);overflow:hidden}.meter div{height:100%;width:50%;background:linear-gradient(90deg,var(--ember),var(--gold));transition:width .2s}.gear{position:fixed;top:16px;right:16px;z-index:6;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--glass);color:var(--ink);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer;display:grid;place-items:center;transition:transform .4s ease,opacity 1s}.gear:hover{transform:rotate(60deg)}.panel{position:fixed;top:70px;right:16px;z-index:6;width:300px;max-height:calc(100vh - 90px);overflow:auto;padding:16px 18px 18px;border-radius:18px;background:#0c0f149e;backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px);border:1px solid var(--line);transition:opacity .25s ease,transform .25s ease}.panel.hidden{transform:translateY(-8px)}.panel-head{display:flex;align-items:baseline;justify-content:space-between}.panel h3{margin:0 0 6px;font-family:Cormorant Garamond,serif;font-size:22px;font-weight:600}.fps{font-size:11px;color:var(--ink-dim);font-variant-numeric:tabular-nums}.panel label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);margin:14px 0 7px}.panel label.check{text-transform:none;letter-spacing:0;font-size:13px;color:var(--ink);display:flex;gap:8px;align-items:center;margin-top:10px;cursor:pointer}.seg{display:flex;gap:4px;padding:3px;border-radius:12px;background:#ffffff0d}.seg button{flex:1;padding:7px 4px;border:none;border-radius:9px;background:transparent;color:var(--ink-dim);font:500 12px Inter,sans-serif;cursor:pointer;transition:background .2s,color .2s}.seg button.on{background:#e3b76633;color:var(--ink);box-shadow:inset 0 0 0 1px #e3b76659}input[type=range]{width:100%;accent-color:var(--gold)}input[type=checkbox]{accent-color:var(--gold)}.touch{position:fixed;inset:auto 0 18px;z-index:5;display:flex;justify-content:space-between;padding:0 18px;pointer-events:none}.tpad{display:flex;gap:10px;pointer-events:auto}.tpad button{width:58px;height:58px;border-radius:50%;border:1px solid var(--line);background:var(--glass);color:var(--ink);font-size:20px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);touch-action:none}.tpad button:active{background:#e3b7664d}@media(hover:hover)and (pointer:fine){.touch{display:none}}@media(max-width:640px){.hud{left:12px;bottom:96px}.panel{width:calc(100vw - 32px)}}.toast{position:fixed;top:22px;left:50%;transform:translate(-50%,-10px);padding:9px 18px;border-radius:20px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:13px;opacity:0;transition:opacity .4s,transform .4s;pointer-events:none;z-index:7}.toast.on{opacity:1;transform:translate(-50%)}body.rec .hud,body.rec .gear,body.rec .panel,body.rec .intro,body.rec .touch,body.rec .toast{display:none!important}.credits{margin-top:18px;font-size:11px;line-height:1.5;color:var(--ink-dim);opacity:.8}.credits a{color:inherit}
