/* Quiet editorial motion, with no perpetual animation. */
@keyframes archive-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes garage-settle{from{opacity:.65;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:no-preference){
.garage-heading{animation:archive-arrive 1s cubic-bezier(.2,.7,.2,1) both}
.garage-scene{animation:garage-settle 1.8s cubic-bezier(.2,.7,.2,1) both}
.garage-selectors{animation:archive-arrive 1s .2s both}
.scene-light{transition:opacity 1s ease}
.scene-glint{display:none}
.motion-ready{opacity:0;transform:translateY(16px);transition:opacity .85s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.motion-ready.is-visible,.motion-ready:focus-within{opacity:1;transform:none}
@media(max-width:700px){.garage-scene{animation:archive-arrive 1.1s both}.motion-ready{transform:translateY(8px)}}
}
@media(prefers-reduced-motion:reduce){.motion-ready{opacity:1;transform:none;transition:none}.scene-art,.scene-light,.scene-image{transition:none!important}}
@keyframes garage-camera{from{transform:scale(1.045) translateX(-.4%)}to{transform:scale(1) translateX(0)}}
@keyframes detail-arrive{from{opacity:.25;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes title-rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:no-preference){
.scene-stage{transform-origin:50% 60%;animation:garage-camera 5s cubic-bezier(.16,.55,.25,1) both}
.garage-heading::after{transform-origin:right;animation:title-rule 1.5s .4s both}
.garage-details.details-moving>*{animation:detail-arrive .65s cubic-bezier(.2,.7,.2,1) both}
.garage-details.details-moving>p{animation-delay:.08s}
.garage-details.details-moving>.chapter-link{animation-delay:.15s}
.garage-selectors a{position:relative}
.garage-selectors a::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:3px;background:var(--rust);transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.garage-selectors a:hover::after,.garage-selectors a[data-selected=true]::after{transform:scaleX(1)}
.field-notes,.carrera-notes,.heritage-note,.country-spread>div{transition-delay:.1s}
.editorial-photo img,.study-card img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
@media(hover:hover){.editorial-photo button,.study-card button{overflow:hidden}.editorial-photo button:hover img,.study-card button:hover img{transform:scale(1.025)}}
@media(max-width:700px){.scene-stage{animation-duration:3s}.garage-details.details-moving>*{animation-duration:.45s}}
}
