/* ===== HERO SECTION ===== */

.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: linear-gradient(135deg, var(--color-off-white) 0%, var(--color-blush) 50%, var(--color-pink-light) 100%);
  padding: var(--space-3xl) var(--space-md);
}

.hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

/* Hero oval portrait below countdown */
.hero__portrait {
  margin-top: var(--space-xl);
  display: flex;
  justify-content: center;
}

.hero__portrait-image {
  width: min(80%, 500px);
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center 30%;
  border-radius: 50%;
}

.hero__particles {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

/* Decorative leaves */
.hero__decor {
  position: absolute;
  z-index: 1;
  opacity: 0.15;
  width: clamp(100px, 15vw, 200px);
  pointer-events: none;
}

.hero__decor--left {
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

.hero__decor--right {
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

/* Hero content */
.hero__content {
  position: relative;
  z-index: 2;
  max-width: 900px;
}

.hero__date {
  font-family: var(--font-serif);
  font-size: var(--text-lg);
  color: var(--color-gray-dark);
  letter-spacing: var(--letter-spacing-wider);
  text-transform: uppercase;
  margin-bottom: var(--space-lg);
  font-weight: 300;
}

.hero__title {
  font-family: var(--font-script);
  font-size: var(--text-hero);
  color: var(--color-rose-gold);
  line-height: 1.1;
  margin-bottom: var(--space-md);
}

.hero__name {
  display: inline-block;
}

.hero__ampersand {
  display: inline-block;
  font-family: var(--font-serif);
  font-size: 0.4em;
  color: var(--color-gold);
  margin: 0 var(--space-sm);
  vertical-align: middle;
}

.hero__tagline {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  color: var(--color-gray-dark);
  font-style: italic;
  font-weight: 300;
  margin-bottom: var(--space-lg);
}

.hero__divider {
  margin: 0 auto var(--space-2xl);
  width: clamp(120px, 20vw, 250px);
  opacity: 0.6;
}

.hero__divider img {
  width: 100%;
  height: auto;
}

/* ===== COUNTDOWN ===== */

.countdown {
  position: relative;
  display: inline-block;
}


.countdown__units {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.countdown__unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 60px;
}

.countdown__digit {
  font-family: var(--font-serif);
  font-size: var(--text-3xl);
  font-weight: 300;
  color: var(--color-rose-gold);
  line-height: 1;
  perspective: 400px;
}

.countdown__digit.is-flipping {
  animation: digitFlip 0.5s ease-in-out;
}

.countdown__label {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  color: var(--color-gray);
  text-transform: uppercase;
  letter-spacing: var(--letter-spacing-wider);
  margin-top: var(--space-xs);
}

.countdown__separator {
  font-family: var(--font-serif);
  font-size: var(--text-2xl);
  color: var(--color-rose-gold-light);
  margin-bottom: var(--space-lg);
}

/* ===== SCROLL INDICATOR ===== */

.hero__scroll-indicator {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
  color: var(--color-gray);
  margin-top: var(--space-lg);
  animation: bounceInFlow 2s ease-in-out infinite;
}

.hero__scroll-text {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: var(--letter-spacing-widest);
}

.hero__scroll-arrow {
  width: 20px;
  height: 20px;
}

/* ===== PIGEONS (DOVES) ===== */

.pigeon {
  position: absolute;
  width: 60px;
  height: 45px;
  z-index: 3;
  pointer-events: none;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.1));
}

.pigeon--right {
  transform: scaleX(-1);
}

.pigeon--flying .pigeon__wing {
  animation: wingFlap 0.3s ease-in-out infinite alternate;
  transform-origin: 28px 28px;
}

.pigeon--resting .pigeon__wing {
  animation: none;
}

.pigeon--resting {
  animation: pigeonBob 1.5s ease-in-out infinite;
}

@keyframes wingFlap {
  0%   { d: path("M22 28 C16 16, 8 8, 2 4 C10 8, 20 10, 28 18Z"); }
  100% { d: path("M22 28 C18 22, 14 20, 10 22 C16 20, 22 22, 28 24Z"); }
}

@keyframes pigeonBob {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-3px); }
}

.pigeon--right.pigeon--resting {
  animation: pigeonBobFlipped 1.5s ease-in-out infinite;
}

@keyframes pigeonBobFlipped {
  0%, 100% { transform: scaleX(-1) translateY(0); }
  50%      { transform: scaleX(-1) translateY(-3px); }
}
