*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:Inter,system-ui,sans-serif;color:#f7f3ff;background:#17112b}button,a,summary{-webkit-tap-highlight-color:transparent}button{border:0;border-radius:12px;padding:13px 22px;color:#211333;background:#c5ff70;font:700 16px system-ui;cursor:pointer}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #fff;outline-offset:4px}[hidden]{display:none!important}#app{min-height:620px;position:relative;overflow:hidden}#track{position:absolute;inset:0;background:linear-gradient(140deg,#313e73,#17112b)}canvas{display:block;width:100%;height:100%}header{position:absolute;inset:0 0 auto;display:flex;align-items:center;gap:20px;padding:18px 24px;background:linear-gradient(#15112de6,transparent);z-index:2}.brand{font-size:21px;font-weight:850;letter-spacing:-.7px}.brand b{font-size:11px;letter-spacing:2px;display:block;color:#c5ff70}#attempts{margin-left:auto;font-size:13px}#exit{background:#291d3bdd;color:#fff;font-size:12px;padding:9px 12px}#panel{position:absolute;left:5%;top:50%;transform:translateY(-45%);width:min(440px,90%);max-height:80%;overflow:auto;padding:30px;border:1px solid #b3a3d355;border-radius:24px;background:#21152cf2;box-shadow:0 25px 70px #0d051c55;backdrop-filter:blur(12px)}.eyebrow{font-size:10px;letter-spacing:2px;color:#c5ff70;font-weight:800}h1{font-size:38px;line-height:1.06;letter-spacing:-1.8px;margin:16px 0}p{font-size:14px;line-height:1.55;color:#dfd2ef}.rewards{display:flex;gap:8px;margin:20px 0}.rewards span{flex:1;padding:10px 5px;text-align:center;border:1px solid #8d76a855;border-radius:10px;background:#38264b}.rewards b{display:block;font-size:11px;color:#c5ff70;margin-bottom:4px}#join,#cancel{width:100%;margin-bottom:8px}#cancel{background:#4b3762;color:#fff}details{margin-top:16px}summary{font-size:12px;cursor:pointer;color:#c5b6d6}details p{font-size:12px}.back{display:inline-block;margin-top:18px;color:#cfc2e0;font-size:12px}#race-hud{position:absolute;inset:85px 20px auto;pointer-events:none;text-shadow:0 2px 3px #000}#position{font-size:38px}#clock{float:right;font-size:25px;font-weight:800}#racers{list-style:none;padding:0;font-size:13px;line-height:1.9}#notice{position:absolute;bottom:0;padding:12px;width:100%;background:#17112bbc;text-align:center;color:#d8c9eb;font-size:11px;pointer-events:none}#touch{position:absolute;bottom:44px;left:0;right:0;display:flex;justify-content:space-between;padding:0 14px;pointer-events:none}#touch>div{display:flex;gap:8px}#touch button{pointer-events:auto;touch-action:none;user-select:none;padding:22px 18px;background:#211333bc;border:1px solid #ddd5;color:#fff;min-width:58px}#touch #t-drift{background:#9262b9ca}@media(max-width:600px){#app{min-height:560px}header{padding:14px;gap:10px}.brand{font-size:17px}#attempts{font-size:11px}#panel{padding:23px;left:5%;max-height:78%;top:52%}h1{font-size:32px}#race-hud{top:75px}#touch button{font-size:12px;padding:20px 13px}.rewards{margin:14px 0}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
