/* ── TIER 1: ALWAYS ──────────────────────────────── */

/* Scroll reveals */
.reveal{opacity:0;transform:translateY(28px);transition:opacity var(--t-slow),transform var(--t-slow)}
.reveal-fade{opacity:0;transition:opacity var(--t-slow)}
.reveal-left{opacity:0;transform:translateX(-24px);transition:opacity var(--t-slow),transform var(--t-slow)}
.reveal-right{opacity:0;transform:translateX(24px);transition:opacity var(--t-slow),transform var(--t-slow)}
.reveal.visible,.reveal-fade.visible,.reveal-left.visible,.reveal-right.visible{opacity:1;transform:none}

.reveal-stagger>*{opacity:0;transform:translateY(20px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}
.reveal-stagger.visible>*:nth-child(1){opacity:1;transform:none;transition-delay:0ms}
.reveal-stagger.visible>*:nth-child(2){opacity:1;transform:none;transition-delay:80ms}
.reveal-stagger.visible>*:nth-child(3){opacity:1;transform:none;transition-delay:160ms}
.reveal-stagger.visible>*:nth-child(4){opacity:1;transform:none;transition-delay:240ms}
.reveal-stagger.visible>*:nth-child(5){opacity:1;transform:none;transition-delay:320ms}
.reveal-stagger.visible>*:nth-child(6){opacity:1;transform:none;transition-delay:400ms}

/* Hero entrance */
@keyframes heroIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.hero-animate{opacity:0;animation:heroIn .8s var(--ease-out) forwards}
.hero-animate:nth-child(1){animation-delay:.10s}
.hero-animate:nth-child(2){animation-delay:.22s}
.hero-animate:nth-child(3){animation-delay:.34s}
.hero-animate:nth-child(4){animation-delay:.46s}

/* Text line reveal — Luxury/Editorial (replaces hero-animate on H1) */
.reveal-line{overflow:hidden;display:block}
.reveal-line-inner{
  display:block;transform:translateY(110%);
  transition:transform var(--t-slow) var(--ease-out);
}
.reveal-line.visible .reveal-line-inner{transform:translateY(0)}

/* Staggered delay for hero headline lines */
.hero .reveal-line:nth-child(1) .reveal-line-inner{transition-delay:.08s}
.hero .reveal-line:nth-child(2) .reveal-line-inner{transition-delay:.24s}

/* Smooth accordion — grid trick */
.accordion-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--t-base)}
.accordion-body.open{grid-template-rows:1fr}
.accordion-body>*{overflow:hidden}

/* Marquee */
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee-track{
  display:flex;width:max-content;
  animation:marquee 28s linear infinite;
  align-items:center;gap:var(--sp-16);
}
.marquee-wrap{
  overflow:hidden;
  mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent);
  -webkit-mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent);
}

/* ── TIER 2: SECTION-CONDITIONAL ────────────────── */

/* SVG path draw — process section */
.draw-path{
  stroke-dasharray:var(--path-length,300);
  stroke-dashoffset:var(--path-length,300);
  transition:stroke-dashoffset 1.2s var(--ease-out);
}
.draw-path.visible{stroke-dashoffset:0}

/* ── TIER 3: STYLE-CONDITIONAL — Luxury ─────────── */

/* Parallax — hero bg element only, disabled on mobile */
@media(max-width:768px){[data-parallax]{transform:none!important}}

/* ── REDUCED MOTION ──────────────────────────────── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .reveal,.reveal-fade,.reveal-left,.reveal-right,.reveal-stagger>*,
  .reveal-line-inner,.draw-path{opacity:1!important;transform:none!important;stroke-dashoffset:0!important}
  .hero-animate{opacity:1!important}
  .marquee-track{animation:none}
  [data-parallax]{transform:none!important}
}
