/* Aesir — shared motion + surface system (linked on every page) */
:root { --ease-expo: cubic-bezier(.16,1,.3,1); --ease-smooth: cubic-bezier(.4,0,.2,1); }

/* Grain texture overlay (static, cheap — no blend mode so it never repaints on scroll) */
.grain { position: fixed; inset: 0; z-index: 70; pointer-events: none; opacity: .03;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* Scroll reveal */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease-expo), transform 1s var(--ease-expo); }
.reveal.is-in { opacity: 1; transform: none; }

/* Hero staggered load reveal */
.hero-stage > * { opacity: 0; transform: translateY(36px); transition: opacity 1.1s var(--ease-expo), transform 1.1s var(--ease-expo); }
body.ready .hero-stage > * { opacity: 1; transform: none; }
body.ready .hero-stage > *:nth-child(1) { transition-delay: .08s; }
body.ready .hero-stage > *:nth-child(2) { transition-delay: .22s; }
body.ready .hero-stage > *:nth-child(3) { transition-delay: .38s; }
body.ready .hero-stage > *:nth-child(4) { transition-delay: .54s; }

/* Marquee trust ticker */
.marquee { display: flex; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.marquee__track { display: flex; flex-shrink: 0; align-items: center; animation: marquee 42s linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* Animated underline */
.ul-anim { background-image: linear-gradient(currentColor, currentColor); background-size: 0% 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size .45s var(--ease-expo); }
.ul-anim:hover { background-size: 100% 1px; }

/* Circular arrow nudge */
.circ svg { transition: transform .4s var(--ease-expo); }
.group:hover .circ svg { transform: translateX(4px); }

/* Active nav indicator (inner pages) */
.nav-a[aria-current="page"], .mob-a[aria-current="page"] { color: #F2740A !important; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .hero-stage > * { opacity: 1 !important; transform: none !important; transition: none !important; }
  #hero-video, .marquee__track { animation: none !important; }
}
