/* variant-c · motion (elegant, editorial)
   Fail-safe: data-reveal only hides when `html.has-reveal` is set by JS.
   Otherwise content is visible by default (no-JS / reduced-motion / observer failure). */

html.has-reveal [data-reveal]:not([data-reveal="visible"]) {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity var(--t-slow) var(--ease-out-quart),
              transform var(--t-slow) var(--ease-out-quart);
}
html.has-reveal [data-reveal="visible"] {
  opacity: 1;
  transform: translateY(0);
  transition: opacity var(--t-slow) var(--ease-out-quart),
              transform var(--t-slow) var(--ease-out-quart);
}

html.has-reveal [data-reveal-stagger]:not([data-revealed]) > * {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity var(--t-medium) var(--ease-out-quart),
              transform var(--t-medium) var(--ease-out-quart);
}
html.has-reveal [data-reveal-stagger][data-revealed] > * {
  opacity: 1;
  transform: translateY(0);
  transition: opacity var(--t-medium) var(--ease-out-quart),
              transform var(--t-medium) var(--ease-out-quart);
}
[data-reveal-stagger] > *:nth-child(1) { transition-delay: 0ms; }
[data-reveal-stagger] > *:nth-child(2) { transition-delay: 80ms; }
[data-reveal-stagger] > *:nth-child(3) { transition-delay: 160ms; }
[data-reveal-stagger] > *:nth-child(4) { transition-delay: 240ms; }
[data-reveal-stagger] > *:nth-child(5) { transition-delay: 320ms; }
[data-reveal-stagger] > *:nth-child(6) { transition-delay: 400ms; }
[data-reveal-stagger] > *:nth-child(n+7) { transition-delay: 480ms; }

/* Hero initial entrance */
.hero__chips, .hero__title, .hero__lead, .hero__cta, .hero__meta, .hero__media {
  animation: riseIn var(--t-slow) var(--ease-out-quart) both;
}
.hero__chips { animation-delay: 40ms; }
.hero__title { animation-delay: 120ms; }
.hero__lead  { animation-delay: 240ms; }
.hero__cta   { animation-delay: 360ms; }
.hero__meta  { animation-delay: 480ms; }
.hero__media { animation-delay: 160ms; animation-duration: var(--t-cine); }

@keyframes riseIn {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal], [data-reveal-stagger] > * { opacity: 1 !important; transform: none !important; }
  .hero__chips, .hero__title, .hero__lead, .hero__cta, .hero__meta, .hero__media,
  .hero__slide img { animation: none !important; transform: none !important; opacity: 1 !important; transition: none !important; }
}

/* Floating offer badge gentle bob */
@keyframes offerBob {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-3px); }
}

/* Underline grow on section header accent stub (subtle) */
.sec-head::before {
  animation: stubGrow var(--t-slow) var(--ease-out-quart) both;
  animation-delay: 200ms;
}
@keyframes stubGrow {
  from { width: 0; }
  to   { width: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .sec-head::before { animation: none !important; width: 48px; }
}
