﻿/* ==================================================================
   UTILITIES
   ================================================================== */
.progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; background: var(--accent); transform-origin: left; transform: scaleX(0); z-index: 200; transition: transform .1s linear; }

[data-reveal] { opacity: 0; transform: translateY(40px); transition: opacity 0.8s cubic-bezier(.16, 1, .3, 1), transform 0.8s cubic-bezier(.16, 1, .3, 1); }
[data-reveal].reveal-in { opacity: 1; transform: translateY(0); }

.feature-grid > [data-reveal]:nth-child(2),
.showcase-grid > [data-reveal]:nth-child(2),
.plan-grid > [data-reveal]:nth-child(2),
.blog-grid > [data-reveal]:nth-child(2),
.related-grid > [data-reveal]:nth-child(2),
.steps-grid > [data-reveal]:nth-child(2) { transition-delay: 0.10s; }
.feature-grid > [data-reveal]:nth-child(3),
.showcase-grid > [data-reveal]:nth-child(3),
.plan-grid > [data-reveal]:nth-child(3),
.blog-grid > [data-reveal]:nth-child(3),
.related-grid > [data-reveal]:nth-child(3),
.steps-grid > [data-reveal]:nth-child(3) { transition-delay: 0.20s; }
.feature-grid > [data-reveal]:nth-child(4),
.showcase-grid > [data-reveal]:nth-child(4),
.plan-grid > [data-reveal]:nth-child(4),
.blog-grid > [data-reveal]:nth-child(4),
.related-grid > [data-reveal]:nth-child(4),
.steps-grid > [data-reveal]:nth-child(4) { transition-delay: 0.30s; }
.feature-grid > [data-reveal]:nth-child(5),
.showcase-grid > [data-reveal]:nth-child(5),
.plan-grid > [data-reveal]:nth-child(5),
.blog-grid > [data-reveal]:nth-child(5),
.related-grid > [data-reveal]:nth-child(5),
.steps-grid > [data-reveal]:nth-child(5) { transition-delay: 0.40s; }
.feature-grid > [data-reveal]:nth-child(6),
.showcase-grid > [data-reveal]:nth-child(6),
.plan-grid > [data-reveal]:nth-child(6),
.blog-grid > [data-reveal]:nth-child(6),
.related-grid > [data-reveal]:nth-child(6),
.steps-grid > [data-reveal]:nth-child(6) { transition-delay: 0.50s; }

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}

.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--text); outline-offset: 2px; border-radius: 4px; }

.home-hero .tag,
.page-hero .meta,
.post-hero .post-meta,
.eyebrow { animation: heroFadeScale 0.9s cubic-bezier(.22, 1, .36, 1) 0.00s both; }
h1, .home-hero h1, .page-hero h1, .post-hero h1, .article-hero h1 {
  animation: heroFadeScale 1.1s cubic-bezier(.22, 1, .36, 1) 0.08s both;
  transform-origin: center center;
}
.home-hero p, .page-hero .lede, .post-hero .lede, .article-hero .lede {
  animation: heroFadeScale 1s cubic-bezier(.22, 1, .36, 1) 0.20s both;
}
.home-hero .hero-actions, .home-hero .btn, .cta-actions {
  animation: heroFadeScale 0.9s cubic-bezier(.22, 1, .36, 1) 0.32s both;
}
.home-hero-logos, .home-hero-logos span {
  animation: heroFade 1s cubic-bezier(.22, 1, .36, 1) 0.44s both;
}
@keyframes heroFadeScale {
  0% { opacity: 0; transform: scale(0.94); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes heroFade {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .home-hero .tag, h1, .home-hero h1, .page-hero h1, .post-hero h1, .article-hero h1,
  .home-hero p, .page-hero .lede, .post-hero .lede, .article-hero .lede,
  .home-hero .hero-actions, .home-hero .btn, .cta-actions, .home-hero-logos, .home-hero-logos span {
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}
