/* Base tweaks */
.hero-title, .hero-subtitle { opacity: 0; transform: scale(0.96); }
.hero-animate-in .hero-title { animation: zoomInTitle 900ms cubic-bezier(.2,.7,.2,1) forwards 120ms; }
.hero-animate-in .hero-subtitle { animation: zoomInSubtitle 900ms cubic-bezier(.2,.7,.2,1) forwards 280ms; }

@keyframes zoomInTitle {
  0% { opacity: 0; transform: scale(0.96); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes zoomInSubtitle {
  0% { opacity: 0; transform: scale(0.98); }
  100% { opacity: 1; transform: scale(1); }
}

/* Slider */
.slider { height: clamp(420px, 60vh, 720px); }
.slides { position: relative; width: 100%; height: 100%; }
.slide {
  position: absolute; inset: 0; background-size: cover; background-position: center; background-repeat: no-repeat;
  opacity: 0; transform: scale(1.04); transition: opacity 600ms ease, transform 1200ms ease;
}
.slide.active { opacity: 1; transform: scale(1); }

.slider::after {
  content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.35), rgba(0,0,0,.1)); pointer-events: none;
}

.slider-control {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 44px; height: 44px; border-radius: 9999px; border: 1px solid rgba(255,255,255,.6);
  display: grid; place-items: center; color: #fff; background: rgba(0,0,0,.25);
  transition: background 200ms ease, transform 100ms ease; z-index: 3;
}
.slider-control:hover { background: rgba(0,0,0,.4); }
.slider-control:active { transform: translateY(-50%) scale(.98); }
.slider-control.prev { left: 16px; }
.slider-control.next { right: 16px; }
.slider-control span { font-size: 18px; line-height: 1; }

.slider-dots {
  position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%);
  display: flex; gap: 8px; z-index: 3;
}
.slider-dot {
  width: 8px; height: 8px; border-radius: 9999px; background: rgba(255,255,255,.55);
  transition: transform 200ms ease, background 200ms ease; cursor: pointer;
}
.slider-dot.active { transform: scale(1.25); background: #fff; }

/* Footer year */
#year { font-variant-numeric: tabular-nums; }

/* Line clamp utility */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Header themes */
header.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  border-bottom: 1px solid rgba(244, 114, 182, 0.4); /* default border similar to rose */
}
.header-theme-pink {
  background: linear-gradient(90deg, rgba(254,205,211,0.9), rgba(253,164,175,0.9), rgba(244,114,182,0.9));
  backdrop-filter: blur(6px);
}
.header-theme-blue {
  background: linear-gradient(90deg, rgba(191,219,254,0.9), rgba(147,197,253,0.9), rgba(59,130,246,0.9));
  border-color: rgba(59,130,246,0.35);
  backdrop-filter: blur(6px);
}
.header-theme-mixed {
  background: linear-gradient(90deg, rgba(191,219,254,0.85), rgba(253,164,175,0.85));
  backdrop-filter: blur(6px);
}

/* Transition overlay for smooth theme change */
.header-transition-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  transition: opacity 500ms ease;
  opacity: 1;
}

/* removed page enter and stagger animations */

