/* ===== Katha design system — shared across all pages ===== */
:root{
  --red:#D62828; --red-deep:#B01E1E;
  --marigold:#FFB703; --marigold-soft:#FFD86B;
  --teal:#1B998B; --teal-deep:#13776C;
  --sky:#3A86CE;
  --berry:#8E3B96; --berry-soft:#C77ACB;
  --ink:#2B2530; --ink-soft:#5A5263;
  --paper:#FFF7EC; --cloud:#FFFFFF;
  --line:#ECD9BE;
  --shadow:0 16px 40px -22px rgba(43,37,48,.45);
  --shadow-sm:0 8px 22px -16px rgba(43,37,48,.5);
  --r:22px; --maxw:1160px;
  --fd:'Fredoka'; --fb:'Nunito'; --fh:'Caveat';
  --give-bg:#F4791F; --give-btn:#2FA34A; --give-btn-deep:#248A3D;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--fb),system-ui,sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--fd),sans-serif;font-weight:600;line-height:1.1;margin:0;color:var(--ink)}
p{margin:0 0 1em}
a{color:inherit}
img{max-width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.eyebrow{font-weight:800;text-transform:uppercase;letter-spacing:.14em;font-size:.74rem}
.scribble{font-family:var(--fh),cursive;font-weight:600}
.center{text-align:center}
:focus-visible{outline:3px solid var(--sky);outline-offset:2px;border-radius:6px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--fd);font-weight:600;font-size:1rem;padding:13px 22px;border-radius:999px;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.btn:hover{transform:translateY(-2px)}
.btn-red{background:var(--red);color:#fff;box-shadow:0 9px 0 -4px var(--red-deep)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ghost{background:#fff;border-color:var(--ink);color:var(--ink)}
.btn-marigold{background:var(--marigold);color:#3a2a00;box-shadow:0 9px 0 -4px #d99400}
.btn-teal{background:var(--teal);color:#fff}
.btn-berry{background:var(--berry);color:#fff}
.btn-sm{padding:9px 16px;font-size:.9rem}
.btn-lg{padding:15px 28px;font-size:1.08rem}

/* ---- top utility + nav ---- */
.topbar{display:flex;align-items:center;gap:10px;padding:7px 22px;background:var(--ink);color:#fff;font-size:.78rem;font-weight:700;justify-content:center;flex-wrap:wrap}
.topbar .ln{opacity:.5}
.topbar a{color:#ffd86b;text-decoration:none}
.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:16px;padding:13px 22px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.logo{font-family:var(--fd);font-weight:700;font-size:1.5rem;color:var(--red);display:flex;align-items:center;gap:9px;text-decoration:none}
.nav .menu{display:flex;gap:2px;margin-left:6px;flex-wrap:wrap}
.nav .menu a{font-weight:800;font-size:.9rem;text-decoration:none;color:var(--ink);padding:8px 12px;border-radius:10px}
.nav .menu a:hover{background:var(--paper)}
.nav .menu a.active{color:var(--red)}
.nav .right{margin-left:auto;display:flex;gap:10px;align-items:center}
.cartlink{position:relative;display:inline-flex;align-items:center;gap:7px;font-weight:800;text-decoration:none;color:var(--ink);padding:9px 14px;border:2px solid var(--ink);border-radius:999px;font-family:var(--fd)}
.cartbadge{position:absolute;top:-8px;right:-8px;min-width:20px;height:20px;background:var(--red);color:#fff;border-radius:999px;font-size:.7rem;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 5px;font-family:var(--fb)}
.hamb{display:none;margin-left:auto;background:#fff;border:2px solid var(--ink);border-radius:10px;width:42px;height:42px;cursor:pointer;align-items:center;justify-content:center}
.hamb svg{width:20px;height:20px}

/* ---- page header band ---- */
.pagehead{padding:40px 0 26px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.pagehead.teal{background:linear-gradient(180deg,color-mix(in srgb,var(--teal) 7%,var(--paper)),color-mix(in srgb,var(--teal) 15%,var(--paper)))}
.pagehead.berry{background:linear-gradient(180deg,color-mix(in srgb,var(--berry) 7%,var(--paper)),color-mix(in srgb,var(--berry) 15%,var(--paper)))}
.pagehead.red{background:linear-gradient(180deg,color-mix(in srgb,var(--red) 7%,var(--paper)),color-mix(in srgb,var(--red) 15%,var(--paper)))}
.pagehead.marigold{background:linear-gradient(180deg,color-mix(in srgb,var(--marigold) 7%,var(--paper)),color-mix(in srgb,var(--marigold) 15%,var(--paper)))}
.pagehead.sky{background:linear-gradient(180deg,color-mix(in srgb,var(--sky) 7%,var(--paper)),color-mix(in srgb,var(--sky) 15%,var(--paper)))}
.pagehead.ink{background:var(--ink)}
.pagehead.ink h1,.pagehead.ink p,.pagehead.ink .crumbs,.pagehead.ink .crumbs span{color:#fff}
.crumbs{font-size:.78rem;font-weight:700;color:var(--ink-soft);margin-bottom:12px}
.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}
.crumbs span{color:var(--ink)}
.pagehead h1{font-size:clamp(2rem,4vw,3.1rem)}
.pagehead p{color:var(--ink-soft);max-width:60ch;margin:.5em 0 0;font-size:1.12rem}

/* ---- image placeholders ---- */
.ph{position:relative;border-radius:var(--r);background:repeating-linear-gradient(45deg,rgba(0,0,0,.022) 0 12px,rgba(0,0,0,0) 12px 24px),var(--ph-bg,#fbeed9);border:2px dashed var(--ph-bd,#e7c79a);display:flex;flex-direction:column;justify-content:flex-end;min-height:180px;padding:16px;overflow:hidden}
.ph .ph-tag{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--ph-tx,#a9803f);background:rgba(255,255,255,.72);align-self:flex-start;padding:4px 9px;border-radius:999px;margin-bottom:8px}
.ph .ph-cap{font-family:var(--fh);font-weight:600;font-size:1.1rem;color:#7a5a22;line-height:1.15}
.ph.tall{min-height:320px}.ph.sq{aspect-ratio:1/1;min-height:0}.ph.wide{min-height:240px}

/* ---- generic sections ---- */
.sec{max-width:var(--maxw);margin:0 auto;padding:54px 22px}
.sec.tight{padding:34px 22px}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:24px;flex-wrap:wrap}
.sec-head .eyebrow{margin-bottom:6px}
.sec-head h2{font-size:clamp(1.6rem,3.2vw,2.3rem)}
.sec-head p{color:var(--ink-soft);max-width:54ch;margin:8px 0 0}
.tagdot{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;display:inline-flex;align-items:center;gap:8px}
.tagdot i{width:11px;height:11px;border-radius:50%;display:inline-block}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}

/* cards */
.card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm)}
.card .body{padding:18px}
.card h3{font-size:1.22rem;margin:8px 0}
.card p{font-size:.95rem;color:var(--ink-soft);margin:0 0 12px}
.card a.more{font-weight:800;text-decoration:none;font-size:.9rem;display:inline-flex;gap:6px;align-items:center}
.card.linkcard{text-decoration:none;color:inherit}

/* stat band */
.band{background:var(--ink);color:#fff;padding:38px 22px}
.band .inner{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);gap:18px;text-align:center}
.band .n{font-family:var(--fd);font-weight:600;font-size:1.9rem;color:var(--marigold-soft);line-height:1}
.band .l{font-size:.78rem;font-weight:700;opacity:.82;margin-top:6px}
.band .foot{max-width:var(--maxw);margin:16px auto 0;font-size:.7rem;opacity:.5;text-align:center}

/* paths (home) */
.path-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.path{position:relative;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 14px;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;gap:8px;min-height:128px}
.path:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.path .ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center}
.path b{font-family:var(--fd);font-weight:600;font-size:1.02rem;line-height:1.1}
.path small{color:var(--ink-soft);font-weight:700;font-size:.78rem}

/* hero (home) */
.hero{position:relative;background:radial-gradient(circle at 12% 18%,color-mix(in srgb,var(--marigold) 22%,transparent),transparent 42%),radial-gradient(circle at 88% 80%,color-mix(in srgb,var(--teal) 20%,transparent),transparent 45%),var(--paper);padding:54px 22px 34px;overflow:hidden}
.hero-grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:38px;align-items:center}
.hero h1{font-size:clamp(2.3rem,4.6vw,3.9rem);font-weight:600}
.hero h1 .u{color:var(--red);position:relative;white-space:nowrap}
.hero .lead{font-size:1.18rem;color:var(--ink-soft);max-width:32ch;margin:18px 0 24px}
.cta{display:flex;gap:12px;flex-wrap:wrap}
.float{animation:bob 4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* method strip */
.ruchi{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:18px}
.ruchi div{background:#fff;border:1px solid #cdeae4;border-radius:14px;padding:12px 8px;text-align:center}
.ruchi .ltr{font-family:var(--fd);font-weight:700;color:var(--teal);font-size:1.5rem}
.ruchi small{font-size:.68rem;font-weight:700;color:var(--ink-soft);display:block;margin-top:2px}

/* ---- SHOP ---- */
.shop-layout{display:grid;grid-template-columns:1fr;gap:18px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.filters .grp{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.filters .lbl{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-right:2px}
.chip{background:#fff;border:1.5px solid #ecd2ee;border-radius:999px;padding:7px 14px;font-weight:800;font-size:.82rem;cursor:pointer;user-select:none}
.chip.on{background:var(--berry);color:#fff;border-color:var(--berry)}
.bookgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.book{background:#fff;border:1px solid #ecd2ee;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.book:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm)}
.book a.coverlink{text-decoration:none;color:inherit}
.book .cover{aspect-ratio:3/4;border-radius:0;min-height:0;border-left:0;border-right:0;border-top:0}
.book .bb{padding:12px 13px;display:flex;flex-direction:column;flex:1}
.book .bt{font-family:var(--fd);font-weight:600;font-size:1rem;line-height:1.12}
.book .ba{font-size:.74rem;color:var(--ink-soft);font-weight:700;margin:2px 0 8px}
.book .meta{font-size:.68rem;font-weight:700;color:var(--berry);margin-bottom:8px}
.book .price{display:flex;align-items:center;justify-content:space-between;margin-top:auto}
.book .price b{color:var(--berry);font-family:var(--fd);font-size:1.1rem}
.add{font-size:.74rem;font-weight:800;background:var(--berry);color:#fff;border:0;border-radius:999px;padding:7px 13px;cursor:pointer;font-family:var(--fb)}
.add:hover{background:#73297a}
.empty{background:#fff;border:1px dashed var(--line);border-radius:16px;padding:30px;text-align:center;color:var(--ink-soft)}

/* product */
.product{display:grid;grid-template-columns:.9fr 1.1fr;gap:34px}
.lookinside{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.qty{display:inline-flex;align-items:center;border:2px solid var(--ink);border-radius:999px;overflow:hidden}
.qty button{background:#fff;border:0;width:38px;height:38px;font-size:1.1rem;cursor:pointer;font-family:var(--fd)}
.qty input{width:44px;text-align:center;border:0;font-weight:800;font-size:1rem;font-family:var(--fb)}
.pill{display:inline-block;background:#f6e6f7;color:var(--berry);border-radius:999px;padding:4px 11px;font-size:.72rem;font-weight:800;margin:0 6px 6px 0}

/* cart */
.cart-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.cart-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);padding:12px 14px;border-bottom:1px solid var(--line)}
.cart-table td{padding:14px;border-bottom:1px solid var(--line);vertical-align:middle}
.cart-row .ti{font-family:var(--fd);font-weight:600}
.cart-row .ti small{display:block;color:var(--ink-soft);font-weight:700;font-family:var(--fb)}
.cart-mini-cover{width:46px;height:60px;border-radius:6px;background:#f1d6f3;border:1px dashed #d9aede;flex:none}
.remove{background:none;border:0;color:var(--red);font-weight:800;cursor:pointer;font-size:.82rem}
.summary{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}
.summary .row{display:flex;justify-content:space-between;padding:7px 0;font-weight:700}
.summary .row.total{border-top:1px solid var(--line);margin-top:8px;padding-top:14px;font-family:var(--fd);font-size:1.3rem}
.give-back{background:#fbf0fb;border:1px dashed #d9aede;border-radius:12px;padding:12px 14px;font-size:.86rem;color:var(--berry);font-weight:700;margin-top:14px}

/* forms */
.form{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}
.field{margin-bottom:14px}
.field label{display:block;font-weight:800;font-size:.82rem;margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:12px 13px;font-family:inherit;font-size:1rem;background:var(--paper)}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--sky);background:#fff}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* give amounts */
.amts{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}
.amt{background:#fff;border:2px solid var(--line);border-radius:14px;padding:12px 18px;font-family:var(--fd);font-weight:600;cursor:pointer}
.amt.on{background:var(--red);color:#fff;border-color:var(--red)}
.trust{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.trust span{background:#fdeaea;color:#9c2b2b;border-radius:10px;padding:8px 12px;font-size:.76rem;font-weight:800}

/* quotes */
.qcard{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px}
.qcard .q{font-family:var(--fd);font-weight:500;font-size:1.12rem;line-height:1.3}
.qcard .by{margin-top:14px;font-weight:800;font-size:.85rem}
.qcard .by small{display:block;color:var(--ink-soft);font-weight:700}

/* list rows (leadership, jobs, reports) */
.lrow{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:12px}
.lrow .ava{width:64px;height:64px;border-radius:14px;flex:none;background:#fbeed9;border:1px dashed #e7c79a;display:flex;align-items:center;justify-content:center;font-family:var(--fh);color:#a9803f;font-size:.78rem;text-align:center;padding:4px}
.lrow h3{font-size:1.12rem}
.lrow .role{font-weight:800;color:var(--red);font-size:.82rem;margin:2px 0 6px}
.lrow p{font-size:.92rem;color:var(--ink-soft);margin:0}
.job{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:10px;flex-wrap:wrap}
.job .jt{font-family:var(--fd);font-weight:600;font-size:1.08rem}
.job .jm{font-size:.8rem;color:var(--ink-soft);font-weight:700}
.report{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 16px;margin-bottom:8px;text-decoration:none;color:inherit}
.report:hover{border-color:var(--sky)}
.report .rt{font-weight:800;font-size:.92rem}

/* callout */
.callout{background:#fff;border:1px dashed var(--line);border-left:5px solid var(--marigold);border-radius:14px;padding:14px 16px;margin-top:18px;font-size:.92rem;color:var(--ink-soft)}
.callout b{color:var(--ink)}

/* logos */
.logos{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.logos .lg{background:#fff;border:1px solid var(--line);border-radius:14px;height:64px;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--ink-soft);font-size:.78rem;text-align:center;padding:6px}

/* footer */
.foot{background:#241f29;color:#e7e0ec;padding:46px 22px 26px;margin-top:40px}
.foot .cols{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1.4fr;gap:26px}
.foot h4{font-family:var(--fd);color:#fff;font-size:1rem;margin-bottom:12px}
.foot a{display:block;color:#c8c0d0;text-decoration:none;font-size:.88rem;padding:4px 0}
.foot a:hover{color:#fff}
.foot .logo{color:#fff}
.foot .news input{width:100%;border:0;border-radius:10px;padding:11px 12px;font-family:inherit;margin:8px 0}
.foot .social{display:flex;gap:10px;margin-top:12px}
.foot .social a{display:inline-flex;width:38px;height:38px;border:1px solid #3a3340;border-radius:10px;align-items:center;justify-content:center;padding:0}
.foot .social svg{width:18px;height:18px;fill:#c8c0d0}
.foot .social a:hover svg{fill:#fff}
.foot .base{max-width:var(--maxw);margin:26px auto 0;border-top:1px solid #3a3340;padding-top:16px;font-size:.78rem;color:#9d95a8;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* reveal */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.reveal.in{opacity:1;transform:none}

/* toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:13px 20px;border-radius:999px;font-weight:800;font-size:.9rem;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:80}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media(max-width:980px){
  .hero-grid,.grid2,.product{grid-template-columns:1fr}
  .path-grid{grid-template-columns:repeat(3,1fr)}
  .band .inner{grid-template-columns:repeat(3,1fr)}
  .grid3,.grid4,.bookgrid{grid-template-columns:repeat(2,1fr)}
  .logos{grid-template-columns:repeat(3,1fr)}
  .foot .cols{grid-template-columns:1fr 1fr}
  .nav .menu{display:none;position:absolute;top:64px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;padding:10px 16px;box-shadow:var(--shadow)}
  .nav .menu.open{display:flex}
  .nav .menu a{padding:12px 8px;border-bottom:1px solid var(--paper)}
  .hamb{display:flex}
  .nav .right .donate-txt{display:none}
}
@media(max-width:560px){
  .path-grid,.band .inner{grid-template-columns:repeat(2,1fr)}
  .grid3,.grid4,.bookgrid{grid-template-columns:1fr 1fr}
  .row2{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* ============================================================
   THEMES — persona reskins. Brand DNA (logo, layout, wayfinding,
   Tamasha, voice) stays constant; palette + fonts + give/donate shift.
   ============================================================ */
[data-theme="children"]{
  --red:#FF5A5F;--red-deep:#E03E52;--marigold:#FFC93C;--marigold-soft:#FFE08A;
  --teal:#12C2A0;--teal-deep:#0E9E84;--berry:#B14AED;--berry-soft:#D29BF5;--sky:#3FA9F5;
  --ink:#312A3A;--ink-soft:#6A6175;--paper:#FFFBF0;
  --give-bg:#FF7A45;--give-btn:#34C759;--give-btn-deep:#28A347;
  --fd:'Baloo 2';--fb:'Nunito';--fh:'Caveat';
}
[data-theme="parents"]{
  --red:#E4572E;--red-deep:#C2461F;--marigold:#F2A65A;--marigold-soft:#F8CFA0;
  --teal:#2A9D8F;--teal-deep:#1F7A6F;--berry:#9B5DE5;--berry-soft:#C49BF0;--sky:#4D908E;
  --ink:#36312E;--ink-soft:#6E665F;--paper:#FFF6EE;
  --give-bg:#EE8959;--give-btn:#2E9E5B;--give-btn-deep:#247A47;
  --fd:'Quicksand';--fb:'Nunito';--fh:'Caveat';
}
[data-theme="donors"]{
  --red:#C44536;--red-deep:#A2382B;--marigold:#E0A458;--marigold-soft:#E8C58E;
  --teal:#0E7C7B;--teal-deep:#0A605F;--berry:#6D597A;--berry-soft:#9C8AA8;--sky:#355C7D;
  --ink:#232027;--ink-soft:#5A5560;--paper:#FBF7F1;
  --give-bg:#C9577B;--give-btn:#2F855A;--give-btn-deep:#246645;
  --fd:'Fraunces';--fb:'Mulish';--fh:'Caveat';
}
[data-theme="schools"]{
  --red:#D1495B;--red-deep:#B23B4B;--marigold:#EAB02D;--marigold-soft:#F2CF7E;
  --teal:#1B998B;--teal-deep:#13776C;--berry:#5E548E;--berry-soft:#938BBA;--sky:#2E6CB5;
  --ink:#1F2430;--ink-soft:#535B6B;--paper:#F7F8FB;
  --give-bg:#E07A3F;--give-btn:#2B8A3E;--give-btn-deep:#216B30;
  --fd:'Poppins';--fb:'Nunito';--fh:'Caveat';
}
[data-theme="media"]{
  --red:#C1352B;--red-deep:#A02A22;--marigold:#D9A441;--marigold-soft:#E8C886;
  --teal:#2C6E63;--teal-deep:#21544B;--berry:#7D4F9E;--berry-soft:#A98AC2;--sky:#3A6EA5;
  --ink:#211C24;--ink-soft:#554E5A;--paper:#FBF8F3;
  --give-bg:#C56A4E;--give-btn:#38895B;--give-btn-deep:#2A6B46;
  --fd:'Fraunces';--fb:'Mulish';--fh:'Caveat';
}

/* ---- theme-aware section bands (replace hardcoded tints) ---- */
.tintband{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tintband.teal{background:linear-gradient(180deg,color-mix(in srgb,var(--teal) 7%,var(--paper)),color-mix(in srgb,var(--teal) 15%,var(--paper)));border-color:color-mix(in srgb,var(--teal) 26%,var(--paper))}
.tintband.berry{background:linear-gradient(180deg,color-mix(in srgb,var(--berry) 6%,var(--paper)),color-mix(in srgb,var(--berry) 13%,var(--paper)));border-color:color-mix(in srgb,var(--berry) 24%,var(--paper))}
.tintband.red{background:linear-gradient(180deg,color-mix(in srgb,var(--red) 6%,var(--paper)),color-mix(in srgb,var(--red) 13%,var(--paper)));border-color:color-mix(in srgb,var(--red) 24%,var(--paper))}
.tintband.sky{background:linear-gradient(180deg,color-mix(in srgb,var(--sky) 7%,var(--paper)),color-mix(in srgb,var(--sky) 14%,var(--paper)));border-color:color-mix(in srgb,var(--sky) 26%,var(--paper))}
.tintband.marigold{background:linear-gradient(180deg,color-mix(in srgb,var(--marigold) 12%,var(--paper)),color-mix(in srgb,var(--marigold) 22%,var(--paper)));border-color:color-mix(in srgb,var(--marigold) 34%,var(--paper))}

/* ---- give band + donate button (semantic, theme-set) ---- */
.giveband{background:var(--give-bg);color:#fff}
.giveband h2{color:#fff}
.btn-give{background:var(--give-btn);color:#fff;box-shadow:0 9px 0 -4px var(--give-btn-deep)}
.btn-give:hover{filter:brightness(1.04)}

/* ============================================================
   MICRO-ANIMATIONS — bento boxes & interactive bits
   (all suppressed under prefers-reduced-motion via earlier rule)
   ============================================================ */
.card,.pcard,.path,.book{transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .18s ease}
.card:hover,.pcard:hover{transform:translateY(-6px) scale(1.012);box-shadow:0 20px 38px -22px rgba(43,37,48,.5)}
.book:hover{transform:translateY(-6px) scale(1.02)}
.card:active,.pcard:active,.path:active,.book:active{transform:translateY(-1px) scale(.985);transition-duration:.08s}
.path .ic{transition:transform .2s ease}
.path:hover .ic{transform:translateY(-3px) rotate(-5deg)}
.card .more,.pcard .more{transition:gap .15s ease}
.card:hover .more,.pcard:hover .more{gap:12px}
.add{transition:transform .12s ease,background .15s ease}
.add:active{transform:scale(.9)}
.chip{transition:transform .12s ease}
.chip:active{transform:scale(.94)}
/* gentle staggered entrance inside grids */
.grid3 .reveal:nth-child(2),.grid4 .reveal:nth-child(2),.path-grid .reveal:nth-child(2){transition-delay:.06s}
.grid3 .reveal:nth-child(3),.grid4 .reveal:nth-child(3),.path-grid .reveal:nth-child(3){transition-delay:.12s}
.grid3 .reveal:nth-child(4),.grid4 .reveal:nth-child(4),.path-grid .reveal:nth-child(4){transition-delay:.18s}
.grid3 .reveal:nth-child(5),.path-grid .reveal:nth-child(5){transition-delay:.24s}
.grid3 .reveal:nth-child(6),.path-grid .reveal:nth-child(6){transition-delay:.30s}

/* ============================================================
   THEME SWITCHER — floating "Read your way" control
   ============================================================ */
.theme-fab{position:fixed;right:18px;bottom:18px;z-index:90;display:inline-flex;align-items:center;gap:9px;
  background:var(--ink);color:#fff;border:0;border-radius:999px;padding:12px 17px;font-family:var(--fd);font-weight:600;
  font-size:.95rem;cursor:pointer;box-shadow:var(--shadow);transition:transform .15s ease}
.theme-fab:hover{transform:translateY(-2px)}
.theme-fab .dot3{display:flex;gap:3px}
.theme-fab .dot3 i{width:9px;height:9px;border-radius:50%}
.theme-panel{position:fixed;right:18px;bottom:74px;z-index:91;width:308px;max-width:calc(100vw - 36px);
  background:var(--cloud);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:16px;display:none}
.theme-panel.open{display:block;animation:tpop .22s ease}
@keyframes tpop{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.theme-panel h4{font-family:var(--fd);font-size:1.08rem;margin:0 0 3px}
.theme-panel .sub{font-size:.8rem;color:var(--ink-soft);margin:0 0 13px;font-style:italic}
.theme-opt{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:var(--paper);
  border:1.5px solid var(--line);border-radius:13px;padding:10px 12px;margin-bottom:8px;cursor:pointer;font-family:inherit;transition:border-color .12s ease,transform .1s ease}
.theme-opt:hover{border-color:var(--ink)}
.theme-opt:active{transform:scale(.99)}
.theme-opt.active{border-color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.theme-opt .sw{display:flex;gap:3px;flex:none}
.theme-opt .sw i{width:13px;height:22px;border-radius:4px;display:block}
.theme-opt .tx b{font-family:var(--fd);font-weight:600;font-size:.94rem;display:block;line-height:1.1}
.theme-opt .tx small{color:var(--ink-soft);font-size:.74rem}
.theme-note{font-size:.72rem;color:var(--ink-soft);margin:4px 2px 0;line-height:1.4}
@media (prefers-reduced-motion:reduce){.theme-panel.open{animation:none}}
