/* The Grand Prix keeps its character colours against a dusk racing backdrop. */
:root{color-scheme:dark;--bg:#0d1024;--panel:#1b2040;--muted:#c4bbd8;--lime:#d4adff;--purple:#ffae50;--line:#8171aa55}
body,.menu{background-color:var(--bg);color:#f5efff}
.menu.has-art{background-image:linear-gradient(90deg,#0d1024fa 0%,#0d1024e0 29%,#0d102433 65%,#0d10240a),linear-gradient(0deg,#0d1024 0%,#0d102459 27%,transparent 65%),url('assets/race-keyart-helmets.webp')}
.topbar{background:linear-gradient(#0d1024b3,transparent)}
.brand{color:#fff0da}.brand-wordmark{filter:drop-shadow(0 0 1px #f4c6ff) drop-shadow(0 2px 9px #050712)}
.brand-game{color:#ffd1a0;border-color:#9c6fcb;font-size:21px;max-width:80px}
.topright .edition,.icon-btn{color:#e9dcff;background:#1b2040ed;border-color:#786096}
h1{color:#f7f0ff;font-size:76px;line-height:1.05;letter-spacing:-1px;text-shadow:0 4px 25px #070a1d66}
h1 .game-name{display:block;font-size:.57em;margin-bottom:7px;letter-spacing:-.5px}
h1 em{color:#ffb24e}
.eyebrow,.race-card .eyebrow,.cup-row h3{color:#d6acff}
.subtitle,.preferences,.keys,.touch-ui .touch-help,.difficulty-picker p,.dialog-note,.save-note,.track-meta,.card-bottom span,.menu-footer,.level small,#result-text{color:#c9c2db}
.driver{color:#f4ecff;background:#1b2040ed;border-color:#665780;box-shadow:0 4px 0 #090c1d}
.driver.selected{background:#36244ded;border-color:#c193ff;box-shadow:0 4px 0 #8651c3}
.driver small{color:#d5cbe2}.check{color:#d7ff99}
.portrait,.driver .portrait,#driver-badge .portrait,.result-duo .portrait{background-image:var(--driver-art);background-size:420% 280%;background-position:6.25% 77.78%;background-color:#342843;box-shadow:0 0 0 2px #b58bd3}
.portrait-kumka{--driver-art:url('assets/kumka-helmet-atlas.webp')}
.portrait-dumka{--driver-art:url('assets/dumka-helmet-atlas.webp');background-size:540% 360%!important;background-position:9.1% 70.4%!important}
.primary{background:#ffa84d;color:#241332;box-shadow:0 5px 0 #b95724}
.secondary{background:#24223eed;color:#f4eaff;border-color:#9173b1}.secondary span{border-color:#8b739e}
.preferences input{accent-color:#b87bf0}kbd{color:#e3d7f3;border-color:#9581ad66;background:#27223c}
.difficulty-picker{background:#171c34ed;border-color:#695581}.difficulty-picker label{color:#e5d4f9}
.difficulty-picker select{color:#f1e4ff;background:#302541;border-color:#9d7dc0}
.race-card{color:#f7edff;background:#171c36ed;border-color:#7d6596;box-shadow:0 7px 0 #332343,0 20px 60px #03051766}
.card-bottom b{color:#ffbf6d}.track-features span{background:#3b2b55;color:#e3cbff}.track-features span:nth-child(3){background:#193e55;color:#b9f0ff}
.new-routes{border-color:#6d568a}.new-routes>span{color:#c7bbda}.new-routes button{background:#7f4dbc}
.menu-footer{border-color:#66557a}
.crew-strip{background:#211e3bed;border-color:#695180;color:#efe0ff}.crew-strip:hover{background:#302448}
dialog{color:#f4ebff;background:#171b32;border-color:#806196}dialog::backdrop{background:#050819d4}
.level{background:#27213e;color:#f1e4ff;border-color:#604872}.level.current{background:#3b2855;border-color:#c793ff}.level>span{color:#cca4ff}.level .stars{color:#ffc269}
.route-preview{background:#24263e}.brief-route>b{color:#e4c4ff}.legend-ice{color:#85e9ff}.legend-limit{color:#ffc56f}.legend-obstacle{color:#ffae89}
.brief-rivals{background:#5d398c}.brief-rules article{background:#362d26;border-color:#866544}.brief-rules article[data-type=ice]{background:#153a4b;border-color:#538c9d}.brief-rules article[data-type=obstacle]{background:#422a2f;border-color:#95655d}.brief-rules article[data-type=dry]{background:#2c3b2b;border-color:#647c45}.brief-rules article[data-type=care]{background:#34264a;border-color:#8f6aad}.brief-rules .rule-icon{color:#e1baff}.brief-rules article[data-type=limit] .rule-icon{color:#48212f}
.brief-mission{background:#2a392e;color:#d9efbd}.karolek-intro{background:#28213e}
.brief-actions{background:#171b32;box-shadow:0 -8px 12px #171b32eb}
#crew-grid article{background:#29213f;border-color:#614971}#crew-grid .waiting{background:#1c2036}#result-friend{background:#302344}.result-stats b,.text-btn{color:#e2c3ff}
#care-hud{color:#f5eaff}#care-hud>div{background:#1a1d35f5;border-color:#836194}#hearts i{color:#d4a5ff}#hearts .empty{color:#685a7d}.mission-meter,.pit-meter{background:#50415e}.mission-meter i,.pit-meter i{background:#d0a0ff}#mission-hud.complete{background:#263f2ef5;color:#e4f5c4}
#toast{background:#1d213af7;color:#ecdefb;border-color:#a579c4}#toast b{color:#e1b4ff}
#pit-overlay{background:#211c36;color:#f5e9ff;border-color:#bc8ce0}#pit-overlay h2{color:#ffca80}
#driver-badge{background:#2d2344f0;border-color:#c599e4}#race-mode{background:#2e2448ed}.racing .icon-btn{background:#39254d}
#touch button{background:#392951e6;border-color:#caa5e4}#touch .gas{background:#cef38cf0;color:#23311c}#touch .boost{background:#ffb457f0;color:#2d1732}
#touch button.pressed{background:#f6dcff;color:#39224d}
#race-condition[data-type=impact]{background:#ffe1c7;color:#482132;border-color:#d16b30}
#race-condition[data-type=success]{background:#def5c1;color:#243e24;border-color:#7fba4c}
.garage-open{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:17px 0 0;padding:13px 17px;border:1px solid #a67bc7;border-radius:13px;background:#30223eea;color:#f6edff;text-align:left;cursor:pointer}
.garage-open small{display:block;color:#d1b6e9;font-size:12px;letter-spacing:1px;margin-bottom:3px}.garage-open b{font-size:18px}.garage-open>span:last-child{font-size:13px;font-weight:800;color:#ffc779;white-space:nowrap}
#garage-dialog{width:min(1060px,94vw);max-width:1060px}.dialog-top h2{line-height:1.13}
#vehicle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0 16px}
.vehicle-card{display:flex;flex-direction:column;align-items:stretch;position:relative;padding:20px 18px;border:2px solid #665379;border-radius:18px;color:#f4eaff;background:#23223b;text-align:left;cursor:pointer;min-width:0;transition:border-color .15s,background .15s}
.vehicle-card.selected{border-color:#ffc375;background:#392844;box-shadow:0 0 0 3px #ffc37518}.vehicle-card:focus-visible,.garage-open:focus-visible{outline:3px solid #d6b2ff;outline-offset:4px}
.vehicle-type{font-size:12px;font-weight:800;letter-spacing:1.5px;color:#cdb3e2}.vehicle-card img{width:calc(100% + 28px);margin:2px -14px 5px;aspect-ratio:600/320;object-fit:contain}
.vehicle-title{font-size:27px;line-height:1.1;font-weight:850;margin-bottom:9px}.vehicle-card>strong{color:#ffbf72;font-size:15px}.vehicle-card p{font-size:16px;line-height:1.45;min-height:94px;margin:12px 0 20px;color:#d7cde2}
.vehicle-stats{display:grid;gap:10px;margin-top:auto}.vehicle-stats>span{display:flex;align-items:center;justify-content:space-between;gap:9px;font-size:14px}.vehicle-stats>span>span{display:flex;gap:4px}.vehicle-stats i{display:block;width:12px;height:7px;background:#5a4669;border-radius:2px}.vehicle-stats i.filled{background:#d7acf7}
.vehicle-select{display:block;text-align:center;font-size:14px;font-weight:850;background:#463253;border-radius:9px;padding:12px;margin-top:20px}.selected .vehicle-select{background:#ffc375;color:#352137}
.garage-tip{font-size:16px;color:#e3d0f2;line-height:1.5;background:#30253e;padding:14px 18px;border-radius:12px;min-height:52px}.garage-actions{display:flex;justify-content:flex-end;padding-top:6px}.garage-actions .primary{font-size:16px}
.brief-car{background:#33283f;border-left:3px solid #ffb457;border-radius:9px;padding:13px 17px;font-size:16px;line-height:1.5;color:#f1dfef}
.level b em{font-size:11px;font-style:normal;display:inline-block;background:#ffd299;color:#3e293e;border-radius:4px;padding:2px 4px;margin-left:3px}.new-routes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.new-routes>span{grid-column:1/-1}.new-routes button{white-space:nowrap;font-size:20px;padding:9px 12px}
#driver-badge small{display:block;font-size:12px;font-weight:500;color:#f0d7c1;margin-top:2px}
@media(max-width:760px){#vehicle-grid{grid-template-columns:1fr;gap:12px;margin-top:17px}.vehicle-card{display:grid;grid-template-columns:40% minmax(0,1fr);gap:6px 12px;padding:16px}.vehicle-type{grid-column:1/-1}.vehicle-card img{grid-column:1;grid-row:2/5;width:calc(100% + 20px);margin:0 -10px;align-self:center;aspect-ratio:1;object-fit:cover}.vehicle-title,.vehicle-card>strong,.vehicle-card p{grid-column:2}.vehicle-title{font-size:23px;margin:0}.vehicle-card p{font-size:14px;min-height:0;margin:2px 0 9px}.vehicle-stats{grid-column:1/-1;grid-template-columns:1fr;gap:7px;margin-top:6px}.vehicle-stats>span{font-size:14px}.vehicle-select{grid-column:1/-1;margin-top:9px}.garage-actions{position:sticky;bottom:0;background:#171b32;padding:12px 0 4px;box-shadow:0 -10px 14px #171b32}.garage-actions .primary{width:100%;font-size:14px}.garage-open{padding:12px}.garage-open>span:last-child{font-size:12px}.garage-open b{font-size:16px}#garage-dialog{padding:20px 16px}#garage-title{font-size:28px}}
@media(min-width:901px) and (max-height:820px){h1{font-size:64px}}
@media(min-width:1101px){
 .menu{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-rows:minmax(min-content,1fr) auto;grid-template-areas:'intro track' 'footer footer';gap:36px 60px;padding:122px 4% 24px}
 .menu-shade{display:none}.intro{grid-area:intro;align-self:start;margin:0 0 0 2vw;width:100%;max-width:590px}
 .race-card{grid-area:track;position:relative;align-self:end;right:auto;bottom:auto;margin:210px 0 0;width:380px}
 .menu-footer{grid-area:footer;position:static;left:auto;right:auto;bottom:auto;margin:0}
}
@media(min-width:701px) and (max-width:1050px){h1{font-size:63px}}
@media(max-width:700px){
 .topbar{background:linear-gradient(#0d1024d9,#0d102400)}
 .brand-game{font-size:15px;max-width:none;letter-spacing:2px}
 .menu.has-art{background-image:linear-gradient(0deg,#0d1024 0%,#0d102400 65%,#0d102426),url('assets/race-keyart-helmets.webp');background-color:#0d1024;background-size:100% 55vh,auto 55vh;background-position:center top,82% top}
 .intro{background:linear-gradient(180deg,transparent 0,transparent 21vh,#0d1024e8 33vh,#0d1024 42vh);padding-top:34vh}
 h1{font-size:53px;line-height:1.04}h1 .game-name{font-size:.57em}h1 em:before{content:none}
}
@media(max-width:360px) and (orientation:portrait){.intro{padding-top:29vh}h1{font-size:46px}}
@media(max-height:540px) and (orientation:landscape){
 .intro{background:none;padding-top:0}h1{font-size:44px}h1 .game-name{font-size:.61em}
 .topbar .brand-game{display:block;font-size:13px;max-width:65px}
 .menu.has-art{background-image:linear-gradient(90deg,#0d1024f5,#0d1024bd 45%,#0d102445),url('assets/race-keyart-helmets.webp');background-size:cover;background-position:center}
}
/* Short, optional instructions and a clear view of the road. */
.track-help{margin-top:12px;border:0;background:none;color:#e4c4ff;font-size:14px;text-decoration:underline;padding:8px 0}
.driver-picker{margin-top:22px}.driver b{font-size:19px}.difficulty-picker p{margin:4px 0 0}.subtitle{margin:16px 0}
.vehicle-card>strong{margin-bottom:20px}.vehicle-card img{margin-top:5px}.garage-actions{margin-top:14px}
#brief-dialog{width:min(700px,94vw)}#brief-dialog .route-preview{padding:14px;border-radius:14px}#brief-dialog .route-preview canvas{width:100%;height:180px;object-fit:contain}
#brief-dialog .brief-car{padding:10px 12px;margin:12px 0;font-size:14px}#brief-dialog .brief-rules{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#brief-dialog .brief-rules article{padding:12px;align-items:center;gap:10px}#brief-dialog .brief-rules h3{font-size:14px;line-height:1.35;margin:0}#brief-dialog .brief-rules .rule-icon{font-size:24px;min-width:32px;width:auto;height:auto;flex:none}
#brief-dialog .brief-rules [data-type=care]{grid-column:1/-1}#brief-dialog .brief-rules [data-type=care] .rule-icon{font-size:20px;white-space:nowrap}
#brief-dialog .brief-rules [data-type=limit] .rule-icon{border-radius:50%;width:44px;height:44px;display:grid;place-items:center;font-size:19px}
#brief-dialog .brief-actions{margin-top:14px;padding-top:12px}#brief-dialog .brief-actions p{font-size:13px;line-height:1.6;max-width:245px}
#care-hud{width:340px;top:100px}#car-health{width:110px;flex:none;display:grid;align-content:center}#mission-hud{width:auto;flex:1;display:grid;grid-template-columns:15px 1fr;align-items:center;gap:3px 7px}#mission-title{margin:0;font-size:13px}#mission-hud .mission-meter{grid-column:1/-1}#mission-hud>span{font-size:17px}
#care-note:empty{display:none}#race-condition{top:162px;width:350px;padding:9px 13px;gap:12px}#warning-title{font-size:22px}#warning-detail{font-size:14px;margin:3px 0 0}#warning-icon{font-size:34px;min-width:32px}#warning-icon img{height:42px;width:31px}#warning-distance{font-size:21px}#race-hint{display:none}
#toast{top:165px;width:auto;min-width:160px;max-width:300px;padding:7px 14px;gap:10px;border-radius:16px}#toast img{height:47px;width:34px}#toast b{display:none}#toast span{font-size:17px;font-weight:700;white-space:nowrap}
#pit-overlay{width:300px;padding:18px;gap:18px}#pit-overlay>img{width:76px;height:112px}#pit-overlay h2{font-size:26px}#pit-count{font-size:23px}
@media(max-width:760px){.vehicle-card img{grid-row:2/4;aspect-ratio:1.2;max-height:120px}.vehicle-card>strong{margin-bottom:0}.vehicle-stats{margin-top:14px}#garage-dialog .eyebrow{display:none}}
@media(max-width:700px){
 #brief-dialog{padding:18px 16px}#brief-dialog h2{font-size:27px}#brief-dialog .route-preview canvas{height:120px}#brief-dialog .brief-route{gap:6px}#brief-dialog .brief-route>b{font-size:14px}#brief-dialog .brief-route>span{font-size:12px}#brief-dialog .brief-rules article{padding:10px}#brief-dialog .brief-actions{bottom:-18px}
 #care-hud{top:181px;left:14px;right:14px;transform:none;width:auto;display:flex;gap:8px}#care-hud>div{padding:7px 10px}#care-hud #car-health{width:105px;margin:0}#care-hud #mission-hud{width:auto;flex:1;display:grid}#hearts{font-size:21px;gap:8px}#mission-title{font-size:13px}#care-note{font-size:10px}
 #race-condition{top:245px;width:calc(100% - 28px);padding:8px 12px;min-height:64px}#warning-title{font-size:21px}#warning-detail{font-size:13px}#warning-icon{font-size:32px}#warning-distance{font-size:20px}
 .touch-ui #toast{width:auto;max-width:calc(100% - 28px)}#pit-overlay{width:280px;max-width:calc(100% - 28px);top:44%}#pit-overlay>img{width:76px;height:112px}#pit-overlay h2{font-size:25px}
}
@media(max-height:540px) and (orientation:landscape){#care-hud{top:83px;left:16px;right:auto;width:min(260px,calc(35vw - 24px))}#care-hud #car-health{width:85px}#race-condition{top:83px;left:clamp(220px,35vw,295px);right:auto;transform:none;width:calc(100vw - 340px);max-width:300px}#toast{top:149px}.touch-ui #toast{top:149px}#driver-badge{display:none}#brief-dialog .route-preview canvas{height:100px}}

/* Every course card shows its real geometry before the child starts. */
#levels-dialog{width:min(1040px,96vw)}
.cup-row{margin-top:28px}.cup-row h3{font-size:18px;letter-spacing:0;text-transform:none;margin-bottom:12px;color:#63329a}
.cup-tracks{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.level{display:grid;grid-template-rows:116px auto;gap:10px;position:relative;min-height:224px;padding:12px;text-align:left;overflow:hidden}
.level-map{display:block;width:100%;height:116px;border-radius:12px;background:#fffaf2;border:1px solid #dec9ea}
.level-copy{display:block;padding:0 2px}.level-copy .level-number{display:block;font-size:13px;font-weight:900;color:#9a67bf;letter-spacing:.7px;margin-bottom:4px}
.level-copy b{display:block;font-size:16px;line-height:1.25;margin:0 30px 5px 0;color:#5d327f}.level-copy small{display:block;font-size:13px;line-height:1.45;color:#71557f}
.level .stars{top:142px;right:13px}
@media(max-width:700px){
 #levels-dialog{padding:20px 15px}.cup-row{margin-top:24px}.cup-row h3{font-size:17px}
 .cup-tracks{grid-template-columns:1fr;gap:10px}
 .level{grid-template-columns:44% 1fr;grid-template-rows:auto;align-items:center;min-height:142px;padding:10px;gap:12px}
 .level-map{height:120px}.level-copy b{font-size:16px}.level-copy small{font-size:13px}.level .stars{top:12px;right:12px}
}
