@font-face{font-family:DotGothic16;src:url('fonts/DotGothic16-Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
#car-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
*{box-sizing:border-box}html,body{margin:0;height:100%;background:#090a12;color:#fff0d4;font-family:DotGothic16,'Courier New',ui-monospace,'Hiragino Kaku Gothic ProN',Meiryo,monospace}button,input{font:inherit}button{cursor:pointer;color:inherit;min-height:44px;border:2px solid #545367;background:#1b1b29;box-shadow:3px 3px 0 #05060b;border-radius:0;font-size:16px;font-weight:700;padding:10px 14px;touch-action:manipulation}button:hover{border-color:#63e9dc}button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 #05060b}button:focus-visible,input:focus-visible{outline:3px solid #63e9dc;outline-offset:3px}button:disabled{opacity:.45}#game{height:100dvh;width:100%;max-width:560px;margin:auto;position:relative;overflow:hidden;border-left:1px solid #282636;border-right:1px solid #282636}#road{width:100%;height:100%;display:block;image-rendering:pixelated;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#hud{position:absolute;top:0;left:0;right:0;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;background:#100f1cf5;border-bottom:4px solid #ff6247;pointer-events:none}#hud>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:bold;color:#63e9dc;letter-spacing:1px}#pause{pointer-events:auto;min-height:32px;padding:2px 12px;color:#fff0d4;border-color:#ff6247;background:#2c1c29;box-shadow:none}.meters{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:baseline;margin-top:5px;font-size:13px}.meters strong{font-size:32px;color:#fff0d4;text-shadow:2px 2px #ff62477a;letter-spacing:-2px;line-height:1.2}.meters b{font-size:24px;color:#ff8766}.meters>span:last-child{color:#63e9dc;font-size:16px}#bar{height:5px;background:repeating-linear-gradient(90deg,#353242 0 6px,#15121f 6px 9px);margin-top:8px}#bar i{display:block;height:100%;width:0;background:repeating-linear-gradient(90deg,#ff6247 0 6px,#15121f 6px 9px)}#mini{position:absolute;top:132px;right:12px;left:auto;width:108px;height:108px;background:#100f1cd9;border:2px solid #3d6670;box-shadow:3px 3px 0 #080810;pointer-events:none}#count{position:absolute;top:41%;width:100%;text-align:center;font-size:74px;font-weight:900;color:#fff0d4;text-shadow:4px 0 #ff6247,0 4px #ff6247,-4px 0 #ff6247,0 -4px #ff6247,8px 8px #090a12;pointer-events:none}#overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#090a12ed;padding:16px 12px;overflow:auto}#overlay[hidden]{display:none}#panel{max-height:100%;overflow:auto;width:100%;max-width:460px;background:#15141f;border:2px solid #6b5d68;border-top:6px solid #ff6247;box-shadow:6px 6px 0 #05060b;padding:20px;scrollbar-color:#ff6247 #15141f}.eyebrow{font-size:12px;color:#63e9dc;letter-spacing:2px;margin-bottom:10px}.brand-en{font-size:clamp(30px,9vw,45px);font-weight:900;line-height:.9;letter-spacing:-3px;color:#ff6247;text-shadow:3px 3px #fff0d4;display:block;margin:4px 0 16px;transform:skew(-7deg);transform-origin:left}h1{font-size:clamp(22px,6.4vw,29px);margin:0 0 10px;letter-spacing:0;line-height:1.3}h2{font-size:25px;margin:0 0 16px;color:#fff0d4;border-bottom:2px solid #ff6247;padding-bottom:12px}p{font-size:16px;line-height:1.75;margin:12px 0}.muted{color:#a8a5b5;font-size:14px}.primary{background:#ff6247;color:#100d18;border-color:#ff9b78;font-weight:900;width:100%;box-shadow:4px 4px 0 #6d2d2e}.primary:hover{background:#ff8061;border-color:#fff0d4}.full{width:100%;margin-top:10px}.row{display:flex;gap:8px;margin-top:12px}.row>*{flex:1;min-width:0}.course{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:12px;text-align:left;width:100%;margin:8px 0;padding:10px 12px;border-color:#484255}.course.selected{border-color:#63e9dc;background:#193036;box-shadow:4px 4px 0 #080c13}.course strong{font-size:19px}.course small{display:block;font-size:12px;font-weight:normal;color:#a8a5b5;margin-top:4px}.course em{grid-column:1;grid-row:1;font-size:27px;font-style:normal;font-weight:900;color:#7d7187}.course>span{grid-column:2;grid-row:1}.course.selected em{color:#63e9dc}.course.selected small{color:#b5c8c7}.rules{border-left:3px solid #63e9dc;padding-left:12px;color:#cec7d4}.rules p{font-size:14px;margin:10px 0}input[type=text]{width:100%;background:#090a12;border:2px solid #63e9dc;color:#fff0d4;padding:12px;font-size:18px;user-select:text}label{display:block;font-size:16px;line-height:1.7;margin:14px 0}input[type=checkbox]{width:20px;height:20px;vertical-align:middle;accent-color:#ff6247}.resulttime{font-size:43px;font-weight:900;color:#63e9dc;text-shadow:3px 3px #18434a;margin:20px 0;letter-spacing:-2px}.badge{border:2px solid #ff6247;color:#ffb794;font-size:13px;padding:6px 10px;display:inline-block;background:#30202a}table{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}th,td{text-align:left;border-bottom:2px solid #484255;padding:12px 4px;overflow-wrap:anywhere}th{color:#63e9dc;font-weight:normal}td:last-child,th:last-child{text-align:right}a{color:#83b9b7;font-size:12px}#notice{position:absolute;bottom:75px;left:12px;right:12px;text-align:center;background:#b93830;color:#fff;font-size:14px;padding:10px;display:none}.map-preview{width:100%;height:112px;background:#090a12;border:2px solid #3d6670;image-rendering:pixelated;margin-top:8px}.footer{display:flex;justify-content:space-between;gap:10px;margin-top:18px;padding-top:12px;border-top:2px dashed #484255;font-size:12px}.danger{border-color:#a0464d;color:#ffb794}#rulesButton{margin:0 0 10px;min-height:38px;padding:5px;background:transparent;color:#63e9dc;border-color:#3d6670;box-shadow:none}@media(max-height:750px){#panel{padding:16px}.brand-en{font-size:34px;line-height:.9;margin-bottom:12px}.course{padding:8px;margin:6px 0}.map-preview{height:90px}.course small{font-size:12px}}@media(prefers-reduced-motion:no-preference){button{transition:background .1s}}@media(min-width:750px){body{background:repeating-linear-gradient(90deg,#090a12 0 40px,#11111b 40px 41px)}}

html,body,button,input{font-synthesis:none;font-weight:400}button{position:relative;border:0;outline:2px solid #545367;outline-offset:-2px;clip-path:polygon(0 4px,4px 4px,4px 0,calc(100% - 4px) 0,calc(100% - 4px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 4px) calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 4px),0 calc(100% - 4px));text-shadow:none}button:focus-visible{outline:3px solid #63e9dc;outline-offset:-3px}.primary{outline-color:#ffb794;box-shadow:none;font-weight:400}.primary:before,.primary:after{content:'';position:absolute;top:50%;width:4px;height:4px;background:#100d18;transform:translateY(-50%)}.primary:before{left:8px}.primary:after{right:8px}.course{outline-color:#484255}.course.selected{outline:2px solid #63e9dc;outline-offset:-2px}.course.selected:after{content:'';width:4px;height:4px;position:absolute;right:9px;top:50%;background:#63e9dc;box-shadow:0 -4px #63e9dc,0 4px #63e9dc,4px 0 #63e9dc}.course strong{font-size:16px;font-weight:400}.course em{font-size:32px;font-weight:400}.brand-en{font-size:32px;font-weight:400;line-height:1.2;letter-spacing:1px;transform:none;text-shadow:2px 2px #fff0d4;margin-bottom:8px}h1{font-size:24px;line-height:1.4;font-weight:400;text-shadow:2px 2px #58323a}h2{font-size:24px;font-weight:400}.eyebrow{letter-spacing:1px}#panel{border:0;padding:20px;box-shadow:inset 0 4px #ff6247,inset 0 -4px #615266,inset 4px 0 #615266,inset -4px 0 #615266;background-color:#15141f;background-image:radial-gradient(#282333 1px,transparent 1px);background-size:8px 8px;clip-path:polygon(0 8px,8px 8px,8px 0,calc(100% - 8px) 0,calc(100% - 8px) 8px,100% 8px,100% calc(100% - 8px),calc(100% - 8px) calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 8px),0 calc(100% - 8px))}.map-preview{border-width:4px}.resulttime,.meters strong{font-weight:400;letter-spacing:0}.meters strong{font-size:32px}.meters b{font-weight:400}#rulesButton{outline-color:#3d6670}#pause{outline-color:#ff6247}.danger{outline-color:#a0464d}table{background:#15141f}input[type=text]{font-family:DotGothic16,monospace}@media(max-height:750px){#panel{padding:16px}.brand-en{font-size:32px}}@media(max-width:350px){h1{font-size:24px}.row button{padding-inline:6px}}
/* Suppress long-press selection/callouts and double-tap zoom; retain pinch zoom. */
html,body,#game{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,a,#overlay,#panel{touch-action:manipulation;-webkit-touch-callout:none}input[type=text],textarea{user-select:text;-webkit-user-select:text;touch-action:manipulation}

#panel p a{font-size:inherit;color:#63e9dc;overflow-wrap:anywhere}

#wheel-control{position:absolute;bottom:calc(14px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(80%,320px,36dvh);text-align:center;pointer-events:none;color:#a1cecc}#wheel-control[hidden]{display:none}#wheel{width:100%;aspect-ratio:1;pointer-events:auto;touch-action:none;cursor:grab;border-radius:50%;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#wheel:focus-visible{outline:2px solid #63e9dc;outline-offset:4px}#wheel-face{display:block;width:100%;height:100%;opacity:.64;transform-origin:center;pointer-events:none}#wheel.held{cursor:grabbing}#wheel.held #wheel-face{opacity:.8}.wheel-caption{display:block;font-size:14px;white-space:nowrap;margin-top:5px;color:#a1cecc;background:#10142080} 

.wheel-shadow{fill:none;stroke:#05080f;stroke-width:26;stroke-opacity:.8}.wheel-rim{fill:none;stroke:url(#rim-metal);stroke-width:16}.wheel-trim{fill:none;stroke:#63e9dc;stroke-width:2;stroke-opacity:.55}.wheel-spokes{fill:#293b4a;fill-opacity:.78;stroke:#adc9ca;stroke-width:2}.wheel-grips{fill:none;stroke:#151c2a;stroke-width:20;stroke-linecap:round}.wheel-hub{fill:#111c2c;fill-opacity:.9;stroke:#a5cccf;stroke-width:3}.wheel-hub-inner{fill:#151c2a;stroke:#3b6671;stroke-width:2}.wheel-mark{fill:#ff7052}.wheel-badge{fill:#ffb794}.wheel-bolts{fill:#d5efeb}

.map-start{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;margin-top:8px;min-height:112px;background:#090a12;outline:4px solid #ffcd57;outline-offset:-4px;box-shadow:none}.map-start:hover,.map-start:focus-visible{outline-color:#fff0d4;background:#1d1b28}.map-start .map-preview{display:block;flex:1;min-width:0;width:0;height:104px;margin:0;border:0;background:transparent;pointer-events:none}.drift-call{text-align:left;flex:none;color:#ffcd57;font-size:clamp(20px,6vw,28px);line-height:1.2;letter-spacing:1px;text-shadow:2px 2px #7b332d;pointer-events:none}@media(max-height:750px){.map-start{min-height:96px}.map-start .map-preview{height:88px}}

/* Beta: announced passes are visible but cannot be selected. */
.course.locked:disabled{opacity:1;color:#8b8896;background:#191820;outline-color:#393743;border-color:#393743;cursor:not-allowed}.course.locked strong{color:#9692a0}.course.locked em{color:#605b6d}.course.locked small{color:#777380}.course.locked .soon{color:#aaa4b3;letter-spacing:1px;font-size:11px}.course.locked:hover{background:#191820;outline-color:#393743;border-color:#393743}.course.locked:active{transform:none}

.mode-pair{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:10px;width:100%}.course>span{flex:1;min-width:0}.mode-pair button{font-size:13px;padding:12px 4px;border:2px solid #49717b;border-radius:0;margin:0;min-height:46px}.mode-pair button+button{border-left:0}.mode-pair button.selected{background:#ff6247;color:#101420;border-color:#ff6247}.course.locked{opacity:.42}.course.locked button{pointer-events:none}

.course{position:relative;border:2px solid #484255;background:#1b1b29}.course.selected:after{display:none}.mode-pair button{clip-path:none;outline:0;box-shadow:none;font-size:12px}.mode-pair button.selected{outline:0}.mode-pair button:focus-visible{outline:3px solid #fff0d4;outline-offset:-3px}.mode-pair button:hover{background:#28434b}.mode-pair button.selected:hover{background:#ff8061}.drift-call{font-size:clamp(17px,5vw,24px)}

#rankingStage,#rankingMode{display:block;width:100%;min-height:44px;padding:9px 12px;background:#090a12;color:#fff0d4;border:2px solid #63e9dc;border-radius:0;font:inherit;touch-action:manipulation}#rankingMode{margin-bottom:18px}select:focus-visible{outline:3px solid #ffcd57}
.crash-report{margin:18px 0;padding:12px;background:#101420;border:2px solid #49717b}.crash-progress{color:#ffcd57;font-size:20px;margin:0 0 12px}.crash-report canvas{display:block;width:100%;max-width:300px;height:auto;margin:auto}.crash-report .muted{font-size:12px;margin-bottom:0}
.long-title{font-size:clamp(17px,4.5vw,21px);line-height:1.65;overflow-wrap:anywhere}.start-key{color:#63e9dc}.goal-key{color:#fff0d4}
.stage-choice,.course.locked{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px;flex-wrap:wrap}.stage-choice em,.course.locked em{position:static;font-style:normal;color:#ffcd57;font-size:20px}.stage-choice small,.course.locked small{font-size:12px;color:#a9a5b6}.stage-choice.selected{border-color:#ffcd57;background:#302839}.play-modes{margin-top:14px;margin-bottom:12px}.play-modes button{min-height:46px;font-size:14px}
.long-title{font-size:clamp(22px,6vw,29px);line-height:1.55;color:#fff0d4;margin:14px 0 12px;letter-spacing:.02em;overflow-wrap:anywhere}.brand-en.subtitle{display:block;font-size:20px;line-height:1.4;color:#63e9dc;text-shadow:none;margin:0 0 22px;transform:none;letter-spacing:1px}
#panel.menu-panel{container-type:inline-size;padding:14px}.menu-panel .long-title{font-size:clamp(12px,4.8cqw,20px);line-height:1.6;letter-spacing:0;margin:8px 0 4px}.long-title span{display:block;white-space:nowrap}.menu-panel .brand-en.subtitle{font-size:12px;margin:0 0 10px}.menu-panel .eyebrow{font-size:10px}.menu-panel #rulesButton{min-height:34px;padding:6px;margin:5px 0 8px}.menu-panel .stage-choice,.menu-panel .course.locked{min-height:44px;margin:5px 0;padding:7px 9px;gap:7px;flex-wrap:nowrap}.menu-panel .course em{font-size:16px}.menu-panel .course strong{font-size:14px;white-space:nowrap}.menu-panel .course small{font-size:10px}.menu-panel .course .soon{font-size:8px;margin-left:auto}.menu-panel .play-modes{margin:10px 0 6px}.menu-panel .play-modes button{min-height:40px;padding:7px}.menu-panel .map-start{min-height:92px;margin-top:6px;padding:6px 10px}.menu-panel .map-start .map-preview{height:80px}.menu-panel p.muted{font-size:11px;line-height:1.4;margin:6px 0}
.long-title{font-size:clamp(22px,6vw,29px);line-height:1.55;color:#fff0d4;margin:14px 0 12px;letter-spacing:.02em;overflow-wrap:anywhere}.brand-en.subtitle{display:block;font-size:20px;line-height:1.4;color:#63e9dc;text-shadow:none;margin:0 0 22px;transform:none;letter-spacing:1px}

/* Title uses the three lines of the new official name. */
.menu-panel .long-title{font-size:clamp(14px,5.6cqw,22px);line-height:1.45;margin:6px 0 4px}
