/* ==========================================================================
   VALVGI MUSIC — Animations
   ========================================================================== */

@media (prefers-reduced-motion: no-preference){

  .reveal{
    transform:translateY(28px);
    transition:opacity .9s var(--ease), transform .9s var(--ease);
  }
  .reveal.in{
    opacity:1;
    transform:translateY(0);
  }
  .reveal-delay-1{ transition-delay:.08s; }
  .reveal-delay-2{ transition-delay:.16s; }
  .reveal-delay-3{ transition-delay:.24s; }
  .reveal-delay-4{ transition-delay:.32s; }

  @keyframes wf{
    0%,100%{ transform:scaleY(.25); }
    50%{ transform:scaleY(1); }
  }

  @keyframes fadeIn{
    from{ opacity:0; }
    to{ opacity:1; }
  }
  .hero-inner{ animation:heroIn 1.1s var(--ease) both .1s; }
  @keyframes heroIn{
    from{ opacity:0; transform:translateY(22px); }
    to{ opacity:1; transform:translateY(0); }
  }

  @keyframes floatSlow{
    0%,100%{ transform:translateY(0); }
    50%{ transform:translateY(-14px); }
  }
  .float{ animation:floatSlow 6s ease-in-out infinite; }

  @keyframes spinSlow{
    from{ transform:rotate(0deg); }
    to{ transform:rotate(360deg); }
  }
  .spin-slow{ animation:spinSlow 18s linear infinite; }

  @keyframes marquee{
    from{ transform:translateX(0); }
    to{ transform:translateX(-50%); }
  }
  .marquee-track{
    display:flex;
    width:max-content;
    animation:marquee 28s linear infinite;
  }

  @keyframes pulseAccent{
    0%,100%{ box-shadow:0 0 0 0 rgba(201,162,39,.35); }
    50%{ box-shadow:0 0 0 8px rgba(201,162,39,0); }
  }
  .pulse-dot{
    width:8px;height:8px;border-radius:50%;
    background:var(--accent);
    animation:pulseAccent 2s ease-in-out infinite;
  }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1 !important; transform:none !important; }
  .waveform span, .float, .spin-slow, .marquee-track, .pulse-dot{ animation:none !important; }
  #cursor-dot, #cursor-ring{ display:none !important; }
}

/* accordion (SSS) */
.accordion-item{
  border-bottom:1px solid var(--line);
}
.accordion-body{
  max-height:0;
  overflow:hidden;
  transition:max-height .5s var(--ease);
}
.accordion-item.open .accordion-body{ max-height:400px; }
.accordion-icon{ transition:transform .4s var(--ease); }
.accordion-item.open .accordion-icon{ transform:rotate(45deg); }

/* form states */
.field{ transition:border-color .3s ease, background .3s ease; }
.field:focus{ outline:none; border-color:var(--accent); background:rgba(255,255,255,.02); }

.form-success{
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}

/* slider */
.slider-track{
  transition:transform .6s var(--ease);
}
