:root{
  --red:#dc2f26; --navy:#131f36; --blue:#20406f; --mustard:#f7c92b;
  --cream:#f8f5ee; --cream-dark:#eae4d6; --green:#6aab29; --white:#fff;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--navy);
  font-family:'Inter',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:900;margin:0;line-height:1.08}
p{margin:0}
ul{list-style:none;margin:0;padding:0}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
.hand{font-family:'Caveat',cursive;font-size:1.6rem}
.red{color:var(--red)} .mustard{color:var(--mustard)}
.muted{color:rgba(19,31,54,.62)} .sm{font-size:.875rem}
.wrap{max-width:72rem;margin:0 auto;padding:0 1.25rem;position:relative;z-index:2}
.wrap.narrow{max-width:44rem} .center{text-align:center}
.body{font-size:1.02rem;line-height:1.75;color:rgba(19,31,54,.85);margin-bottom:1rem}
.body.sm{font-size:.94rem}
.body.inv{color:rgba(248,245,238,.86)} .body.inv.soft{color:rgba(248,245,238,.7)}
.head{margin-bottom:2rem}
h2{font-size:clamp(1.9rem,4vw,3rem)} h2.big{font-size:clamp(2.2rem,6vw,3.75rem);margin-bottom:1rem}
.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.25em;text-transform:uppercase;color:var(--mustard);margin-bottom:1rem}
.eyebrow.red{color:var(--red)}

/* top bar */
.topbar{position:sticky;top:0;z-index:40;background:rgba(19,31,54,.92);backdrop-filter:blur(8px);border-bottom:1px solid rgba(247,201,43,.3)}
.topbar-inner{max-width:72rem;margin:0 auto;padding:0 1.25rem;height:3.5rem;display:flex;align-items:center;gap:1rem}
.brand img{height:2.2rem}
.subnav{flex:1;overflow-x:auto;scrollbar-width:none}
.subnav::-webkit-scrollbar{display:none}
.subnav ul{display:flex;gap:.25rem;font-size:.86rem}
.subnav a{display:inline-block;white-space:nowrap;padding:.35rem .75rem;border-radius:999px;font-weight:700;color:rgba(248,245,238,.8);transition:color .2s,background-color .2s}
.subnav a:hover{color:var(--mustard)}
.subnav a.is-active{background:var(--mustard);color:var(--navy)}

/* bands & shapes */
section{position:relative}
.band{overflow:hidden;padding:5rem 0}
.band-mustard{background:var(--mustard);color:var(--navy)}
.band-navy{background:var(--navy);color:var(--cream)}
.band-red{background:var(--red);color:var(--cream)}
.band-cream-dark{background:var(--cream-dark)}
.diag{clip-path:polygon(0 3vw,100% 0,100% 100%,0 100%);margin-top:-2vw;padding-top:calc(5rem + 3vw)}
.diag-up{clip-path:polygon(0 0,100% 3vw,100% 100%,0 100%);margin-top:-2vw;padding-top:calc(5rem + 3vw)}
.blob{position:absolute;border-radius:999px;filter:blur(48px);pointer-events:none}
.b-red{background:rgba(220,47,38,.28)} .b-mustard{background:rgba(247,201,43,.2)}
.pattern{position:absolute;inset:0;pointer-events:none}
.dots{background-image:radial-gradient(currentColor 1px,transparent 1px);background-size:18px 18px;opacity:.12}
.dots.faint{opacity:.08}
.checker{background-image:linear-gradient(45deg,rgba(19,31,54,.05) 25%,transparent 25%,transparent 75%,rgba(19,31,54,.05) 75%);background-size:26px 26px;opacity:.6}
.sparkle,.star{position:absolute;user-select:none;pointer-events:none}
.sparkle{top:5rem;right:32%;font-size:2.4rem;color:rgba(247,201,43,.4);animation:float 6s ease-in-out infinite}
.star{top:4rem;right:3rem;font-size:3rem;color:rgba(247,201,43,.3);animation:float 8s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(6deg)}}

/* reveal */
.reveal{opacity:0;transform:translateY(22px)}
.reveal.in{animation:rise .6s cubic-bezier(.2,.7,.3,1) forwards;animation-delay:var(--d,0s)}
.reveal.d1{--d:.12s}
@keyframes rise{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none}.reveal.in{animation:none}
  .sparkle,.star{animation:none}html{scroll-behavior:auto}
}

/* frames */
.frame{border-radius:1rem;overflow:hidden;border:2px solid rgba(19,31,54,.15);transition:transform .35s ease}
.frame .fig{width:100%;height:100%;object-fit:cover;background:var(--cream-dark);}
.frame .fig.contain{object-fit:contain;}
.frame-hero{border-color:rgba(247,201,43,.45);box-shadow:8px 8px 0 0 var(--red);border-radius:1.25rem}
.frame-hero:hover{transform:scale(1.02)}
.frame-mustard{box-shadow:4px 4px 0 0 var(--mustard)}
.frame-blue{box-shadow:5px 5px 0 0 var(--blue)}
.frame-book{box-shadow:7px 7px 0 0 var(--mustard);transform:rotate(-2deg)}
.frame-standout{border-color:rgba(247,201,43,.4);box-shadow:6px 6px 0 0 var(--red);transform:rotate(1deg);width:100%}
.frame-thin{border-color:rgba(19,31,54,.1);border-radius:.65rem}
.frame-mustard:hover,.frame-blue:hover,.frame-book:hover,.frame-standout:hover,.frame-thin:hover{transform:rotate(0) translateY(-4px) scale(1.02)}
.tilt-frame{transform:rotate(-1.5deg)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.35rem;border-radius:999px;font-weight:800;font-size:.9rem;transition:transform .2s,box-shadow .2s,background-color .2s,color .2s}
.btn-mustard{background:var(--mustard);color:var(--navy);box-shadow:3px 3px 0 0 var(--red)}
.btn-mustard:hover{transform:translateY(-2px);box-shadow:5px 5px 0 0 var(--red)}
.btn-navy{background:var(--navy);color:var(--cream);box-shadow:3px 3px 0 0 var(--mustard);margin-top:1.25rem}
.btn-navy:hover{transform:translateY(-2px);box-shadow:5px 5px 0 0 var(--mustard)}
.btn-cream{background:var(--cream);color:var(--red);box-shadow:5px 5px 0 0 var(--navy);padding:.9rem 2rem;font-weight:900;margin-top:.5rem}
.btn-cream:hover{transform:translateY(-3px);background:var(--mustard);color:var(--navy);box-shadow:8px 8px 0 0 var(--navy)}
.btn-ghost{border:2px solid rgba(248,245,238,.4)}
.btn-ghost:hover{border-color:var(--mustard);color:var(--mustard)}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.btn-red{background:var(--red);color:var(--cream);box-shadow:3px 3px 0 0 var(--mustard)}
.btn-red:hover{transform:translateY(-2px);box-shadow:5px 5px 0 0 var(--mustard)}
.donate-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 1.25rem;margin-top:3rem;text-align:center}
.donate-cta p{margin:0;font-weight:700;font-size:1.02rem}
.donate-cta .hand{font-weight:600}
.donate-cta.inv p{color:rgba(248,245,238,.86)}
.donate-cta .btn{margin-top:0}

/* hero */
.hero{background:var(--navy);color:var(--cream);overflow:hidden}
.hero-grid{display:grid;gap:2.5rem;align-items:center;padding-top:4rem;padding-bottom:5rem}
.hero h1{font-size:clamp(2.2rem,6vw,3.75rem);margin-bottom:1.25rem}
.lede{font-size:1.15rem;color:rgba(248,245,238,.88)}
.mark{background:rgba(247,201,43,.2);padding:.15rem .3rem}
@media(min-width:1024px){.hero-grid{grid-template-columns:1.2fr 1fr;padding-top:6rem;padding-bottom:6rem}}

/* intro */
.intro-grid{display:grid;gap:2.5rem;padding-top:3.5rem;padding-bottom:4rem}
@media(min-width:1024px){.intro-grid{grid-template-columns:1fr 1fr}}
.dropcap::first-letter{font-family:'Playfair Display',serif;font-size:3.8rem;font-weight:900;color:var(--red);float:left;margin-right:.6rem;line-height:.82}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.pair.mt{margin-top:1rem}

/* stats */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
@media(min-width:768px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{position:relative;background:var(--cream);border:2px solid rgba(19,31,54,.15);border-radius:1rem;padding:1.15rem;box-shadow:4px 4px 0 0 var(--navy);transition:transform .3s,box-shadow .3s;overflow:hidden}
.stat:hover{transform:rotate(0) translateY(-6px)!important;box-shadow:7px 7px 0 0 var(--navy)}
.stat-icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:var(--navy);color:var(--mustard);margin-bottom:.75rem;transition:transform .3s}
.stat:hover .stat-icon{transform:scale(1.1) rotate(-6deg)}
.stat-value,.stat-suffix{font-family:'Playfair Display',serif;font-size:2.1rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.stat-value{color:var(--red)} .stat-suffix{color:var(--navy)}
.stat-label{display:block;font-size:.8rem;font-weight:700;color:rgba(19,31,54,.7);margin-top:.55rem}
.stat-underline{position:absolute;bottom:0;left:1.15rem;right:1.15rem;height:3px;border-radius:999px;background:var(--mustard);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.stat:hover .stat-underline{transform:scaleX(1)}

/* recap */
.recap{padding-top:3.5rem;padding-bottom:4rem}
.recap-head{display:flex;flex-direction:column;gap:1.25rem;justify-content:space-between;margin-bottom:2rem}
@media(min-width:768px){.recap-head{flex-direction:row;align-items:flex-end}}
.filters{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{padding:.4rem .9rem;border-radius:999px;font-size:.75rem;font-weight:800;border:2px solid rgba(19,31,54,.2);background:transparent;color:rgba(19,31,54,.7);transition:.2s}
.chip:hover{border-color:rgba(19,31,54,.5)}
.chip.is-active{background:var(--navy);color:var(--cream);border-color:var(--navy)}
.months{display:flex;flex-direction:column;gap:3rem}
.month{display:grid;gap:1rem}
@media(min-width:768px){.month{grid-template-columns:110px 1fr;gap:2rem}.month-tag-col{position:sticky;top:5rem;align-self:start}}
.month-tag{display:inline-block;background:var(--navy);color:var(--cream);padding:.5rem .75rem;border-radius:.6rem;box-shadow:3px 3px 0 0 var(--mustard);transform:rotate(-2deg)}
.month-name{font-family:'Playfair Display',serif;font-size:1.35rem;font-weight:900;line-height:1}
.month-year{font-size:.62rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--mustard)}
.month-items{display:flex;flex-direction:column;gap:1rem;border-left:2px dashed rgba(19,31,54,.2);padding-left:1.35rem}
@media(min-width:768px){.month-items{padding-left:2rem}}
.item{position:relative}
.dot{position:absolute;left:-1.7rem;top:1.6rem;width:.85rem;height:.85rem;border-radius:999px;box-shadow:0 0 0 4px var(--cream)}
@media(min-width:768px){.dot{left:-2.4rem}}
.dot-report{background:var(--blue)}.dot-gathering{background:var(--mustard)}
.dot-success{background:var(--green)}.dot-campaign{background:var(--red)}
.card{background:var(--white);border:2px solid rgba(19,31,54,.1);border-radius:.85rem;padding:1.35rem;transition:transform .3s,box-shadow .3s,border-color .3s}
.card:hover{transform:translateY(-4px);border-color:rgba(19,31,54,.25);box-shadow:6px 6px 0 0 rgba(19,31,54,.12)}
.card h3{font-size:1.2rem;margin-bottom:.5rem;transition:color .2s}
.card:hover h3{color:var(--red)}
.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:.25rem .6rem;border-radius:999px;border:1px solid;margin-bottom:.75rem}
.badge-report{border-color:var(--blue);color:var(--blue)}
.badge-gathering{border-color:var(--mustard);color:var(--navy)}
.badge-success{border-color:var(--green);color:var(--green)}
.badge-campaign{border-color:var(--red);color:var(--red)}
.watch{display:inline-block;margin-top:.6rem;font-weight:800;font-size:.88rem;color:var(--red);text-decoration:underline;transition:transform .2s}
.watch:hover{transform:translateX(4px)}
.empty{text-align:center;color:rgba(19,31,54,.6);font-weight:700}

/* standouts */
.standout{display:grid;gap:2rem;align-items:start;border-top:1px solid rgba(248,245,238,.15);padding-top:2rem;margin-top:2rem}
@media(min-width:1024px){.standout{grid-template-columns:1fr 20rem}}
.standout h3{font-size:clamp(1.4rem,2.6vw,1.9rem);color:var(--mustard);margin-bottom:1rem;display:flex;gap:.75rem;align-items:flex-start}
.num{flex:0 0 2rem;width:2rem;height:2rem;border-radius:999px;background:var(--red);color:var(--cream);font-family:'Inter',sans-serif;font-size:.85rem;display:flex;align-items:center;justify-content:center;margin-top:.35rem}

/* book */
.book{display:grid;gap:2rem;align-items:start;padding-top:4rem;padding-bottom:4rem}
@media(min-width:1024px){.book{grid-template-columns:16rem 1fr}}
.book h2{font-size:clamp(1.5rem,3vw,2.25rem);margin-bottom:1rem}

/* media */
.media{display:grid;gap:1rem}
@media(min-width:640px){.media{grid-template-columns:1fr 1fr}}
.media-card{display:block;text-decoration:none;color:inherit;height:100%;background:var(--white);border:2px solid rgba(19,31,54,.1);border-radius:.85rem;padding:1.25rem;transition:transform .3s,box-shadow .3s}
.media-card:hover{transform:rotate(0) translateY(-6px);box-shadow:6px 6px 0 0 var(--red)}
.media-title{font-family:'Playfair Display',serif;font-size:1.08rem;font-weight:700;line-height:1.35}

/* resilience */
.resilience{padding-top:4rem;padding-bottom:4rem}
.trio{display:grid;gap:1rem;margin-bottom:2.5rem}
@media(min-width:640px){.trio{grid-template-columns:repeat(3,1fr)}}
.res-grid{display:grid;gap:2.5rem}
@media(min-width:1024px){.res-grid{grid-template-columns:1fr 1fr}}
blockquote{position:relative;background:rgba(247,201,43,.25);border-left:4px solid var(--mustard);border-radius:0 .85rem .85rem 0;padding:2rem 1.25rem 1.25rem;margin:0 0 1.25rem;transition:transform .3s}
blockquote:hover{transform:translateY(-4px)}
blockquote p{font-style:italic;line-height:1.7}
blockquote footer{font-size:.85rem;font-weight:800;color:rgba(19,31,54,.6);margin-top:.75rem}
.qmark{position:absolute;top:.1rem;left:1rem;font-family:'Playfair Display',serif;font-size:3rem;color:rgba(220,47,38,.4);line-height:1}

.pagefoot{background:var(--navy);color:rgba(248,245,238,.6);font-size:.85rem;padding:2rem 1rem;text-align:center}

.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}
.srclink{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:800;padding:.4rem .75rem;border-radius:999px;border:2px solid rgba(19,31,54,.15);color:var(--navy);text-decoration:none;transition:color .2s,border-color .2s}
.srclink:hover{color:var(--red);border-color:var(--red)}
.srclink-dark{border-color:rgba(247,243,233,.25);color:var(--cream)}
.srclink-dark:hover{color:var(--mustard);border-color:var(--mustard)}
.srclink-inline{display:inline-flex;align-items:center;gap:.35rem;margin-top:.75rem;font-size:.75rem;font-weight:800;color:var(--red)}

.ilink{color:var(--red,#c8102e);font-weight:600;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:rgba(200,16,46,.45)}
.ilink:hover{text-decoration-color:currentColor}
.ilink-light{color:var(--mustard,#e3a72f);text-decoration-color:rgba(227,167,47,.5)}

/* language switcher */
.langswitch{flex:0 0 auto;display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;
  padding:.35rem .8rem;border-radius:999px;border:2px solid rgba(247,201,43,.45);
  font-size:.8rem;font-weight:800;color:var(--mustard);transition:background-color .2s,color .2s}
.langswitch:hover{background:var(--mustard);color:var(--navy)}
