/* base.css - reset, design tokens, and the shared keyframe library.
   Loaded on every page, in both shells. */

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{min-height:100%}

/* ---- design tokens (identical in both shells) ---- */
:root{
  --ink:#3a352f; --soft:#7a7368; --paper:#f5f1ea; --card:#ffffff;
  --gut:#7d5fb8; --heart:#c98f2c; --head:#2f7e96;
  --gold:#c98f2c; --gold-deep:#a9761c;
  --gut-wash:#efe9f7; --heart-wash:#f7ecd7; --head-wash:#e2eff2; --gold-wash:#f7f0e0;
  --growth:#2f9e6a; --stress:#d9622f; --growth-wash:#e4f2e9; --stress-wash:#f9e9df;
  --shadow:0 6px 24px rgba(60,48,25,.07), 0 2px 6px rgba(60,48,25,.05);
  --shadow-lift:0 12px 34px rgba(60,48,25,.13), 0 3px 8px rgba(60,48,25,.07);
}

/* ---- keyframes (union of both shells) ---- */
@keyframes ennHalo{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:.15;transform:scale(1.16)}}
@keyframes ennBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}
@keyframes ennRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes ennPop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.15);opacity:1}100%{transform:scale(1);opacity:1}}
@keyframes ennFade{from{opacity:0}to{opacity:1}}
@keyframes ennOvl{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
@keyframes ennSoft{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes ennCueDot{0%{box-shadow:0 0 0 0 rgba(201,143,44,.5)}70%{box-shadow:0 0 0 7px rgba(201,143,44,0)}100%{box-shadow:0 0 0 0 rgba(201,143,44,0)}}
@keyframes ennSpinIn{0%{transform:rotate(-560deg) scale(.05);opacity:0}55%{opacity:1}100%{transform:rotate(0deg) scale(1);opacity:1}}
@keyframes ennSpinOnce{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes ennSpinOnceR{from{transform:rotate(0deg)}to{transform:rotate(-360deg)}}
@keyframes ennSlowSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes ennFadeOut{from{opacity:1}to{opacity:0}}
@keyframes ennOrbitOut{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.06);opacity:1}100%{transform:scale(1);opacity:1}}
@keyframes ennOrbitOnce{0%{transform:scale(1);opacity:1}18%{transform:scale(.5);opacity:0}75%{transform:scale(.5);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes ennTwinkle{0%,100%{opacity:0;transform:scale(.2)}50%{opacity:1;transform:scale(1)}}
@keyframes ennDemoTap{0%{opacity:0;transform:scale(.3)}6%{opacity:.95;transform:scale(1)}15%{opacity:0;transform:scale(2)}100%{opacity:0}}
@keyframes ennDemoCard{0%,13%{opacity:0;transform:translateY(12px) scale(.6)}22%{opacity:1;transform:translateY(0) scale(1)}84%{opacity:1;transform:translateY(0) scale(1)}94%,100%{opacity:0;transform:translateY(8px) scale(.9)}}
@keyframes ennDemoRing{0%,8%{opacity:0;transform:scale(.4)}20%{opacity:1;transform:scale(1)}86%{opacity:1;transform:scale(1)}96%,100%{opacity:0;transform:scale(.7)}}
@keyframes ennDemoWarm{0%,100%{opacity:.12}50%{opacity:.8}}
@keyframes ennDemoSwap{0%,44%{opacity:1}52%,92%{opacity:0}100%{opacity:1}}
@keyframes ennDemoSwapB{0%,44%{opacity:0}52%,92%{opacity:1}100%{opacity:0}}
@keyframes ennDemoSeg{0%,14%{background:#ffffff;color:#7a7368;border-color:#e5dccb}24%,84%{background:#2f2b25;color:#ffffff;border-color:#2f2b25}94%,100%{background:#ffffff;color:#7a7368;border-color:#e5dccb}}
@keyframes ennDemoDot{0%,10%{left:0}55%,88%{left:calc(100% - 15px)}100%{left:0}}
@keyframes ennNumBounce{0%{transform:translateY(0) scale(1)}28%{transform:translateY(-7px) scale(1.16)}52%{transform:translateY(2px) scale(.95)}74%{transform:translateY(-3px) scale(1.06)}100%{transform:translateY(0) scale(1)}}

@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
