*{box-sizing:border-box}
body{margin:0;background:#f7f2e8;color:#142940;font-family:Arial,sans-serif}
button,a,select{-webkit-tap-highlight-color:transparent}
button,select{font:inherit}
button{cursor:pointer}
header{height:80px;display:flex;align-items:center;justify-content:space-between;max-width:1400px;margin:auto;padding:0 40px;border-bottom:1px solid #d9d8cf}
header a{color:#33475b;text-decoration:none;font-size:14px}
header>span{font-weight:900;letter-spacing:2px;font-size:13px}
header button{border:1px solid #ccd0cf;border-radius:30px;padding:10px 16px;background:transparent;color:#142940}
main{max-width:1400px;margin:auto;padding:38px 40px}
.intro{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:28px}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:2px;color:#d45c25}
h1{font-size:clamp(40px,6vw,76px);letter-spacing:-4px;margin:8px 0 10px;font-weight:900}
h1 em{color:#f06c26}
.intro p:last-child{color:#637281;font-size:16px}
.badge{transform:rotate(9deg);background:#ffd35b;border:2px solid #142940;border-radius:50%;width:112px;height:112px;flex-shrink:0;display:grid;place-content:center;text-align:center;font-size:16px;font-weight:900;box-shadow:5px 5px #142940}
.track{border-radius:22px;overflow:hidden;background:#112b50;box-shadow:0 16px 35px #122a4020}
.track-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;color:#edf7ff;border-bottom:1px solid #ffffff18}
.track-toolbar label{display:flex;align-items:center;gap:12px;font-weight:800;font-size:14px;white-space:nowrap}
#racer-count{background:#fff3d6;color:#142940;border:2px solid #ffd35b;border-radius:10px;padding:10px 28px 10px 12px;font-weight:800;cursor:pointer;min-height:42px}
.race-caption{font-size:13px;color:#c2d6df;margin:0;text-align:right;line-height:1.4}
.track-view{width:100%}
canvas#race{display:block;width:100%;height:auto}
.race-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;background:#0d2138;color:white}
.race-bar p{flex:1;min-width:0;font-size:18px;font-weight:700;margin:0;line-height:1.4}
.race-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
#go{background:#fc782d;color:#fff;border:0;border-bottom:4px solid #b44613;border-radius:12px;padding:16px 28px;font-weight:800;font-size:18px}
#shuffle{border:1px solid #56748d;color:#e0eef6;background:#243e57;padding:14px 16px;border-radius:12px;font-weight:700;font-size:14px}
#shuffle kbd{font:9px Arial;letter-spacing:1px;border:1px solid #7793a9;border-radius:4px;padding:4px;margin-left:6px}
button:disabled,select:disabled{cursor:default;opacity:.65}
.garage{margin-top:30px}
.garage-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px}
.garage-heading p{color:#637281;font-size:14px;margin:0}
h2{font-size:22px;margin:0}
.lane-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.lane-choice{position:relative;min-width:0;background:#fffdf8;border:2px solid #deded6;border-radius:16px;padding:28px 12px 12px;color:#203649;text-align:center;transition:transform .15s,border-color .15s,box-shadow .15s}
.lane-choice:hover:not(:disabled){transform:translateY(-3px)}
.lane-choice[aria-pressed=true]{border-color:var(--lane-color,#31b9d3);box-shadow:0 0 0 2px var(--lane-color,#31b9d3);background:#fff9e8}
.lane-choice .lane-number{position:absolute;top:8px;left:10px;background:var(--lane-color,#78dcec);color:#142940;border-radius:7px;padding:4px 7px;font-size:11px;font-weight:900}
.lane-choice canvas{display:block;width:100%;max-width:180px;height:auto;margin:auto}
.lane-choice strong{display:block;font-size:14px;line-height:1.3;overflow-wrap:anywhere}
.lane-choice small{display:block;font-size:11px;margin-top:5px;color:#647585}
.score{display:block;font-size:11px;white-space:nowrap;color:#6b7882;font-weight:700;margin-top:8px}
.picker{margin-top:22px;background:#fffdf8;border:1px solid #deded6;border-radius:18px;padding:22px}
.picker-head{display:flex;align-items:center;gap:12px}
.picker-head p{font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:800;margin:0 0 5px;color:#a44622}
.ability{font-size:13px;line-height:1.5;color:#526b7b;margin:12px 0 0}
.hint{display:flex;align-items:center;gap:6px;font-size:13px;color:#73808b;margin:12px 0}
.hint:before{content:'✦';color:#f06c26}
.cars{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;max-height:560px;overflow-y:auto;padding:3px 6px 4px 3px;scrollbar-color:#c0cfd1 transparent;scrollbar-width:thin}
.cars button{background:#f6f5ef;border:2px solid transparent;border-radius:12px;padding:4px 4px 10px;min-width:0;min-height:108px;color:#203649;transition:transform .15s}
.cars button:hover:not(:disabled){transform:translateY(-3px)}
.cars button[aria-pressed=true]{border-color:var(--lane-color,#31b9d3);background:#fff9e8}
.cars canvas{display:block;width:100%;height:auto}
.cars b,.cars strong{display:block;font-size:12px;line-height:1.25;overflow-wrap:anywhere}
.cars small{display:block;font-size:10px;margin-top:5px;color:#647585}
.cars button[aria-pressed=true] b,.cars button[aria-pressed=true] strong{color:#142940}
button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #db4e21;outline-offset:3px}
footer{text-align:center;color:#6c7984;font-size:13px;line-height:1.5;padding:28px 0 4px}
.winner-music{margin-top:24px;border:1px solid #ccd0cf;border-radius:12px;padding:14px 20px;background:#fffdf8;color:#142940;font-weight:700}
.radio-panel{margin-top:16px;padding:24px;background:#fffdf8;border:1px solid #deded6;border-radius:18px}
.radio-panel[hidden],.radio-panel [hidden]{display:none!important}
.radio-heading{display:flex;justify-content:space-between;align-items:center}
.radio-heading button{background:none;border:0;font-size:26px}
.radio-panel p{color:#637281;font-size:14px;line-height:1.5}
.radio-now{display:flex;align-items:center;gap:12px;margin:18px 0}
.radio-now img{border-radius:8px}
.radio-now span{display:block;margin-top:6px;font-size:12px;color:#637281}
.radio-panel a{color:#b84c1c}
.radio-panel audio{width:100%}
.radio-actions,.full-song{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0}
.radio-panel button:not(#close-radio){padding:12px 16px;border:1px solid #ccd0cf;border-radius:9px;background:#f7f2e8;color:#142940}
.radio-panel iframe{border:0;max-width:100%;border-radius:12px}
#video-player iframe{width:560px;height:auto;aspect-ratio:16/9}
.radio-panel .eyebrow{font-size:11px}
@media(max-width:1100px){.race-actions{flex-direction:column;align-items:stretch}#go{font-size:16px;padding:13px 18px}.cars{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:800px){header{padding:0 18px;height:65px}header>span{display:none}main{padding:24px 16px}h1{letter-spacing:-2px}.badge{width:78px;height:78px;font-size:12px}.intro p:last-child{font-size:13px}.track-toolbar{padding:14px 16px;gap:12px}.track-toolbar label{gap:8px}.race-caption{font-size:11px}.race-bar{flex-direction:column;text-align:center;padding:16px}.race-bar p{font-size:15px}.race-actions{width:100%;flex-direction:row}#go{flex:1;width:100%;font-size:16px}#shuffle{flex:1;padding:12px;font-size:12px}#shuffle kbd{display:none}.garage-heading{display:block}.garage-heading p{margin-top:6px}.lane-list{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.lane-choice{padding:28px 8px 12px}.lane-choice strong{font-size:12px}.picker{padding:16px}.picker-head h2{font-size:19px}.cars{grid-template-columns:repeat(4,minmax(0,1fr));max-height:440px}.cars b,.cars strong{font-size:11px}.cars small{font-size:10px}.cars button{min-height:96px}}
@media(max-width:480px){.track-toolbar{align-items:flex-start;flex-direction:column;gap:10px}.race-caption{text-align:left}.cars{grid-template-columns:repeat(3,minmax(0,1fr))}.race-actions{gap:8px}#go{padding:12px 10px;font-size:14px}#shuffle{padding:12px 8px}.radio-panel{padding:18px}}

.race-actions{flex-wrap:wrap;justify-content:flex-end;max-width:66%}#power-up,#shoot{border:1px solid #f4d783;border-radius:12px;padding:12px 14px;color:#142940;background:#ffe5a2;font:700 13px Arial;cursor:pointer}#shoot{background:#e0f3e3;border-color:#a8d8b4}.race-actions [hidden]{display:none!important}@media(max-width:800px){.race-actions{max-width:100%}#power-up,#shoot{flex:1;min-width:120px}}

.track-toolbar{flex-wrap:wrap;gap:16px 24px}
.track-settings{display:flex;align-items:center;flex-wrap:wrap;gap:14px 22px}
.track-toolbar select,#lane-jump{background:#fff3d6;color:#142940;border:2px solid #ffd35b;border-radius:10px;padding:10px 28px 10px 12px;font-weight:800;cursor:pointer;min-height:42px;max-width:100%}
.track-toolbar .race-caption{flex:1;min-width:200px}
.track-navigation,.garage-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px}
.track-navigation{color:#e0eef6;border-bottom:1px solid #ffffff18;background:#142e4c}
.track-navigation button,.garage-navigation button{border:1px solid #56748d;border-radius:9px;padding:9px 13px;min-height:38px;font-size:12px;font-weight:700;color:#e0eef6;background:#243e57}
.track-navigation span,.garage-navigation span{flex:1;text-align:center;font-size:12px;font-weight:700;line-height:1.4}
.track-navigation[hidden],.garage-navigation[hidden],.lane-choice[hidden]{display:none!important}
.garage-heading p{margin-top:6px}
.lane-jump-label{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;white-space:nowrap}
#lane-jump{background:#fffdf8;border-color:#deded6;font-size:13px}
.garage-navigation{padding:0 0 14px;color:#637281}
.garage-navigation button{background:#fffdf8;border-color:#ccd0cf;color:#33475b}
@media(max-width:800px){.track-toolbar{padding:14px 16px}.track-toolbar .race-caption{text-align:left;flex-basis:100%}.track-settings{gap:12px}.track-toolbar label{font-size:13px}.track-navigation{padding:12px 16px}.garage-heading{display:flex;flex-wrap:wrap;gap:14px}.garage-heading h2{font-size:20px}.lane-jump-label{gap:8px}}
@media(max-width:480px){.track-settings{align-items:stretch;flex-direction:column;width:100%;gap:10px}.track-settings label{justify-content:space-between}.track-toolbar select{min-width:154px}.track-toolbar .race-caption{min-width:0}.track-navigation,.garage-navigation{gap:8px}.track-navigation button,.garage-navigation button{padding:9px 8px;font-size:11px}.track-navigation span,.garage-navigation span{font-size:11px}.lane-jump-label{justify-content:space-between;width:100%}}
