/* Scroll reveal */
.reveal { opacity: 0; transform: translateY(34px); transition: opacity .9s var(--ease-out), transform 1s var(--ease-out); transition-delay: calc(var(--d, 0) * 1ms); will-change: opacity, transform; }
.reveal.revealed { opacity: 1; transform: none; }
.reveal--left { transform: translateX(-40px); }
.reveal--right { transform: translateX(40px); }
.reveal--scale { transform: scale(.94); }
.reveal--clip { clip-path: inset(0 0 100% 0); transform: none; transition: clip-path 1.1s var(--ease-out), opacity .6s; }
.reveal--clip.revealed { clip-path: inset(0 0 0 0); }
.stagger > * { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease-out), transform .9s var(--ease-out); }
.stagger.revealed > * { opacity: 1; transform: none; }
.stagger.revealed > *:nth-child(1) { transition-delay: .0s; }
.stagger.revealed > *:nth-child(2) { transition-delay: .08s; }
.stagger.revealed > *:nth-child(3) { transition-delay: .16s; }
.stagger.revealed > *:nth-child(4) { transition-delay: .24s; }
.stagger.revealed > *:nth-child(5) { transition-delay: .32s; }
.stagger.revealed > *:nth-child(6) { transition-delay: .40s; }
.stagger.revealed > *:nth-child(7) { transition-delay: .48s; }
.stagger.revealed > *:nth-child(8) { transition-delay: .56s; }
.stagger.revealed > *:nth-child(n+9) { transition-delay: .62s; }

/* Text line reveal (split by JS) */
.split-lines .line { display: block; overflow: hidden; padding-bottom: .12em; margin-bottom: -.12em; }
.split-lines .line > span { display: inline-block; transform: translateY(105%); transition: transform 1s var(--ease-out); }
.split-lines.revealed .line > span { transform: none; }
.split-lines.revealed .line:nth-child(2) > span { transition-delay: .1s; }
.split-lines.revealed .line:nth-child(3) > span { transition-delay: .2s; }
.split-lines.revealed .line:nth-child(4) > span { transition-delay: .3s; }

/* "Tired of" list: red X markers that pop in on reveal */
.strike-list li { position: relative; padding-left: 40px; }
.strike-list li::before {
  content: ""; position: absolute; left: 0; top: .1em; width: 24px; height: 24px; background: var(--red);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5l14 14M19 5L5 19' stroke='%23000' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5l14 14M19 5L5 19' stroke='%23000' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: scale(0) rotate(-90deg); transition: transform .45s cubic-bezier(.34, 1.56, .64, 1);
}
.strike-list.revealed li::before { transform: none; }
.strike-list.revealed li:nth-child(2)::before { transition-delay: .2s; }
.strike-list.revealed li:nth-child(3)::before { transition-delay: .4s; }
.strike-list.revealed li:nth-child(4)::before { transition-delay: .6s; }
.strike-list.revealed li:nth-child(5)::before { transition-delay: .8s; }

/* Floating */
@keyframes floatY { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
.float { animation: floatY 6s ease-in-out infinite; }

/* Tilt cards */
.tilt { transform-style: preserve-3d; transition: transform .25s ease-out; }
.tilt > * { transform: translateZ(20px); }

/* Gold pulse for phone icon */
@keyframes pulseGold { 0% { box-shadow: 0 0 0 0 rgba(218,166,32,.5); } 70% { box-shadow: 0 0 0 14px rgba(218,166,32,0); } 100% { box-shadow: 0 0 0 0 rgba(218,166,32,0); } }
.pulse { animation: pulseGold 2.4s infinite; }

/* Shimmer text */
.shimmer { background: linear-gradient(90deg, var(--gold-dk) 0%, var(--gold-lt) 45%, #fff2c2 50%, var(--gold-lt) 55%, var(--gold-dk) 100%); background-size: 220% auto; -webkit-background-clip: text; background-clip: text; color: transparent; animation: shimmer 5s linear infinite; }
@keyframes shimmer { to { background-position: -220% center; } }

/* Progress line for process */
.process-line { position: absolute; left: 0; right: 0; top: 40px; height: 2px; background: var(--line-2); }
.process-line__fill { height: 100%; width: 0; background: var(--gold); transition: width 1.8s var(--ease-out); }
.process.revealed .process-line__fill { width: 100%; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .reveal, .stagger > *, .split-lines .line > span { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .hero__title .word { transform: none; }
  .hero__lede, .hero__ctas, .hero__ticker, .hero__scroll { opacity: 1; }
  .marquee__track { animation: none; }
  .cursor-glow { display: none; }
}

/* Static render (QA) */
.no-motion .reveal, .no-motion .stagger > *, .no-motion .split-lines .line > span { opacity: 1 !important; transform: none !important; clip-path: none !important; transition: none !important; }
.no-motion .strike-list li::before { transform: none; }
.no-motion .stat::after { width: 100%; }
.no-motion .hero__title .word { transform: none; animation: none; }
.no-motion .hero__lede, .no-motion .hero__ctas, .no-motion .hero__ticker { opacity: 1; animation: none; }
.no-motion .site-header { transform: none !important; }
