:root{--ink:#292d29;--paper:#fff7e8;--orange:#ed633e;--lime:#dcf487;--muted:#817e71;--line:rgba(52,50,41,.16)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:Arial,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:var(--ink);background:#f4cfa9;user-select:none;-webkit-user-select:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #456e65;outline-offset:5px}button:active{transform:translateY(2px)}button{transition:background .2s,transform .15s}#game{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none}#vignette{pointer-events:none;position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,transparent 35%,rgba(88,45,17,.10));z-index:1}.hidden{display:none!important}.topbar{position:absolute;top:32px;left:42px;right:42px;display:flex;align-items:center;justify-content:space-between;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-size:22px;font-weight:950;letter-spacing:-1px;line-height:1}.brand-icon{display:flex;align-items:center;justify-content:center;gap:4px;width:43px;height:43px;background:var(--orange);transform:skew(-8deg);border-radius:5px}.brand-icon i{height:22px;width:5px;background:var(--paper);transform:skew(-17deg)}.brand-icon i:nth-child(2){height:17px}.brand-icon i:nth-child(3){height:12px}.brand-light{font-weight:400;margin-left:3px}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:7px;font-weight:600}.top-actions{display:flex;align-items:center;gap:12px}.edition{font-size:10px;letter-spacing:1.8px;font-weight:700;margin-right:10px}.edition b{padding:5px 6px;background:var(--ink);color:var(--paper);margin-left:8px;font-size:10px;letter-spacing:0}.icon-button{display:flex;align-items:center;justify-content:center;background:rgba(255,248,232,.72);border:1px solid rgba(45,47,39,.15);width:40px;height:40px;border-radius:50%;color:var(--ink);backdrop-filter:blur(10px)}.icon-button:hover{background:var(--paper)}.icon-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.icon-button.muted{opacity:.55}.menu{position:absolute;inset:0;z-index:3}.menu-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,244,224,.97) 0%,rgba(255,244,224,.94) 29%,rgba(255,244,224,.65) 44%,rgba(255,244,224,0) 65%);pointer-events:none}.intro{position:absolute;left:6.5%;top:50%;transform:translateY(-45%);width:480px;max-width:45vw}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;display:flex;align-items:center;gap:9px}.eyebrow>span{height:6px;width:6px;border-radius:50%;background:var(--orange)}h1{font-size:clamp(64px,7.8vw,115px);letter-spacing:-.078em;line-height:.9;margin:26px 0 24px;font-weight:950}h1 em{color:var(--orange);font-style:italic;display:inline-block;padding-right:12px}.intro-copy{font-size:14px;line-height:1.9;color:#6b6d60;letter-spacing:-.2px;margin-bottom:24px}.race-specs{display:flex;gap:35px;margin:25px 0 26px}.race-specs>div{display:flex;align-items:center;gap:9px}.race-specs strong{font-weight:900;font-size:26px;letter-spacing:-1.2px}.race-specs span{font-size:8px;letter-spacing:1.2px;font-weight:700;max-width:45px;line-height:1.6}.primary-button{width:100%;max-width:358px;background:var(--orange);border:0;border-radius:4px;padding:20px 22px;color:var(--paper);font-weight:800;font-size:16px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 6px 0 rgba(181,68,31,.12)}.primary-button:hover{background:#da5130;transform:translateY(-2px)}.primary-button small{font-size:9px;letter-spacing:1.3px;margin-left:12px;opacity:.7;font-weight:600}.button-arrow{font-size:27px;font-weight:400;line-height:20px}.best-record{font-size:10px;color:#88816f;margin-top:14px;letter-spacing:.15px}.control-guide{display:flex;gap:20px;margin-top:32px;align-items:center}.control-guide>div{display:flex;align-items:center;gap:7px;white-space:nowrap}.control-guide>div>span:last-child{font-size:10px;color:#737365}kbd{border:1px solid rgba(74,72,55,.22);border-bottom-width:2px;border-radius:4px;padding:4px 6px;font:700 9px Arial,sans-serif;display:inline-block;line-height:1;min-width:19px;text-align:center;background:rgba(255,251,239,.4)}.key-group{display:flex;gap:3px}.key-group kbd{padding:4px}.menu-hint{font-size:9px;color:#99907d;letter-spacing:.2px;margin-top:12px}.circuit-card{position:absolute;right:42px;bottom:91px;width:252px;background:rgba(255,249,232,.89);border:1px solid rgba(255,253,240,.5);backdrop-filter:blur(14px);padding:19px 20px 17px;border-radius:8px;box-shadow:0 8px 35px rgba(84,47,15,.05)}.circuit-top{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.4px;font-weight:800}.circuit-top>span:first-child{display:flex;align-items:center;gap:6px}.live-dot{width:5px;height:5px;display:inline-block;background:var(--orange);border-radius:50%}#preview-map{width:100%;height:125px;display:block;margin:8px 0}.circuit-title{font-size:16px;font-weight:900;letter-spacing:-.5px}.circuit-title>span{display:block;font-size:10px;font-weight:400;letter-spacing:0;margin:4px 0 14px;color:#7d7e70}.circuit-tags{display:flex;gap:6px}.circuit-tags span{font-size:6.5px;font-weight:700;letter-spacing:.7px;border:1px solid var(--line);padding:5px 6px;border-radius:3px}.menu-footer{position:absolute;bottom:27px;left:42px;right:42px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;font-weight:700}.menu-footer span:last-child{color:#464a3e}.menu-footer i{font-style:normal;color:var(--orange);font-size:15px;margin-left:9px}
#hud{position:absolute;inset:0;z-index:4;pointer-events:none}.race-top{position:absolute;left:42px;right:42px;top:108px;display:flex;gap:18px;align-items:flex-start}.micro-label{font-weight:800;font-size:9px;letter-spacing:1.5px}.position-box,.lap-box{background:rgba(255,249,234,.9);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.5);border-radius:7px;padding:14px 18px}.position-box>div,.lap-box>div{display:flex;align-items:baseline;gap:10px}.position-box strong{font-size:58px;line-height:1.15;font-style:italic;letter-spacing:-3px}.position-box>div>span,.lap-box>div>span{font-size:17px;color:#929183;font-weight:700}.lap-box{padding:14px 16px}.lap-box strong{font-size:36px;line-height:1.6;letter-spacing:-1.5px}.time-box{margin-left:auto;text-align:right;background:rgba(255,248,230,.82);padding:14px 18px;border-radius:7px;backdrop-filter:blur(12px)}.time-box>strong{display:block;font-variant-numeric:tabular-nums;font-size:27px;letter-spacing:-1px;line-height:1.5}.time-box>div{font-size:7px;font-weight:800;letter-spacing:1px;color:#858274}.time-box>div span{font-variant-numeric:tabular-nums;margin-left:9px;color:#4f5549;font-size:10px}.leaderboard{position:absolute;top:235px;left:44px;font-size:10px;display:flex;flex-direction:column;gap:8px}.leader-row{display:flex;align-items:center;gap:8px;width:136px;opacity:.68}.leader-row.you{opacity:1;font-weight:900}.leader-rank{width:11px;font-weight:800}.leader-dot{width:6px;height:6px;border-radius:50%}.leader-name{flex:1}.leader-gap{font-variant-numeric:tabular-nums;font-size:9px}.map-panel{position:absolute;bottom:35px;left:42px;width:211px;padding:15px 14px 9px;border-radius:8px;background:rgba(255,249,234,.85);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.5)}.map-panel>div{display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:1px;font-weight:800}#minimap{width:100%;height:137px;display:block}.map-panel>p{font-size:6px;letter-spacing:.8px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:5px;margin:0}.map-key{width:5px;height:5px;background:var(--orange);border-radius:50%}.map-key.rival{background:#93998b;margin-left:8px}.speed-panel{position:absolute;right:42px;bottom:37px;width:250px;color:var(--paper);padding:20px 21px 15px;border-radius:9px;background:rgba(41,46,40,.93);box-shadow:0 8px 30px #422f2115;backdrop-filter:blur(12px)}.speed-number{display:flex;align-items:baseline;justify-content:center;gap:13px}.speed-number strong{font-size:82px;line-height:1;font-weight:900;letter-spacing:-5px;font-style:italic;font-variant-numeric:tabular-nums}.speed-number>span{font-size:9px;letter-spacing:1px;color:#afba9f}.speed-ticks{display:flex;gap:4px;height:8px;margin:12px 0 22px}.speed-ticks>i{background:#53594c;transform:skew(-20deg);flex:1;transition:background .1s}.speed-ticks>i.active{background:var(--paper)}.speed-ticks>i.active:nth-last-child(-n+3){background:var(--orange)}.boost-label{display:flex;justify-content:space-between;align-items:center;font-size:9px;font-weight:800;letter-spacing:.6px;color:var(--lime)}.boost-label>span:first-child{display:flex;gap:4px;align-items:center}.boost-label svg{width:9px;height:12px;fill:currentColor}.boost-label b{font-size:5px;font-weight:600;letter-spacing:.6px;color:#b7bda8;margin-left:3px}.boost-track{height:11px;border-radius:2px;background:#4b5341;margin:9px 0 10px;position:relative;overflow:hidden}#boost-fill{height:100%;width:0;background:var(--lime);transition:width .12s linear;box-shadow:0 0 12px #dcf48788}.boost-track>i{position:absolute;top:0;height:100%;width:2px;background:#30392b;left:25%}.boost-track>i:nth-of-type(2){left:50%}.boost-track>i:nth-of-type(3){left:75%}.boost-help{display:flex;gap:8px;align-items:center;color:#b1b8a2;font-size:8px}.boost-help kbd{background:none;border-color:#737b62;font-size:7px;color:var(--paper);padding:3px 4px}.boosting .speed-panel{border:1px solid var(--lime);box-shadow:0 0 35px #dcf48733}.boosting #boost-fill{background:#fffbd3}.drifting #boost-fill{background:#94ede0}.driving-tip{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:9px;color:#4a503f;background:#fff7e3b5;padding:9px 12px;border-radius:5px}.driving-tip kbd{margin:0 3px}.driving-tip>span{margin:0 6px;color:#aaa486}.drift-message{position:absolute;bottom:24%;left:50%;transform:translate(-50%,15px) rotate(-4deg);opacity:0;transition:opacity .15s,transform .2s;color:var(--paper);text-shadow:0 2px 15px #263d3655;text-align:center}.drift-message.visible{opacity:1;transform:translate(-50%,0) rotate(-4deg)}.drift-message>span{font-size:25px;font-weight:900;font-style:italic;letter-spacing:-1px}.drift-message>strong{display:inline-block;font-size:39px;color:var(--lime);margin-left:9px;letter-spacing:-2px;font-style:italic}.drift-message small{display:block;font-size:8px;font-weight:800;letter-spacing:2px;margin-top:4px}.wrong-way{position:absolute;top:29%;left:50%;transform:translateX(-50%);background:#fce7d9e8;color:#bc4d32;padding:12px 22px;border-radius:5px;font-size:14px;font-weight:800}.countdown{position:absolute;top:36%;left:50%;transform:translateX(-50%);z-index:10;text-align:center;pointer-events:none;color:var(--paper);text-shadow:0 4px 30px #5f493b55}.countdown>span{font-size:9px;font-weight:800;letter-spacing:3px}.countdown>strong{display:block;font-size:132px;font-style:italic;font-weight:900;line-height:1.2;letter-spacing:-9px}.count-lights{display:flex;justify-content:center;gap:10px}.count-lights>i{display:block;width:10px;height:10px;border-radius:50%;background:#fff8df55;border:1px solid #fff8df99}.count-lights>i.on{background:var(--orange);border-color:#ffc295;box-shadow:0 0 14px #e8753d}.count-lights.go>i{background:var(--lime);border-color:#effcb9}.notification{position:absolute;top:26%;left:50%;transform:translate(-50%,-10px);z-index:11;background:var(--paper);padding:12px 22px;border-radius:5px;font-weight:800;letter-spacing:.3px;font-size:13px;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;white-space:nowrap}.notification.show{opacity:1;transform:translate(-50%,0)}.modal{position:absolute;inset:0;background:rgba(42,41,30,.45);backdrop-filter:blur(10px);z-index:30;display:flex;align-items:center;justify-content:center}.modal-card{width:420px;max-width:calc(100vw - 32px);padding:42px;background:var(--paper);border-radius:12px;box-shadow:0 20px 90px #29231833;text-align:center}.modal-card .eyebrow{justify-content:center;font-size:8px;color:#92836b}.modal-card h2{font-size:45px;letter-spacing:-2.5px;margin:17px 0 8px;font-weight:900;font-style:italic}.modal-card p{font-size:12px;line-height:1.8;color:#8c8372;margin-bottom:28px}.modal-card .primary-button{font-size:14px;padding:18px 20px;max-width:none}.secondary-button{width:100%;margin-top:12px;background:transparent;border:1px solid #c9c5ad;padding:16px;border-radius:4px;font-size:13px;font-weight:700}.secondary-button:hover{background:#eee8d6}.text-button{border:0;background:none;font-size:11px;padding:16px 24px;color:#8a806c}.text-button:hover{color:var(--orange)}.modal-card p.modal-keys{font-size:9px;margin:15px 0 0;line-height:2;color:#a09680}.finish-card{padding:30px 38px}.finish-place{color:var(--orange);margin:7px 0 -8px;font-weight:900;font-style:italic;line-height:1}.finish-place strong{font-size:100px;letter-spacing:-8px}.finish-place>span{font-size:26px;vertical-align:top;display:inline-block;margin:19px 0 0 8px}.finish-card h2{font-size:32px;letter-spacing:-1.5px}.finish-card>p{font-size:10px;margin:8px 0 20px}.result-times{display:flex;gap:15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.result-times>div{flex:1}.result-times span{display:block;font-size:7px;letter-spacing:1.3px;color:#8b856f;font-weight:700}.result-times strong{display:block;font-size:23px;margin-top:8px;letter-spacing:-1px;font-variant-numeric:tabular-nums}.new-record{background:#e1edb7;color:#64723a;font-size:8px;font-weight:800;letter-spacing:1px;padding:8px;margin-top:10px;border-radius:3px}.lap-results{display:flex;gap:6px;margin:15px 0 22px}.lap-results>div{flex:1;font-size:7px;letter-spacing:1px;color:#968c78}.lap-results b{display:block;color:#565b4b;font-size:11px;font-variant-numeric:tabular-nums;margin-top:6px;letter-spacing:0}#speed-lines{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .3s;background:repeating-conic-gradient(from 0deg at 50% 52%,transparent 0deg 14deg,#fff7d76b 14.1deg 14.22deg,transparent 14.3deg 29deg);mask-image:radial-gradient(ellipse,transparent 42%,#000 100%);-webkit-mask-image:radial-gradient(ellipse,transparent 42%,#000 100%)}.boosting #speed-lines{opacity:.6;animation:rush .3s infinite alternate}@keyframes rush{to{transform:scale(1.08);opacity:.35}}#touch-controls{position:absolute;inset:0;pointer-events:none;z-index:18;align-items:flex-end;justify-content:space-between;padding:18px}.touch-steering,.touch-actions{display:flex;gap:8px;pointer-events:auto}.touch-actions{max-width:260px;flex-wrap:wrap;justify-content:flex-end}#touch-controls button{border:1px solid #fff9e9aa;border-radius:12px;background:#fff4ddbb;backdrop-filter:blur(10px);color:var(--ink);font-size:11px;font-weight:800;min-width:55px;min-height:50px;touch-action:none}.touch-steering button{font-size:20px;width:58px;height:62px}#touch-controls button.touch-boost{background:#d4ed8fc9}#touch-controls button.touch-gas{background:#ee754eca;color:white}#touch-controls button.pressed{background:#3a4b38;color:white}
.touch-device .map-panel,.touch-device .speed-panel{bottom:112px}.touch-device .driving-tip{display:none}
h1{white-space:nowrap;font-size:clamp(64px,6.9vw,106px)}
@media(min-width:1600px){.intro{left:8%}.circuit-card{right:5%;bottom:10%;width:280px}#preview-map{height:145px}}
@media(max-height:780px) and (min-width:801px){.topbar{top:25px}.intro{transform:translateY(-43%)}h1{font-size:86px;margin:20px 0}.intro-copy{margin-bottom:15px;font-size:13px}.race-specs{margin:16px 0 21px}.control-guide{margin-top:23px}.menu-footer{bottom:18px}.circuit-card{bottom:65px}.primary-button{padding:17px 20px}.race-top{top:95px}.leaderboard{top:221px}.map-panel{bottom:25px}.speed-panel{bottom:25px}}
@media(max-width:1000px){.intro{left:5%;max-width:50vw}.topbar{left:27px;right:27px}.control-guide{gap:12px}.control-guide>div{gap:5px}.race-specs{gap:22px}.circuit-card{right:27px;width:225px}.menu-footer{left:27px;right:27px}.driving-tip{bottom:17px}.map-panel{left:24px;width:175px}.speed-panel{right:24px;width:223px}.race-top{left:25px;right:25px}.leaderboard{left:29px}}
@media(max-width:700px){.topbar{top:21px;left:22px;right:22px}.brand{font-size:18px}.brand-icon{width:35px;height:35px}.brand-icon i{height:18px;width:4px}.brand small{font-size:6px;letter-spacing:1.4px}.edition{display:none}.top-actions{gap:7px}.icon-button{height:34px;width:34px}.intro{left:8%;top:48%;max-width:86vw;width:380px;transform:translateY(-43%)}h1{font-size:clamp(52px,12.8vw,83px);margin:23px 0}.menu-wash{background:linear-gradient(90deg,#fff3dff0,#fff3dfbf 65%,#fff3df44)}.eyebrow{font-size:8px}.intro-copy{font-size:12px}.race-specs{margin:22px 0;gap:30px}.race-specs strong{font-size:23px}.race-specs span{font-size:7px}.primary-button{max-width:325px;padding:19px 20px}.control-guide{gap:15px;margin-top:28px}.control-guide>div>span:last-child{font-size:9px}.control-guide kbd{font-size:8px}.circuit-card{display:none}.menu-footer{font-size:6px;letter-spacing:1px;bottom:20px}.menu-footer span:last-child{max-width:145px;text-align:right}.race-top{top:80px;left:19px;right:19px;gap:9px}.position-box,.lap-box{padding:10px 12px}.micro-label{font-size:7px}.position-box strong{font-size:39px}.position-box>div>span,.lap-box>div>span{font-size:12px}.lap-box strong{font-size:26px}.time-box{padding:10px}.time-box>strong{font-size:19px}.time-box>div{font-size:6px;letter-spacing:.1px}.time-box>div>span{font-size:8px;margin-left:5px}.leaderboard{top:177px;left:22px;font-size:9px;gap:6px}.leader-row{width:108px}.leader-gap{font-size:8px}.map-panel{bottom:116px;left:17px;width:125px;padding:11px 9px 8px}.map-panel>div{font-size:6px}#minimap{height:88px}.map-panel>p{font-size:5px;gap:3px}.speed-panel{right:17px;bottom:116px;width:163px;padding:14px 13px 12px}.speed-number strong{font-size:53px;letter-spacing:-3px}.speed-number>span{font-size:7px}.speed-number{gap:8px}.speed-ticks{margin:9px 0 13px;height:5px;gap:2px}.boost-label{font-size:7px}.boost-label b{display:none}.boost-track{height:8px;margin:7px 0}.boost-help{font-size:6px;gap:5px}.boost-help kbd{font-size:6px}.driving-tip{display:none}.drift-message{bottom:36%}.drift-message>span{font-size:18px}.drift-message>strong{font-size:30px}.drift-message small{font-size:6px}.notification{top:29%;font-size:11px;padding:10px 15px}.countdown{top:34%}.countdown>strong{font-size:100px}.wrong-way{font-size:11px;top:26%}.modal-card{padding:32px}.finish-card{padding:22px 28px}.finish-place strong{font-size:78px}.finish-card h2{font-size:28px}.result-times strong{font-size:21px}.finish-card .primary-button{padding:16px}.finish-card .lap-results{margin-bottom:17px}}
@media(max-height:520px){.topbar{top:14px}.brand-icon{width:30px;height:30px}.brand small{display:none}.intro{top:51%;transform:translateY(-42%)}h1{font-size:59px;margin:12px 0}.eyebrow{font-size:7px}.intro-copy{font-size:10px;margin:8px 0}.race-specs{margin:12px 0}.race-specs strong{font-size:21px}.primary-button{padding:12px 18px;font-size:13px;max-width:290px}.best-record{font-size:8px;margin-top:10px}.control-guide{margin-top:14px}.menu-hint{display:none}.menu-footer{bottom:12px}.circuit-card{bottom:42px;width:200px;padding:15px}#preview-map{height:90px}.race-top{top:62px}.position-box,.lap-box{padding:8px 12px}.position-box strong{font-size:31px}.lap-box strong{font-size:24px}.time-box{padding:8px 13px}.time-box>strong{font-size:20px}.leaderboard{top:148px}.speed-panel{bottom:84px;width:175px;padding:12px 15px}.speed-number strong{font-size:49px}.speed-ticks{margin:8px 0 12px;height:5px}.boost-label{font-size:8px}.boost-label b{font-size:4px}.map-panel{bottom:84px;width:125px;padding:9px}#minimap{height:85px}.map-panel>div{font-size:6px}.driving-tip{display:none}.drift-message{bottom:22%}.countdown{top:27%}.countdown>strong{font-size:90px}.modal-card{padding:25px}.modal-card h2{font-size:34px;margin:10px 0}.modal-card p{margin-bottom:15px}.modal-card p.modal-keys{margin-top:5px}.finish-card{width:520px;padding:18px 30px}.finish-place{position:absolute;margin:15px 0}.finish-place strong{font-size:65px}.finish-place>span{font-size:17px}.finish-card h2{font-size:28px}.finish-card>p{font-size:9px}.finish-card .eyebrow{font-size:7px}.result-times{padding:10px 0}.result-times strong{font-size:19px;margin-top:4px}.finish-card .lap-results{margin:10px 0}.new-record{margin-top:7px;padding:5px}.finish-card .text-button{padding:10px}.modal-card .primary-button{padding:13px}.wrong-way{top:34%}}
