/* Reserve the desktop scrollbar before unlocking to prevent a sideways content shift. */
html.home-intro-page{scrollbar-gutter:stable}
/* The decoded video replaces its poster; do not composite both full-size images while playing. */
.home-intro.video-shown .home-intro__poster,.home-intro.video-shown .home-intro__fallback{visibility:hidden}
.home-intro__video{transform:none;backface-visibility:visible}
/* Prepare cached text layers under the opaque poster, then keep the original entrance order. */
.intro-preparing.intro-open .site-header,.intro-preparing.intro-open .hero-copy>*,.intro-preparing.intro-open .hero-bottom{opacity:1}
/* Keep one stable canvas; the photo never follows the text's entrance movement. */
.hero.hero-photo{padding:0;justify-content:center}
.hero-photo::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,12,18,.38),rgba(8,12,18,.68) 32%,rgba(8,12,18,.68) 68%,rgba(8,12,18,.3))}
.hero-photo .hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;width:min(100%,1100px);margin:0 auto;padding:32px 24px;background:transparent;text-align:center}
.hero-photo .hero-copy{width:100%;max-width:920px;margin:0 auto}
.hero-photo .hero-eyebrow{font-size:14px;font-weight:500;line-height:1.6;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.hero-photo h1{margin:12px 0 0;font-size:clamp(42px,5.3vw,80px);font-weight:800;line-height:1.12;letter-spacing:-.025em;text-wrap:balance;text-shadow:0 2px 14px rgba(0,0,0,.6)}
.hero-photo .hero-subtitle{max-width:48ch;margin:20px auto 0;font-size:clamp(16px,1.4vw,20px);line-height:1.65;text-wrap:balance;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.hero-photo .hero-bottom{flex:0 0 auto;width:100%;max-width:640px;margin:0}
.hero-photo .hero-actions{display:flex;flex-direction:row;justify-content:center;gap:16px;width:100%;max-width:none}
.hero-photo .button{width:auto;min-height:60px;height:auto;min-width:220px;padding:16px 28px;font-size:17px;line-height:1.35;font-weight:700}
.hero-photo .button-primary{background:#3e6ae1;color:#fff;border:2px solid #3e6ae1}
.hero-photo .button-primary:hover{background:#3158c0;border-color:#3158c0}
.hero-photo .button-secondary{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.9);font-weight:500}
.hero-photo .button-secondary:hover{background:rgba(255,255,255,.12);text-decoration:none}
.hero-photo .button:focus-visible{outline:3px solid #fff;outline-offset:5px}
/* The existing dark mask supplies AA contrast; avoid rasterizing blurred text shadows per layer. */
.hero-photo .hero-eyebrow,.hero-photo h1,.hero-photo .hero-subtitle{text-shadow:none}
.intro-open .hero-content,.intro-arrived .hero-content{background:transparent;animation:none}
/* Preserve the paused image on both viewports so the new readability layer also fades in. */
.home-intro.at-last{background:#080c12}
.home-intro.at-last:not(.has-video) .home-intro__poster{visibility:visible}
.home-intro.at-last.has-video .home-intro__video{visibility:visible}
@media(max-width:640px){
  /* A 0.63 minimum photo ratio keeps both ends of the supplied car within cover's crop. */
  .hero-photo .hero-static-image{top:50%;inset-inline-start:0;width:100vw;height:min(var(--home-frame-height),calc(100vw / .63));object-fit:cover;object-position:50% 50%;translate:0 -50%}
  .hero-photo .hero-content{gap:24px;padding:28px 22px}
  .hero-photo h1{font-size:clamp(38px,9.5vw,58px)}
  .hero-photo .hero-eyebrow{font-size:13px}
  .hero-photo .hero-subtitle{margin-top:16px;font-size:16px;max-width:100%}
  .hero-photo .hero-actions{flex-direction:column;gap:12px;align-items:stretch;max-width:360px;margin:auto}
  .hero-photo .button{min-width:0;min-height:56px;padding:14px 18px;font-size:17px}
}
@media(max-height:560px){
  .hero-photo .hero-content{gap:16px;padding:70px 22px 22px}
  .hero-photo h1{font-size:clamp(30px,4.4vw,48px)}
  .hero-photo .hero-subtitle{font-size:15px;margin-top:10px}
  .hero-photo .hero-actions{flex-direction:row}
  .hero-photo .button{min-height:48px;min-width:0;padding:10px 18px;font-size:15px}
}
