/* ===========================
   KASHMIRIA — ANIMATIONS CSS
   =========================== */

/* ========================
   REVEAL ANIMATIONS
   ======================== */
.reveal-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out);
}
.reveal-up.in-view {
  opacity: 1;
  transform: none;
}

.reveal-fade {
  opacity: 0;
  transition: opacity 1s var(--ease-out);
}
.reveal-fade.in-view { opacity: 1; }

.reveal-card {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
}
.reveal-card.in-view {
  opacity: 1;
  transform: none;
}

.reveal-line {
  display: block;
  overflow: hidden;
}
.reveal-line > span,
.reveal-line-inner {
  display: block;
  transform: translateY(110%);
  transition: transform 1s var(--ease-out);
}
.hero-title.in-view .reveal-line > span,
.hero-title.in-view .reveal-line-inner {
  transform: none;
}
.hero-title .reveal-line:nth-child(1) > span,
.hero-title .reveal-line:nth-child(1) { transition-delay: 0.1s; }
.hero-title .reveal-line:nth-child(2) > span,
.hero-title .reveal-line:nth-child(2) { transition-delay: 0.2s; }
.hero-title .reveal-line:nth-child(3) > span,
.hero-title .reveal-line:nth-child(3) { transition-delay: 0.3s; }

/* Stagger delays for grid children */
.collections-grid .reveal-card:nth-child(1) { transition-delay: 0s; }
.collections-grid .reveal-card:nth-child(2) { transition-delay: 0.1s; }
.collections-grid .reveal-card:nth-child(3) { transition-delay: 0.2s; }
.collections-grid .reveal-card:nth-child(4) { transition-delay: 0.3s; }

.products-grid .reveal-card:nth-child(1) { transition-delay: 0s; }
.products-grid .reveal-card:nth-child(2) { transition-delay: 0.08s; }
.products-grid .reveal-card:nth-child(3) { transition-delay: 0.16s; }
.products-grid .reveal-card:nth-child(4) { transition-delay: 0.24s; }
.products-grid .reveal-card:nth-child(5) { transition-delay: 0.32s; }
.products-grid .reveal-card:nth-child(6) { transition-delay: 0.4s; }

.testi-grid .reveal-card:nth-child(1) { transition-delay: 0s; }
.testi-grid .reveal-card:nth-child(2) { transition-delay: 0.12s; }
.testi-grid .reveal-card:nth-child(3) { transition-delay: 0.24s; }

.process-inner .reveal-up:nth-child(1) { transition-delay: 0s; }
.process-inner .reveal-up:nth-child(2) { transition-delay: 0.1s; }
.process-inner .reveal-up:nth-child(3) { transition-delay: 0.2s; }
.process-inner .reveal-up:nth-child(4) { transition-delay: 0.3s; }
.process-inner .reveal-up:nth-child(5) { transition-delay: 0.4s; }
.process-inner .reveal-up:nth-child(6) { transition-delay: 0.5s; }
.process-inner .reveal-up:nth-child(7) { transition-delay: 0.6s; }

/* Hero content staggered reveal */
.hero-eyebrow.reveal-up { transition-delay: 1.2s; }
.hero-sub.reveal-up { transition-delay: 1.5s; }
.hero-ctas.reveal-up { transition-delay: 1.7s; }
.hero-badge.reveal-fade:nth-child(1) { transition-delay: 2s; }
.hero-badge.reveal-fade:nth-child(2) { transition-delay: 2.2s; }

/* ========================
   PARALLAX
   ======================== */
.parallax-slow { will-change: transform; }
.parallax-medium { will-change: transform; }

/* ========================
   HOVER EFFECTS
   ======================== */
@keyframes shimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}

.btn-primary:focus-visible,
.btn-ghost:focus-visible,
.btn-outline:focus-visible {
  outline: 2px solid var(--copper);
  outline-offset: 4px;
}

/* Page transitions */
@keyframes pageIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: none; }
}

main {
  animation: pageIn 0.6s var(--ease-out) 0.3s both;
}

/* ========================
   FLOATING PARTICLES
   ======================== */
.particle {
  position: absolute;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: rgba(201, 168, 76, 0.4);
  pointer-events: none;
  animation: particleFloat linear infinite;
}

@keyframes particleFloat {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translateY(-100vh) rotate(360deg); opacity: 0; }
}

/* ========================
   SCROLL PROGRESS BAR
   ======================== */
.scroll-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  background: var(--copper);
  z-index: 9999;
  width: 0;
  transition: width 0.1s;
}

/* ========================
   IMAGE HOVER ZOOM
   ======================== */
.zoom-on-hover {
  overflow: hidden;
}
.zoom-on-hover img,
.zoom-on-hover > div {
  transition: transform 0.7s var(--ease-out);
}
.zoom-on-hover:hover img,
.zoom-on-hover:hover > div {
  transform: scale(1.06);
}

/* ========================
   UNDERLINE DRAW EFFECT
   ======================== */
.underline-draw {
  position: relative;
  display: inline-block;
}
.underline-draw::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0;
  width: 0; height: 1px;
  background: var(--copper);
  transition: width 0.5s var(--ease-out);
}
.underline-draw:hover::after { width: 100%; }

/* ========================
   GRAIN TEXTURE OVERLAY
   ======================== */
body::before {
  content: '';
  position: fixed; inset: 0;
  z-index: 10000;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
  opacity: 0.35;
}

/* ========================
   NAV HIDE ON SCROLL DOWN
   ======================== */
.nav {
  transition: background 0.4s, backdrop-filter 0.4s, box-shadow 0.4s, transform 0.4s;
}
.nav.hidden {
  transform: translateY(-100%);
}
