.reveal, .reveal-up, .reveal-left, .reveal-right, .reveal-scale { opacity: 0; transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal-up { transform: translateY(28px); }
.reveal-left { transform: translateX(-28px); }
.reveal-right { transform: translateX(28px); }
.reveal-scale { transform: scale(.97); }
.is-revealed { opacity: 1; transform: none; }
.stagger-group > * { transition-delay: calc(var(--stagger, 0) * 90ms); }
@keyframes orbit { to { transform: rotate(360deg); } }
@keyframes pulse { 50% { box-shadow: 0 0 0 15px rgba(255,226,122,0); } }
@keyframes drift { 50% { transform: translate3d(0,-8px,0); } }
.art-orbit { animation: orbit 26s linear infinite; }
.art-chip { animation: drift 5s ease-in-out infinite; }
.art-chip:nth-of-type(2) { animation-delay: -1s; }.art-chip:nth-of-type(3) { animation-delay: -2s; }.art-chip:nth-of-type(4) { animation-delay: -3s; }
.map-pulse { animation: pulse 2.4s ease-out infinite; }
body { animation: page-enter .65s var(--ease-soft) both; }
.hero-copy > * { animation: hero-rise .75s var(--ease-soft) both; }
.hero-copy > :nth-child(1) { animation-delay: .06s; }
.hero-copy > :nth-child(2) { animation-delay: .13s; }
.hero-copy > :nth-child(3) { animation-delay: .2s; }
.hero-copy > :nth-child(4) { animation-delay: .27s; }
.hero-copy > :nth-child(5) { animation-delay: .34s; }
.hero-art { animation: hero-art-in .9s .18s var(--ease-soft) both; }
@keyframes page-enter { from { opacity: .01; } to { opacity: 1; } }
@keyframes hero-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes hero-art-in { from { opacity: 0; transform: translate3d(22px,16px,0) scale(.98); } to { opacity: 1; transform: none; } }
[data-parallax] { will-change: transform; }
@media (max-width: 720px) {
  .reveal-left, .reveal-right { transform: translateY(24px); }
  .reveal-left.is-revealed, .reveal-right.is-revealed { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal, .reveal-up, .reveal-left, .reveal-right, .reveal-scale { opacity: 1; transform: none; }
  .art-orbit, .art-chip, .map-pulse { animation: none !important; }
  body, .hero-copy > *, .hero-art { animation: none !important; }
  [data-parallax] { transform: none !important; will-change: auto; }
}
