@font-face{font-family:system;src:local('Avenir Next')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:#102331;color:#eef6f3;font-family:system,'Avenir Next',system-ui,sans-serif}body{overflow:hidden}button,select,input{font:inherit}button,a,select,input{touch-action:manipulation}button{cursor:pointer;border:1px solid #ffffff35;background:#172b39ed;color:#f1fcf7;border-radius:8px;padding:12px 20px;font-weight:700;transition:background .18s,transform .18s}button:hover{background:#345363;transform:translateY(-1px)}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #ffd09d;outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.5;transform:none}a{color:inherit;text-decoration:none}select{background:#182e3b;color:white;border:1px solid #ffffff40;border-radius:6px;padding:9px;max-width:100%}label{font-size:10px;letter-spacing:1.2px;display:flex;gap:8px;flex-direction:column;color:#c0d5d8}h1,h2,h3,p{margin:0}#world{position:fixed;width:100%;height:100%;inset:0;display:block}.vignette{position:fixed;inset:0;background:linear-gradient(90deg,#0c2029ce 0%,#0c202942 65%,transparent),linear-gradient(0deg,#091b2977,transparent 40%);pointer-events:none}.panel{position:relative;width:min(1120px,94vw);height:100%;margin:auto;padding:32px 0 16px;display:flex;flex-direction:column;gap:20px;overflow:auto;scrollbar-width:thin}.back{font-size:10px;letter-spacing:2px;display:block;margin-bottom:24px;color:#c1dadb}.eyebrow{font-size:10px;font-weight:700;letter-spacing:3px;color:#78ecd6}h1{font-size:clamp(48px,6.5vw,92px);letter-spacing:-5px;line-height:.91;font-weight:900;text-shadow:0 4px 40px #001c2f70}h1 span{display:block;font-size:.64em;color:#e9b779;letter-spacing:-2px;margin:9px 0}.intro{font-size:17px;color:#d4e4e4;margin-top:18px}.menu-body{display:flex;gap:28px;flex:1;min-height:220px;align-items:flex-start}#cups{display:flex;flex-direction:column;gap:7px;width:200px;flex-shrink:0}#cups button{text-align:left;font-size:10px;letter-spacing:1px;border-color:#ffffff15;padding:13px 16px;border-radius:4px;background:#102630c9}#cups button.selected{background:#89efd9;color:#102b35}#cups small{display:block;font-size:9px;margin-top:4px;opacity:.7}.course-section{flex:1;min-width:0;padding:20px;background:#102531d9;border:1px solid #ffffff20;border-radius:12px;backdrop-filter:blur(18px)}.section-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.section-head h2{font-size:20px;letter-spacing:-.5px}#progress{font-size:10px;color:#7debd6}#cup-info{font-size:12px;color:#b5cdd0;line-height:1.5;margin:8px 0 18px}.course-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.course-card{padding:12px 8px;text-align:left;min-width:0;border-radius:6px;background:#1c3540;position:relative}.course-card.selected{border-color:#a0ffe6;background:#2b5158}.course-card svg{width:100%;height:63px;filter:drop-shadow(0 2px 4px #001);display:block}.course-card b{display:block;font-size:10px;line-height:1.3;margin-top:9px}.course-card span{font-size:9px;color:#9bd9d2}.launch{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(120deg,#203c48f5,#142c37ed);border:1px solid #ffffff30;border-radius:12px;padding:22px 24px}.launch h2{font-size:30px;letter-spacing:-1px;margin:4px 0 6px}.launch p{font-size:12px;color:#bdd7da;max-width:480px;line-height:1.5}.launch-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px;min-width:320px}.launch-controls label{grid-column:1/-1}.primary{background:#94f3d8;color:#122d35;border-color:#94f3d8}.primary:hover{background:#c1ffef}.primary span{margin-left:20px}.quiet{padding:10px;background:transparent;font-size:11px}.fine{font-size:10px;line-height:1.6;color:#a8c3c8}.race-toolbar{position:absolute;left:24px;right:24px;top:max(16px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;gap:20px}.race-toolbar button{font-size:11px;padding:10px 14px}.race-toolbar span{font-size:11px;font-weight:700;letter-spacing:3px;background:#142b38b8;padding:9px 15px;border-radius:6px}.player-hud{position:absolute;left:34px;top:90px;bottom:30px;pointer-events:none}.position{font-size:74px;font-weight:900;letter-spacing:-5px;line-height:1;text-shadow:0 3px 20px #091b29}.position span{font-size:17px;letter-spacing:0;color:#d0e4e7;margin-left:8px}.race-stats{display:flex;flex-direction:column;gap:4px;margin-top:12px;font-size:12px;letter-spacing:2px;text-shadow:0 1px 5px #123}.speed{position:absolute;bottom:20px;left:0;display:flex;align-items:baseline;gap:8px}.speed b{font-size:52px;letter-spacing:-3px}.speed span{font-size:9px;letter-spacing:2px}.energy{position:absolute;bottom:6px;left:0;white-space:nowrap;font-size:11px;color:#8bf3dc;letter-spacing:1px}.drift-meter{position:absolute;bottom:90px;left:0;width:170px;height:5px;background:#ffffff30;border-radius:10px;overflow:hidden}.drift-meter i{display:block;height:100%;width:0;background:#83ffe1}.callout{position:absolute;bottom:110px;left:0;font-size:13px;letter-spacing:2px;font-weight:700;color:#c0ffe9;white-space:nowrap;text-shadow:0 2px 4px #123}.second{left:calc(50% + 34px)}#map{position:absolute;right:24px;bottom:24px;width:185px;height:156px;background:#102939b0;border:1px solid #ffffff25;border-radius:12px}#countdown{position:absolute;top:38%;left:0;right:0;text-align:center;font-size:92px;font-weight:900;letter-spacing:-5px;text-shadow:0 4px 35px #003}#split-divider{position:absolute;top:60px;bottom:0;left:50%;width:2px;background:#e9fff99c}.modal{position:fixed;inset:0;z-index:6;display:grid;place-items:center;background:#061a27bb;backdrop-filter:blur(14px);padding:20px}.dialog{width:min(700px,95vw);max-height:92vh;overflow:auto;background:#142e3def;border:1px solid #92c8c640;box-shadow:0 30px 100px #0006;border-radius:16px;padding:32px}.dialog h2{font-size:38px;letter-spacing:-1.5px;margin:10px 0 22px}.dialog h3{font-size:11px;letter-spacing:2px;color:#95efda;margin-bottom:10px}.dialog p{font-size:12px;line-height:1.8;color:#c1d8db}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.tip{margin:20px 0}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}.settings-grid label:has(input[type=checkbox]){flex-direction:row;align-items:center}.dialog .fine{margin:18px 0}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.results-row{display:flex;justify-content:space-between;padding:11px;border-bottom:1px solid #ffffff20;font-size:13px}.results-row.you{color:#9fffe0;background:#64d0b515}.result-hero{font-size:52px;font-weight:900;color:#a6ffe1}.medal{color:#ffcc82}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#122d3e;border:1px solid #7fe7d355;border-radius:9px;font-size:12px;z-index:10;opacity:0;pointer-events:none;transition:opacity .2s}#toast.visible{opacity:1}#touch{position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:14px;right:14px;display:flex;justify-content:space-between;z-index:4;pointer-events:none}#touch button{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;width:64px;height:64px;padding:6px;background:#183441cf;border:1px solid #c5ffee80;font-size:10px;border-radius:50%}#touch button.active{background:#80efda;color:#123}.steering,.touch-actions{display:flex;gap:9px}.steering button{font-size:20px!important}[hidden]{display:none!important}@media(max-height:760px) and (min-width:850px){.panel{padding-top:20px;gap:14px}.back{margin-bottom:12px}h1{font-size:64px}.intro{margin-top:8px}.launch{padding:16px 20px}.course-section{padding:14px}.course-card svg{height:48px}.menu-body{min-height:180px}.launch h2{font-size:24px}}@media(max-width:850px){.panel{padding:20px 0;gap:18px}h1{font-size:62px}.menu-body{flex-direction:column;gap:12px;flex:none}#cups{flex-direction:row;width:100%;overflow:auto}#cups button{min-width:120px;padding:10px;font-size:9px}.course-section{width:100%;padding:14px}.course-grid{gap:5px}.course-card{padding:8px 5px}.course-card svg{height:45px}.course-card b{font-size:9px}.launch{flex-direction:column;align-items:stretch;padding:18px}.launch-controls{min-width:0}.launch h2{font-size:26px}.fine{text-align:center}.race-toolbar{left:12px;right:12px;gap:8px}.race-toolbar span{font-size:8px;letter-spacing:1px;padding:8px}.player-hud{left:18px;top:76px;bottom:125px}.position{font-size:54px}.second{left:calc(50% + 18px)}.speed b{font-size:40px}#map{width:120px;height:100px;bottom:110px;right:12px}.dialog{padding:23px}.dialog h2{font-size:30px}.help-grid{gap:14px}.drift-meter{width:130px}.race-stats{font-size:10px;letter-spacing:1px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media(max-width:420px){h1{font-size:52px}.back{margin-bottom:18px}.course-card b{font-size:8px}.help-grid{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.touch-actions{gap:6px}#touch button{width:54px;height:58px}.steering{gap:6px}.section-head h2{font-size:17px}}

body.racing .vignette{background:radial-gradient(ellipse at center,transparent 60%,#071b2a33)}

.speed,.energy,.callout,.race-stats{filter:drop-shadow(0 2px 3px #071b2a);text-shadow:0 1px 4px #071b2a,0 0 12px #071b2a}.speed{background:#102c3d88;border-radius:12px;padding:2px 10px;left:-10px}.energy{background:#102c3d99;padding:3px 8px;border-radius:5px;left:-8px}

.player-label{display:block;font-size:9px;letter-spacing:2px;background:#123447b8;padding:6px 9px;width:max-content;margin-bottom:7px;color:#b1ffe7;border-radius:4px}.drift-meter{height:7px;background:repeating-linear-gradient(90deg,#102c3d99 0 32%,#b9ead0b0 32% 33%)}

/* About text sits just below the menu fold: absolutely positioned under the last menu line so it adds nothing to the flex layout, while still extending the panel's scroll area. */
.menu-foot{position:relative}.about{position:absolute;top:100%;left:0;right:0;padding:48px 0 40px}.about-card{max-width:780px;padding:22px 24px;background:#102531e6;border:1px solid #ffffff20;border-radius:12px;color:#c1d8db}.about h2{font-size:20px;letter-spacing:-.5px;margin-bottom:12px;color:#eef6f3}.about p,.about ul{font-size:13px;line-height:1.7;margin:10px 0 0}.about ul{padding-left:18px}.about b{color:#e9b779;font-weight:700}

/* Short desktop windows: the cup list scrolls within the space the menu gives it instead of spilling under the launch panel. The padding/negative-margin pair keeps the button size and focus rings unchanged inside the scroll box. */
@media(min-width:851px){#cups{align-self:stretch;overflow-y:auto;scrollbar-width:thin;width:214px;padding:7px;margin:-7px}}
