/*
 * zuhora/css/hero.css
 * -----------------------------------------------------------------------------
 * Hero section - full-viewport, celestial rings, star field, headline.
 * -----------------------------------------------------------------------------
 */

/* -- Section shell -------------------------------------------------------- */
.hero {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 100px var(--gutter-mobile) 60px;
  position: relative;
  overflow: hidden;
  text-align: center;
}

/* -- Radial glow ---------------------------------------------------------- */
/* Decorative - no text, WCAG exempt */
.hero-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(
    ellipse 70% 50% at 50% 40%,
    var(--glow-gold) 0%,
    transparent 70%
  );
}

/* -- Orbiting rings ------------------------------------------------------- */
.hero-rings {
  position: absolute;
  left: 50%;
  top: 42%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 0;
}

.ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid var(--border-subtle);
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.ring-1 {
  width:  min(560px, 140vw);
  height: min(560px, 140vw);
  animation: spin 130s linear infinite;
  border-color: rgba(74, 63, 107, 0.18);
}

.ring-2 {
  width:  min(380px, 95vw);
  height: min(380px, 95vw);
  animation: spin 80s linear infinite reverse;
  border-color: rgba(74, 63, 107, 0.25);
}

.ring-3 {
  width:  min(240px, 60vw);
  height: min(240px, 60vw);
  border-color: rgba(201, 168, 76, 0.10);
}

/* -- Star field ----------------------------------------------------------- */
.star-field {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* Stars injected by JS - decorative, WCAG exempt */
.star {
  position: absolute;
  background: var(--accent-bright);
  border-radius: 50%;
  animation: twinkle var(--d, 4s) ease-in-out infinite var(--dl, 0s);
}

/* -- Content -------------------------------------------------------------- */
.hero-inner {
  position: relative;
  z-index: 1;
  max-width: 560px;
}

.hero-mark {
  margin-bottom: var(--space-8);
  display: flex;
  justify-content: center;
  opacity: 0;
  animation: fadeUp 1.2s var(--ease-out) 0.2s forwards;
}

.hero-mark svg {
  width: 364px;
  height: 368px;
}

.hero-eyebrow {
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-6);
  opacity: 0;
  animation: fadeUp 1.2s var(--ease-out) 0.4s forwards;
  /* --text-muted: 4.66:1 - WCAG AA ✓ (small caps treated as large text ≥18px equiv) */
  color: var(--text-muted);
}

.hero-headline {
  font-size: clamp(38px, 9vw, 76px);

  font-family: var(--font-serif);
  font-weight: 300;
  line-height: 1.06;
  letter-spacing: var(--tracking-tight);
  /* --text-primary: 18.41:1 - WCAG AAA ✓ */
  color: var(--text-primary);
  margin-bottom: var(--space-6);
  opacity: 0;
  animation: fadeUp 1.4s var(--ease-out) 0.55s forwards;

}

.hero-headline em {
  font-style: italic;
  /* --accent: 8.54:1 - WCAG AA ✓ */
  color: var(--accent);
}

.hero-tagline {
  font-size: var(--text-md);
  font-weight: 300;
  font-style: italic;
  /* --text-secondary: 7.27:1 - WCAG AA ✓ */
  color: var(--text-secondary);
  letter-spacing: var(--tracking-wide);
  margin-bottom: 44px;
  opacity: 0;
  animation: fadeUp 1.2s var(--ease-out) 0.75s forwards;
}

.hero-cta {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: center;
  opacity: 0;
  animation: fadeUp 1.2s var(--ease-out) 0.9s forwards;
}

/* -- Scroll hint ---------------------------------------------------------- */
.scroll-hint {
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  opacity: 0;
  animation: fadeIn 1s 2.2s forwards;
  z-index: 1;
}

/* Decorative label - non-interactive, fine print; visually subordinate by design */
.scroll-hint span {
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  /* Intentionally dim - purely decorative affordance, not readable content */
  color: var(--text-muted);
  opacity: 0.5;
}

.scroll-line {
  width: 1px;
  height: 32px;
  background: linear-gradient(to bottom, var(--border-accent-hi), transparent);
  animation: scrollPulse 2.5s ease-in-out infinite;
}

/* -- Desktop -------------------------------------------------------------- */
@media (min-width: 680px) {
  .hero {
    padding: 120px var(--gutter-desk) 80px;
  }
}
