/* Quiet electric light, technical linework and tactile surfaces. */
.hero-visual,.color-stage{isolation:isolate;position:relative}
.stage-linework{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;color:#55bcb4;opacity:.35}
.stage-linework .orbit{fill:none;stroke:currentColor;stroke-width:.65}
.stage-linework .route{fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-dasharray:9 12}
.hero-visual{background-image:radial-gradient(ellipse at 65% 25%,#b9eae75c,transparent 60%);box-shadow:inset 0 1px 0 #ffffff80,0 25px 70px -45px #134d4366}
.hero h1 em{background:linear-gradient(110deg,var(--ink),#299b92 65%,var(--ink));background-clip:text;-webkit-background-clip:text;color:transparent}
.visual-label{letter-spacing:.18em}.visual-label span:last-child{font-variant-numeric:tabular-nums}
.model-card,.channel-card{position:relative;isolation:isolate;background-image:radial-gradient(circle at var(--light-x,50%) var(--light-y,0%),#72c8bf16,transparent 65%);box-shadow:inset 0 1px 0 #ffffff45}
.model-card{overflow:hidden}.model-no{font-variant-numeric:tabular-nums;letter-spacing:.12em}
.model-card .model-footer{border-top-style:solid;border-image:linear-gradient(90deg,transparent,#69b9aa70,transparent) 1}
.color-stage{box-shadow:inset 0 0 0 1px #82bcb322,0 24px 65px -45px #163f3955}
.color-choices button{position:relative}
.color-choices button[aria-pressed=true]::after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:currentColor;bottom:5px;left:calc(50% - 2px)}
.steps article{border-radius:20px;padding:22px;background:linear-gradient(145deg,#8bcfbe10,transparent);border:1px solid #8bcfbe20}
.steps article>span{box-shadow:0 0 0 6px #8bcfbe10}
.faq details{transition:background-color .25s;padding-inline:14px;border-radius:12px}.faq details[open]{background:#8bcfbe12}
[data-theme=dark] .hero-visual{background-image:radial-gradient(ellipse at 65% 25%,#397d713d,transparent 65%);box-shadow:inset 0 1px 0 #8bcfbe25,0 25px 70px -45px #0009}
[data-theme=dark] .model-card,[data-theme=dark] .channel-card{box-shadow:inset 0 1px 0 #8bcfbe25}
[data-theme=dark] .stage-linework{opacity:.22}
@media(prefers-reduced-motion:no-preference){
 .stage-enter .stage-linework{animation:linework-enter 1.4s ease-out both}
 .stage-enter .route{animation:route-flow 3s linear 1}
 @keyframes linework-enter{from{opacity:0;transform:scale(.94)}to{transform:scale(1)}}
 @keyframes route-flow{to{stroke-dashoffset:-84}}
 .model-card,.channel-card{transition:box-shadow .35s,border-color .35s}
 .color-stage.color-flash{animation:color-illumination .65s ease-out}
 @keyframes color-illumination{50%{box-shadow:inset 0 0 0 1px #82bcb360,0 0 35px -12px #49b9c560}}
}
@media(hover:hover){.model-card:hover,.channel-card:hover{border-color:#70bdae;box-shadow:inset 0 1px 0 #8bcfbe45,0 18px 38px -30px #277d72}}
@media(max-width:600px){.steps article{padding:18px}.stage-linework{opacity:.25}.hero-visual{box-shadow:inset 0 1px 0 #ffffff40}.visual-label{letter-spacing:.1em}}
@media(prefers-reduced-motion:reduce){.stage-linework,.color-stage{animation:none!important}}

/* Racing-menu accents, with finite animations rather than perpetual flashes. */
.model-card::after{content:"";position:absolute;inset:12px;pointer-events:none;border:1px solid #49b9c500;border-radius:16px;transition:border-color .3s}
.model-card:hover::after{border-color:#49b9c550}
.visual-label span:last-child{border:1px solid #49b9c545;padding:3px 9px;border-radius:5px;background:#49b9c50c}
@media(prefers-reduced-motion:no-preference){
 .game-selected{animation:garage-lock .45s ease-out}
 @keyframes garage-lock{0%{outline:2px solid #49b9c580;outline-offset:7px}100%{outline:2px solid transparent;outline-offset:0}}
 .color-stage.color-flash::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,#b8efdf30 48%,transparent 65%);animation:garage-sweep .6s ease-out both}
 @keyframes garage-sweep{from{translate:-70% 0;opacity:0}40%{opacity:1}to{translate:70% 0;opacity:0}}
 .color-stage{overflow:hidden}
 .button:hover .arrow-icon{animation:route-arrow .5s ease-out}
 @keyframes route-arrow{50%{transform:translate(3px,-3px)}}
}
