*{margin:0;padding:0;box-sizing:border-box}:root{--ink: #161618;--chip: rgba(22, 22, 24, .78);--chip-border: rgba(255, 255, 255, .09);--text: #f3f1ee;--text-dim: rgba(243, 241, 238, .62);--grad: linear-gradient(90deg, #a78bfa, #f472b6, #fb923c);--accent: #f472b6;font-family:Quicksand,system-ui,sans-serif}html,body,#app{height:100%;overflow:hidden;background:var(--ink);color:var(--text)}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.loading{position:fixed;inset:0;display:grid;place-content:center;gap:18px;justify-items:center;background:var(--ink);z-index:30;transition:opacity .5s ease}.loading.gone{opacity:0;pointer-events:none}.loading p{font-size:15px;font-weight:500;letter-spacing:.04em;color:var(--text-dim)}.loading-car{width:74px;height:30px;position:relative;animation:carbounce .7s ease-in-out infinite}.loading-car:before{content:"";position:absolute;inset:0 0 8px;border-radius:8px 12px 4px 4px;background:#2c3140;box-shadow:26px 2px 22px 2px #ffe2a059}.loading-car:after{content:"";position:absolute;bottom:0;left:10px;width:12px;height:12px;border-radius:50%;background:#35313d;box-shadow:40px 0 #35313d}@keyframes carbounce{0%,to{transform:translateY(0) rotate(-1.2deg)}50%{transform:translateY(-5px) rotate(1.2deg)}}.hud{position:fixed;inset:0;pointer-events:none;z-index:10}.topbar{position:absolute;top:14px;left:16px;right:16px;display:flex;align-items:center;gap:16px;pointer-events:none}.topbar .brand{display:flex;align-items:center;gap:9px;background:var(--chip);border:1px solid var(--chip-border);border-radius:999px;padding:8px 16px 8px 10px;backdrop-filter:blur(10px);pointer-events:auto}.topbar .brand img{width:22px;height:22px;display:block}.topbar .brand .home{display:flex;align-items:center;gap:9px;color:var(--text);text-decoration:none;font-weight:600;font-size:14.5px}.topbar .brand .home:hover span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.topbar .brand .tld{color:var(--text-dim);font-weight:500}.topbar .brand .sep{color:var(--text-dim);font-size:13px}.topbar .brand .crumb{font-size:14.5px;font-weight:600;letter-spacing:.01em}.topbar .tag{font-size:13px;color:var(--text-dim);font-weight:500;letter-spacing:.02em}.topbar .tools{margin-left:auto;display:flex;gap:8px;pointer-events:auto}.topbar .tools button,.topbar .tools a{display:flex;align-items:center;gap:7px;background:var(--chip);border:1px solid var(--chip-border);color:var(--text);border-radius:999px;padding:9px 15px;font:600 13.5px/1 Quicksand,sans-serif;letter-spacing:.02em;cursor:pointer;backdrop-filter:blur(10px);transition:border-color .2s ease,transform .15s ease}.topbar .tools button:hover,.topbar .tools a:hover{border-color:var(--accent);transform:translateY(-1px)}.topbar .tools .glyph{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:15px}.dash{position:absolute;left:20px;bottom:20px;display:flex;align-items:flex-end;gap:14px}.dial{display:flex;align-items:baseline;gap:7px;background:var(--chip);border:1px solid var(--chip-border);border-radius:18px;padding:12px 18px;backdrop-filter:blur(10px)}.dial .speed{font-size:40px;font-weight:700;min-width:2ch;text-align:right;font-variant-numeric:tabular-nums;line-height:1}.dial .unit{font-size:13px;font-weight:600;color:var(--text-dim)}.beams{display:flex;align-items:center;gap:8px;background:var(--chip);border:1px solid var(--chip-border);color:var(--text-dim);border-radius:16px;padding:12px 16px;font:600 13px/1.2 Quicksand,sans-serif;letter-spacing:.04em;cursor:pointer;backdrop-filter:blur(10px);transition:border-color .2s ease,color .2s ease}.beams:hover{border-color:var(--accent)}.beams .beam-glyph{font-size:14px;color:#ffe2a08c;letter-spacing:-.05em}.beams.high{color:#ffe2a0;border-color:#ffe2a073}.beams.high .beam-glyph{color:#ffe2a0;text-shadow:0 0 10px rgba(255,226,160,.7)}.seat{display:flex;align-items:center;gap:8px;background:var(--chip);border:1px solid var(--chip-border);color:var(--text-dim);border-radius:16px;padding:12px 16px;font:600 13px/1.2 Quicksand,sans-serif;letter-spacing:.04em;cursor:pointer;backdrop-filter:blur(10px);transition:border-color .2s ease,color .2s ease}.seat:hover{border-color:var(--accent)}.seat .glyph{font-size:14px;filter:saturate(.8)}.dash.afoot .seat{color:var(--text);border-color:var(--accent)}.prompt{position:absolute;bottom:108px;left:50%;transform:translate(-50%);background:var(--chip);border:1px solid var(--chip-border);border-radius:999px;padding:9px 18px;font-size:13px;font-weight:600;color:var(--text);letter-spacing:.02em;white-space:nowrap;backdrop-filter:blur(10px)}.prompt kbd{display:inline-block;background:#ffffff1a;border-radius:5px;padding:2px 6px;margin:0 1px;font:600 11.5px Quicksand,sans-serif;color:var(--text)}.damage{display:grid;gap:7px;background:var(--chip);border:1px solid var(--chip-border);border-radius:16px;padding:11px 15px 13px;backdrop-filter:blur(10px);min-width:168px}.dmg-label{font-size:12.5px;font-weight:600;color:var(--text-dim);letter-spacing:.05em}.dmg-label b{color:var(--text);font-variant-numeric:tabular-nums}.dmg-bar{display:block;height:7px;border-radius:99px;background:#ffffff1a;overflow:hidden}.dmg-bar i{display:block;height:100%;width:0;border-radius:99px;background:var(--grad);transition:width .25s ease}.dmg-bar i.hot{animation:throb .9s ease-in-out infinite}@keyframes throb{50%{filter:brightness(1.45)}}.dmg-shed{font-size:12px;font-weight:600;color:var(--accent)}.toasts{position:absolute;top:84px;left:50%;transform:translate(-50%);display:grid;gap:8px;justify-items:center}.toast{background:var(--chip);border:1px solid var(--chip-border);border-radius:999px;padding:8px 18px;font-size:13.5px;font-weight:600;letter-spacing:.02em;opacity:0;transform:translateY(-8px);transition:opacity .3s ease,transform .3s ease;backdrop-filter:blur(10px)}.toast.in{opacity:1;transform:none}.hint{position:absolute;bottom:26px;right:20px;background:var(--chip);border:1px solid var(--chip-border);border-radius:999px;padding:9px 18px;font-size:13px;font-weight:500;color:var(--text-dim);letter-spacing:.02em;white-space:nowrap;backdrop-filter:blur(10px);transition:opacity .8s ease}.hint kbd{display:inline-block;background:#ffffff1a;border-radius:5px;padding:2px 6px;margin:0 1px;font:600 11.5px Quicksand,sans-serif;color:var(--text)}.hint.fade{opacity:0}@media(pointer:coarse){.hint{right:auto;left:50%;transform:translate(-50%);bottom:172px}.dash{left:auto;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));flex-direction:column;align-items:flex-end;gap:8px}}.talk{position:fixed;inset:0;pointer-events:none;z-index:12}.talk-cue{position:absolute;display:grid;justify-items:center;transform:translate(-50%,calc(-100% - 6px));pointer-events:auto;cursor:pointer;animation:cue-rise .22s ease-out}.talk-cue[hidden],.talk-btn[hidden]{display:none}.talk-cue-in{display:inline-flex;align-items:center;gap:9px;background:var(--chip);border:1px solid var(--chip-border);border-radius:999px;padding:8px 15px;font-size:13px;font-weight:600;letter-spacing:.02em;white-space:nowrap;backdrop-filter:blur(10px);transition:border-color .2s ease}.talk-cue:hover .talk-cue-in{border-color:var(--accent)}.talk-cue kbd{display:inline-block;background:#ffffff1f;border-radius:5px;padding:2px 6px;font:600 11.5px Quicksand,sans-serif;color:var(--text)}.talk-cue-tail{width:1px;height:12px;background:linear-gradient(rgba(255,255,255,.35),transparent)}@keyframes cue-rise{0%{opacity:0;transform:translate(-50%,calc(-100% + 2px))}}.talk-btn{position:absolute;left:50%;bottom:calc(190px + env(safe-area-inset-bottom,0px));transform:translate(-50%);pointer-events:auto;background:var(--chip);border:1px solid var(--accent);color:var(--text);border-radius:999px;padding:13px 26px;font:700 14px Quicksand,sans-serif;letter-spacing:.03em;backdrop-filter:blur(10px);cursor:pointer}.talk-stage[hidden]{display:none}.talk-bar{position:absolute;left:0;right:0;height:min(11vh,92px);background:#08090c;transform:scaleY(0);transition:transform .34s cubic-bezier(.3,.8,.3,1)}.talk-bar.top{top:0;transform-origin:top}.talk-bar.bottom{bottom:0;transform-origin:bottom}.talk-stage.on .talk-bar{transform:scaleY(1)}.talk-panel{--voice: #f3f1ee;position:absolute;left:50%;bottom:max(28px,min(11vh,92px) - 60px);transform:translate(-50%,14px);width:min(660px,calc(100vw - 40px));pointer-events:auto;background:var(--chip);border:1px solid var(--chip-border);border-radius:20px;padding:16px 20px 18px;backdrop-filter:blur(14px);opacity:0;transition:opacity .28s ease,transform .28s ease}.talk-stage.on .talk-panel{opacity:1;transform:translate(-50%)}.talk-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px}.talk-role{display:block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}.talk-role:empty{display:none}.talk-name{font-size:17px;font-weight:700;letter-spacing:.01em;color:var(--voice)}.talk-x{flex:none;width:28px;height:28px;border:1px solid var(--chip-border);border-radius:999px;background:#ffffff0a;color:var(--text-dim);font-size:13px;line-height:1;cursor:pointer;transition:color .2s ease,border-color .2s ease}.talk-x:hover{color:var(--text);border-color:var(--accent)}.talk-line{min-height:4.2em;font-size:16px;font-weight:500;line-height:1.42;letter-spacing:.005em;color:var(--text);cursor:pointer}.talk-line.typing:after{content:"▌";margin-left:1px;color:var(--voice);opacity:.75;animation:caret .9s steps(2,end) infinite}@keyframes caret{50%{opacity:0}}.talk-replies{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;min-height:38px;opacity:0;transform:translateY(4px);transition:opacity .22s ease,transform .22s ease}.talk-replies.ready{opacity:1;transform:none}.talk-reply{display:inline-flex;align-items:center;gap:8px;background:#ffffff0d;border:1px solid var(--chip-border);color:var(--text);border-radius:999px;padding:9px 16px;font:600 13.5px Quicksand,sans-serif;letter-spacing:.01em;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .12s ease}.talk-reply:hover{border-color:var(--accent);background:#ffffff17;transform:translateY(-1px)}.talk-reply kbd{display:inline-block;background:#ffffff1a;border-radius:4px;padding:1px 5px;font:600 10.5px Quicksand,sans-serif;color:var(--text-dim)}.hud.talking .dash,.hud.talking .hint,.hud.talking .prompt,.hud.talking .toasts{opacity:0;transition:opacity .3s ease;pointer-events:none}@media(pointer:coarse){.talk-panel{bottom:max(20px,min(11vh,92px) - 66px);padding:13px 16px 15px}.talk-line{font-size:14.5px;min-height:4.4em}.talk-reply{padding:10px 14px;font-size:13px}}.touchpads{position:absolute;inset:auto 0 0;pointer-events:none}.joystick{position:absolute;left:calc(20px + env(safe-area-inset-left,0px));bottom:calc(26px + env(safe-area-inset-bottom,0px));pointer-events:auto}.stick{position:relative;width:132px;height:132px;border-radius:50%;border:1px solid var(--chip-border);background:var(--chip);backdrop-filter:blur(10px);touch-action:none;display:grid;place-items:center;transition:border-color .15s ease}.stick.held{border-color:var(--accent)}.stick-ring{position:absolute;inset:16px;border-radius:50%;border:1px dashed rgba(255,255,255,.14)}.stick-knob{width:54px;height:54px;border-radius:50%;background:var(--grad);box-shadow:0 4px 14px #00000073;will-change:transform}@media(max-width:760px){.topbar .tag,.topbar .tools .label{display:none}.dial .speed{font-size:30px}.damage{min-width:128px}}
