/* ========================================================================
   Nyara Stays — animations.css
   Cursor, page transitions, parallax helpers, motion utilities
   ====================================================================== */

@media (prefers-reduced-motion: no-preference){
  html { scroll-behavior: smooth; }
}

/* ---------- Page loader ---------- */
.page-loader{
  position: fixed; inset: 0; z-index: 200;
  background: var(--ink-2);
  display: grid; place-items: center;
  transition: opacity .8s var(--ease), visibility .8s var(--ease);
}
.page-loader.is-gone{ opacity: 0; visibility: hidden; pointer-events:none; }
.page-loader__inner{
  font-family: var(--f-display);
  color: var(--paper);
  font-size: clamp(36px, 6vw, 72px);
  letter-spacing: .01em;
  display: flex; gap: 18px; align-items: baseline;
}
.page-loader__dot{
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--sand);
  animation: loaderPulse 1.2s ease-in-out infinite;
}
@keyframes loaderPulse {
  0%, 100%{ transform: scale(.6); opacity:.4; }
  50%     { transform: scale(1.2); opacity: 1; }
}

/* ---------- Cursor (desktop only) ---------- */
.cursor{
  position: fixed; top:0; left:0; width: 14px; height: 14px;
  border-radius: 50%; background: var(--ink);
  pointer-events:none; z-index: 1000;
  transform: translate(-50%,-50%);
  mix-blend-mode: difference;
  transition: width .35s var(--ease), height .35s var(--ease), opacity .3s;
}
.cursor.is-hover{ width: 56px; height: 56px; background: var(--sand-2); }
.cursor.is-hidden{ opacity: 0; }
@media (hover: none){ .cursor{ display:none; } }

/* ---------- Stagger reveal (for lists) ---------- */
.reveal-stagger > * { opacity: 0; transform: translateY(20px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal-stagger.is-in > *{ opacity: 1; transform: translateY(0); }
.reveal-stagger.is-in > *:nth-child(1){ transition-delay: 60ms; }
.reveal-stagger.is-in > *:nth-child(2){ transition-delay: 160ms; }
.reveal-stagger.is-in > *:nth-child(3){ transition-delay: 260ms; }
.reveal-stagger.is-in > *:nth-child(4){ transition-delay: 360ms; }
.reveal-stagger.is-in > *:nth-child(5){ transition-delay: 460ms; }
.reveal-stagger.is-in > *:nth-child(6){ transition-delay: 560ms; }

/* ---------- Soft float ---------- */
.float-soft{ animation: floatSoft 6s ease-in-out infinite; }
@keyframes floatSoft {
  0%,100%{ transform: translateY(0); }
  50%    { transform: translateY(-8px); }
}

/* ---------- Hero title line clip-in ---------- */
.hero__title .line{ position: relative; }
.hero__title .line > * { display: inline-block; transform: translateY(110%); transition: transform 1.1s var(--ease); }
.hero__title.is-in .line > *,
[data-reveal].is-in .line > * { transform: translateY(0); }

/* ---------- Image clip reveal ---------- */
.clip-reveal{
  clip-path: inset(0 0 100% 0);
  transition: clip-path 1.2s var(--ease-soft);
}
.clip-reveal.is-in{ clip-path: inset(0 0 0 0); }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .marquee__track{ animation: none; }
}
