.page-shell {
  animation: shellReveal 0.9s ease-out both;
}

.topbar {
  animation: fadeLift 0.75s ease-out 0.08s both;
}

.hero-copy {
  animation: fadeLift 0.9s ease-out 0.18s both;
}

.hero-card {
  animation: heroCardReveal 1s cubic-bezier(0.2, 0.7, 0.2, 1) 0.28s both;
}

.hero-card::after {
  animation: pulseGlow 8s ease-in-out infinite;
}

.ticker {
  animation: tickerSettle 1.05s cubic-bezier(0.18, 0.82, 0.22, 1) 0.42s both;
}

.button,
.hero-card,
.stat-card,
.step-card,
.platform-card,
.origin-card,
.record-intro-card,
.record-note-card,
.record-fact,
.profile-panel,
.metric-info-trigger,
.metric-info-card,
.comparison-row,
.contrast-card,
.edge-card,
.topnav a,
.footer-links a,
.brand-mark {
  transition: transform 180ms ease, box-shadow 220ms ease, border-color 220ms ease, color 180ms ease, background 220ms ease;
}

.button:hover,
.hero-card:hover,
.stat-card:hover,
.step-card:hover,
.platform-card:hover,
.origin-card:hover,
.record-intro-card:hover,
.record-note-card:hover,
.record-fact:hover,
.profile-panel:hover,
.comparison-row:hover,
.contrast-card:hover,
.edge-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 62px rgba(0, 0, 0, 0.28);
}

.topnav a:hover,
.footer-links a:hover {
  transform: translateY(-1px);
}

.brand:hover .brand-mark {
  transform: translateY(-1px) scale(1.02);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.24);
}

.stone,
.signal-line,
.stat-card,
.step-card,
.platform-card,
.origin-card,
.record-intro-card,
.record-note-card,
.record-fact,
.profile-panel,
.comparison-row,
.contrast-card,
.edge-card,
.footer,
.policy-page .eyebrow,
.policy-page h1,
.policy-page .lede,
.policy-section {
  animation: fadeLift 0.82s ease-out both;
}

.stone:nth-child(1) { animation-delay: 0.52s; }
.stone:nth-child(2) { animation-delay: 0.62s; }
.signal-line:nth-child(1) { animation-delay: 0.72s; }
.signal-line:nth-child(2) { animation-delay: 0.86s; }
.stat-card:nth-child(1), .step-card:nth-child(1), .platform-card:nth-child(1) { animation-delay: 0.12s; }
.stat-card:nth-child(2), .step-card:nth-child(2), .platform-card:nth-child(2) { animation-delay: 0.22s; }
.stat-card:nth-child(3), .step-card:nth-child(3), .platform-card:nth-child(3) { animation-delay: 0.32s; }
.comparison-row:nth-child(1) { animation-delay: 0.12s; }
.comparison-row:nth-child(2) { animation-delay: 0.22s; }
.comparison-row:nth-child(3) { animation-delay: 0.32s; }
.contrast-card:nth-child(1), .edge-card:nth-child(1) { animation-delay: 0.12s; }
.contrast-card:nth-child(2), .edge-card:nth-child(2) { animation-delay: 0.22s; }
.edge-card:nth-child(3) { animation-delay: 0.32s; }
.profile-panel { animation-delay: 0.2s; }
.footer { animation-delay: 0.48s; }
.policy-page h1 { animation-delay: 0.08s; }
.policy-page .lede { animation-delay: 0.16s; }
.policy-section:nth-of-type(1) { animation-delay: 0.18s; }
.policy-section:nth-of-type(2) { animation-delay: 0.26s; }
.policy-section:nth-of-type(3) { animation-delay: 0.34s; }
.policy-section:nth-of-type(4) { animation-delay: 0.42s; }
.policy-section:nth-of-type(5) { animation-delay: 0.50s; }

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

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

@keyframes heroCardReveal {
  from { opacity: 0; transform: translateY(28px) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes tickerSettle {
  0% { opacity: 0; transform: translateY(30px) scale(0.96); }
  65% { opacity: 1; transform: translateY(-4px) scale(1.01); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes pulseGlow {
  0%, 100% { opacity: 0.72; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.035); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
