@font-face{font-family:Bowlby;src:url('../../assets/bowlby.ttf') format('truetype');font-display:swap}
@font-face{font-family:DM;src:url('../../assets/dm-sans.ttf') format('truetype');font-display:swap}
:root{--paper:#f6edd3;--ink:#343327;--red:#a44631;--sage:#536049;--yellow:#e4b760}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#fff7df,var(--paper) 70%);color:var(--ink);font-family:DM,Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #267169;outline-offset:4px}button[disabled]{cursor:default;opacity:.4}[hidden]{display:none!important}
.rally-shell{max-width:1320px;margin:auto;padding:18px 30px 16px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:13px;border-bottom:2px solid #34332728}.masthead img{width:168px;height:32px;object-fit:contain;filter:sepia(.3) saturate(.72)}.back-link{color:inherit;font-size:11px;font-weight:900;text-decoration:none;letter-spacing:.06em}.edition{font-size:9px;letter-spacing:.14em;font-weight:800}
.game-heading{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;margin:16px 0}.eyebrow{font-size:8px;font-weight:800;letter-spacing:.17em}h1{font:400 34px/1.1 Bowlby,Impact,sans-serif;letter-spacing:-.9px;margin:5px 0 0}h1 span{font:12px DM;vertical-align:top;margin:5px}.icon-button{height:46px;width:46px;min-width:46px;font-size:20px;font-weight:900}.rally-audio{min-width:0}.rally-audio .arcade-audio-pill{font-size:12px;min-height:46px;padding:10px 17px}
.dashboard{display:grid;grid-template-columns:190px minmax(0,1fr) 234px;gap:12px;align-items:stretch;margin-bottom:14px}.dashboard>.hud-case{padding:10px 17px;min-height:64px}.dashboard .destination{border-radius:30px;display:flex;flex-direction:column;justify-content:center;gap:5px}.dashboard .destination strong{font-size:12px}.meter-label{display:block}.dashboard .meter-label{font-size:10px}.route-meter{display:flex;flex-direction:column;justify-content:center}.route-track{height:10px;background:#cccea6;border:1.5px solid var(--ink);border-radius:9px;overflow:hidden}.route-track i{display:block;min-width:4px;width:0;height:100%;background:var(--red);border-radius:8px}.route-marker{display:none}.route-stops{display:flex;justify-content:space-between;gap:4px;margin-top:7px;font:800 7px/1 DM,sans-serif;letter-spacing:.04em}.trip-stats{display:flex;gap:9px;justify-content:flex-end}.trip-stats>.hud-case{min-height:64px;padding:7px 12px}.rally-chances{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#d9dba9!important}.rally-chances .hud-stat-label{font-size:10px}.rally-chances .hud-resources i{width:25px;height:25px}.timer-stat{display:flex;align-items:center;justify-content:center;gap:5px}#time-label{font:400 27px/1 Bowlby,Impact,sans-serif;font-variant-numeric:tabular-nums}#time-label span{font:700 10px DM,Arial,sans-serif;margin-left:2px}
.stage{position:relative;aspect-ratio:1000/610;min-height:450px;border:3px solid var(--ink);border-radius:32px;overflow:hidden;background:#cdc6a0;isolation:isolate;box-shadow:0 6px 0 var(--ink);touch-action:pan-y}canvas{display:block;width:100%;height:100%}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto;background:#f5eddb0d}.panel{text-align:center;background:#fff0d3f7;padding:28px;width:760px;max-width:100%;flex-shrink:0}.intro.panel{display:grid;grid-template-columns:240px minmax(0,1fr);gap:25px;align-items:center;position:relative;background:linear-gradient(110deg,#eddcaf,#fff1d4 48%);padding:25px 30px}.intro-welcome{display:flex;flex-direction:column;align-items:center}.trip-mascot{display:block;width:190px;height:190px;background:url('../../assets/tire-waiting-v9.png') 0 50%/300% 100% no-repeat;filter:drop-shadow(1px 5px 0 #46382318);animation:trip-sway 7s ease-in-out infinite,trip-wait 12s steps(1,end) infinite;transform-origin:50% 90%}.trip-badge{display:block;font-size:8px;font-weight:900;letter-spacing:.13em;line-height:1.5;color:#79503a;margin:7px 0 10px}h2{font:400 34px/1.09 Bowlby,Impact,sans-serif;letter-spacing:-.7px;margin:0 0 10px;text-wrap:balance}.intro-copy{font-size:12px;line-height:1.5;margin:0}.trip-setup{padding-left:22px;border-left:2px dashed #aa84545e}.tire-picker{border:0;padding:0;margin:0;text-align:center;min-width:0}.tire-picker legend{font:400 15px/1.3 Bowlby,Impact,sans-serif;padding:0;margin:0 auto 15px}.tires{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.tire-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:137px;border:2px solid var(--ink);border-radius:27px;padding:11px 3px;background:#eddfb9;box-shadow:0 4px 0 var(--ink);transition:transform .15s,background .15s}.tire-choice.selected{background:#d9dba9;transform:translateY(-3px);box-shadow:0 6px 0 var(--ink)}.tire-choice:hover{background:#f6eac8}.tire-choice.selected:hover{background:#d9dba9}.tire-choice strong{font-size:11px;font-weight:900;line-height:1.25;min-height:28px;display:flex;align-items:center;justify-content:center}.tire-choice small{font-size:8px;line-height:1.3;margin-top:4px}.tire-art{display:block;width:64px;height:64px;margin-bottom:8px;background:url('assets/tire-choices-v16.png') 0 50%/300% 100% no-repeat}.tire-note{font-size:11px;line-height:1.4;margin:17px 0 14px;min-height:30px;color:#65553d}.primary{display:flex;justify-content:center;gap:22px;align-items:center;width:100%;background:var(--red);color:#fff1d1;padding:13px 18px;font:400 21px/1.2 Bowlby,Impact,sans-serif;letter-spacing:.02em}.primary:hover{background:#933d2c}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 var(--ink)!important}.primary span{font:900 25px/1 DM,Arial,sans-serif}.controls-copy{font-size:10px;line-height:1.6;margin:15px 0 7px}.game-fiction{font-size:8px;color:#7b6a50;margin:0}
.live-top{position:absolute;top:17px;left:18px;right:18px;display:flex;justify-content:space-between;gap:8px;pointer-events:none}.weather-chip,.score-chip,.stage-caption{border:2px solid var(--ink);background:#fff0d3ee;border-radius:999px;box-shadow:0 3px 0 var(--ink)}.weather-chip,.score-chip{padding:10px 15px;font:800 10px/1.2 DM,sans-serif;letter-spacing:.05em}.score-chip{font-size:14px;color:#874b2b}.stage-caption{position:absolute;left:18px;bottom:18px;display:flex;flex-direction:column;gap:4px;padding:11px 15px;border-radius:23px;pointer-events:none;font-size:8px;font-weight:900}.stage-caption span:first-child{font-size:12px}.touch-controls{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:15px;user-select:none}.touch-controls button{width:76px;height:57px;border:3px solid var(--ink);border-radius:999px;background:#fff0d3f5;box-shadow:0 4px 0 var(--ink),inset 0 3px #fffbed;font:900 32px/1 DM,sans-serif;touch-action:none}.touch-controls button.active{background:var(--yellow);transform:translateY(2px);box-shadow:0 2px 0 var(--ink)}.touch-controls span{font-size:8px;font-weight:900;letter-spacing:.06em;color:#fff4dd;text-shadow:0 1px 3px #252619;max-width:60px;line-height:1.5;text-align:center}
.compact{max-width:440px;padding:32px}.compact p{font-size:13px;line-height:1.6}.text-button{border:0;background:none;text-decoration:underline;font-size:12px;margin-top:12px;min-height:44px}.result-score{margin:20px 0}.result-score span{font-size:9px;display:block;letter-spacing:.14em}.result-score strong{font:400 42px/1.4 Bowlby,Impact,sans-serif;color:var(--red)}footer{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:18px;font-size:10px}.desktop-help{font-size:8px;letter-spacing:.06em}footer i{margin:0 10px;font-style:normal}.concept-label{font-size:7px;letter-spacing:.08em;border:1px solid #a7a38e;padding:4px 8px;border-radius:999px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:fullscreen{background:var(--paper)}
@keyframes trip-wait{0%,65%,100%{background-position:0 50%}70%,80%{background-position:50% 50%}85%,90%{background-position:100% 50%}}
@keyframes trip-sway{0%,100%{transform:rotate(-1deg) translateY(0)}45%{transform:rotate(1.1deg) translateY(-3px)}60%{transform:rotate(.5deg) translateY(-1px)}}
/* One viewport shell for standalone and launcher embeds. */
@media(min-width:701px){.rally-shell{height:100dvh;max-height:1100px;display:flex;flex-direction:column}.masthead,.game-heading,.dashboard,footer{flex:none}.stage{flex:1;min-height:360px;aspect-ratio:auto}}
body.embedded{height:100dvh}.embedded .rally-shell{height:100dvh;max-width:none;display:flex;flex-direction:column;padding:12px 20px}.embedded .masthead{display:none}.embedded .game-heading{margin:0 0 12px}.embedded .stage{flex:1;aspect-ratio:auto;min-height:360px}.embedded h1{font-size:28px}.embedded footer{padding-top:13px}
@media(max-width:700px){.rally-shell{padding:11px 11px 16px}.masthead{padding-bottom:10px}.masthead img{width:139px;height:27px}.back-link{font-size:9px}.edition{display:none}.game-heading{margin:12px 0;gap:7px}.eyebrow{font-size:6px;letter-spacing:.09em}h1,.embedded h1{font-size:24px;letter-spacing:-.7px}h1 span{display:none}.icon-button{width:44px;height:44px;min-width:44px;font-size:17px}.rally-audio .arcade-audio-pill{min-width:70px;min-height:44px;font-size:10px;padding:8px 10px}.dashboard{grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-bottom:12px}.dashboard>.destination{display:none}.dashboard>.hud-case{padding:9px 10px;min-height:58px}.trip-stats{gap:6px}.trip-stats>.hud-case{min-height:58px;padding:6px 8px}.rally-chances .hud-stat-label{font-size:9px}.rally-chances .hud-resources i{width:20px;height:23px}.trip-stats [data-hud-clock]{width:28px;height:32px}.timer-stat{gap:3px}#time-label{font-size:22px}.route-stops{font-size:5px;letter-spacing:0}.route-stops span:nth-child(even){display:none}.stage{aspect-ratio:600/820;min-height:490px;border-radius:26px}.overlay{padding:10px}.intro.panel{display:block;padding:17px 15px;border-radius:30px;max-width:min(430px,100%)}.intro-welcome{flex-direction:row;gap:5px;justify-content:center;margin-bottom:15px}.trip-mascot{width:105px;height:105px;flex:none}.welcome-copy{min-width:0}.trip-badge{font-size:6px;letter-spacing:.08em;margin:0 0 6px}.intro h2{font-size:26px;line-height:1.06;margin-bottom:8px}.intro-copy{font-size:10px;line-height:1.4}.trip-setup{border:0;padding:0}.tire-picker legend{font-size:12px;margin-bottom:12px}.tires{gap:7px}.tire-choice{min-height:111px;border-radius:23px;padding:8px 2px}.tire-choice strong{font-size:10px}.tire-choice small{font-size:7px}.tire-art{width:48px;height:48px;margin-bottom:6px}.tire-note{font-size:9px;min-height:25px;margin:13px 0 10px}.primary{font-size:18px;padding:10px 14px;min-height:49px}.controls-copy{font-size:8px;margin:12px 0 5px}.game-fiction{font-size:7px}.live-top{top:12px;left:10px;right:10px}.weather-chip{font-size:8px;padding:9px 11px}.score-chip{font-size:12px;padding:8px 11px}.stage-caption{left:10px;bottom:87px;padding:8px 11px}.stage-caption span:first-child{font-size:10px}.stage-caption span{font-size:7px}.touch-controls{bottom:17px;gap:12px}.touch-controls button{width:71px;height:56px}.touch-controls span{font-size:7px;max-width:47px}.desktop-help{display:none}footer{font-size:8px;padding-top:16px}.concept-label{font-size:6px}.compact{padding:26px 20px}.compact h2{font-size:32px}.embedded .rally-shell{padding:10px}.embedded .stage{min-height:490px}}
/* Short desktops retain the whole selection ticket without hiding its mascot. */
@media(min-width:701px) and (max-height:780px){.rally-shell{padding:10px 24px}.masthead{padding-bottom:8px}.masthead img{height:25px}.game-heading,.embedded .game-heading{margin:9px 0 10px}h1,.embedded h1{font-size:27px}.dashboard{margin-bottom:12px}.dashboard>.hud-case,.trip-stats>.hud-case{min-height:57px}.stage,.embedded .stage{min-height:310px}.intro.panel{padding:16px 25px;grid-template-columns:270px 1fr;gap:22px;max-width:750px}.intro-welcome{flex-direction:row;gap:7px}.trip-mascot{width:90px;height:90px}.intro h2{font-size:23px}.intro-copy{font-size:10px}.trip-badge{font-size:6px}.trip-setup{padding-left:20px}.tire-choice{min-height:104px}.tire-art{width:44px;height:44px;margin-bottom:5px}.tire-picker legend{margin-bottom:10px;font-size:13px}.tire-note{font-size:9px;min-height:0;margin:12px 0 10px}.primary{font-size:18px;padding:10px 14px}.controls-copy{font-size:8px;margin:11px 0 4px}footer{padding-top:13px}}
/* Phones held sideways use a compact two-column ticket and keep arrows reachable. */
@media(orientation:landscape) and (max-height:500px){body,.embedded{height:100dvh;overflow:hidden}.rally-shell,.embedded .rally-shell{height:100dvh;min-height:0;display:flex;flex-direction:column;padding:6px 12px 10px}.masthead,footer{display:none}.game-heading,.embedded .game-heading{margin:0 0 7px;gap:8px;flex:none}h1,.embedded h1{font-size:20px;margin-top:2px}.eyebrow{font-size:5px}.icon-button{height:44px;width:44px;min-width:44px}.dashboard{grid-template-columns:minmax(0,1fr) 228px;gap:10px;margin-bottom:9px;flex:none}.dashboard>.destination{display:none}.dashboard>.hud-case,.trip-stats>.hud-case{min-height:48px;padding:4px 12px}.route-stops{font-size:6px}.route-stops span:nth-child(even){display:block}.rally-chances .hud-resources i{width:23px;height:21px}.trip-stats [data-hud-clock]{height:30px;width:27px}#time-label{font-size:23px}.stage,.embedded .stage{flex:1;min-height:0;aspect-ratio:auto;border-radius:23px}.overlay{padding:8px}.intro.panel{display:grid;grid-template-columns:235px minmax(0,1fr);gap:13px;max-width:710px;width:100%;padding:9px 15px;border-radius:26px}.intro-welcome{flex-direction:row;gap:3px;margin:0}.trip-mascot{width:75px;height:75px}.trip-badge{font-size:5px;line-height:1.4;margin:0 0 6px}.intro h2{font-size:20px;margin-bottom:8px}.intro-copy{font-size:8px}.trip-setup{padding-left:12px;border-left:2px dashed #aa84545e}.tire-picker legend{font-size:10px;margin-bottom:7px}.tires{gap:7px}.tire-choice{min-height:73px;padding:4px 2px;border-radius:20px}.tire-art{width:32px;height:32px;margin-bottom:2px}.tire-choice strong{font-size:9px}.tire-choice small{font-size:6px;margin-top:2px}.tire-note{font-size:7px;min-height:0;margin:8px 0 6px}.primary{font-size:15px;padding:5px 10px;min-height:44px}.controls-copy{font-size:6px;line-height:1.3;margin:7px 0 3px}.game-fiction{font-size:5px}.live-top{top:8px;left:10px;right:10px}.weather-chip,.score-chip{font-size:9px;padding:6px 10px}.stage-caption{bottom:9px;left:10px;padding:6px 10px;font-size:6px}.stage-caption span:first-child{font-size:8px}.touch-controls{bottom:10px;gap:14px}.touch-controls button{width:64px;height:44px;font-size:26px}.touch-controls span{font-size:6px}.compact{padding:12px 22px;max-width:380px}.compact h2{font-size:25px}.compact p{font-size:10px;margin:7px 0}.result-score{margin:7px 0}.result-score strong{font-size:26px}.text-button{font-size:10px;margin-top:3px}}
@media(orientation:portrait) and (max-height:700px){.rally-shell,.embedded .rally-shell{height:100dvh;min-height:0;display:flex;flex-direction:column;padding:8px 9px 10px}.masthead,footer{display:none}.game-heading,.embedded .game-heading{flex:none;margin:0 0 8px;gap:6px}h1,.embedded h1{font-size:20px}.eyebrow{font-size:5px}.dashboard{flex:none;margin-bottom:10px}.dashboard>.hud-case,.trip-stats>.hud-case{min-height:53px}.stage,.embedded .stage{flex:1;min-height:0;aspect-ratio:auto}.overlay{padding:8px}.intro.panel{padding:11px 12px}.intro-welcome{margin-bottom:8px}.trip-mascot{width:80px;height:80px}.trip-badge{font-size:5px}.intro h2{font-size:22px}.intro-copy{font-size:8px}.tire-picker legend{font-size:10px;margin-bottom:8px}.tire-choice{min-height:86px;padding:5px 2px}.tire-art{width:37px;height:37px;margin-bottom:4px}.tire-choice strong{font-size:9px}.tire-choice small{font-size:6px}.tire-note{font-size:8px;min-height:0;margin:10px 0 9px}.primary{font-size:16px;min-height:44px;padding:7px 10px}.controls-copy{font-size:7px;line-height:1.4;margin:10px 0 3px}.game-fiction{font-size:6px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* One recommended tire action sits between the steering buttons. */
.rally-rules{font-size:10px;line-height:1.5;margin:15px 0 0;color:#544932}
.touch-controls{gap:16px;align-items:center;bottom:18px;width:max-content;max-width:calc(100% - 24px)}
.equipment-action{display:flex;flex-direction:column;align-items:center;gap:6px;width:180px;flex:none}
.touch-controls #tire-change{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:66px;min-height:44px;padding:6px 10px;background:#e8bd71;font:800 11px/1.2 DM,sans-serif}
.touch-controls #tire-change:active{background:#f0cd89;transform:translateY(2px)}
.touch-controls .switch-art{display:block;width:54px;height:54px;max-width:none;flex:none;background:url('assets/tire-choices-v16.png') 0 50%/300% 100% no-repeat}
.touch-controls .switch-copy{display:flex;flex-direction:column;gap:3px;max-width:100px;color:var(--ink);text-shadow:none;font:800 10px/1.2 DM,sans-serif;text-align:left;letter-spacing:0}
.switch-copy small{font-size:7px;letter-spacing:.08em}.switch-copy b{font-size:11px}
.touch-controls .equipped-label{font:800 8px/1.2 DM,sans-serif;letter-spacing:0;max-width:180px;color:#fff5da;text-shadow:0 1px 3px #292514;text-align:center}
#tire-change.needed{outline:3px solid #f7ce7a;outline-offset:3px;animation:needed-tire 1.4s ease-in-out infinite}
.fuel-meter{display:flex;flex-direction:column;justify-content:center;gap:4px;width:150px;padding:6px 11px;background:#fff0d3ee;border:2px solid var(--ink);border-radius:22px;box-shadow:0 3px 0 var(--ink)}
.fuel-heading{display:flex;align-items:center;justify-content:space-between;font:800 8px/1 DM,sans-serif;letter-spacing:.06em}.fuel-heading b{font-size:10px;letter-spacing:0}.fuel-track{display:block;height:8px;border:1px solid var(--ink);border-radius:99px;overflow:hidden;background:#b9ad85}.fuel-track i{display:block;width:100%;height:100%;background:#697846;border-radius:99px;transition:width .15s linear}.fuel-meter.low .fuel-track i{background:#a44631}.score-chip small{font-size:8px}.live-top{align-items:stretch}
.next-terrain{position:absolute;left:18px;top:66px;max-width:calc(100% - 36px);padding:7px 13px;background:#fff0d3ec;border:2px solid var(--ink);border-radius:999px;font:800 10px/1.2 DM,sans-serif;box-shadow:0 2px 0 var(--ink);pointer-events:none}
.traction-warning{position:absolute;left:50%;top:109px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 30px);padding:8px 14px;border:2px solid var(--ink);border-radius:999px;background:#536049;color:#fff1d1;box-shadow:0 3px 0 var(--ink);text-align:center;font:400 14px/1.2 Bowlby,Impact,sans-serif;pointer-events:none}
.traction-warning.danger{background:#a44631;color:#fff1d1;text-shadow:0 1px #6a281d;animation:traction-nudge 1.6s ease-in-out infinite}
.stage-caption{bottom:119px;padding:7px 10px}.stage-caption span:first-child{font-size:10px}
@media(max-width:700px){.rally-rules{font-size:8px;line-height:1.5;margin-top:12px}.tire-choice strong{font-size:9px;min-height:24px}.touch-controls{gap:9px;bottom:15px}.touch-controls>button{width:59px;height:52px;flex:none}.equipment-action{width:159px;gap:5px}.touch-controls #tire-change{height:70px;gap:5px;padding:5px 8px}.touch-controls .switch-art{width:56px;height:56px}.switch-copy b{font-size:10px}.switch-copy small{font-size:6px}.touch-controls .equipped-label{font-size:7px}.fuel-meter{width:116px;padding:5px 8px;border-radius:20px}.fuel-heading{font-size:6px}.fuel-heading b{font-size:8px}.fuel-track{height:7px}.score-chip{padding:9px 10px;font-size:11px}.score-chip small{font-size:6px}.weather-chip{font-size:7px;padding:10px 8px}.live-top{gap:5px}.stage-caption{bottom:111px;padding:6px 9px;font-size:6px}.stage-caption span:first-child{font-size:8px}.next-terrain{left:10px;top:57px;font-size:8px;padding:6px 10px}.traction-warning{top:94px;font-size:11px;padding:7px 11px}}
@media(min-width:701px) and (max-height:780px){.rally-rules{font-size:8px;margin-top:10px;line-height:1.4}.controls-copy{margin-top:8px}}
@media(orientation:portrait) and (max-height:700px){.rally-rules{font-size:7px;line-height:1.35;margin-top:9px}.controls-copy{font-size:6px;margin-top:7px}.tire-note{margin:8px 0}.tire-choice{min-height:82px}.tire-art{width:32px;height:32px}.equipment-action{width:143px}.touch-controls{gap:7px}.touch-controls>button{width:53px;height:50px}.touch-controls #tire-change{height:59px}.touch-controls .switch-art{width:48px;height:48px}.switch-copy b{font-size:9px}.fuel-meter{width:102px}.weather-chip{font-size:6px}.score-chip{padding:9px 7px}.score-chip small{font-size:5px}}
@media(orientation:landscape) and (max-height:500px){.rally-rules{font-size:6px;line-height:1.25;margin-top:6px}.controls-copy{font-size:5px;margin-top:5px}.intro.panel{padding-top:7px;padding-bottom:7px}.tire-choice{min-height:60px}.tire-choice strong{font-size:8px;min-height:20px}.tire-art{width:26px;height:26px;margin-bottom:1px}.tire-note{margin:6px 0;font-size:6px}.touch-controls{gap:13px;bottom:10px}.touch-controls>button{width:64px;height:44px}.equipment-action{width:180px;gap:4px}.touch-controls #tire-change{height:45px;min-height:44px}.touch-controls .switch-art{width:34px;height:34px}.touch-controls .equipped-label{font-size:6px}.switch-copy b{font-size:9px}.stage-caption{bottom:10px;left:10px;padding:6px 9px;max-width:140px}.stage-caption span:first-child{font-size:8px}.next-terrain{top:45px;left:10px;max-width:260px;font-size:7px;padding:5px 8px}.traction-warning{top:45px;left:auto;right:10px;transform:none;font-size:9px;max-width:260px;padding:6px 10px}.fuel-meter{width:150px;padding:4px 10px}.fuel-heading{font-size:6px}.fuel-track{height:6px}}
@keyframes needed-tire{0%,100%{box-shadow:0 3px 0 var(--ink),0 0 0 0 #edbf6855}50%{box-shadow:0 3px 0 var(--ink),0 0 0 5px #edbf6800}}
@keyframes traction-nudge{0%,90%,100%{rotate:0deg}93%{rotate:-1deg}96%{rotate:1deg}}
@media(prefers-reduced-motion:reduce){#tire-change.needed,.traction-warning.danger{animation:none}.fuel-track i{transition:none}}

/* Equal square cells preserve the distinct tread illustrations without stretching. */
.tire-choice[data-tire="touring"] .tire-art,#tire-change[data-tire="touring"] .switch-art{background-position:0 50%}
.tire-choice[data-tire="season"] .tire-art,#tire-change[data-tire="season"] .switch-art{background-position:50% 50%}
.tire-choice[data-tire="trail"] .tire-art,#tire-change[data-tire="trail"] .switch-art{background-position:100% 50%}
.touch-controls #tire-change:disabled{opacity:1;background:#d9dba9;cursor:default}
