/* Keyframes, animation orchestration, and motion overrides. */

@keyframes fadeUp{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:none}
}

@keyframes cardIn{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:none}
}

@keyframes pulse{
  0%,100%{box-shadow:0 0 0 4px rgba(201,161,75,0.2)}
  50%{box-shadow:0 0 0 8px rgba(201,161,75,0.05)}
}

@keyframes expandIn{
  from{opacity:0;transform:translateY(-6px);max-height:0}
  to{opacity:1;transform:none;max-height:600px}
}

/* Section + card entrance */
.section.active{animation:fadeUp 480ms cubic-bezier(.2,.7,.3,1)}
.section.active .card{animation:cardIn 540ms cubic-bezier(.2,.7,.3,1) backwards}
.section.active .card:nth-child(1){animation-delay:40ms}
.section.active .card:nth-child(2){animation-delay:100ms}
.section.active .card:nth-child(3){animation-delay:160ms}
.section.active .card:nth-child(4){animation-delay:220ms}
.section.active .card:nth-child(5){animation-delay:280ms}
.section.active .card:nth-child(n+6){animation-delay:340ms}

/* View Transitions API — smooth tab switches.
   Browsers without support fall back gracefully (no animation). */
::view-transition-old(root),
::view-transition-new(root){
  animation-duration:280ms;
  animation-timing-function:cubic-bezier(.2,.7,.3,1);
}
::view-transition-old(root){animation-name:vtFadeOut}
::view-transition-new(root){animation-name:vtFadeIn}
@keyframes vtFadeOut{to{opacity:0;transform:translateY(-6px)}}
@keyframes vtFadeIn{from{opacity:0;transform:translateY(8px)}}

/* Reduced motion — respect user preference */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation:none!important;
    transition:none!important;
  }
  html{scroll-behavior:auto}
}
