@keyframes pageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toastIn{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@keyframes ambientA{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(60px,-35px,0) scale(1.08)}}@keyframes ambientB{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-50px,40px,0) scale(1.06)}}@keyframes pulseSoft{0%,100%{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}body:before,body:after{animation:none!important}}

/* v4 · calm, premium motion */
@keyframes contentRise{from{opacity:0;transform:translate3d(0,14px,0) scale(.992)}to{opacity:1;transform:none}}
@keyframes navReveal{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
@keyframes brandFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(1.5deg)}}
@keyframes statusBreath{0%,100%{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--success) 11%,transparent)}}
@keyframes activeRail{0%,100%{opacity:.72;transform:scaleY(.76)}50%{opacity:1;transform:scaleY(1)}}
@media(prefers-reduced-motion:no-preference){
  .brand-mark{animation:brandFloat 6s ease-in-out infinite}
  .nav-section{animation:navReveal .48s var(--out) both}
  .nav-section:nth-child(2){animation-delay:.05s}.nav-section:nth-child(3){animation-delay:.10s}.nav-section:nth-child(4){animation-delay:.15s}
  .nav-item.active:before{animation:activeRail 2.8s ease-in-out infinite}
  .page>.page-head{animation:contentRise .55s .04s var(--out) both}
  .page>section:not(.page-head),.page>article{animation:contentRise .58s .11s var(--out) both}
  .page>section:nth-child(3),.page>article:nth-child(3){animation-delay:.18s}
  .bento>.glass-card,.grid>.glass-card{animation:contentRise .5s var(--out) both}
  .bento>.glass-card:nth-child(2),.grid>.glass-card:nth-child(2){animation-delay:.04s}
  .bento>.glass-card:nth-child(3),.grid>.glass-card:nth-child(3){animation-delay:.08s}
  .bento>.glass-card:nth-child(4),.grid>.glass-card:nth-child(4){animation-delay:.12s}
  .bento>.glass-card:nth-child(n+5),.grid>.glass-card:nth-child(n+5){animation-delay:.16s}
}
