/* Road Rush: fictional driver profiles and independent cosmetic choices. */
.racer-portrait{display:block;background-image:url('assets/racer-portraits-v22.webp');background-size:400% 100%;background-position:calc(var(--portrait)*100%/3) center;background-repeat:no-repeat;aspect-ratio:3/4;border-radius:10px}
.rush-hero{height:auto;min-height:300px;padding:48px 6vw 35px}.rush-hero .hero-copy{width:100%}.rush-hero h1{font-size:clamp(48px,7vw,94px);margin:16px 0;letter-spacing:-4px}.rush-hero h1 em{font-style:italic}.rush-hero p{font-size:16px}.route-jump{display:inline-block;text-decoration:none;color:white}.racer-studio{margin:0 6vw 45px;max-width:1500px}.studio-heading{border-top:1px solid #ffffff24;padding-top:28px}.studio-heading h2{font-size:28px;margin:10px 0}.studio-heading p{font-size:13px;color:#a8b5c1}.studio-layout{display:grid;grid-template-columns:220px minmax(280px,1fr) minmax(340px,1fr);gap:24px;align-items:stretch;margin-top:22px}.driver-profile{background:#192431;border:1px solid #ffffff20;border-radius:14px;overflow:hidden}.driver-profile .racer-portrait{border-radius:0}.driver-profile>div:last-child{padding:20px}.driver-profile h3{font-size:34px;margin:9px 0}.driver-profile p{font-size:13px;line-height:1.6;color:#b9c7d4}.driver-profile .eyebrow{font-size:8px;color:#efbd77;letter-spacing:1.5px}.setup-preview{min-width:0;background:radial-gradient(ellipse at 50% 45%,#354554,#17232e 70%);border:1px solid #ffffff20;border-radius:14px;text-align:center;padding:18px;display:flex;flex-direction:column;justify-content:center}.preview-stage{height:300px;position:relative}.preview-stage canvas{width:100%;height:100%;display:block}.preview-stage canvas[hidden],#previewFallback[hidden]{display:none}#previewFallback{position:absolute;inset:0;display:flex;align-items:center}#previewFallback>.victory-avatar{width:27%;margin-right:-8%;position:relative;z-index:1;align-self:center}#previewFallback>svg:not(.victory-avatar){width:80%;align-self:end;margin-bottom:30px}.setup-preview .eyebrow{font-size:8px}.setup-preview p{font-size:12px;line-height:1.6;color:#bfccd7}.setup-preview button{font-size:10px;min-height:44px}.setup-options{display:flex;flex-direction:column;gap:16px}.setup-options fieldset{padding:0;margin:0;border:0;min-width:0}.setup-options legend{font-size:10px;color:#bdc8d1;letter-spacing:1.5px;margin-bottom:8px}.choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.choices button{background:#1c2935;border:1px solid #40505f;border-radius:7px;padding:10px 5px;font-size:11px;min-height:44px;touch-action:manipulation}.choices button:hover{background:#30404c}.choices button.selected{border-color:#ffb064;background:#473a30;box-shadow:inset 0 0 0 1px #ffb064}.driver-choices button{padding:4px}.driver-choices .racer-portrait{border-radius:4px;aspect-ratio:1/1.05;background-size:400% auto;background-position:calc(var(--portrait)*100%/3) 28%}.driver-choices strong{display:block;padding:7px 0 3px;font-size:12px}.helmet-choices svg{display:block;width:53px;max-width:100%;height:45px;margin:auto auto 4px}.colour-choices{grid-template-columns:repeat(6,minmax(0,1fr))}.colour-choices i{display:block;width:23px;height:23px;border:1px solid #ffffff60;border-radius:50%;margin:0 auto 5px}.colour-choices span{font-size:9px}#selectionStatus{font-size:10px;color:#a8b5bf;line-height:1.4;margin:0}.welcome-driver{display:flex;align-items:center;gap:22px;text-align:left;margin:18px auto;max-width:320px}.welcome-driver .racer-portrait{width:95px;flex:none}.welcome-driver h3{font-size:30px;margin:10px 0}.welcome-driver .eyebrow{font-size:8px}.driver-camera>.racer-portrait{padding:0;width:100%;height:105px;aspect-ratio:auto;background-size:400% auto;background-position:calc(var(--portrait)*100%/3) 25%}.result-celebration .victory-avatar{height:170px;max-width:100%}.victory-avatar{overflow:visible}.victory-avatar .left-arm{transform-origin:49px 80px}.victory-avatar .right-arm{transform-origin:100px 80px}.celebration-pump .left-arm{animation:fist-pump 1s ease-in-out infinite}.celebration-salute .right-arm{transform:rotate(-140deg)}.celebration-salute .celebrant{animation:salute-body 2s ease-in-out infinite;transform-origin:75px 220px}.celebration-jump .celebrant{animation:victory-jump 1s ease-in-out infinite}.celebration-jump .left-arm{transform:rotate(135deg)}.celebration-jump .right-arm{transform:rotate(-135deg)}.celebration-dance .celebrant{animation:victory-dance 1s ease-in-out infinite;transform-origin:75px 220px}.celebration-dance .left-arm{animation:fist-pump .5s ease-in-out infinite alternate}.celebration-dance .right-arm{transform:rotate(-85deg)}@keyframes fist-pump{0%,100%{transform:rotate(110deg)}50%{transform:rotate(160deg)}}@keyframes salute-body{50%{transform:rotate(3deg)}}@keyframes victory-jump{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}@keyframes victory-dance{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}
#mazeProfile{display:flex;align-items:center;gap:10px;margin:12px 0}#mazeProfile .racer-portrait{width:50px}#mazeProfile b{font-size:20px}.change-driver{font-size:9px;color:#efbd77}#mazeCelebration .victory-avatar{height:95px}#mazeCelebration:empty{display:none}
@media(max-width:1100px){.studio-layout{grid-template-columns:180px 1fr}.setup-options{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:20px}.setup-options fieldset:first-child{grid-row:span 2}.driver-choices .racer-portrait{aspect-ratio:3/4;background-size:400% 100%;background-position:calc(var(--portrait)*100%/3) center}}
@media(max-width:650px){.rush-hero{padding:30px 6vw}.rush-hero h1{font-size:55px;letter-spacing:-3px}.rush-hero .eyebrow{font-size:8px;letter-spacing:1px}.studio-layout{grid-template-columns:1fr;gap:15px}.driver-profile{display:grid;grid-template-columns:110px 1fr;align-items:center}.driver-profile>div:last-child{padding:14px}.driver-profile h3{font-size:27px}.driver-profile p{font-size:12px;margin:6px 0}.driver-profile .racer-portrait{min-height:175px;height:100%}.setup-preview{grid-row:3}.preview-stage{height:235px}.setup-options{grid-column:auto;display:flex}.studio-heading h2{font-size:25px}.driver-choices .racer-portrait{aspect-ratio:1/1.05;background-size:400% auto;background-position:calc(var(--portrait)*100%/3) 28%}.racer-studio{margin-bottom:25px}#mazeProfile,.change-driver{display:none}}
@media(max-height:600px){#mazeProfile{display:none}#mazeCelebration .victory-avatar{height:50px}.driver-camera>.racer-portrait{height:75px}}
@media(prefers-reduced-motion:reduce){.victory-avatar *{animation:none!important}}

.celebrate-again .victory-avatar .celebrant,.celebrate-again .victory-avatar .left-arm{animation-delay:0s}

#choices-car svg{width:100%;height:42px;display:block;margin-bottom:4px}

/* Six realistic catalogue renders replace the small flat car illustrations. */
.racing-car-art{display:block;aspect-ratio:1;background-image:url('assets/racing-cars-v23.webp');background-repeat:no-repeat;background-size:300% 200%;background-position:calc(var(--car-x)*50%) calc(var(--car-y)*100%);border-radius:8px}
#choices-car{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#choices-car button{padding:4px 4px 10px}#choices-car .racing-car-art{width:100%;height:auto;margin-bottom:4px}#choices-car button>span:last-child{font-size:12px}
#previewFallback{display:block}#previewFallback>.racing-car-art{width:100%;height:100%;aspect-ratio:auto;background-size:300% 200%}#previewFallback>.victory-avatar{position:absolute;bottom:8px;left:4px;width:18%;height:110px;margin:0;filter:drop-shadow(0 4px 5px #0007)}.preview-stage{height:auto;aspect-ratio:1}.preview-stage canvas{position:absolute;inset:0}#previewFallback .racing-car-art{border-radius:10px}.setup-preview{padding:12px}.setup-preview #previewCaption{margin-top:16px}
@media(min-width:1101px){.studio-layout{grid-template-columns:210px minmax(310px,1fr) minmax(380px,1fr)}.setup-preview{align-self:start;position:sticky;top:16px}.driver-profile{align-self:start}}
@media(max-width:650px){#choices-car{grid-template-columns:repeat(3,minmax(0,1fr))}.preview-stage{height:auto;aspect-ratio:1}.setup-preview{grid-row:3}}
