/* animations.css — Keyframes e classes de animação */

/* ═══════════════════════════════════════════════════════════
   AMBIENT BACKGROUND SYSTEM — Lumière Architecturale
═══════════════════════════════════════════════════════════ */

/* ── Wave divider ─────────────────────────────────────────── */
.ambient-wave {
  position: relative;
  width: 100%;
  margin-bottom: -1px;
  line-height: 0;
  pointer-events: none;
  z-index: 2;
}
.ambient-wave svg {
  display: block;
  width: 100%;
  height: clamp(50px, 5.5vw, 78px);
}

/* Glowing gold horizon line at each dark→light transition */
.ambient-wave::after {
  content: '';
  position: absolute;
  top: 0;
  left: 8%;
  right: 8%;
  height: 1.5px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(217,181,129,0.35) 15%,
    rgba(255,228,140,0.85) 50%,
    rgba(217,181,129,0.35) 85%,
    transparent 100%
  );
  box-shadow:
    0 0 12px rgba(217,181,129,0.55),
    0 0 30px rgba(217,181,129,0.25),
    0 0 60px rgba(184,137,74,0.12);
  animation: waveGlowPulse 4.5s ease-in-out infinite;
}

@keyframes waveGlowPulse {
  0%, 100% { opacity: 0.55; transform: scaleX(0.92); }
  50%       { opacity: 1;    transform: scaleX(1); }
}

/* ── Dark sections: breathing gradient aura ───────────────── */
.home-process,
.home-stats,
.home-cta {
  background:
    linear-gradient(135deg, #141414 0%, #0A0A0A 40%, #161616 80%, #0A0A0A 100%);
  background-size: 300% 300%;
  animation: darkAura 14s ease-in-out infinite;
}

.page-hero {
  overflow: hidden;
}

@keyframes darkAura {
  0%   { background-position:   0% 50%; }
  33%  { background-position: 100%  0%; }
  66%  { background-position:   0% 100%; }
  100% { background-position:   0%  50%; }
}

/* ── Dark section mouse-follow shimmer overlay ────────────── */
.dark-shimmer {
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse 55% 65% at var(--mx, 50%) var(--my, 50%),
    rgba(184,137,74,0.055) 0%,
    transparent 70%
  );
  pointer-events: none;
  z-index: 1;
  transition: background 0.1s linear;
}

/* ── Page-hero: diagonal light shaft + corner glow ──────── */
.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(
    106deg,
    transparent 36%,
    rgba(255,218,110,0.022) 43%,
    rgba(255,218,110,0.052) 50%,
    rgba(255,218,110,0.022) 57%,
    transparent 64%
  );
  transform: translateX(-200%);
  animation: heroLightShaft 13s ease-in-out infinite 2s;
}

/* Soft gold corner bloom on page heroes */
.page-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(ellipse 55% 45% at 0% 0%,  rgba(184,137,74,0.08) 0%, transparent 70%),
    radial-gradient(ellipse 40% 35% at 100% 100%, rgba(184,137,74,0.06) 0%, transparent 65%);
  animation: heroCornerGlow 8s ease-in-out infinite alternate;
}

@keyframes heroLightShaft {
  0%    { transform: translateX(-200%); opacity: 0; }
  5%    { opacity: 1; }
  48%   { transform: translateX(240%);  opacity: 1; }
  53%   { opacity: 0; transform: translateX(250%); }
  100%  { transform: translateX(-200%); opacity: 0; }
}

@keyframes heroCornerGlow {
  from { opacity: 0.6; }
  to   { opacity: 1;   }
}

/* ─── Codec Pro ──────────────────────────────────────────── */
@font-face {
  font-family: 'Codec Pro';
  src: url('../assets/fonts/CodecPro-Thin.ttf') format('truetype');
  font-weight: 100;
  font-display: block;
}
@font-face {
  font-family: 'Codec Pro';
  src: url('../assets/fonts/CodecPro-Light.ttf') format('truetype');
  font-weight: 300;
  font-display: block;
}
@font-face {
  font-family: 'Codec Pro';
  src: url('../assets/fonts/CodecPro-News.ttf') format('truetype');
  font-weight: 400;
  font-display: block;
}
@font-face {
  font-family: 'Codec Pro';
  src: url('../assets/fonts/CodecPro-Bold.ttf') format('truetype');
  font-weight: 700;
  font-display: block;
}

/* ═══════════════════════════════════════════════════════════
   INTRO PRELOADER — Carbon Filament Ignition
   Pitch-black room. A single bulb being switched on for the
   first time: filament traces in cool light, flickers, heats
   to amber, the glass blooms, a moth orbits the light, heat
   shimmer rises, god-rays sweep — then the room exhales.
═══════════════════════════════════════════════════════════ */

/* ── Atmospheric warm vignette (only emerges as bulb heats) ── */
.pre-atmo {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 45% 38% at 50% 50%, rgba(220,140,30,0.22) 0%, transparent 65%),
    radial-gradient(ellipse 90% 100% at 50% 100%, rgba(120,70,15,0.15) 0%, transparent 70%);
  opacity: 0;
  animation: preAtmoIn 1.6s ease 1.2s forwards;
  pointer-events: none;
  mix-blend-mode: screen;
}

/* ── Stage container — voltage flicker as the filament catches ── */
.pre-stage {
  position: relative;
  z-index: 2;
  opacity: 0;
  transform: scale(0.92);
  animation:
    preStageIn 0.7s cubic-bezier(0.1,0,0,1) 0.1s forwards,
    preStageFlicker 2.4s steps(1,end) 0.55s forwards;
}

@keyframes preStageIn {
  to { opacity: 1; transform: scale(1); }
}

/* Two crisp brightness pulses simulate AC voltage hitting the filament */
@keyframes preStageFlicker {
  0%   { filter: brightness(0.85); }
  12%  { filter: brightness(1.5); }
  14%  { filter: brightness(0.65); }
  28%  { filter: brightness(1.7); }
  30%  { filter: brightness(0.75); }
  55%  { filter: brightness(1.0); }
  100% { filter: brightness(1.0); }
}

/* ── SVG sized + ambient drop-shadow that appears post-ignition ── */
.pre-svg {
  width: 230px;
  height: 254px;
  overflow: visible;
  display: block;
  filter: drop-shadow(0 0 0 transparent);
  animation: preBulbAmbient 2.4s ease 1.7s forwards;
}

@keyframes preBulbAmbient {
  to {
    filter:
      drop-shadow(0 14px 32px rgba(255,170,40,0.32))
      drop-shadow(0 0 70px rgba(255,140,30,0.18));
  }
}

/* ── Glass shell — starts cold, warms to amber-tinted ─────── */
.pre-glass {
  fill: rgba(255,255,255,0.025);
  stroke: rgba(255,255,255,0.22);
  stroke-width: 1.2;
  animation: preGlassWarm 1.8s ease 1.25s forwards;
}

@keyframes preGlassWarm {
  to {
    fill: rgba(255,210,140,0.06);
    stroke: rgba(255,210,140,0.55);
  }
}

/* ── Filament supports (vertical wires) ──────────────────── */
.pre-wire {
  stroke: rgba(255,255,255,0.32);
  stroke-width: 0.8;
  stroke-linecap: round;
}

/* ── Coiled filament — draws in then ignites through the spectrum ── */
.pre-filament {
  stroke: rgba(220,235,255,0.04);
  stroke-width: 1.4;
  stroke-linecap: round;
  fill: none;
  stroke-dasharray: 110;
  stroke-dashoffset: 110;
  animation:
    preFilDraw   0.9s cubic-bezier(0.4,0,0.2,1) 0.55s forwards,
    preFilIgnite 1.7s ease 0.95s forwards;
}

@keyframes preFilDraw {
  to { stroke-dashoffset: 0; }
}

@keyframes preFilIgnite {
  /* cool blue-white spark → flicker → warm gold steady-state */
  0%   { stroke: rgba(220,235,255,0.4);
         filter: drop-shadow(0 0 1px rgba(220,235,255,0.3)); }
  16%  { stroke: rgba(255,255,255,1);
         filter: drop-shadow(0 0 4px #DDF) drop-shadow(0 0 9px #BFD9FF); }
  20%  { stroke: rgba(220,235,255,0.5);
         filter: drop-shadow(0 0 1px #DDF); }
  30%  { stroke: rgba(255,250,210,1);
         filter: drop-shadow(0 0 5px #FFF0C0) drop-shadow(0 0 12px rgba(255,220,140,0.7)); }
  34%  { stroke: rgba(255,250,210,0.55);
         filter: drop-shadow(0 0 2px rgba(255,240,180,0.4)); }
  60%  { stroke: rgba(255,225,120,1);
         filter: drop-shadow(0 0 5px #FFD060) drop-shadow(0 0 14px rgba(255,170,30,0.85)); }
  100% { stroke: rgba(255,235,160,1);
         filter: drop-shadow(0 0 6px #FFD060) drop-shadow(0 0 18px rgba(255,160,30,0.7)); }
}

/* ── Glass interior glow (clipped to bulb shape) ──────────── */
.pre-interior {
  opacity: 0;
  transform-origin: 100px 118px;
  transform: scale(0.5);
  animation: preInteriorBloom 2.0s cubic-bezier(0.2,0.7,0.2,1) 1.4s forwards;
}

@keyframes preInteriorBloom {
  0%   { opacity: 0;    transform: scale(0.5); }
  50%  { opacity: 0.95; transform: scale(1.08); }
  100% { opacity: 0.85; transform: scale(1.0); }
}

/* ── Outer halo rings — twin bloom ────────────────────────── */
.pre-halo {
  opacity: 0;
  transform-origin: 100px 100px;
  transform: scale(0.4);
}
.pre-halo--out { animation: preHaloOut 2.4s ease 1.55s forwards; }
.pre-halo--in  { animation: preHaloIn  1.8s ease 1.4s  forwards; }

@keyframes preHaloOut {
  0%   { opacity: 0;   transform: scale(0.4); }
  60%  { opacity: 0.55; transform: scale(1.06); }
  100% { opacity: 0.45; transform: scale(1.0); }
}

@keyframes preHaloIn {
  0%   { opacity: 0;   transform: scale(0.4); }
  55%  { opacity: 0.85; transform: scale(1.04); }
  100% { opacity: 0.7; transform: scale(1.0); }
}

/* ── Volumetric god-rays — sweep outward, blend to brighten ─ */
.pre-rays { mix-blend-mode: lighter; }

.pre-ray {
  fill: url(#bulbHaloGrad);
  opacity: 0;
  transform-origin: 100px 108px;
  transform: scale(0.55);
  animation: preRaySweep 2.0s cubic-bezier(0.2,0.7,0.2,1)
             calc(1.6s + var(--ri) * 0.08s) forwards;
}

@keyframes preRaySweep {
  0%   { opacity: 0;    transform: scale(0.55); }
  40%  { opacity: 0.75; transform: scale(1.05); }
  100% { opacity: 0.4;  transform: scale(1.0); }
}

/* ── Bulb base (screw threads) ────────────────────────────── */
.pre-base rect { fill: rgba(220,210,200,0.32); }
.pre-base .pre-base-tip { fill: rgba(0,0,0,0.55); }

/* ── Heat shimmer dust rising forever above the bulb ─────── */
.pre-dust__d {
  fill: rgba(255,210,120,0);
  transform-box: fill-box;
  transform-origin: center;
  animation: preDustRise 2.4s ease-in
    calc(1.7s + var(--di) * 0.18s) infinite;
}

@keyframes preDustRise {
  0%   { fill-opacity: 0;    transform: translate(0, 0); }
  20%  { fill-opacity: 0.85; }
  60%  { fill-opacity: 0.5;  transform: translate(-3px, -28px); }
  100% { fill-opacity: 0;    transform: translate(-5px, -52px); }
}

/* ── Moth orbit — single gold dot orbits the bulb once ────── */
.pre-moth-orbit {
  opacity: 0;
  transform-origin: 100px 100px;
  animation:
    preMothShow  0.25s ease 1.45s forwards,
    preMothOrbit 1.6s  cubic-bezier(0.4,0,0.6,1) 1.45s forwards;
}

@keyframes preMothShow { to { opacity: 1; } }

@keyframes preMothOrbit {
  0%   { transform: rotate(-110deg); }
  90%  { transform: rotate(220deg); opacity: 1; }
  100% { transform: rotate(245deg); opacity: 0; }
}

.pre-moth {
  fill: #FFE090;
  filter: drop-shadow(0 0 4px #FFB04A) drop-shadow(0 0 10px #FF6F10);
}

/* ── Subtitle "móveis planejados" — gold sweep reveal ─────── */
.pre-sub {
  position: relative;
  z-index: 3;
  margin-block-start: 28px;
  font-family: 'Codec Pro', 'DM Sans', sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  letter-spacing: 0.5em;
  text-transform: uppercase;
  color: rgba(255,235,160,0);
  text-shadow: 0 0 0 rgba(255,200,80,0);
  animation: preSubReveal 0.9s ease 2.0s forwards;
}

@keyframes preSubReveal {
  0%   { color: rgba(255,235,160,0);
         text-shadow: 0 0 0 rgba(255,200,80,0);
         letter-spacing: 0.7em; }
  60%  { color: rgba(255,235,160,0.42);
         text-shadow: 0 0 12px rgba(255,200,80,0.45);
         letter-spacing: 0.5em; }
  100% { color: rgba(255,235,160,0.32);
         text-shadow: 0 0 6px rgba(255,200,80,0.18);
         letter-spacing: 0.5em; }
}

/* ── Burst kept hidden for legacy compat ─────────────────── */
.pre-burst { display: none; }

/* ═══════════════════════════════════════════════════════════
   KEYFRAMES — atmosphere fade
═══════════════════════════════════════════════════════════ */

@keyframes preAtmoIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ─────────────────────────────────────────────────────────
   KEYFRAMES GERAIS
───────────────────────────────────────────────────────── */
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

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

@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-32px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInRight {
  from { opacity: 0; transform: translateX(32px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.92); }
  to   { opacity: 1; transform: scale(1); }
}

@keyframes slideInDown {
  from { transform: translateY(-100%); }
  to   { transform: translateY(0); }
}

@keyframes drawLine {
  from { stroke-dashoffset: 1000; }
  to   { stroke-dashoffset: 0; }
}

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

@keyframes shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position:  200% 0; }
}

@keyframes scrollBounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%       { transform: translateX(-50%) translateY(6px); }
}

@keyframes rotateSlow {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* ─────────────────────────────────────────────────────────
   HERO — Stagger Reveal com clip-path
───────────────────────────────────────────────────────── */

/* Título: revela de baixo para cima via clip-path */
@keyframes heroTitleReveal {
  from {
    clip-path: inset(100% 0 0 0);
    transform: translateY(24px);
  }
  to {
    clip-path: inset(0% 0 0 0);
    transform: translateY(0);
  }
}

/* Subtítulo e elementos secundários: fade + slide up */
@keyframes heroSubReveal {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* CTA: fade + slide + leve bounce */
@keyframes heroCtaReveal {
  from { opacity: 0; transform: translateY(20px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Badge: escala com bounce */
@keyframes badgePop {
  0%   { transform: scale(0) rotate(-15deg); opacity: 0; }
  60%  { transform: scale(1.15) rotate(3deg); opacity: 1; }
  80%  { transform: scale(0.95) rotate(-1deg); }
  100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

/* SVG path — traço que se desenha */
@keyframes drawSvgPath {
  from { stroke-dashoffset: var(--dash-len, 400); }
  to   { stroke-dashoffset: 0; }
}

/* Spinner de loading */
@keyframes spinLoader {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* Checkmark de sucesso */
@keyframes drawCheck {
  from { stroke-dashoffset: 50; }
  to   { stroke-dashoffset: 0; }
}

/* ─────────────────────────────────────────────────────────
   HERO — Classes de animação (BEM)
───────────────────────────────────────────────────────── */

/* Eyebrow: desliza da esquerda */
.hero__eyebrow {
  opacity: 0;
  animation: fadeInLeft 0.8s var(--ease-out-expo) 0.15s forwards;
}

/* Título: clip-path de baixo para cima + movimento */
.hero__title {
  animation: heroTitleReveal 0.95s var(--ease-out-expo) 0.35s both;
}

/* Subtítulo: fade in após título */
.hero__subtitle {
  opacity: 0;
  animation: heroSubReveal 0.8s var(--ease-out-expo) 0.75s forwards;
}

/* CTAs: bounce ao surgir */
.hero__ctas {
  opacity: 0;
  animation: heroCtaReveal 0.85s var(--ease-bounce) 1.0s forwards;
}

/* Scroll indicator: aparece por último */
/* Fade in primeiro, depois bounce infinito */
.hero__scroll {
  opacity: 0;
  animation:
    fadeIn      0.8s ease          1.4s forwards,
    scrollBounce 2.5s ease-in-out  2.2s infinite;
}

/* ─────────────────────────────────────────────────────────
   REVEAL — IntersectionObserver-driven
───────────────────────────────────────────────────────── */
[data-reveal] {
  opacity: 0;
  transition: opacity var(--t-slow) var(--ease-out-expo),
              transform var(--t-slow) var(--ease-out-expo);
}

[data-reveal="up"]    { transform: translateY(48px); }
[data-reveal="down"]  { transform: translateY(-48px); }
[data-reveal="left"]  { transform: translateX(-48px); }
[data-reveal="right"] { transform: translateX(48px); }
[data-reveal="scale"] { transform: scale(0.92); }
[data-reveal="fade"]  { transform: none; }

[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

/* Stagger delays */
[data-delay="1"] { transition-delay: 100ms; }
[data-delay="2"] { transition-delay: 200ms; }
[data-delay="3"] { transition-delay: 300ms; }
[data-delay="4"] { transition-delay: 400ms; }
[data-delay="5"] { transition-delay: 500ms; }
[data-delay="6"] { transition-delay: 600ms; }

/* ─────────────────────────────────────────────────────────
   TÍTULO COM UNDERLINE ANIMADO (IntersectionObserver)
───────────────────────────────────────────────────────── */
[data-animated-title] {
  position: relative;
  display: inline-block;
}

[data-animated-title]::after {
  content: '';
  position: absolute;
  inset-block-end: -6px;
  inset-inline-start: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, var(--luz-gold) 0%, var(--luz-gold-light) 60%, transparent 100%);
  border-radius: var(--radius-full);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.7s var(--ease-out-expo);
}

[data-animated-title].title-underline-visible::after {
  transform: scaleX(1);
}

/* ─────────────────────────────────────────────────────────
   PRELOADER
───────────────────────────────────────────────────────── */
.preloader {
  position: fixed;
  inset: 0;
  background: #0A0A0A;
  z-index: calc(var(--z-cursor) + 1);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--sp-5);
  transition: opacity 0.6s var(--ease), visibility 0.6s;
}

.preloader.is-done {
  opacity: 0;
  visibility: hidden;
}

.preloader__logo {
  height: 64px;
  width: auto;
}

.preloader__bar {
  width: 200px;
  height: 1px;
  background: rgba(255,255,255,0.12);
  border-radius: var(--radius-full);
  overflow: hidden;
  position: relative;
}

.preloader__bar-fill {
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  height: 100%;
  background: linear-gradient(90deg, rgba(201,168,76,0.7), #E8C96D);
  transform-origin: left;
  transform: scaleX(0);
  transition: transform 1.2s var(--ease-out-expo);
}

.preloader__percent {
  font-family: var(--ff-display);
  font-size: var(--fs-3);
  color: rgba(255,255,255,0.35);
  font-weight: 400;
  letter-spacing: 0.1em;
}

/* ─────────────────────────────────────────────────────────
   PAGE TRANSITION
───────────────────────────────────────────────────────── */
.page-transition {
  position: fixed;
  inset: 0;
  background: var(--cor-fundo-escuro);
  z-index: calc(var(--z-modal) + 10);
  transform: translateY(100%);
  transition: transform 0.5s var(--ease-out-expo);
  pointer-events: none;
}

.page-transition.enter  { transform: translateY(0); }
.page-transition.exit   { transform: translateY(-100%); }

/* ─────────────────────────────────────────────────────────
   LINHA DO PROCESSO
───────────────────────────────────────────────────────── */
.process-line {
  position: absolute;
  top: 30px;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--cor-linha);
  overflow: visible;
}

.process-line__fill {
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  width: 0;
  height: 1px;
  background: var(--cor-dourado);
  transition: width 1s var(--ease-out-expo);
}

/* ─────────────────────────────────────────────────────────
   SHIMMER (skeleton loading)
───────────────────────────────────────────────────────── */
.skeleton {
  background: linear-gradient(
    90deg,
    var(--cor-fundo-card) 25%,
    var(--cor-fundo) 50%,
    var(--cor-fundo-card) 75%
  );
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}

/* ─────────────────────────────────────────────────────────
   SCROLL INDICATOR
───────────────────────────────────────────────────────── */
.scroll-indicator {
  position: absolute;
  inset-block-end: var(--sp-7);
  inset-inline-start: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-2);
  cursor: pointer;
  animation: scrollBounce 2s ease-in-out infinite;
}

.scroll-indicator__text {
  font-size: var(--fs-1);
  font-weight: 600;
  letter-spacing: var(--ls-kicker);
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  writing-mode: vertical-rl;
}

.scroll-indicator__line {
  width: 1px;
  height: 48px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6), transparent);
}

/* ─────────────────────────────────────────────────────────
   DIVISORES SVG DECORATIVOS
───────────────────────────────────────────────────────── */
.section-svg-divider {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: var(--sp-3);
  overflow: hidden;
  pointer-events: none;
}

.section-svg-divider svg {
  width: min(600px, 80vw);
  height: auto;
  opacity: 0;
  transition: opacity 0.6s ease;
}

.section-svg-divider.is-drawn svg {
  opacity: 1;
}

.section-svg-divider path,
.section-svg-divider line {
  stroke-dasharray: var(--dash-len, 600);
  stroke-dashoffset: var(--dash-len, 600);
  transition: stroke-dashoffset 1.2s var(--ease-out-expo);
}

.section-svg-divider.is-drawn path,
.section-svg-divider.is-drawn line {
  stroke-dashoffset: 0;
}

/* ─────────────────────────────────────────────────────────
   LIGHT STREAK (efeito de luz varrendo texto)
───────────────────────────────────────────────────────── */
@keyframes lightStreak {
  0%   { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

/* ─────────────────────────────────────────────────────────
   SCROLL DOWN (indicador de scroll no hero)
───────────────────────────────────────────────────────── */
@keyframes scrollDown {
  0%   { transform: translateY(0);    opacity: 1; }
  60%  { transform: translateY(24px); opacity: 0; }
  61%  { transform: translateY(-8px); opacity: 0; }
  100% { transform: translateY(0);    opacity: 1; }
}

/* ─────────────────────────────────────────────────────────
   GLOW (brilho pulsante dourado)
───────────────────────────────────────────────────────── */
@keyframes glow {
  0%, 100% { box-shadow: 0 0 20px rgba(184,137,74,0.3); }
  50%       { box-shadow: 0 0 40px rgba(184,137,74,0.6), 0 0 80px rgba(184,137,74,0.2); }
}

/* ─────────────────────────────────────────────────────────
   HERO GRID (gradiente animado mobile — substitui parallax)
───────────────────────────────────────────────────────── */
@keyframes heroMobileGlow {
  0%, 100% { opacity: 0.6; }
  50%       { opacity: 0.9; }
}

/* ─────────────────────────────────────────────────────────
   WORD REVEAL (stagger por palavra no manifesto)
───────────────────────────────────────────────────────── */
@keyframes wordReveal {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ─────────────────────────────────────────────────────────
   REDUCED MOTION
───────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  [data-reveal] {
    opacity: 1;
    transform: none;
  }

  .hero__title  { animation: none; clip-path: none; transform: none; }
  .hero__subtitle, .hero__ctas, .hero__eyebrow { animation: none; opacity: 1; }

  [data-animated-title]::after { transition: none; }
}
