:root{
/* Durations — calm register. Nothing faster than 160ms reads as intentional;
   nothing slower than 700ms holds attention without feeling stalled. */
--dur-quick:160ms; /* @kind other */
--dur-base:280ms; /* @kind other */
--dur-slow:480ms; /* @kind other */
--dur-reveal:700ms; /* @kind other */

/* Easings — entrances decelerate, state changes are symmetric.
   No spring, back or elastic curves anywhere in this system. */
--ease-out:cubic-bezier(.22,.61,.36,1); /* @kind other */
--ease-inout:cubic-bezier(.4,0,.2,1); /* @kind other */

/* One travel distance for the whole system, so everything moves by the same amount. */
--motion-lift:12px;
--motion-stagger:80ms; /* @kind other */

/* Composed shorthands */
--transition-quick:var(--dur-quick) var(--ease-inout);
--transition-base:var(--dur-base) var(--ease-inout);
--transition-reveal:var(--dur-reveal) var(--ease-out);
}

@keyframes ja-rise{from{opacity:0;transform:translateY(var(--motion-lift))}to{opacity:1;transform:none}}
@keyframes ja-fade{from{opacity:0}to{opacity:1}}
/* Media wipe — uncovers from the bottom edge upward, echoing the hairline rule,
   which is this system's only structural device. No scale, no zoom. */
@keyframes ja-wipe-up{from{clip-path:inset(100% 0 0 0);opacity:0}to{clip-path:inset(0 0 0 0);opacity:1}}
/* The blossom unfurl. Filaments draw outward from the boss; anthers then open.
   It never rotates, never scales as a whole, never repeats. See Blossom component. */
@keyframes ja-blossom-draw{from{stroke-dashoffset:var(--ja-draw)}to{stroke-dashoffset:0}}
@keyframes ja-blossom-anther{from{transform:scale(0)}to{transform:scale(1)}}

/* DEPRECATED — removed from PageHero and scheduled for deletion next release.
   Scaling the blossom pattern reads as a zoom, which is the wrong verb for a flower,
   and a 20s non-essential loop would need a pause control (WCAG 2.2.2). Do not use. */
@keyframes ja-kenburns{from{transform:scale(1)}to{transform:scale(1.04)}}

/* Non-negotiable in a medical context. */
@media (prefers-reduced-motion:reduce){
:root{
--dur-quick:.01ms; /* @kind other */
--dur-base:.01ms; /* @kind other */
--dur-slow:.01ms; /* @kind other */
--dur-reveal:.01ms; /* @kind other */
--motion-lift:0px;
--motion-stagger:0ms; /* @kind other */
}
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
