/* Motion follows the reading flow and never hides content when scripts are unavailable. */
@keyframes hero-arrive{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes float-window{0%,100%{transform:rotate(5deg) translateY(0)}50%{transform:rotate(4deg) translateY(-9px)}}
@keyframes float-a{0%,100%{transform:rotate(-9deg) translateY(0)}50%{transform:rotate(-7deg) translateY(-7px)}}
@keyframes float-b{0%,100%{transform:rotate(5deg) translateY(0)}50%{transform:rotate(7deg) translateY(6px)}}
@keyframes float-c{0%,100%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-7deg) translateY(-6px)}}
@keyframes sticker-bob{0%,100%{transform:rotate(14deg) scale(1)}50%{transform:rotate(9deg) scale(1.055)}}
@keyframes pop-in{0%{opacity:0;transform:scale(.92) translateY(12px)}65%{transform:scale(1.015) translateY(-3px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@keyframes twinkle{0%,100%{opacity:.45;transform:rotate(0deg) scale(.8)}50%{opacity:1;transform:rotate(40deg) scale(1.15)}}
.hero-copy>*{animation:hero-arrive .65s both}
.hero-copy>*:nth-child(2){animation-delay:.08s}.hero-copy>*:nth-child(3){animation-delay:.16s}.hero-copy>*:nth-child(4){animation-delay:.24s}.hero-copy>*:nth-child(5){animation-delay:.32s}
.art-window{animation:float-window 5s ease-in-out infinite}
.floating-a{animation:float-a 4.5s ease-in-out infinite}.floating-b{animation:float-b 5.5s ease-in-out infinite}.floating-c{animation:float-c 4.7s ease-in-out infinite}
.sticker{animation:sticker-bob 4s ease-in-out infinite}
.spark{display:inline-block;animation:twinkle 3s ease-in-out infinite}
.choice{transition:background .22s,transform .22s,border .22s,box-shadow .22s}.choice:hover,.choice.selected{box-shadow:0 10px 0 #14291e55}
.choice-icon{transition:transform .25s}.choice:hover .choice-icon,.choice.selected .choice-icon{transform:rotate(-13deg) scale(1.15)}
.recommendation:not([hidden]){animation:pop-in .43s cubic-bezier(.2,.85,.25,1.2) both}
.product{transition:transform .25s,box-shadow .25s}.product:hover{transform:translateY(-6px) rotate(-.5deg);box-shadow:0 13px 25px #263c2c18}
.work-panel:not([hidden]){animation:pop-in .34s ease-out both}
.work-case{transition:transform .2s,box-shadow .2s}.work-case:hover{transform:translateY(-4px);box-shadow:0 12px 26px #34583b16}
.work-tabs button[aria-selected="true"]{box-shadow:0 4px 0 #9bbd8d}
.motion-ready .reveal{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.25,1)}
.motion-ready .reveal.is-visible{opacity:1;transform:translateY(0)}
.motion-ready .reveal:nth-child(2){transition-delay:.07s}.motion-ready .reveal:nth-child(3){transition-delay:.13s}
@media(prefers-reduced-motion:reduce){.hero-copy>*,.art-window,.floating-a,.floating-b,.floating-c,.sticker,.spark,.recommendation:not([hidden]),.work-panel:not([hidden]){animation:none!important}.motion-ready .reveal{opacity:1;transform:none;transition:none}.product,.work-case,.choice,.choice-icon{transition:none!important}}
