:root{
  /* Durations */
  --dur-instant:80ms; /* @kind other */
  --dur-fast:120ms; /* @kind other */
  --dur-normal:180ms; /* @kind other */
  --dur-slow:280ms; /* @kind other */
  --dur-slower:480ms; /* @kind other */

  /* Easings — entrances decelerate hard, exits leave quickly, state changes are symmetric */
  --ease-out:cubic-bezier(.16,1,.3,1); /* @kind other */
  --ease-in-out:cubic-bezier(.65,0,.35,1); /* @kind other */
  --ease-standard:cubic-bezier(.4,0,.2,1); /* @kind other */
  --ease-exit:cubic-bezier(.4,0,1,1); /* @kind other */
  --ease-emphasized:cubic-bezier(.2,.9,.1,1); /* @kind other */

  /* Composed transitions */
  --transition-control:background-color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard),transform var(--dur-instant) var(--ease-standard); /* @kind other */
  --transition-surface:background-color var(--dur-normal) var(--ease-standard),border-color var(--dur-normal) var(--ease-standard),box-shadow var(--dur-normal) var(--ease-standard),transform var(--dur-normal) var(--ease-out); /* @kind other */
  --transition-indicator:left var(--dur-normal) var(--ease-emphasized),width var(--dur-normal) var(--ease-emphasized),opacity var(--dur-fast) linear; /* @kind other */
  --transition-collapse:height var(--dur-slow) var(--ease-out),opacity var(--dur-normal) var(--ease-standard); /* @kind other */

  /* Named enter/exit animations (use these, don't invent new ones) */
  --anim-fade-in:fade-in var(--dur-fast) var(--ease-standard) both; /* @kind other */
  --anim-fade-out:fade-out var(--dur-fast) var(--ease-exit) both; /* @kind other */
  --anim-rise-in:fade-rise var(--dur-normal) var(--ease-out) both; /* @kind other */
  --anim-pop-in:pop-in var(--dur-normal) var(--ease-emphasized) both; /* @kind other */
  --anim-pop-out:pop-out var(--dur-fast) var(--ease-exit) both; /* @kind other */
  --anim-slide-in-right:slide-in-right var(--dur-slow) var(--ease-out) both; /* @kind other */
  --anim-slide-out-right:slide-out-right var(--dur-normal) var(--ease-exit) both; /* @kind other */
  --anim-toast-in:toast-in var(--dur-normal) var(--ease-emphasized) both; /* @kind other */
  --anim-toast-out:toast-out var(--dur-fast) var(--ease-exit) both; /* @kind other */
  --anim-check:check-pop var(--dur-normal) var(--ease-emphasized) both; /* @kind other */
  --anim-shimmer:shimmer 1.4s linear infinite; /* @kind other */

  /* Stagger step for lists that animate in */
  --stagger-step:28ms; /* @kind other */
  --aurora-drift:38s; /* @kind other */
}

@keyframes fade-in{from{opacity:0}to{opacity:1}}
@keyframes fade-out{from{opacity:1}to{opacity:0}}
@keyframes fade-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes fade-sink{from{opacity:1;transform:none}to{opacity:0;transform:translateY(4px)}}
@keyframes pop-in{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
@keyframes pop-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(4px) scale(.985)}}
@keyframes slide-in-right{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
@keyframes slide-out-right{from{opacity:1;transform:none}to{opacity:0;transform:translateX(12px)}}
@keyframes toast-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@keyframes toast-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(6px) scale(.98)}}
@keyframes check-pop{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.15)}100%{opacity:1;transform:scale(1)}}
@keyframes grow-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes row-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes toast-timer{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@keyframes shimmer{0%{background-position:-160% 0}100%{background-position:260% 0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes pulse-ring{0%{box-shadow:0 0 0 0 var(--neon-a40)}70%{box-shadow:0 0 0 7px rgba(25,224,119,0)}100%{box-shadow:0 0 0 0 rgba(25,224,119,0)}}
@keyframes aurora-drift{0%{transform:translate3d(-6%,-4%,0) scale(1.05)}50%{transform:translate3d(6%,4%,0) scale(1.18)}100%{transform:translate3d(-6%,-4%,0) scale(1.05)}}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}
}
