:root{color-scheme:dark;--ink:#0b0c0e;--gold:#d8bc7e;--muted:#bbb7ae;--white:#f5f2eb;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--white);overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:4px}[hidden]{display:none!important}#app{height:100svh;display:flex;flex-direction:column}.topbar{height:85px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid #ffffff1c;gap:15px;background:#0b0c0e;z-index:5}.wordmark{display:flex;align-items:center;gap:11px;font-size:20px;line-height:.95;font-weight:900;letter-spacing:-.5px;color:white;text-decoration:none}.number{background:var(--gold);color:var(--ink);font-size:37px;letter-spacing:-3px;padding:8px 10px 8px 7px;border-radius:2px;transform:skew(-8deg);font-family:Impact,'Arial Narrow',sans-serif}.club{display:block;font-size:12px;letter-spacing:3.6px;font-weight:500;margin-top:7px}.session{font-family:monospace;font-size:13px;letter-spacing:1px;color:#c2bfb8;display:flex;gap:16px;align-items:center}.session span{color:var(--gold)}.session i{display:block;width:1px;height:18px;background:#5e5c56}.header-actions{display:flex;align-items:center;gap:8px}.icon-button{background:transparent;color:#eae7e0;border:1px solid #4c4a44;border-radius:4px;height:40px;min-width:42px;font-size:12px;font-weight:bold;padding:0 12px}.icon-button:hover{border-color:var(--gold);color:var(--gold)}.icon-button:disabled{opacity:.35;cursor:default}#pause{font-size:22px}#track{position:relative;flex:1;min-height:0;overflow:hidden;background:#315543}#game{display:block;width:100%;height:100%;touch-action:none}.screen{position:absolute;z-index:4;background:#151619f5;border:1px solid #89878144;box-shadow:0 25px 90px #0005;border-radius:4px}.welcome{left:5%;top:50%;transform:translateY(-50%);padding:33px 35px;width:390px}.race-tag{font-size:12px;font-weight:bold;letter-spacing:2px;color:var(--gold)}h1,h2{font-family:Impact,'Arial Narrow',Arial,sans-serif;letter-spacing:-1.6px;font-weight:900;line-height:.95;margin:21px 0}h1{font-size:64px}h1 em{font-style:normal;color:var(--gold)}.intro{font-size:16px;line-height:1.65;color:#cecbc4;margin:20px 0}.race-spec{display:flex;gap:0;border-top:1px solid #d5d2cb25;border-bottom:1px solid #d5d2cb25;margin:23px 0;padding:17px 0}.race-spec span{font-size:10px;letter-spacing:1px;width:33.333%;color:var(--muted);border-right:1px solid #d5d2cb25;text-align:center}.race-spec span:first-child{text-align:left}.race-spec span:last-child{border:0;text-align:right}.race-spec b{display:block;font-family:Impact,'Arial Narrow',sans-serif;font-size:25px;color:white;margin-bottom:6px}.primary{background:var(--gold);color:var(--ink);width:100%;padding:18px 20px;border:0;border-radius:3px;font-weight:900;font-size:15px;letter-spacing:1px;display:flex;align-items:center;justify-content:space-between;transition:background .15s,transform .15s}.primary:hover{background:#edd6a5;transform:translateY(-2px)}.primary span{font-size:24px;line-height:1}.quick-tip{text-align:center;color:#c3c0b9;font-size:12px;margin:14px 0 21px}.how-to{display:flex;justify-content:space-between;gap:12px}.how-to>div{display:flex;flex-direction:column;gap:8px;align-items:center}.how-to>div>span:last-child{font-size:9px;letter-spacing:.8px;color:var(--muted)}.keys{border:1px solid #ffffff40;border-bottom:3px solid #ffffff40;padding:4px 8px;border-radius:4px;min-width:29px;text-align:center;font-size:16px}.mobile-tip{display:none}.minimap-wrap{position:absolute;right:27px;bottom:25px;width:175px;height:149px;border:1px solid #e6e3dc22;background:#0b0c0ecc;border-radius:5px;display:flex;align-items:center;flex-direction:column;pointer-events:none}#minimap{width:175px;height:127px}.minimap-wrap>span{font-family:monospace;font-size:10px;color:#dad7d0;letter-spacing:1px}.hud{position:absolute;left:27px;top:24px;display:flex;background:#0b0c0eed;border:1px solid #b9b6af33;border-radius:4px;align-items:center;padding:16px 22px;gap:25px;pointer-events:none}.eyebrow{display:block;font-size:10px;color:#c1beb7;letter-spacing:1.3px;margin-bottom:6px}.position b{font-family:Impact,'Arial Narrow',sans-serif;font-size:42px;color:var(--gold);font-weight:400;line-height:1}.position b span{font-family:Arial,sans-serif;color:#bab7b0;font-size:17px;margin-left:7px}.hud-stat{padding-left:23px;border-left:1px solid #7a78725c}.hud-stat strong{font-family:monospace;font-size:25px}.hud-stat small{font-size:15px;color:#bcb9b2}.timer strong{font-size:22px}.speed{position:absolute;bottom:34px;left:30px;pointer-events:none;text-shadow:0 2px 10px #0008}.speed>b{font-family:Impact,'Arial Narrow',sans-serif;font-size:58px;font-weight:400}.speed>span{font-family:monospace;font-size:13px;margin-left:8px;color:#edeae3}.speed-meter{height:4px;width:120px;background:#1b1c1e78;margin-top:2px;transform:skew(-12deg);overflow:hidden}.speed-meter i{display:block;background:var(--gold);height:100%;width:0%}#countdown{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(90px,18vw,170px);text-shadow:0 5px 40px #0008;color:var(--gold);z-index:3}#message{position:absolute;top:142px;left:50%;transform:translateX(-50%);background:#0b0c0ee8;color:var(--gold);border-radius:4px;padding:11px 18px;font-size:14px;font-weight:bold;opacity:0;transition:opacity .15s;white-space:nowrap;pointer-events:none;z-index:3}#message.active{opacity:1}.recover{position:absolute;right:27px;top:25px;color:#e6e3dc;border:1px solid #d4d1ca3d;border-radius:4px;background:#0b0c0ecc;font-size:12px;font-weight:bold;padding:12px;touch-action:manipulation}.compact{left:50%;top:50%;transform:translate(-50%,-50%);width:370px;padding:30px;text-align:center}.compact h2{font-size:43px;margin-bottom:18px}.compact p{font-size:15px;line-height:1.6;color:#d2cfc8}.secondary{border:0;background:none;color:#c6c3bc;padding:18px 0 0;text-decoration:underline;font-size:14px}.result-place{font-family:Impact,'Arial Narrow',sans-serif;font-size:85px;color:var(--gold);line-height:1}.result-stats{display:flex;justify-content:space-around;border-top:1px solid #ffffff24;margin:22px 0;padding-top:20px}.result-stats span{display:block;font-size:10px;color:#bbb8b1;letter-spacing:1px;margin-bottom:9px}.result-stats b{font-family:monospace;font-size:22px}.touch-controls{display:none}footer{height:46px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 36px;font-size:10px;letter-spacing:1px;color:#b6b3ac;background:#0b0c0e}footer i{display:inline-block;width:5px;height:5px;background:var(--gold);margin-right:8px}.footer-number{color:var(--gold);font-weight:bold}#footer-hint{font-family:monospace}
@media(pointer:coarse){.touch-controls{display:flex;position:absolute;left:20px;right:20px;bottom:22px;justify-content:space-between;pointer-events:none;z-index:3}.touch-controls button{touch-action:none;user-select:none;-webkit-user-select:none;pointer-events:auto;background:#0b0c0ed9;border:1px solid #f1eee757;border-bottom:4px solid #f1eee76e;border-radius:12px;color:#fff;width:73px;height:67px;font-size:32px;box-shadow:0 4px 15px #0003}.steering{display:flex;gap:10px}.touch-controls .brake{background:#ee694a;color:#111214;border-color:#ffb29a;width:90px;font-size:14px;font-weight:900}.touch-controls button.pressed{background:var(--gold);color:var(--ink);transform:translateY(2px);border-bottom-width:2px}.speed{bottom:110px}.minimap-wrap{bottom:112px}.how-to{display:none}.mobile-tip{display:block;font-size:12px;line-height:1.5;text-align:center;color:#c3c0b9;margin:14px 0 0}.quick-tip{margin-bottom:0}}
@media(max-width:700px){.topbar{height:69px;padding:0 17px}.wordmark{font-size:17px}.number{font-size:30px;padding:7px 9px 7px 6px}.club{font-size:10px;letter-spacing:2.7px}.session{display:none}.icon-button{font-size:10px;padding:0 9px;height:36px}.welcome{left:50%;width:min(350px,calc(100% - 34px));transform:translate(-50%,-50%);padding:26px 28px}h1{font-size:55px;margin:17px 0}.intro{font-size:15px;margin:15px 0}.race-spec{margin:18px 0;padding:13px 0}.minimap-wrap{right:16px;width:125px;height:109px;bottom:116px}#minimap{width:125px;height:91px}.minimap-wrap>span{font-size:8px}.hud{left:13px;top:14px;padding:12px 14px;gap:14px;width:calc(100% - 26px)}.position b{font-size:31px}.position b span{font-size:14px}.eyebrow{font-size:9px}.hud-stat{padding-left:14px}.hud-stat strong{font-size:21px}.timer{margin-left:auto}.timer strong{font-size:17px}.recover{top:108px;right:15px;font-size:10px;padding:10px}.speed{left:20px;bottom:105px}.speed>b{font-size:47px}#message{top:155px;font-size:12px;max-width:95%;white-space:normal;text-align:center}.compact{width:min(355px,calc(100% - 30px));padding:28px}.compact h2{font-size:37px}.touch-controls{bottom:max(17px,env(safe-area-inset-bottom))}footer{height:32px;padding:0 17px;font-size:8px}.footer-number{display:none}#footer-hint{font-size:8px}}
@media(max-height:590px){.topbar{height:57px}.number{font-size:25px}.wordmark{font-size:16px}.club{font-size:9px}.welcome{width:330px;padding:20px 25px;left:30px;transform:translateY(-50%)}h1{font-size:43px;margin:12px 0}.race-tag{font-size:10px}.intro{font-size:14px;line-height:1.4;margin:12px 0}.race-spec{margin:12px 0;padding:9px 0}.race-spec b{font-size:20px;margin-bottom:3px}.primary{padding:13px 18px}.quick-tip{font-size:10px;margin:10px 0}.how-to,.mobile-tip{display:none}footer{height:27px}.minimap-wrap{bottom:104px;width:120px;height:99px}#minimap{width:120px;height:85px}.minimap-wrap>span{font-size:8px}.touch-controls button{height:55px;width:65px}.touch-controls .brake{width:85px}.speed{bottom:90px}.hud{padding:10px 17px;top:12px}.position b{font-size:28px}.hud-stat strong{font-size:21px}.recover{top:13px}.compact{padding:22px}.compact h2{font-size:33px;margin:13px 0}.result-place{font-size:60px}.result-stats{margin:14px 0;padding-top:12px}#message{top:95px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
h1{width:125%;transform:scaleX(.8);transform-origin:left center;white-space:nowrap}.how-to>div>span:last-child{font-size:11px}.race-spec span{font-size:11px}
@media(max-height:590px){.welcome{padding:16px 24px}.welcome .race-spec{display:none}.welcome h1{font-size:40px;margin:8px 0}.welcome .intro{font-size:13px;margin:8px 0}.welcome .quick-tip{margin:8px 0 0}.welcome .primary{margin-top:14px}.compact p{margin:9px 0}.result-stats b{font-size:18px}.result-stats{margin:10px 0;padding-top:10px}.result-place{font-size:48px}}
.welcome{max-height:calc(100% - 28px);overflow-y:auto;scrollbar-width:thin;padding:25px 30px}.welcome h1{font-size:48px;margin:14px 0}.welcome .intro{font-size:14px;line-height:1.5;margin:13px 0}.race-setup{margin:17px 0}.race-setup label{display:block;font-size:12px;letter-spacing:1px;color:#d9d6cf;margin:12px 0 7px}.race-setup select,.race-setup input,#board-track{font:inherit;font-size:16px;width:100%;background:#2d2e30;color:#f5f2eb;border:1px solid #7a7872;border-radius:4px;min-height:43px;padding:9px 12px}.race-setup p{font-size:12px;line-height:1.4;color:#cac7c0;margin:8px 0}.welcome .quick-tip{font-size:12px;margin-bottom:4px}.welcome .mobile-tip{font-size:12px;margin-top:8px}.primary:disabled{cursor:wait;opacity:.65;transform:none}.compact{max-height:calc(100% - 24px);overflow-y:auto;scrollbar-width:thin}.choose-track{margin-left:20px}#score-status{font-size:13px;line-height:1.5;margin:12px 0}#online-state{position:absolute;top:115px;left:27px;max-width:calc(100% - 55px);color:#f6f3ec;font-size:12px;padding:7px 10px;background:#0b0c0ed9;border-radius:3px;pointer-events:none}dialog{color:var(--white);background:#151619;border:1px solid #89878166;border-radius:8px;width:min(670px,calc(100% - 26px));max-height:calc(100svh - 40px);padding:26px;box-shadow:0 25px 80px #0009;scrollbar-width:thin}dialog::backdrop{background:#0b0c0ee0;backdrop-filter:blur(5px)}.board-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.board-heading h2{font-size:35px;margin:12px 0 22px}.board-heading .icon-button{font-size:27px}.board-description,.board-note{font-size:13px;color:#c6c3bc;line-height:1.6}.board-personal{font-size:14px;background:#d8bc7e12;color:#ece9e2;padding:13px;border-radius:4px;line-height:1.5}#board-content{min-height:90px;overflow-x:auto;font-size:14px;line-height:1.5}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:12px;color:#c2bfb8;white-space:nowrap}th,td{padding:13px 7px;border-bottom:1px solid #ffffff18}td.rank{font-weight:bold;color:var(--gold);width:35px}.board-time,.board-lap{font-family:monospace;white-space:nowrap}.your-row{background:#d8bc7e12}.board-empty{padding:20px 10px;text-align:center;color:#d0cdc6}.board-navigation,.board-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:18px;font-size:12px;color:#c6c3bc}.board-bottom .secondary{padding:0}.board-note{border-top:1px solid #ffffff20;padding-top:15px;margin-bottom:0;font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:360px){.wordmark>span:last-child{display:none}}
.season-entry{margin-bottom:10px}.quick-entry{background:transparent;color:var(--white);border:1px solid #77756f;padding:13px 18px}.quick-entry:hover{background:#303133;color:var(--white)}#season-hub{width:min(730px,calc(100% - 26px))}.weekend-format{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:17px 0}.weekend-format span{padding:12px 9px;background:#292a2c;border-radius:4px;color:#cbc8c1;font-size:13px}.weekend-format b{display:block;color:var(--gold);font-size:12px;margin-bottom:6px}.season-calendar{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:16px 0}.season-round{border:1px solid #5e5c56;border-radius:5px;padding:14px;background:#1f2022}.season-round b{display:block;font-size:14px;margin-bottom:8px}.season-round span{font-size:12px;letter-spacing:.5px;color:#c2bfb8}.season-round.current{border-color:var(--gold);background:#d8bc7e10}.season-round.current span,.season-round.done span{color:var(--gold)}#season-status{font-size:14px;line-height:1.5;color:#dcd9d2}#season-hub h3{font-size:13px;letter-spacing:1px;margin:25px 0 12px}#season-hub table th:last-child{display:table-cell}.points-strip{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid #5e5c56;border-radius:4px;margin-top:20px}.points-strip span{text-align:center;font-size:12px;padding:10px 4px;border-right:1px solid #5e5c56;color:#ccc9c2}.points-strip span:last-child{border:0}.points-strip b{display:block;color:var(--gold);font-size:19px;margin-top:4px}.position .solo-label{font-size:27px}#pause-season{margin-left:15px}
#track-progress{border-left:3px solid var(--gold);padding:8px 10px;background:#d8bc7e10;color:#edeae3;line-height:1.5}#unlock-status{font-size:14px;line-height:1.5;color:var(--gold);font-weight:bold}#unlock-status:empty{display:none}#retry-unlock{font-size:13px;padding-top:5px}
.intro-screen{position:fixed;inset:0;z-index:100;isolation:isolate;overflow:auto;background:linear-gradient(105deg,#08090bf7 0%,#0f1012f0 49%,#121315b8 100%);display:flex;flex-direction:column;justify-content:space-between;min-height:100svh;padding:28px 5vw;color:#f9f6ef;transition:opacity .35s,transform .45s}.intro-screen.leaving{opacity:0;transform:scale(1.045);pointer-events:none}.intro-top,.intro-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;font:12px monospace;letter-spacing:2px;position:relative;z-index:2}.intro-top>span{color:#bebbb4}.intro-top button{border:1px solid #b4b1aa4c;background:#111214c9;color:#f2efe8;border-radius:4px;font-size:14px;padding:11px 15px;min-height:44px}.intro-top button:hover{border-color:#d8bc7e}.intro-bottom{color:#b5b2ab;margin-top:20px}.intro-bottom>span:last-child{color:#d8bc7e}.intro-number{position:absolute;right:-3vw;top:50%;transform:translateY(-52%) skew(-8deg);font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:clamp(220px,52vw,820px);line-height:1;letter-spacing:-.08em;color:#d8bc7e07;-webkit-text-stroke:1px #d8bc7e29;pointer-events:none;z-index:-1;animation:intro-number-in 1.1s cubic-bezier(.16,1,.3,1) both}.intro-content{width:min(900px,100%);margin:auto;padding:35px 0;position:relative;z-index:1}.intro-lights{display:flex;gap:11px;width:max-content;padding:13px 18px;border:1px solid #7d7b755c;background:#08090b;border-radius:40px;margin-bottom:27px}.intro-lights i{width:19px;height:19px;border-radius:50%;background:#2e2f31;box-shadow:inset 0 1px 4px #0008;animation:intro-light .16s forwards;animation-delay:.35s}.intro-lights i:nth-child(2){animation-delay:.75s}.intro-lights i:nth-child(3){animation-delay:1.15s}.intro-lights i:nth-child(4){animation-delay:1.55s}.intro-lights i:nth-child(5){animation-delay:1.95s}.intro-ready .intro-lights i{animation:none;background:#d8bc7e;box-shadow:0 0 18px #d8bc7e66}.intro-kicker{font-size:12px;letter-spacing:3px;color:#cdcac3;margin:0 0 13px;animation:intro-rise .6s .15s both}.intro-title{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:clamp(44px,8.3vw,112px);line-height:.97;font-weight:900;letter-spacing:-.035em;margin:0;overflow:hidden}.intro-title span,.intro-title strong{display:block;animation:intro-rise .75s cubic-bezier(.16,1,.3,1) both}.intro-title span{animation-delay:.25s}.intro-title strong{color:#d8bc7e;animation-delay:.48s;font-weight:900}.intro-motto{font-size:clamp(16px,2vw,22px);letter-spacing:5px;margin:24px 0;color:#ebe8e1;animation:intro-rise .7s .7s both}.intro-rule{height:2px;width:min(390px,100%);background:#8d8b8530;margin:27px 0 24px;overflow:hidden}.intro-rule i{display:block;width:100%;height:100%;background:#d8bc7e;transform-origin:left;animation:intro-line 2.6s cubic-bezier(.2,.7,.2,1) both}.intro-enter{max-width:320px;background:#d8bc7e;color:#0b0c0e;padding:18px 22px;font-size:16px;min-height:58px}.intro-enter:hover{background:#edd6a5}.intro-formats{font:12px monospace;letter-spacing:1px;color:#b9b6af;line-height:1.6;margin:18px 0 0}.intro-formats span{color:#d8bc7e;padding:0 6px}body.intro-visible #welcome{visibility:hidden}body.intro-visible #app{pointer-events:none}.intro-enter:focus-visible,#skip-intro:focus-visible{outline:3px solid #fff;outline-offset:5px}
@keyframes intro-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes intro-number-in{from{opacity:0;transform:translate(90px,-52%) skew(-8deg)}to{opacity:1;transform:translate(0,-52%) skew(-8deg)}}@keyframes intro-light{to{background:#fb624f;box-shadow:0 0 16px #fb624f66}}@keyframes intro-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:700px){.intro-screen{padding:18px 24px calc(20px + env(safe-area-inset-bottom));background:linear-gradient(150deg,#08090bf5,#0f1012ed 68%,#1c1d1fc9)}.intro-top,.intro-bottom{font-size:10px;letter-spacing:1px}.intro-top button{font-size:12px;padding:9px 11px}.intro-content{padding:30px 0}.intro-title{font-size:clamp(38px,10.4vw,70px);line-height:1.04;letter-spacing:-1.5px}.intro-kicker{font-size:10px;letter-spacing:2px}.intro-lights{margin-bottom:25px;padding:11px 15px;gap:10px}.intro-lights i{width:15px;height:15px}.intro-motto{font-size:16px;letter-spacing:3px;margin:22px 0}.intro-number{font-size:112vw;right:-8vw;top:45%;color:#d8bc7e05}.intro-enter{max-width:100%}.intro-formats{font-size:10px;letter-spacing:.7px}}
@media(max-height:570px) and (min-width:701px){.intro-screen{padding:14px 5vw}.intro-content{padding:12px 0;display:grid;grid-template-columns:1fr 270px;column-gap:35px;align-items:center}.intro-lights{grid-column:1;margin-bottom:14px;padding:8px 13px}.intro-lights i{width:13px;height:13px}.intro-kicker{grid-column:1;font-size:10px;margin-bottom:9px}.intro-title{grid-column:1;font-size:clamp(35px,6.5vw,65px)}.intro-motto{grid-column:1;font-size:14px;margin:12px 0 0}.intro-enter{grid-column:2;grid-row:3;align-self:end;max-width:270px}.intro-formats{grid-column:2;grid-row:4;font-size:10px;align-self:start;margin-top:12px}.intro-rule{display:none}.intro-bottom{margin-top:8px}}
@media(prefers-reduced-motion:reduce){.intro-screen,.intro-screen.leaving{transition:none;transform:none}.intro-screen *{animation:none!important}.intro-lights i{background:#d8bc7e;box-shadow:none}.intro-title span,.intro-title strong,.intro-kicker,.intro-motto{opacity:1;transform:none}.intro-number{opacity:1}.intro-rule i{transform:none}}
@media(max-width:700px){.weekend-format{gap:5px}.weekend-format span{padding:10px 7px;font-size:12px}.weekend-format b{font-size:10px}.season-calendar{gap:7px}.season-round{padding:11px}.season-round b{font-size:13px}#season-hub .board-heading h2{font-size:27px}.position .solo-label{font-size:21px}}
@media(max-width:700px){.header-actions{gap:5px}.header-actions .icon-button{padding:0 7px}.wordmark{gap:8px;font-size:15px}.club{letter-spacing:2px}.welcome{padding:20px 25px}.welcome h1{font-size:43px;margin:10px 0}.welcome .intro{font-size:13px}#online-state{top:94px;left:14px;max-width:calc(100% - 28px);font-size:10px}.recover{top:130px}#message{top:177px}.board-heading h2{font-size:29px}dialog{padding:18px}.board-lap,th:last-child{display:none}th,td{padding:12px 6px}.board-navigation{gap:5px}.board-navigation .icon-button{font-size:12px}}
@media(max-height:590px){.welcome{top:12px;bottom:12px;transform:none;max-height:none;left:25px;width:330px}.welcome h1{font-size:34px}.welcome .intro{display:none}.race-setup{margin:10px 0}.race-setup label{margin-top:8px}.race-setup p{margin:6px 0}.welcome .quick-tip{display:none}#online-state{top:90px}.compact h2{font-size:28px;margin:8px 0}.compact .result-place{font-size:40px}.compact .result-stats{margin:8px 0}#score-status{font-size:12px;margin:8px 0}.compact .secondary{padding-top:10px}}

/* Result podiums use the same finishing order as the race and championship. */
#results{width:min(460px,calc(100% - 24px));max-height:calc(100% - 24px);overflow-y:auto;padding:22px}#results .result-place{font-size:48px}#results h2{font-size:32px;margin:12px 0}#results .result-stats{margin:14px 0;padding-top:12px}
.podium{position:relative;isolation:isolate;margin:18px 0 22px;padding:14px 8px 0;overflow:hidden;border-top:1px solid #ffffff24;background:radial-gradient(ellipse at 50% 100%,#d8bc7e1a,transparent 75%)}.podium h3{font-size:12px;letter-spacing:2px;text-align:center;margin:0 0 16px;color:#cfccc5}.podium-steps{display:flex;align-items:flex-end;justify-content:center;gap:5px}.podium-step{width:32%;text-align:center;min-width:0;--metal:#f4ce65;animation:podium-rise .65s both}.place-2{--metal:#dce3e9;animation-delay:.12s}.place-3{--metal:#d79964;animation-delay:.24s}.podium-cup{font-size:46px;display:block;line-height:1.25;filter:drop-shadow(0 3px 9px #f2cc5933)}.place-2 .podium-cup{filter:grayscale(1) brightness(1.3)}.place-3 .podium-cup{filter:sepia(.8) saturate(1.2) brightness(.8)}.podium-driver{display:block;font-size:13px;margin:7px 0 10px;overflow-wrap:anywhere;color:#f4f1ea}.podium-you .podium-driver{color:var(--gold)}.podium-block{border-top:3px solid var(--metal);background:linear-gradient(150deg,#ffffff18,#ffffff03);height:95px;padding:9px 3px;color:var(--metal)}.place-2 .podium-block{height:73px}.place-3 .podium-block{height:57px}.podium-block strong{font-size:32px;line-height:1;display:block;font-family:Impact,Arial,sans-serif}.podium-block span{font-size:10px;letter-spacing:1px;display:block;margin-top:7px}.championship-celebration{border:1px solid #f4ce6555;border-radius:5px;padding:16px 10px 10px}.podium .champion-message{text-align:center;color:#f4ce65;font-weight:900;font-size:16px;line-height:1.35;margin:0 0 16px}.champagne-toast{text-align:center;font-size:12px;font-weight:bold;letter-spacing:.6px;color:#f4ce65;padding-top:17px}.podium-effects{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}.firework-spark{position:absolute;left:var(--x);top:var(--y);width:4px;height:4px;border-radius:50%;background:var(--spark);box-shadow:0 0 5px var(--spark);opacity:0;animation:firework-burst 1.6s var(--delay) both}.champagne-drop{position:absolute;left:var(--side);bottom:28px;width:3px;height:6px;background:#fff2b7;border-radius:50%;opacity:0;animation:champagne-spray 1.8s var(--delay) 3 both}@keyframes podium-rise{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes firework-burst{0%{opacity:0;transform:scale(.2)}12%{opacity:1}80%{opacity:.7}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.4)}}@keyframes champagne-spray{0%{opacity:0;transform:translate(0,0)}10%{opacity:.9}55%{opacity:.9;transform:translate(var(--dx),var(--dy))}100%{opacity:0;transform:translate(calc(var(--dx) * 1.35),35px)}}@media(prefers-reduced-motion:reduce){.podium-step,.firework-spark,.champagne-drop{animation:none}.podium-effects{display:none}}@media(max-width:400px){#results{padding:16px}.podium-cup{font-size:37px}.podium-driver{font-size:12px}.champagne-toast{font-size:11px}}

#board-metric{margin:10px 0;width:100%;padding:12px;background:#232426;color:#f5f2eb;border:1px solid #5f5d57;border-radius:4px;font:inherit}.top-dog{margin:14px 0;padding:16px;border:1px solid #f4ce6555;background:#f4ce650d;color:#f4ce65;font-weight:bold;line-height:1.5;overflow-wrap:anywhere}#share-game{margin:16px 0 8px}#share-status{font-size:14px;line-height:1.5;color:#cfccc5}#share-link{width:100%;font:inherit;padding:12px;background:#232426;border:1px solid #5f5d57;color:white;margin-bottom:12px}

.seb-socials{margin-top:22px;padding-top:18px;border-top:1px solid #ffffff24;text-align:left}.seb-socials h3{font-size:12px;letter-spacing:1.1px;line-height:1.4;margin:0 0 7px;color:var(--gold)}.seb-socials p,.compact .seb-socials p{font-size:14px;line-height:1.5;margin:0 0 12px;color:#cecbc4}.seb-socials a{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:10px 0;color:#f5f2eb;text-decoration:none;border-bottom:1px solid #ffffff12;font-size:14px}.seb-socials a:last-child{border-bottom:0}.seb-socials a span{color:#cecbc4;font-size:12px;text-align:right;line-height:1.4}.seb-socials a:hover b,.seb-socials a:hover span{color:var(--gold)}.welcome{max-height:calc(100% - 24px);overflow-y:auto}

.social-link-row{display:flex;gap:10px;align-items:center;border-bottom:1px solid #ffffff12}.social-link-row a{flex:1;min-width:0;flex-wrap:wrap;justify-content:flex-start;column-gap:12px;border:0;padding:12px 0;touch-action:manipulation}.social-link-row a span{text-align:left}.copy-social{flex-shrink:0;min-height:44px;padding:8px;border:1px solid #5c5a54;border-radius:4px;color:#e4e1da;background:#232426;font-size:12px;touch-action:manipulation}.social-copy-status:empty{display:none}.seb-socials .social-copy-status{margin-top:10px}.social-copy-link{width:100%;padding:10px;color:white;background:#232426;border:1px solid #5c5a54;font-size:14px}.seb-socials a{position:relative;pointer-events:auto}

.friend-share{margin:16px 0 0}.primary.share-friends{background:transparent;border:1px solid var(--gold);color:var(--gold);font-size:13px;padding:14px 12px;gap:8px;text-align:left;line-height:1.4}.primary.share-friends:hover{background:#d8bc7e12}.friend-share-status:empty{display:none}.friend-share-status{font-size:14px;line-height:1.5;color:#cecbc4;margin:10px 0}.friend-share-link{width:100%;padding:12px;margin:8px 0;background:#232426;border:1px solid #5c5a54;color:white;font:inherit}

.seb-socials .social-app-help{font-size:12px;line-height:1.6;margin:12px 0;color:#bbb8b1}.seb-socials .social-app-help a{display:inline;min-height:0;padding:0;border:0;font-size:inherit;color:#d8bc7e;text-decoration:underline}

.secret-challenge{margin-top:22px;padding:18px 14px;border:1px solid #ffe18a66;border-radius:5px;background:linear-gradient(145deg,#3c33472b,#e6bf5810)}.secret-challenge h3{font-size:20px;line-height:1.1;margin:12px 0;color:#ffe18a}.secret-challenge p{font-size:14px;line-height:1.5;color:#d5d2cb}.secret-steps{display:grid;gap:8px;margin:16px 0}.secret-steps a{display:flex;justify-content:space-between;gap:10px;align-items:center;min-height:44px;padding:12px 10px;background:#ffffff08;border:1px solid #ffe18a33;border-radius:3px;color:#fff;text-decoration:none;font-size:14px}.secret-steps a span{font-size:12px;color:#ffe18a;text-align:right}.secret-confirm{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;margin:16px 0}.secret-confirm input{width:20px;height:20px;flex-shrink:0;accent-color:#ffe18a;margin:2px 0 0}.secret-challenge .secret-honesty{font-size:12px;color:#bbb8b1}.secret-challenge .primary{background:#ffe18a;font-size:12px;padding:15px 10px}.secret-challenge .primary:disabled{opacity:.45;cursor:default;transform:none}#secret-status{font-size:12px;margin-bottom:0}

.intro-music{display:block;margin:0 auto 12px;padding:12px 18px;background:#ffffff0d;border:1px solid #ffffff44;border-radius:3px;color:#f3f0e9;font-size:13px;letter-spacing:1px;min-height:44px}.audio-settings{margin:16px 0;padding:12px;border:1px solid #ffffff26;border-radius:4px;text-align:left;background:#ffffff04}.audio-settings summary{cursor:pointer;font-size:13px;font-weight:bold;letter-spacing:1px;color:var(--gold);min-height:28px;line-height:28px}.audio-settings label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;line-height:1.4;margin:14px 0;color:#efece5}.audio-settings input{width:52%;min-width:70px;accent-color:var(--gold);min-height:28px}.audio-settings p,.compact .audio-settings p{font-size:12px;line-height:1.5;color:#c6c3bc;margin:9px 0}.audio-settings .secondary{padding:8px 0}.intro-content .intro-enter{margin-top:0}

/* Keep controls reachable on narrow phones and around display cut-outs. */
@media(max-width:420px){.wordmark>span:last-child{display:none}.topbar{gap:8px}.header-actions{flex-shrink:0}.welcome{left:12px;width:calc(100% - 24px);transform:translateY(-50%)}.board-navigation{flex-wrap:wrap;row-gap:10px}}
@media(max-width:420px) and (max-height:590px){.welcome{transform:none}}
@media(pointer:coarse){.topbar{padding-left:max(17px,env(safe-area-inset-left));padding-right:max(17px,env(safe-area-inset-right))}.touch-controls{left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right))}footer{height:calc(32px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}}
#pause-status:empty{display:none}#pause-status{color:#ffe18a}
/* Five clear destinations keep the start screen focused on driving. */
.welcome{width:430px;padding:23px}.welcome h1.home-title{font-size:34px;transform:none;width:auto;white-space:normal;letter-spacing:-1px;margin:12px 0 18px}.home-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-bottom:18px;border-bottom:1px solid #ffffff26;padding-bottom:10px}.home-tabs button{border:0;border-radius:4px;background:#ffffff06;color:#cdcac3;min-height:43px;font-size:13px;padding:8px 3px;font-weight:bold}.home-tabs button[aria-selected=true]{background:var(--gold);color:#17181a}.home-driver{font-size:12px;color:#b9b6af;letter-spacing:.6px}.home-driver b{color:white;margin-left:7px}#welcome [role=tabpanel]{min-width:0}#welcome [role=tabpanel]>label,.menu-card label{display:block;font-size:12px;color:#c9c6bf;margin:14px 0 7px}#panel-race>input,#panel-driver>input,.menu-card input,.menu-card select{width:100%;min-height:44px;padding:10px;background:#27282a;color:white;border:1px solid #77756f;border-radius:4px;font:inherit;font-size:16px}.menu-card{padding:18px 0;border-top:1px solid #ffffff25;margin-top:20px}.menu-card h3{font-size:19px;margin:0 0 12px;letter-spacing:-.4px}.menu-card p,.small-note,#nickname-help{font-size:13px;line-height:1.55;color:#c9c6bf}.menu-card details{border-top:1px solid #ffffff20;padding:14px 0;margin-top:15px}.menu-card summary,.result-socials summary{cursor:pointer;font-size:14px;color:#edeae3;padding:8px 0}.menu-card .primary{font-size:12px;letter-spacing:.4px;margin:14px 0 0;padding:14px 12px;line-height:1.4}.competition-board{overflow-x:auto}.competition-board table{font-size:13px}.competition-board th:last-child{display:table-cell}.competition-pages{display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:12px}.competition-pages .secondary{padding-top:10px}.ghost-toggle{display:flex!important;align-items:center;gap:9px;margin:16px 0 7px!important;font-size:14px!important;line-height:1.4}.ghost-toggle input{width:18px;height:18px;accent-color:#80e5ff;flex-shrink:0}.ghost-hud{position:absolute;left:27px;top:160px;background:#101e20e8;color:#b8edff;border:1px solid #80e5ff55;padding:8px 10px;border-radius:4px;font:12px monospace;pointer-events:none;max-width:calc(100% - 54px)}.ghost-hud.ahead{color:#d8bc7e}.ghost-hud.behind{color:#ffc8a9}#profile-code{font-family:monospace;letter-spacing:1px;font-size:14px}#profile-code-box{border:1px solid #ffe18a88;padding:12px;margin:15px 0;background:#ffe18a09}#profile-code-box p{color:#ffe18a}.menu-card .secondary{margin-right:14px}.result-socials{margin-top:20px}#panel-audio .audio-settings{margin:0}#panel-seb .secret-challenge{margin-top:0}#profile-status,#league-status{color:var(--gold)}
@media(max-width:700px){.welcome{width:calc(100% - 24px);max-width:420px;padding:18px}.welcome h1.home-title{font-size:29px}.home-tabs{margin-bottom:12px}.ghost-hud{left:14px;top:122px;font-size:10px;max-width:calc(100% - 100px)}#online-state{top:90px}.recover{top:122px}.menu-card{padding-top:15px}}
@media(max-height:590px){.welcome{width:min(420px,calc(100% - 36px));left:18px;top:12px;bottom:12px;transform:none}.welcome h1.home-title{font-size:25px;margin:8px 0}.home-tabs{margin-bottom:10px}.ghost-hud{top:122px}}

/* Champagne-gold club trim; racing colours stay in the canvas renderer. */
:root{--gold-soft:#edd6a5;--panel:#151619;--line:#d8bc7e38}
.topbar{border-bottom-color:var(--line)}
.screen,dialog{background:linear-gradient(145deg,#1b1c20fA,#101114fa);border-color:var(--line);box-shadow:0 24px 80px #0009,inset 0 1px 0 #ffffff08}
.welcome{border-top:2px solid var(--gold)}
.primary:not(.share-friends){background:linear-gradient(110deg,#e5cfa0,#c7a568);color:#0b0c0e;box-shadow:inset 0 1px 0 #fff5}
.primary:not(.share-friends):hover{background:linear-gradient(110deg,#f0dfb9,#d8bc7e)}
.home-tabs button[aria-selected=true]{background:#d8bc7e19;color:var(--gold-soft);box-shadow:inset 0 -2px 0 var(--gold)}
.intro-screen{background:radial-gradient(ellipse at 85% 35%,#d8bc7e0b,transparent 55%),linear-gradient(110deg,#090a0dfc,#141519f7 65%,#0b0c0ef0)}
.intro-title strong{color:var(--gold-soft)}
.intro-number{-webkit-text-stroke-color:#d8bc7e32}
.intro-top button,.icon-button,.copy-social{border-color:#d8bc7e38}
input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
input,select{caret-color:var(--gold)}
.ghost-hud.ahead{color:#d6ff43}
.intro-ready .intro-lights i{background:#d6ff43;box-shadow:0 0 18px #d6ff4366}

.community-count{display:flex;align-items:center;gap:10px;margin:0 0 18px;padding:10px 12px;background:#d8bc7e0a;border:1px solid var(--line);border-radius:4px}.community-count strong{font-size:24px;color:var(--gold-soft);font-variant-numeric:tabular-nums;line-height:1}.community-count span{font-size:12px;letter-spacing:1px;color:#c9c3b7}

.earned-badge,.hall-winner{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid #ffffff20;border-radius:4px}.earned-badge strong,.hall-winner strong{font-size:14px}.earned-badge span,.hall-winner span{font-size:13px;line-height:1.5;color:#bbb7ae}.earned-badge.unlocked{border-color:var(--line);background:#d8bc7e0a}.earned-badge.unlocked strong,.hall-winner strong{color:var(--gold-soft)}#tutorial p{font-size:16px;line-height:1.5}#tutorial h2{font-size:28px}#tutorial-canvas{display:block;width:100%;height:auto;border-radius:5px}.lesson-controls{display:flex;gap:10px;margin:16px 0}.lesson-controls button{min-height:48px}#result-card-image{width:100%;height:auto;margin-top:16px;border-radius:4px}#download-card{color:var(--gold);display:inline-block;padding:16px}#card-status{font-size:14px;line-height:1.5}#make-result-card{margin:14px 0;font-size:13px}

.reward-notice{color:var(--gold-soft);font-size:14px;line-height:1.5}.reward-notice:empty{display:none}

/* Immediate touch input with visible held/released states in Driving School. */
.lesson-controls{flex-wrap:wrap}.lesson-controls button{touch-action:none;-webkit-user-select:none;user-select:none;min-height:56px;min-width:112px;font-size:16px;flex:1}.lesson-controls button.pressed{background:var(--gold);color:var(--ink);border-color:var(--gold-soft)}#tutorial{overflow-y:auto;overscroll-behavior:contain}#tutorial-canvas{touch-action:none}#tutorial-next{min-height:52px}
/* Holding race controls must never open iOS text selection or callouts. */
#app,#tutorial,button{ -webkit-user-select:none;user-select:none;-webkit-touch-callout:none }
#app input,#app textarea,#tutorial input,#tutorial textarea,[contenteditable="true"]{ -webkit-user-select:text;user-select:text;-webkit-touch-callout:default }
#result-card-image,#download-card{ -webkit-touch-callout:default }
#recover{touch-action:manipulation}

/* Steering at either edge, brake centred between equal-width columns. */
@media(pointer:coarse){.touch-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px}.touch-controls [data-control="left"]{justify-self:start}.touch-controls [data-control="brake"]{justify-self:center}.touch-controls [data-control="right"]{justify-self:end}}

#panel-race>label[for="nickname"]{font-size:14px}#nickname{box-sizing:border-box}#nickname-help{margin:8px 0 12px}

.result-actions{display:grid;gap:10px;margin:18px 0}.result-actions .primary{margin:0;min-height:48px;font-size:14px;white-space:normal;line-height:1.4}.result-actions p:empty{display:none}.result-actions p{margin:0}

.bonus-shortcut{display:flex;flex-direction:column;gap:7px;width:100%;padding:15px;margin:0 0 18px;text-align:left;background:#d8bc7e18;border:2px solid var(--gold);border-radius:6px;color:var(--white);min-height:64px}.bonus-shortcut strong{font-size:15px;line-height:1.4;color:var(--gold)}.bonus-shortcut span{font-size:14px;line-height:1.45}.bonus-instructions{padding-left:23px;font-size:16px;line-height:1.55}.bonus-instructions li{margin:10px 0}
