/* Home (/) — scroll reveals, hero motion, coverage band */

:root {
  --vh-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --vh-ease-spring: cubic-bezier(0.32, 0.72, 0, 1);
  --vh-motion-duration: 0.72s;
}

@media (prefers-reduced-motion: reduce) {
  :root { --vh-motion-duration: 0.01ms; }
}

.vh-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--vh-motion-duration) var(--vh-ease-out), transform var(--vh-motion-duration) var(--vh-ease-out);
}

.vh-reveal.is-visible { opacity: 1; transform: translateY(0); }
.vh-reveal--scale { transform: translateY(16px) scale(0.98); }
.vh-reveal--scale.is-visible { transform: translateY(0) scale(1); }

.veritas-split-hero.is-hero-ready .veritas-split-hero__photo {
  animation: vh-hero-ken 18s var(--vh-ease-out) infinite alternate;
}
@keyframes vh-hero-ken { from { transform: scale(1.04); } to { transform: scale(1.1); } }

.veritas-split-hero.is-hero-ready .veritas-split-hero__copy {
  animation: vh-hero-rise 1s var(--vh-ease-out) both;
}
.veritas-split-hero.is-hero-ready .veritas-split-hero__pane--dark .veritas-split-hero__copy { animation-delay: 0.12s; }
@keyframes vh-hero-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

.veritas-split-hero.is-hero-ready .veritas-portal-frame {
  animation: vh-portal-float 1.15s var(--vh-ease-out) 0.2s both, vh-portal-hover 5s ease-in-out 1.35s infinite;
}
@keyframes vh-portal-float { from { opacity: 0; transform: translateY(32px) scale(0.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes vh-portal-hover { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

.veritas-split-hero__cta-row, .veritas-split-hero__market-actions { display: flex; flex-direction: column; align-items: center; gap: 0.85rem; margin-top: 0.25rem; }
.veritas-split-hero__cta-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.65rem;
  padding: 0.65rem 1.35rem; border-radius: 999px; font-size: 0.72rem; letter-spacing: 0.22em;
  text-transform: uppercase; font-weight: 600; text-decoration: none; color: var(--v-ink, #0a0a0a);
  background: var(--v-chrome, linear-gradient(180deg, #e8ebef 0%, #b8bec6 100%));
  border: 1px solid rgba(255, 255, 255, 0.35); box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
  transition: transform 0.28s var(--vh-ease-spring), box-shadow 0.28s var(--vh-ease-out), filter 0.28s var(--vh-ease-out);
}
.veritas-split-hero__cta-primary:hover { transform: translateY(-2px); filter: brightness(1.04); }
.veritas-split-hero__cta-primary:active { transform: scale(0.98); }

.vh-coverage { position: relative; overflow: hidden; background: #030303; border-bottom: 1px solid rgba(255,255,255,0.08); padding: clamp(2.5rem,6vw,4rem) clamp(1.25rem,4vw,2.5rem); }
.vh-coverage__inner { position: relative; z-index: 1; max-width: 72rem; margin: 0 auto; display: grid; gap: 1.75rem; }
@media (min-width: 900px) { .vh-coverage__inner { grid-template-columns: 1fr minmax(240px, 360px); align-items: center; } }
.vh-coverage__eyebrow { margin: 0 0 0.5rem; font-size: 0.65rem; letter-spacing: 0.28em; text-transform: uppercase; font-weight: 600; color: var(--v-gold, #c9a227); }
.vh-coverage__title { margin: 0; font-family: Figtree, "Instrument Sans", system-ui, sans-serif; font-weight: 300; font-size: clamp(1.35rem, 3vw, 2rem); line-height: 1.2; color: #f7f5f2; }
.vh-coverage__lead { margin: 0.75rem 0 0; max-width: 36rem; font-size: 0.95rem; line-height: 1.55; color: rgba(247,245,242,0.62); }
.vh-coverage__metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; margin-top: 1.25rem; }
.vh-coverage__metric { padding: 0.85rem 0.75rem; border-radius: 12px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); text-align: center; }
.vh-coverage__metric strong { display: block; font-size: clamp(1.25rem, 2.5vw, 1.65rem); font-weight: 500; color: #f7f5f2; font-variant-numeric: tabular-nums; }
.vh-coverage__metric span { display: block; margin-top: 0.25rem; font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(247,245,242,0.45); }
.vh-coverage__map { position: relative; min-height: 160px; border-radius: 16px; border: 1px solid rgba(200,186,164,0.22); background: radial-gradient(circle at 30% 40%, rgba(110,112,92,0.25), transparent 55%), #0a0a0a; overflow: hidden; }
.vh-coverage__dot { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: #6e705c; box-shadow: 0 0 12px rgba(110,112,92,0.65); animation: vh-dot-pulse 2.4s ease-in-out infinite; }
@keyframes vh-dot-pulse { 0%, 100% { opacity: 0.35; transform: scale(0.85); } 50% { opacity: 1; transform: scale(1.15); } }
.vh-coverage__cta { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1.25rem; font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 600; color: #6e705c; text-decoration: none; transition: color 0.2s ease, transform 0.25s var(--vh-ease-spring); }
.vh-coverage__cta:hover { color: var(--v-gold, #c9a227); transform: translateX(4px); }

.veritas-marketplace-below-hero .section { scroll-margin-top: 6rem; }
.veritas-marketplace-below-hero .card.cat { transition: transform 0.35s var(--vh-ease-spring), box-shadow 0.35s var(--vh-ease-out); }
.veritas-marketplace-below-hero .card.cat:hover { transform: translateY(-4px); box-shadow: 0 20px 48px rgba(0,0,0,0.35); }

#__bundler_loading.veritas-home-bundler-loader, #ub-boot-cover.veritas-home-boot-loader { background: #0c0c0c !important; }

@media (prefers-reduced-motion: reduce) {
  .veritas-split-hero.is-hero-ready .veritas-split-hero__photo,
  .veritas-split-hero.is-hero-ready .veritas-portal-frame,
  .vh-coverage__dot { animation: none !important; }
  .vh-reveal { opacity: 1; transform: none; }
}
.veritas-split-hero__market {
  animation: vh-hero-market-in 0.85s cubic-bezier(0.32, 0.72, 0, 1) 0.12s both;
}
.veritas-split-hero__cov-map {
  animation: vh-hero-map-in 1s cubic-bezier(0.32, 0.72, 0, 1) 0.22s both;
}
@keyframes vh-hero-market-in {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes vh-hero-map-in {
  from { opacity: 0; transform: translateY(18px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .veritas-split-hero__market,
  .veritas-split-hero__cov-map {
    animation: none !important;
  }
}
