html, body {
  overflow-x: hidden;
}

.js-ready .hero__eyebrow   { opacity:1; transform:none; transition-delay:.08s; }
.js-ready .hero__title     { opacity:1; transform:none; transition-delay:.20s; }
.js-ready .hero__sub       { opacity:1; transform:none; transition-delay:.32s; }
.js-ready .hero__cta-group { opacity:1; transform:none; transition-delay:.42s; }
.js-ready .hero__stats     { opacity:1; transform:none; transition-delay:.54s; }

.cb-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .4s cubic-bezier(.22,1,.36,1),
              transform .4s cubic-bezier(.22,1,.36,1);
  will-change: transform, opacity;
}

.cb-reveal.cb-visible {
  opacity: 1;
  transform: translateY(0);
}

.car-card.cb-reveal,
.testimonial.cb-reveal {
  transform: translateY(28px);
}

.brand-tile.cb-reveal {
  transform: translateY(14px) scale(.97);
  transition-duration: .35s;
}

.promo-split {
  overflow: hidden;
}

.promo-split__half {
  overflow: hidden;
}

.promo-split__half--img.cb-reveal,
.promo-split__half--content.cb-reveal {
  transform: translateY(24px); 
}

.promo-split__half.cb-reveal.cb-visible {
  transform: translateY(0);
}

.promo-split__list li.cb-reveal {
  transform: translateY(12px); 
  transition: opacity .35s ease, transform .35s ease;
}

.promo-split__list li.cb-reveal.cb-visible {
  transform: translateY(0);
}

.step.cb-reveal {
  transform: translateY(18px) scale(.99);
}

.step.cb-reveal.cb-visible {
  transform: translateY(0) scale(1);
}

.section-header.cb-reveal .section-eyebrow {
  clip-path: inset(0 100% 0 0);
  transition: clip-path .4s cubic-bezier(.22,1,.36,1) .04s,
              opacity .3s ease .04s;
}

.section-header.cb-reveal.cb-visible .section-eyebrow {
  clip-path: inset(0 0% 0 0);
}

nav.nav--scrolled,
header.nav--scrolled,
.navbar.nav--scrolled,
.nav.nav--scrolled {
  box-shadow: 0 2px 20px rgba(8,12,18,.11);
  transition: box-shadow .25s ease;
}

.feature-item {
  transition: transform .2s ease, box-shadow .2s ease;
}

.feature-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(8,12,18,.07);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .hero__img {
    animation: kbIn 16s ease-out forwards;
  }
}

@keyframes kbIn {
  from { transform: scale(1.05); }
  to   { transform: scale(1); }
}

@keyframes scrollPulse {
  0%, 100% { opacity: 0.25; transform: scaleY(1); }
  50%      { opacity: 1;    transform: scaleY(1.25); }
}