/* ─── SCROLL REVEAL — Pure CSS transitions (compositor thread = 60fps) ─── */
[data-reveal]{opacity:0;transform:translateY(32px);transition:opacity 1.1s cubic-bezier(.25,.1,.25,1),transform 1.1s cubic-bezier(.25,.1,.25,1);will-change:opacity,transform}
[data-reveal="left"]{transform:translateX(-32px) translateY(0)}
[data-reveal="right"]{transform:translateX(32px) translateY(0)}
[data-reveal="scale"]{transform:scale(.95);transform-origin:center}
[data-reveal].is-visible{opacity:1;transform:none}

/* Stagger delays via CSS custom property */
[data-reveal][style*="--d:1"]{transition-delay:.08s}
[data-reveal][style*="--d:2"]{transition-delay:.16s}
[data-reveal][style*="--d:3"]{transition-delay:.2s}
[data-reveal][style*="--d:4"]{transition-delay:.26s}
[data-reveal][style*="--d:5"]{transition-delay:.32s}
[data-reveal][style*="--d:6"]{transition-delay:.38s}
[data-reveal][style*="--d:7"]{transition-delay:.44s}
[data-reveal][style*="--d:8"]{transition-delay:.50s}

/* Hero entrance */
.hero [data-hero]{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.25,.1,.25,1),transform .9s cubic-bezier(.25,.1,.25,1)}
.hero.is-loaded [data-hero]{opacity:1;transform:none}

/* Section label shimmer */
@keyframes shimmer{0%{background-position:200% center}100%{background-position:-200% center}}
.gs-shimmer{background:linear-gradient(90deg,currentColor 0%,var(--gold) 40%,currentColor 60%);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 1.8s ease-in-out 1}

/* Hero cards float */
@keyframes float1{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.hero__visual-card--1{animation:float1 6s ease-in-out infinite}
.hero__visual-card--2{animation:float2 7s ease-in-out 1s infinite}
.hero__visual-card--3{animation:float1 5s ease-in-out .5s infinite}

/* Bar fill */
.hero__vc-bar-fill{transform-origin:left;transform:scaleX(0);transition:transform 1.6s cubic-bezier(.25,.1,.25,1)}
.hero__vc-bar-fill.gs-filled{transform:scaleX(1)}

/* Process timeline draw */
.process__grid::before{transform-origin:left;transform:scaleX(0);transition:transform 2.2s cubic-bezier(.25,.1,.25,1)}
.process__grid.gs-drawn::before{transform:scaleX(1)}

/* ─── PREFERS REDUCED MOTION (WCAG 2.3.3) ─── */
@media (prefers-reduced-motion: reduce) {
  /* Reveal system — show immediately, no transitions */
  [data-reveal]{opacity:1;transform:none;transition:none}
  [data-reveal].is-visible{opacity:1;transform:none;transition:none}
  /* Hero entrance */
  .hero [data-hero]{opacity:1;transform:none;transition:none}
  .hero.is-loaded [data-hero]{transition:none}
  /* Section label shimmer */
  .gs-shimmer{animation:none}
  /* Hero card float loops */
  .hero__visual-card--1,.hero__visual-card--2,.hero__visual-card--3{animation:none}
  /* Bar fill and process timeline */
  .hero__vc-bar-fill,.hero__vc-bar-fill.gs-filled{transition:none;transform:scaleX(1)}
  .process__grid::before,.process__grid.gs-drawn::before{transition:none;transform:scaleX(1)}
}
