@import url('/tokens.css');
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media(min-width:820px){html{scroll-padding-top:112px}}
body{margin:0;background:var(--color-bg);color:var(--color-ink);font:var(--weight-body) var(--step-0)/var(--leading-body) var(--font-sans);font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;max-width:100%;height:auto}
p,li,dd{text-wrap:pretty}
figure,h1,h2,h3,p,ul,dl,dd,address{margin:0;padding:0}
ul{list-style:none}address{font-style:normal}
a{color:inherit;text-decoration-line:underline;text-decoration-color:var(--link-underline);text-decoration-thickness:var(--link-underline-width);text-underline-offset:.22em;transition:color var(--dur-fast) var(--ease-out),text-decoration-color var(--dur-fast) var(--ease-out)}
@media(hover:hover){a:hover{color:var(--link-hover);text-decoration-color:var(--link-hover)}}
:focus-visible{outline:var(--focus-ring);outline-offset:3px}
::selection{background:var(--color-select)}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip-link{position:fixed;top:0;left:var(--gutter-safe);z-index:99;background:var(--color-ink);color:var(--color-on-ink);padding:12px 16px;transform:translateY(-120%)}
.skip-link:focus{transform:none}
.wrap{width:calc(100% - var(--gutter-safe)*2);max-width:var(--max-width);margin-inline:auto}
.muted{color:var(--color-muted)}.small{font-size:var(--step--1)}

/* type: one fluid scale, weight does the hierarchy work */
h1,h2,h3{font-weight:var(--weight-heading);letter-spacing:var(--tracking-heading);line-height:var(--leading-tight);text-wrap:balance}
h1{font-size:var(--step-5);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);line-height:1}
h2{font-size:var(--step-4);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);line-height:1.02}
.h-md{font-size:var(--step-3);font-weight:var(--weight-heading);letter-spacing:var(--tracking-heading);margin-bottom:.7em}
h3{font-size:var(--step-1);letter-spacing:-.01em;line-height:1.25}
.h-sm{font-size:var(--step--1);font-weight:var(--weight-heading);letter-spacing:var(--tracking-caps);text-transform:uppercase;line-height:1.2;color:var(--color-ink);margin-bottom:1.5rem}
.eyebrow{font-size:var(--step--1);font-weight:var(--weight-heading);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-brand-strong);margin-bottom:1.5rem}
.lede{font-size:var(--step-1);line-height:var(--leading-lede);max-width:32em;color:var(--color-ink);text-wrap:pretty}
h2+.lede{margin-top:1.25rem}
.arrow,.arrow-down{font-weight:var(--weight-strong);white-space:nowrap}
.arrow::after,.arrow-down::after{content:'\2192';display:inline-block;margin-left:.35em;transition:transform var(--dur-base) var(--ease-out)}
.arrow-down::after{content:'\2193'}
@media(hover:hover){.arrow:hover::after{transform:translateX(4px)}.arrow-down:hover::after{transform:translateY(3px)}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--btn-height);padding:.8rem 1.6rem;background:var(--btn-bg);color:var(--btn-fg);font-weight:var(--weight-strong);text-decoration:none;border:2px solid var(--btn-bg);border-radius:var(--btn-radius);line-height:1.2;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
@media(hover:hover){.btn:hover{background:var(--btn-bg-hover);border-color:var(--btn-bg-hover);color:var(--btn-fg)}}
.btn:active,.menu-toggle:active,.year-btn:active{transform:var(--press)}
.btn-quiet{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}
@media(hover:hover){.btn-quiet:hover{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-on-ink)}}
.btn-ink{background:var(--btn-ink-bg);border-color:var(--btn-ink-bg);color:var(--btn-ink-fg)}
@media(hover:hover){.btn-ink:hover{background:var(--color-bg);border-color:var(--color-bg);color:var(--color-ink)}}
.btn-small{min-height:var(--btn-height-small);padding:.5rem 1.15rem;font-size:.95rem}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;margin-top:2.25rem}

/* header */
.site-header{position:sticky;top:0;z-index:20;background:var(--color-bg);border-top:6px solid var(--color-brand);border-bottom:1px solid var(--color-line)}
.bar{display:flex;align-items:center;gap:1.5rem;min-height:72px}
.brand{display:block;width:96px;flex-shrink:0}
.brand img{width:100%;height:auto;mix-blend-mode:multiply} /* opaque PNG: no white box if it ever sits on cream */
.nav-desktop{display:none;margin-left:auto}
.nav-list{display:flex;align-items:center;gap:clamp(.9rem,1.6vw,1.75rem)}
.nav-item{position:relative}
.nav-row{display:flex;align-items:center}
.nav-link{position:relative;padding:.6rem 0;border-radius:3px;text-decoration:none;font-weight:var(--weight-ui);white-space:nowrap}
.nav-link:focus-visible{outline-offset:6px}
.nav-link::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--color-brand);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base) var(--ease-out)}
.nav-link[aria-current]::after{transform:scaleX(1)}
@media(hover:hover){.nav-link:hover::after{transform:scaleX(1)}}
.sub-toggle,.m-toggle{display:inline-flex;align-items:center;justify-content:center;width:28px;min-height:44px;padding:0;background:none;border:0;border-radius:var(--radius-sm);color:var(--color-ink);cursor:pointer}
.chev{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform var(--dur-fast) var(--ease-out)}
[aria-expanded=true]>.chev{transform:translateY(2px) rotate(225deg)}
.subnav{position:absolute;top:100%;left:-1rem;z-index:30;min-width:15rem;padding:.5rem;background:var(--color-bg);border:1px solid var(--color-line);border-top:3px solid var(--color-brand);border-radius:var(--radius-sm);box-shadow:var(--shadow-lift)}
.nav-item:last-child .subnav{left:auto;right:-1rem}
.subnav[hidden]{display:none}
.subnav a{display:block;padding:.65rem .85rem;border-radius:3px;text-decoration:none;font-weight:var(--weight-ui);white-space:nowrap}
.subnav a[aria-current=page]{color:var(--color-brand-strong)}
@media(hover:hover){.subnav a:hover{background:var(--color-bg-alt);color:var(--color-ink)}}
.btn-donate{white-space:nowrap;letter-spacing:.03em}
.bar-actions{display:flex;align-items:center;gap:.75rem;margin-left:auto}
.menu-toggle{display:inline-flex;align-items:center;gap:.55rem;min-height:44px;padding:.4rem .9rem;background:transparent;border:1px solid var(--color-line);border-radius:var(--radius-sm);font:inherit;font-weight:var(--weight-ui);color:var(--color-ink);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
@media(hover:hover){.menu-toggle:hover{border-color:var(--color-ink)}}
.menu-icon{position:relative;width:16px;height:2px;background:currentColor;transition:background-color var(--dur-fast) var(--ease-out)}
.menu-icon::before,.menu-icon::after{content:'';position:absolute;left:0;width:16px;height:2px;background:currentColor;transition:transform var(--dur-base) var(--ease-out)}
.menu-icon::before{transform:translateY(-5px)}.menu-icon::after{transform:translateY(5px)}
.menu-toggle[aria-expanded=true] .menu-icon{background:transparent}
.menu-toggle[aria-expanded=true] .menu-icon::before{transform:rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-icon::after{transform:rotate(-45deg)}
.nav-mobile{position:absolute;left:0;right:0;top:100%;border-top:1px solid var(--color-line);background:var(--color-bg);box-shadow:var(--shadow-lift)}
.nav-mobile[hidden]{display:none}
.motion .nav-mobile:not([hidden]){animation:menu-in var(--dur-fast) var(--ease-out) both}
.motion .nav-mobile.is-closing{animation:menu-out var(--dur-fast) var(--ease-out) both}
@keyframes menu-in{from{opacity:0;transform:translateY(-6px)}}
@keyframes menu-out{to{opacity:0;transform:translateY(-6px)}}
.nav-mobile .wrap{display:grid;padding-block:.25rem 1.25rem;max-height:calc(100dvh - 90px);overflow-y:auto;overscroll-behavior:contain}
.m-row{display:flex;align-items:stretch;border-bottom:1px solid var(--color-line)}
.m-row a{flex:1;padding:1rem 0;text-decoration:none;font-size:var(--step-2);font-weight:var(--weight-heading);letter-spacing:var(--tracking-heading)}
.m-row a[aria-current]{color:var(--color-brand-strong)}
.m-toggle{width:56px}
.m-sub{padding:.25rem 0 .75rem 1rem;border-bottom:1px solid var(--color-line)}
.m-sub[hidden]{display:none}
.m-sub a{display:block;padding:.7rem 0;text-decoration:none;font-weight:var(--weight-ui)}
.m-sub a[aria-current=page]{color:var(--color-brand-strong)}
.m-donate{width:100%;margin-top:1.25rem}
.motion .nav-mobile:not([hidden]):not(.is-closing) .m-item{animation:menu-item var(--dur-base) var(--ease-out) both}
@keyframes menu-item{from{opacity:0;transform:translateY(10px)}}
.motion .nav-mobile:not([hidden]):not(.is-closing) .m-item:nth-child(2){animation-delay:30ms}.motion .nav-mobile:not([hidden]):not(.is-closing) .m-item:nth-child(3){animation-delay:60ms}.motion .nav-mobile:not([hidden]):not(.is-closing) .m-item:nth-child(4){animation-delay:90ms}
@media(max-width:480px){.bar{gap:.75rem}.bar-actions{gap:.5rem}.bar-actions .btn-small{padding-inline:.85rem;letter-spacing:.02em}.menu-toggle{padding-inline:.65rem}}
@media(max-width:360px){.bar{gap:.5rem}.bar-actions{gap:.4rem}.menu-toggle{padding-inline:.6rem}.btn-small{padding-inline:.8rem}}
/* five labelled dropdowns plus Donate need about 1060px, so the full bar starts at 1120 (the phone/tablet menu covers the rest) */
@media(min-width:820px){.brand{width:124px}.bar{min-height:84px}}
@media(min-width:1120px){.nav-desktop{display:block}.menu-toggle,.nav-mobile{display:none}.bar-actions{margin-left:1.75rem}}

/* section rhythm: generous between ideas, tight inside them */
.section{padding-block:var(--section)}
.section-tight{padding-block:clamp(24px,4vw,56px) clamp(56px,8vw,112px)}
.tint{background:var(--color-bg-alt)}

/* page heads (inner pages): asymmetric, title left, lede bottom-right */
.page-head{padding-block:clamp(48px,9vw,128px) clamp(32px,5vw,72px)}
.page-head h1{font-size:var(--step-6);letter-spacing:-.04em;line-height:.95}
.page-head-grid{display:grid;gap:1.75rem}
.page-head-grid>*{min-width:0}
.page-head-aside .lede{max-width:28em}
.pills{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.75rem}
.pills a{display:inline-flex;align-items:center;min-height:44px;padding:.4rem 1.05rem;border:1px solid var(--color-ink-line);border-radius:999px;text-decoration:none;font-weight:var(--weight-strong);font-size:var(--step--1);color:var(--color-ink);white-space:nowrap}
@media(hover:hover){.pills a:hover{border-color:var(--color-ink);background:var(--color-bg-alt)}}
@media(max-width:759px){.pills{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(var(--gutter-safe) * -1);padding-inline:var(--gutter-safe);padding-bottom:.4rem;scrollbar-width:thin}.pills a{flex:none}}

/* the one placeholder component: content KIK has not supplied yet */
.placeholder{padding:1.25rem 1.5rem;background:var(--color-bg-alt);border:2px dashed var(--color-dashed);border-radius:var(--radius-sm);max-width:40rem}
.placeholder p{font-weight:var(--weight-strong);color:var(--color-muted)}
@media(min-width:960px){.page-head-grid{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:clamp(40px,5vw,80px);align-items:start}.page-head-aside{padding-top:clamp(8px,1.6vw,28px)}}

/* hero: a full-measure headline, then lede and the progress stage offset beneath it */
.hero{padding-block:clamp(32px,3.4vw,48px) clamp(56px,8vw,112px)}
.eyebrow-year{white-space:nowrap}
.eyebrow-year::before{content:'\00b7';margin-inline:.6em}
@media(max-width:480px){.eyebrow-year{display:block}.eyebrow-year::before{content:none}}
.hero h1{font-size:var(--step-5);line-height:.98;letter-spacing:-.035em}
.hero h1>span{display:block;text-wrap:pretty}
@media(max-width:480px){.hero h1{font-size:clamp(2.1rem,9.2vw,2.6rem)}}
.nw{white-space:nowrap}
.h1-b{color:var(--color-brand-display);margin-top:.08em}
.hero-copy{margin-top:clamp(28px,4vw,56px)}
.eyebrow-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-bottom:1.5rem}
.eyebrow-row .eyebrow{margin-bottom:0}
.year-logo{display:block;width:4.5rem;height:auto;margin-bottom:1rem}
.hero-copy .lede{max-width:30em}
.hero-photo{margin-top:clamp(40px,6vw,80px);overflow:hidden;border-radius:var(--radius-md);aspect-ratio:4/3;background:var(--color-bg-alt)}
.hero-photo img{width:100%;height:100%;object-fit:cover}
@media(min-width:760px){.hero-photo{aspect-ratio:21/8}}
@media(min-width:1000px){
 .hero h1{font-size:clamp(3.6rem,1rem + 4vw,4.75rem);max-width:none}
 .year-logo{float:right;width:clamp(11rem,16vw,15rem);margin:0 0 1rem 2rem}
}

/* progress stage: a roomy, self-contained slot (the animated scene replaces .progress-body) */
.money .progress-stage{margin-top:clamp(40px,6vw,72px)}
.progress-stage{container-type:inline-size;position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(380px,38vw,480px);padding:clamp(24px,3vw,40px);background:var(--color-bg-alt);border-radius:var(--radius-lg);overflow:hidden;isolation:isolate}
.stage-label{position:absolute;top:clamp(24px,3vw,40px);left:clamp(24px,3vw,40px);font-size:var(--step--1);font-weight:var(--weight-heading);letter-spacing:var(--tracking-caps);text-transform:uppercase;line-height:1.2}
.progress-body{display:grid;gap:1.25rem;padding-top:calc(var(--step--1) * 1.2 + 1.25rem)}
.progress-raised .num{display:block;font-size:clamp(2.75rem,16cqi,7rem);font-weight:var(--weight-display);color:var(--color-ink);letter-spacing:-.045em;line-height:.9;font-variant-numeric:tabular-nums}
.progress-raised .of{display:block;margin-top:.75rem;font-size:var(--step-0);max-width:22em}
.meter{position:relative;height:14px;background:var(--color-line);border-radius:7px;overflow:hidden}
.meter span{position:absolute;inset:0;background:var(--color-brand);border-radius:7px;transform-origin:left;transform:scaleX(var(--p,0))}
.motion .meter span{animation:grow 1.4s var(--ease-out) .55s both}
.motion .meter:not(.is-seen) span{animation-play-state:paused} /* waits until the meter is on screen (JS adds .is-seen) */
.progress-facts{display:flex;gap:clamp(2rem,4vw,3.5rem)}
.progress-facts div{display:flex;flex-direction:column-reverse}
.progress-facts dt{font-size:var(--step--1);color:var(--color-ink)}
.progress-facts dd{font-size:var(--step-3);font-weight:var(--weight-display);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.progress-body.is-over{padding-top:calc(var(--step--1) * 1.2 + 2.5rem)}
.progress-beaten{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;font:800 var(--step-3)/1 var(--font-sans);letter-spacing:-.03em;color:var(--color-brand-strong)}
.progress-beaten .goal-badge{transform:rotate(-3deg)}
.progress-note{font-size:var(--step--1);color:var(--color-muted);padding-top:1rem;border-top:1px solid var(--color-ink-line)}

/* money */
.money{padding-top:clamp(24px,4vw,48px)}
.money-head{display:grid;gap:2rem;margin-bottom:clamp(48px,7vw,96px)}
.money-head h2{font-size:var(--step-4);max-width:9em}
.side-photo{overflow:hidden;border-radius:var(--radius-md);aspect-ratio:4/3;background:var(--color-bg-alt)}
.side-photo img{width:100%;height:100%;object-fit:cover}
@media(min-width:900px){.money-head.has-photo{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:end}.money-head:not(.has-photo) .money-title{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:end}.money-head:not(.has-photo) .lede{margin:0 0 .4rem}}

/* allocation, "the pour": one cream stage (like the progress stage). The $1.8M figure, then seven rows, one per program.
   A row is the button: numeral, name with its approximate dollars, its slice of the one $1.8M track, and a chevron. Every
   row's track is the whole $1.8M; its fill starts where the previous row's ended (--o) and is its share wide (--p), so the
   seven slices tile the track exactly once, top to bottom: "divided seven ways" is literal. Rows are independent toggles
   (Music open on arrival); an open row pours orange over its slice and grows in place into what its share pays for at each
   school. No rules or boxes inside the stage; grouping is spacing and one caps label.
   Motion tokens: --ease-pour for the entrance (one continuous flow across the track and down the rows), --ease-expand /
   --dur-expand for open/close. */
.alloc-wrap{container-type:inline-size;position:relative;contain:layout paint;margin-bottom:0;padding:clamp(24px,3.5vw,48px) clamp(20px,3vw,40px);background:var(--color-bg-alt);border-radius:var(--radius-lg)}
.alloc-total{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem;margin:0 0 clamp(1.75rem,3.5cqw,2.75rem);font-weight:var(--weight-body)}
.alloc-total-num{font-size:var(--step-5);font-weight:var(--weight-display);letter-spacing:-.045em;line-height:1;font-variant-numeric:tabular-nums}
.alloc-total-of{font-size:var(--step-1);line-height:1.3;color:var(--color-ink)}
.alloc{display:grid;grid-template-columns:minmax(0,1fr)}
.alloc-group{margin:1.6rem 0 .35rem .5rem;font-size:var(--step--1);font-weight:var(--weight-heading);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-brand-strong)}
.alloc-btn{position:relative;display:grid;grid-template-columns:max-content minmax(0,1fr) auto;grid-template-areas:"pct name chev" "bar bar bar";column-gap:.9rem;row-gap:.6rem;align-items:baseline;width:100%;min-height:44px;margin:0;padding:.85rem .5rem;border:0;border-radius:var(--radius-md);background:none;color:var(--color-ink);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--dur-fast) var(--ease-out)}
@media(hover:hover) and (pointer:fine){.alloc-btn:hover{background:color-mix(in oklab,var(--color-bg) 35%,transparent)}}
.alloc-btn:focus-visible{outline:var(--focus-ring);outline-offset:2px;z-index:1}
.alloc-pct{grid-area:pct;min-width:2.35em;font-size:var(--step-3);font-weight:var(--weight-display);letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.alloc-name{grid-area:name;font-size:var(--step-0);font-weight:var(--weight-strong);line-height:1.25}
.alloc-sub{display:block;margin-top:.1rem;font-size:var(--step--1);font-weight:var(--weight-body);color:color-mix(in oklab,var(--color-ink) 70%,transparent);font-variant-numeric:tabular-nums}
/* the track is the whole $1.8M (faint, so the remainder reads as the rest of it); the fill is this row's slice of it */
.alloc-bar{grid-area:bar;position:relative;display:block;height:10px;border-radius:999px;background:color-mix(in oklab,var(--color-ink) 6%,transparent)}
.alloc-fill{position:absolute;top:0;bottom:0;left:calc(var(--o,0) * 100%);width:calc(var(--p) * 100%);border-radius:inherit;background:var(--color-ink);overflow:hidden;clip-path:inset(0 0 0 0 round 999px)}
/* the open row's orange pours over its navy slice left to right (no colour crossfade, so it never passes through brown) */
.alloc-fill::after{content:'';position:absolute;inset:0;border-radius:inherit;background:var(--color-brand);transform:scaleX(0);transform-origin:left center;opacity:0;transition:transform var(--dur-expand) var(--ease-expand),opacity .15s var(--ease-out)}
.is-enhanced .alloc-btn[aria-expanded="true"] .alloc-fill::after{transform:scaleX(1);opacity:1;transition:transform var(--dur-expand) var(--ease-expand),opacity 0s}
.is-enhanced .alloc-btn[aria-expanded="true"] .alloc-pct{color:var(--color-brand-display)}
.alloc-chev{grid-area:chev;align-self:center;width:.6rem;height:.6rem;margin-right:.2rem;border:solid color-mix(in oklab,var(--color-ink) 65%,transparent);border-width:0 2px 2px 0;transform:translateY(-25%) rotate(45deg);transition:transform .3s var(--ease-out),border-color .3s var(--ease-out)}
.is-enhanced .alloc-btn[aria-expanded="true"] .alloc-chev{transform:translateY(25%) rotate(225deg);border-color:var(--color-ink)}
/* the detail: opens in place; height animates through grid rows, so vertical space is child margins (clipped at 0fr), not padding */
.alloc-detail{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--dur-expand) var(--ease-expand)}
.is-enhanced .alloc-detail:not(.is-open){grid-template-rows:0fr}
.detail-in{min-height:0;overflow:hidden;padding:0 .5rem;transition:opacity .3s var(--ease-out) .12s,transform var(--dur-expand) var(--ease-expand)}
.is-enhanced .alloc-detail:not(.is-open) .detail-in{opacity:0;transform:translateY(-6px);transition:opacity .12s linear,transform .4s var(--ease-out)}
.detail-in>:first-child{margin-top:.35rem}
.detail-in>:last-child{margin-bottom:1.6rem}
.split{display:grid;grid-template-columns:minmax(0,1fr);gap:.9rem;margin:0}
.split-row{display:grid;row-gap:.15rem}
.split dt{font-size:var(--step--1);font-weight:var(--weight-ui);color:var(--color-muted);line-height:1.4}
.split dd{margin:0;max-width:36em;font-size:var(--step-0);font-weight:var(--weight-strong);line-height:1.4;color:var(--color-ink)}
.split-covers{display:block;margin-top:.2rem;font-size:var(--step--1);font-weight:var(--weight-body);color:var(--color-muted)}
.detail-about{margin:.9rem 0 0;font-size:var(--step--1);color:var(--color-muted);line-height:1.5;max-width:36em}
/* motion: the pour runs once, when the stage scrolls into view. initAlloc adds will-pour (the hidden state, applied with no
   transition so nothing can be seen collapsing), then is-poured (the reveal), then is-settled from the last slice's
   transitionend, which releases these timings so later toggles respond at once. The reveal is one continuous flow: $1.8M
   runs left to right across the track and down the rows at constant speed (each slice starts at its offset's share of
   --pour-time and takes its own share of it), with each row's text rising just as its slice begins. */
.alloc{--pour-time:1.3s;--pour-lead:60ms}
.alloc-wrap.will-pour:not(.is-poured) .alloc-fill{clip-path:inset(0 100% 0 0 round 999px)}
.alloc-wrap.will-pour:not(.is-poured) .alloc-pct,.alloc-wrap.will-pour:not(.is-poured) .alloc-name,.alloc-wrap.will-pour:not(.is-poured) .alloc-group{opacity:0;transform:translateY(6px)}
.alloc-wrap.will-pour:not(.is-poured) .alloc-chev,.alloc-wrap.will-pour:not(.is-poured) .alloc-bar{opacity:0}
.alloc-wrap.will-pour:not(.is-poured) .detail-in{opacity:0;transform:translateY(6px)}
.alloc-wrap.is-poured:not(.is-settled) .alloc-fill{transition:clip-path calc(var(--p) * var(--pour-time)) linear calc(var(--o,0) * var(--pour-time) + var(--pour-lead))}
.alloc-wrap.is-poured:not(.is-settled) .alloc-pct,.alloc-wrap.is-poured:not(.is-settled) .alloc-name,.alloc-wrap.is-poured:not(.is-settled) .alloc-group{transition:opacity .4s var(--ease-pour) calc(var(--o,0) * var(--pour-time)),transform .4s var(--ease-pour) calc(var(--o,0) * var(--pour-time))}
.alloc-wrap.is-poured:not(.is-settled) .alloc-chev{transition:opacity .4s var(--ease-pour) calc(var(--o,0) * var(--pour-time)),transform .3s var(--ease-out),border-color .3s var(--ease-out)}
/* each row's track arrives with its text, so unpoured rows never read as empty loaders */
.alloc-wrap.is-poured:not(.is-settled) .alloc-bar{transition:opacity .4s var(--ease-pour) calc(var(--o,0) * var(--pour-time))}
.alloc-wrap.is-poured:not(.is-settled) .detail-in{transition:opacity .4s var(--ease-pour) .4s,transform .5s var(--ease-pour) .4s}
@container (min-width:760px){
 /* rows are subgrids of the list grid and share its column gap, so the detail (column 2) starts exactly where the name does */
 .alloc{grid-template-columns:max-content max-content minmax(0,1fr) auto;column-gap:1.25rem}
 .alloc-group{grid-column:1/-1;margin-left:.75rem}
 .alloc-btn{grid-column:1/-1;grid-template-columns:subgrid;grid-template-areas:"pct name bar chev";column-gap:1.25rem;align-items:center;padding:.7rem .75rem}
 .alloc-pct{font-size:clamp(1.9rem,3.2cqw,2.6rem)}
 .alloc-name{font-size:var(--step-1);line-height:1.2}
 .alloc-bar{height:12px}
 .alloc-detail{grid-column:2/-1}
 .detail-in{padding:0 .75rem 0 0}
 .detail-in>:last-child{margin-bottom:1.9rem}
 .split{grid-template-columns:max-content minmax(0,1fr);gap:.7rem 2rem}
 .split-row{grid-template-columns:subgrid;grid-column:1/-1;align-items:baseline}
}

.ways li{border-bottom:1px solid var(--color-line)}
.ways li:first-child{border-top:1px solid var(--color-line)}
.ways a{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1.05rem 0;text-decoration:none;font-size:var(--step-1);font-weight:var(--weight-strong)}
.ways a span{margin-left:auto;font-size:var(--step--1);font-weight:var(--weight-body)}
.ways a::after{content:'\2197';font-weight:var(--weight-body);transition:transform var(--dur-base) var(--ease-out)}
@media(hover:hover){.ways a:hover::after{transform:translate(3px,-3px)}.ways a.is-local:hover::after{transform:translateX(4px)}}
.match p{max-width:30em}
.match .btn{justify-self:start;margin-top:.5rem}

/* home donate band */
.donate-band{background:var(--color-ink);color:var(--color-on-ink);padding-block:clamp(48px,7vw,88px)}
.donate-band-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem 3rem}
.donate-band-ask{font-size:var(--step-3);font-weight:var(--weight-heading);letter-spacing:var(--tracking-heading);line-height:1.15;max-width:22em}
.donate-band-ask strong{font-weight:var(--weight-display)}
.donate-band .btn{border-color:var(--color-on-ink)}

/* home strips */
.strips-section{padding-block:clamp(56px,8vw,112px)}
.strips{display:grid;gap:3rem}
.strip p+p{margin-top:.9rem}
.strip-events{display:grid;gap:1.25rem;margin-bottom:1.5rem}
.strip-events li{display:flex;gap:1.1rem;align-items:center}
.strip-date{display:block;font-size:var(--step--1);color:var(--color-muted)}
.strip-title{font-size:var(--step-1);font-weight:var(--weight-heading);letter-spacing:-.01em}
.strip-venue{display:block;font-size:var(--step--1);color:var(--color-muted)}
@media(min-width:900px){.strips{grid-template-columns:1.6fr 1fr;gap:clamp(32px,5vw,80px)}.strip+.strip{padding-left:clamp(24px,3vw,48px);border-left:1px solid var(--color-line)}}

/* date blocks (events page and home strip) */
.date-block{display:flex;flex-direction:column;align-items:flex-start;line-height:1;font-variant-numeric:tabular-nums}
.db-m{font-size:var(--step--1);font-weight:var(--weight-heading);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-brand-strong)}
.db-d{white-space:nowrap;margin-top:.2rem;font-size:var(--step-5);font-weight:var(--weight-display);letter-spacing:-.05em;color:var(--color-ink)}
.db-d.is-range{font-size:var(--step-4);letter-spacing:-.04em}
.db-w{margin-top:.35rem;font-size:var(--step--1);color:var(--color-muted)}
.date-block.is-mini{flex:0 0 4.75rem;align-items:center;justify-content:center;height:4.75rem;border-radius:14px;background:var(--color-bg-alt)}
.is-mini .db-d,.is-mini .db-d.is-range{margin-top:.1rem;font-size:var(--step-1);letter-spacing:-.03em}
.db-w{display:none}

/* donors: an honor roll */
.honor .h-md{margin-bottom:clamp(24px,3vw,40px)}
.tiers{border-top:3px solid var(--color-ink)}
.donor-tier{display:grid;gap:1.25rem;padding-block:clamp(32px,5vw,56px);border-bottom:1px solid var(--color-line)}
.tier-head h3{font-size:var(--step-2);font-weight:var(--weight-display);letter-spacing:-.02em;color:var(--color-ink)}
.tier-range{margin-top:.4rem;font-size:var(--step--1);font-weight:var(--weight-strong);letter-spacing:.04em;color:var(--color-brand-strong);font-variant-numeric:tabular-nums}
.names{columns:1;column-gap:2.5rem}
.names li{break-inside:avoid;padding-block:.3rem;font-size:var(--step-0)}
@media(min-width:560px){.names{columns:2}}
@media(min-width:900px){
 .donor-tier{grid-template-columns:300px 1fr;gap:3rem}
 .tier-head{position:sticky;top:110px;align-self:start}
 .names{columns:3}
}

/* in-kind donors, event sections */
.in-kind{padding-top:clamp(40px,6vw,72px)}
.event-section{padding-top:clamp(28px,4vw,48px)}
.event-section .past{margin-top:clamp(32px,5vw,56px)}

/* sponsors */
.sponsors-head{display:grid;gap:1rem;margin-bottom:clamp(32px,5vw,56px)}
@media(min-width:900px){.sponsors-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:3rem}.sponsors-head .h-md{margin:0}}
.partner-list{list-style:none;margin:0 0 clamp(32px,5vw,56px);padding:1.25rem 0 0;border-top:3px solid var(--color-ink);display:grid;gap:.5rem 2rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));font-weight:var(--weight-strong)}
.partner-list a{display:inline-flex;align-items:center;min-height:44px}
.partner-list li{display:flex;align-items:center;min-height:44px}
.partner-join{padding-top:clamp(24px,3vw,36px);border-top:1px solid var(--color-line);max-width:46rem}
.partner-join h3{font-size:var(--step-1);margin-bottom:.5rem}
.level-list,.level-all{list-style:none;margin:1rem 0;padding:0}
.level-list li{display:grid;grid-template-columns:7rem 5.5rem 1fr;gap:.25rem 1rem;padding-block:.6rem;border-bottom:1px solid var(--color-line)}
.level-amount{color:var(--color-brand-strong);font-weight:var(--weight-strong)}
.level-all-head{font-weight:var(--weight-strong);margin-bottom:0}
.level-all li{padding-block:.2rem}
@media(max-width:559px){.level-list li{grid-template-columns:6rem 1fr}.level-list li span:last-child{grid-column:1/-1}}

/* events */
.split-wide{display:grid;gap:3rem}
@media(min-width:900px){.split-wide.has-photo{grid-template-columns:1.4fr .6fr;gap:clamp(40px,6vw,96px);align-items:start}}
.events{border-top:3px solid var(--color-ink)}
.event{display:grid;grid-template-columns:auto 1fr;gap:1rem 1.75rem;padding-block:clamp(28px,4vw,48px);border-bottom:1px solid var(--color-line);align-items:start}
.event .date-block{min-width:5.5rem}
.event-body h3{font-size:var(--step-3);font-weight:var(--weight-display);letter-spacing:-.025em;margin-bottom:.5rem}
.event-meta{font-weight:var(--weight-strong)}
.event-body p{max-width:34em}
.event-body p+p{margin-top:.6rem;color:var(--color-muted)}
.event-cta{grid-column:2;justify-self:start}
@media(min-width:760px){.event{grid-template-columns:11rem 1fr auto;align-items:start}.event-cta{grid-column:auto;margin-top:.5rem}}
.empty{font-size:var(--step-1);max-width:30em}
.past{margin-top:clamp(64px,9vw,120px)}
.past li{display:grid;grid-template-columns:11rem 1fr auto;gap:1rem 1.75rem;align-items:baseline;padding-block:1rem;border-top:1px solid var(--color-line)}
.past li:last-child{border-bottom:1px solid var(--color-line)}
.past-when{color:var(--color-muted);font-variant-numeric:tabular-nums}
.past-title{font-weight:var(--weight-strong)}
@media(max-width:559px){.past li{grid-template-columns:1fr;gap:.2rem}}

/* about */
.schools-intro{font-size:var(--step-1);max-width:32em;margin-bottom:clamp(32px,4vw,56px)}
.school-list{display:grid;border-top:3px solid var(--color-ink)}
.school-list a{display:grid;grid-template-columns:auto 1fr;grid-template-areas:'g g' 'n go';align-items:baseline;gap:.25rem 1rem;padding-block:clamp(24px,4vw,48px);text-decoration:none;border-bottom:1px solid var(--color-line)}
.school-grades{grid-area:g;font-size:var(--step-6);font-weight:var(--weight-display);letter-spacing:-.05em;line-height:.9;color:var(--color-brand-display);transition:transform var(--dur-base) var(--ease-out);transform-origin:left bottom}
.school-name{grid-area:n;font-size:var(--step-2);font-weight:var(--weight-heading);letter-spacing:-.02em}
.school-go{grid-area:go;justify-self:end;font-size:var(--step--1);font-weight:var(--weight-strong);color:var(--color-muted)}
.school-go::after{content:' \2197'}
@media(hover:hover){.school-list a:hover{color:var(--color-ink)}.school-list a:hover .school-grades{transform:translateY(-4px)}.school-list a:hover .school-go{color:var(--color-brand-strong)}}
@media(min-width:760px){.school-list{grid-template-columns:1fr 1fr}.school-list li:first-child a{padding-right:clamp(24px,4vw,56px)}.school-list li+li a{padding-left:clamp(24px,4vw,56px);border-left:1px solid var(--color-line)}}
.about-cols{display:grid;gap:3rem}
@media(min-width:900px){.about-cols{grid-template-columns:1.2fr 1fr;gap:clamp(48px,7vw,112px)}}
.prose{max-width:38em}
.prose p{font-size:var(--step-1);line-height:var(--leading-lede)}
.prose p,.prose li{max-width:66ch}
.contact-grid{display:grid;gap:1.5rem}
.contact-big{font-size:var(--step-2);font-weight:var(--weight-heading);letter-spacing:-.015em;line-height:1.45}
.site-contact p+p{margin-top:1.25rem}
@media(min-width:900px){.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:3rem}}

/* footer: brand-orange field, ink type */
.site-footer{background:var(--color-bg);color:var(--color-ink);border-top:6px solid var(--color-brand);padding-block:clamp(48px,7vw,96px) calc(clamp(32px,4vw,56px) + env(safe-area-inset-bottom,0px));font-size:.95rem;overflow:hidden}
.foot p:has(a){line-height:1.75}
.site-footer a{text-decoration-color:var(--color-brand);text-decoration-thickness:2px}
.site-footer .foot a{text-decoration-color:transparent}
@media(hover:hover){.site-footer a:hover{color:var(--color-brand-strong)}.site-footer .foot a:hover{text-decoration-color:var(--color-brand)}}
.foot-kids{color:var(--color-brand-display)}
.foot-sign{font-size:clamp(2.2rem,1rem + 4.5vw,5rem);font-weight:var(--weight-display);letter-spacing:-.055em;line-height:.88;margin-bottom:clamp(32px,4vw,56px);text-wrap:balance;max-width:14ch}
.foot{display:grid;gap:1.75rem;padding-top:clamp(24px,3vw,36px);border-top:1px solid var(--color-line)}
.foot-name{font-weight:var(--weight-display);font-size:var(--step-1);letter-spacing:-.02em}
.foot-label{font-size:var(--step--1);font-weight:var(--weight-heading);letter-spacing:var(--tracking-caps);text-transform:uppercase;margin-bottom:.35rem}
@media(min-width:600px){.foot{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.foot{grid-template-columns:1.6fr 1fr 1fr 1fr}}

/* motion */
@keyframes rise{from{opacity:0;transform:translateY(24px)}}
@keyframes grow{from{transform:scaleX(0)}}
.motion [data-load]{animation:rise var(--dur-reveal) var(--ease-out) both;animation-delay:calc(var(--i,0)*90ms + 60ms)}
/* Content is fully visible by default. JS adds .pre-reveal only to below-the-fold elements, then .is-in as they scroll into view. */
.pre-reveal{opacity:0;transform:translateY(24px)}
.pre-reveal:not(.is-in){scroll-margin-top:24px}
.pre-reveal.is-in{opacity:1;transform:none;transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out)}
@media print{.pre-reveal,.pre-reveal li{opacity:1!important;transform:none!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media(max-width:759px){
 .event{grid-template-columns:1fr;gap:.9rem}
 .event .date-block{flex-direction:row;align-items:baseline;gap:.6rem;min-width:0}
 .event .db-d,.event .db-d.is-range{margin:0;font-size:var(--step-4)}
 .event-cta{grid-column:auto}
}

:root{--lp-numeral-font:var(--font-sans)}
/* ---------- liquid progress component ---------- */
.lp{position:relative;margin-top:clamp(20px,3vw,36px);padding-top:1.5rem}
.lp-stage{position:relative;width:100%;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.lp-stage canvas{position:absolute;top:0;left:calc(-1 * var(--lp-bleed,0px));width:calc(100% + 2 * var(--lp-bleed,0px));height:100%;display:block}
.lp-glow{position:absolute;pointer-events:none;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--color-brand-light) 30%,transparent),color-mix(in srgb,var(--color-brand-light) 12%,transparent) 45%,transparent);opacity:0;transform:scale(.85);transition:opacity 1.6s var(--ease-out),transform 2.2s var(--ease-out)}
.lp-glow.is-on{opacity:1;transform:none}
.lp-count{position:absolute;display:flex;flex-direction:column;justify-content:center;pointer-events:none;white-space:nowrap}
.lp-count__num{font-family:var(--font-sans);font-weight:800;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.03em;line-height:.9;color:var(--color-ink)}
.lp-count__label{font:600 clamp(14px,1.4vw,17px)/1.3 var(--font-sans);color:var(--color-muted);margin-top:.35em}
.lp-level{position:absolute;font:600 12px/1 var(--font-sans);color:var(--color-brand-strong);letter-spacing:.02em;pointer-events:none;display:flex;align-items:center;gap:6px;opacity:0;transition:opacity .5s var(--ease-out)}
.lp-level::before{content:"";width:14px;height:1px;background:currentColor}
.lp-caption{transition:opacity .6s var(--ease-out);margin:clamp(14px,2vw,22px) 0 0;font-size:clamp(15px,1.5vw,18px);color:var(--color-muted);max-width:60ch}
.lp-caption__pct{display:none}
.lp[data-level-room="0"] .lp-caption__pct{display:block;margin-bottom:.3rem;font:800 clamp(26px,7vw,34px)/1 var(--font-sans);letter-spacing:-.02em;color:var(--color-brand-strong);font-variant-numeric:tabular-nums lining-nums}
.lp-caption strong{font:800 1.1em/1 var(--font-sans);color:var(--color-ink);font-variant-numeric:tabular-nums lining-nums}
.lp-finale{margin:clamp(14px,2vw,22px) 0 0;font:700 clamp(20px,2.4vw,28px)/1.2 var(--font-sans);letter-spacing:-.01em;color:var(--color-brand-strong);opacity:0;transform:translateY(6px);transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out)}
.lp-finale.is-on{opacity:1;transform:none}
.lp-finale[hidden]{display:none}
.lp-finale.is-over{display:flex;flex-direction:column;gap:.3rem}
.lp-finale__big{font:800 clamp(32px,4.4vw,52px)/1 var(--font-sans);letter-spacing:-.03em;color:var(--color-brand-strong)}
.lp-finale__sub{font:600 clamp(16px,1.6vw,20px)/1.3 var(--font-sans);letter-spacing:0;color:var(--color-ink)}
/* past-goal badge: navy pill with white text (never white on orange); pops in at the finale and on each tap */
.goal-badge{display:inline-flex;align-items:baseline;gap:.4em;padding:.4em .8em .45em;border-radius:999px;background:var(--color-ink);color:var(--color-on-ink);font:800 clamp(16px,1.9vw,22px)/1 var(--font-sans);letter-spacing:-.01em;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}
.goal-badge span{font-size:.62em;font-weight:600;letter-spacing:.02em;opacity:.85}
.lp-badge{position:absolute;pointer-events:none;transform:translateY(-100%) scale(0);transform-origin:100% 100%;opacity:0}
.lp-badge:empty{display:none}
.lp-badge.is-on{animation:lp-pop .7s cubic-bezier(.34,1.56,.64,1) both}
.lp-badge.is-on.is-pulse{animation:lp-pop .7s cubic-bezier(.34,1.56,.64,1) both,lp-pulse .3s var(--ease-out)}
@keyframes lp-pulse{50%{scale:1.08}}
@keyframes lp-pop{0%{opacity:0;transform:translateY(-100%) scale(.2) rotate(-8deg)}60%{opacity:1}100%{opacity:1;transform:translateY(-100%) scale(1) rotate(-3deg)}}
@media (prefers-reduced-motion:reduce){.lp-badge.is-on{animation:none;opacity:1;transform:translateY(-100%) rotate(-3deg)}}
/* Static fallback (no WebGL2) */
.lp-fallback{display:none}
.lp.is-static .lp-fallback{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.lp.is-static .lp-stage{display:none}
.lp-fallback img{width:120px;height:120px;object-fit:cover;object-position:0 0;border-radius:50%}
.lp-fallback .lp-goal{font:800 clamp(72px,16vw,200px)/1 var(--font-sans);color:var(--color-brand-strong)}

.progress-replay{margin-top:.75rem}
.progress-body[hidden],.progress-replay[hidden]{display:none}

/* tap targets: 44px minimum on touch and narrow screens (inline links inside running text are exempt) */
@media(max-width:819px),(pointer:coarse){
 .brand{padding-block:4px;box-sizing:content-box}
 .arrow,.arrow-down{display:inline-block;padding-block:.65rem}
 .site-footer a:not(.brand){display:inline-flex;align-items:center;min-height:44px}
 .site-footer .foot a{display:flex;width:fit-content}
 .site-footer .foot br{display:none}
 .admin-link{min-width:44px}
 .contact-big a{display:inline-block;padding-block:.4rem}
 .p-mail{padding-block:.75rem;margin-block:-.5rem}
}

/* employer match row (Give section) */
.match-tool{position:relative;display:grid;gap:1rem;justify-items:start;min-width:0}
/* employer search: its settled height is reserved while it loads (JS adds .is-loading), the loading line sits inside that
   slot, and the built plugin fades in (.is-ready). */
.match-out.is-loading,.match-out.is-ready{min-height:304px}
@media(min-width:900px){.match-out.is-loading,.match-out.is-ready{min-height:308px}}
.match-out.is-loading{visibility:hidden}
.match-out.is-ready{animation:match-in .35s var(--ease-out)}
@keyframes match-in{from{opacity:0}}
.match-status:not(.is-fallback){position:absolute;top:0;left:0}
.match-tool [hidden]{display:none!important}
.match-status{font-weight:var(--weight-strong)}
.match-status.is-fallback{padding:1rem 1.25rem;background:var(--color-bg);border:1px solid var(--color-line);border-left:4px solid var(--color-brand);border-radius:var(--radius-sm);max-width:30em}
.match-credit{font-size:var(--step--1);color:var(--color-muted)}
.match-out{width:100%;min-width:0}

/* Double the Donation plugin, restyled with our tokens. Its own rules are keyed on #dd-container, so ours are too. */
#match #dd-container .dtd-plugin{font-family:var(--font-sans);color:var(--color-ink);background:var(--color-bg);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:clamp(1rem,2.5vw,1.75rem);box-shadow:none}
#match #dd-container .dtd-plugin *{font-family:var(--font-sans)}
#match #dd-container .dtd-callout{background:transparent;border:0;padding:0;margin:0;box-shadow:none}
#match #dd-container .search-title,#match #dd-container .dtd-callout>div[role=heading]{font-size:var(--step-1);font-weight:var(--weight-heading);letter-spacing:-.01em;line-height:1.25;text-align:left;color:var(--color-ink);margin:0 0 1rem}
#match #dd-container .dtd-search-input{min-height:48px!important;padding:.6rem .9rem .6rem 2.4rem;font-size:1rem;font-family:var(--font-sans);color:var(--color-ink)!important;background-color:var(--color-bg)!important;border:2px solid var(--color-ink)!important;border-radius:var(--radius-sm)!important;box-shadow:none}
#match #dd-container .dtd-search-input:focus{outline:var(--focus-ring);outline-offset:2px}
#match #dd-container .Select-menu-outer{border:1px solid var(--color-line);border-radius:var(--radius-sm);box-shadow:var(--shadow-card)}
#match #dd-container .Select-option{min-height:44px;display:flex;align-items:center;padding:.5rem .9rem;color:var(--color-ink);background:var(--color-bg)}
#match #dd-container .Select-option.is-focused,#match #dd-container .Select-option.is-selected,#match #dd-container .Select-option.dtd-dropdown-is-selected,#match #dd-container .Select-option:hover{background:var(--color-bg-alt)!important;color:var(--color-ink)!important;box-shadow:inset 3px 0 0 var(--color-brand)}
#match #dd-container .search-another-top{background:transparent!important;padding:0;margin:0 0 .5rem}
#match #dd-container .search-another-top a{background:transparent!important;text-decoration:none;color:var(--color-brand-strong);padding:0}
#match #dd-container .mg-forms-button{display:inline-flex;align-items:center;min-height:48px;padding:.8rem 1.6rem;border-radius:var(--radius-sm);background:var(--btn-bg);color:var(--btn-fg);text-decoration:none}
@media(hover:hover){#match #dd-container .mg-forms-button:hover{background:var(--btn-bg-hover);color:var(--btn-fg)}}
#match #dd-container .lets-check,#match #dd-container .dtd-callout button:not(.dtd-link-button),#match #dd-container a.button,#match #dd-container .dtd-mg-eligible a[class*=button]{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.6rem;border:2px solid var(--btn-bg);border-radius:var(--radius-sm);background:var(--btn-bg);color:var(--btn-fg);font:600 1rem/1 var(--font-sans);text-transform:none;letter-spacing:0;text-transform:none!important;cursor:pointer;text-decoration:none}
#match #dd-container .dtd-mg-eligible a:not(.dtd-link){text-transform:none}
#match #dd-container .lets-check[aria-disabled=true]{background:var(--color-bg-alt);border-color:var(--color-line);color:var(--color-muted);cursor:not-allowed}
@media(hover:hover){#match #dd-container .lets-check:hover:not([aria-disabled=true]){background:var(--btn-bg-hover);border-color:var(--btn-bg-hover)}}
#match #dd-container .dtd-lets-check{margin:1rem 0 0;display:block}
#match #dd-container .dtd-lets-check .cell{width:auto;padding:0}
#match #dd-container .dtd-lets-check .cell:not(:nth-child(2)){display:none}
#match #dd-container .dtd-green{color:var(--color-brand-strong);font-weight:var(--weight-heading)}
#match #dd-container details{border-top:1px solid var(--color-line);margin:0}
#match #dd-container summary{display:flex;align-items:center;min-height:48px;padding:.4rem 0;cursor:pointer;font-size:var(--step-0);font-weight:var(--weight-heading);color:var(--color-ink);background:transparent}
#match #dd-container .dtd-accordion-content{padding:0 0 1rem;background:transparent}
#match #dd-container .dtd-section-header,#match #dd-container .dtd-section-header-condensed{font-size:var(--step--1);font-weight:var(--weight-heading);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink);background:transparent;border:0;margin:1.25rem 0 .5rem;padding:0}
#match #dd-container .mg-summary,#match #dd-container .text-center{text-align:left}
#match #dd-container table.condensed{width:100%;border-collapse:collapse;margin:0 0 1rem}
#match #dd-container table.condensed th,#match #dd-container table.condensed td{padding:.6rem .5rem .6rem 0;text-align:left;border:0;border-bottom:1px solid var(--color-line);background:transparent;font-size:var(--step--1)}
#match #dd-container a{color:var(--color-ink);font-weight:var(--weight-strong);text-decoration:underline;text-decoration-color:var(--color-brand);text-decoration-thickness:2px;text-underline-offset:.2em}
@media(hover:hover){#match #dd-container a:hover{color:var(--color-brand-strong)}}
#match #dd-container .search-another-top a,#match #dd-container .mg-guidelines-link a{display:inline-flex;align-items:center;min-height:44px}
#match #dd-container .dtd-footer{margin-top:1rem;text-align:left;font-size:var(--step--1);color:var(--color-muted)}
#match #dd-container p,#match #dd-container li,#match #dd-container td{font-size:var(--step-0);line-height:1.55;color:var(--color-ink)}
@media(min-width:900px){.match-tool{justify-items:stretch}.match-tool .btn{justify-self:start}}

/* native pages: ways to give, financials, privacy, board, donor years */
.ways a.is-local::after{content:'\2192'}
.give-list{display:grid}
.give-item{display:grid;gap:1rem 3rem;padding-block:clamp(28px,4vw,52px);border-top:1px solid var(--color-line)}
.give-item:first-child{border-top:3px solid var(--color-ink)}
.give-item .h-md{margin:0}
.give-item p{font-size:var(--step-0)}
.give-item p,.give-item .ways,.give-item .note,.give-item .steps{max-width:40rem}
.give-item p+p,.give-item .ways,.give-item .steps,.give-item .actions{margin-top:1rem}
.note{padding:1rem 1.15rem;border-radius:var(--radius-sm);background:var(--color-bg-alt);max-width:38em}
.steps{padding-left:1.4rem;list-style:decimal;max-width:38em}
.steps li{padding-block:.35rem}
@media(min-width:900px){.give-item{grid-template-columns:minmax(0,1fr) minmax(0,1.7fr)}}
.about-mission{display:grid;gap:2.5rem}
@media(min-width:900px){.about-mission{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(48px,7vw,112px);align-items:start}}
.mission-lead{font-size:var(--step-2);line-height:1.35;font-weight:var(--weight-ui);letter-spacing:-.01em;max-width:30em;text-wrap:pretty}
.mission-main .prose{margin-top:1.5rem}
.mission-main .prose p{font-size:var(--step-0);margin-top:1rem;color:var(--color-muted)}
.values .h-sm{margin-bottom:.75rem}
.plain-list li{position:relative;padding-block:.3rem;padding-left:1.1em;font-size:var(--step-0);line-height:1.4}
.plain-list li::before{content:'';position:absolute;left:0;top:calc(.3rem + .72em);width:.55em;height:2px;background:var(--color-brand)}
.do-dont{display:grid;gap:.75rem;margin-top:clamp(32px,5vw,64px)}
@media(min-width:760px){.do-dont{grid-template-columns:1fr 1fr;gap:3rem;align-items:start}}
.fold{border-top:1px solid var(--color-line)}
.fold summary{list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:48px;cursor:pointer}
.fold summary::-webkit-details-marker{display:none}
.fold summary h3{margin:0;flex:1}
.fold summary::after{content:'+';font-size:1.4rem;line-height:1;color:var(--color-brand-strong);font-weight:var(--weight-ui)}
.fold[open] summary::after{content:'\2212'}
.fold .plain-list{padding-bottom:1rem}
@media(min-width:760px){.fold{border-top:0}.fold summary{cursor:default;pointer-events:none;min-height:0;margin-bottom:.5rem}.fold summary::after,.fold[open] summary::after{content:none}}
.board-head{margin-bottom:clamp(20px,3vw,32px)}
.board{border-top:2px solid var(--color-ink)}
.board-group{display:grid;gap:.75rem;padding-block:clamp(20px,3vw,32px);border-bottom:1px solid var(--color-line)}
.board-group h3{font-size:var(--step-1);font-weight:var(--weight-heading);letter-spacing:-.01em}
.people li{padding-block:.5rem;break-inside:avoid;display:grid;gap:.1rem}
.people li+li{border-top:1px solid var(--color-line)}
.p-name{font-weight:var(--weight-strong)}
.p-detail{color:var(--color-muted);font-size:var(--step--1)}
.p-mail{display:block;color:var(--color-muted);text-decoration-color:var(--color-line);overflow-wrap:anywhere}
@media(hover:hover){.p-mail:hover{color:var(--color-brand-strong);text-decoration-color:var(--color-brand-strong)}}
.board-group.is-names .people li{display:block;padding-block:.2rem;border-top:0}
.board-group.is-names .people{columns:2;column-gap:2rem}
@media(min-width:900px){
 .board-group{grid-template-columns:240px minmax(0,1fr);gap:3rem}
 .board-group:not(.is-names) .people li{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem;align-items:baseline}
 .board-group.is-names .people{columns:3}
}
.year-switch{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:clamp(20px,3vw,36px)}
.year-btn{min-height:44px;padding:.5rem 1.1rem;border:2px solid var(--color-ink);border-radius:999px;background:transparent;color:var(--color-ink);font:inherit;font-weight:var(--weight-strong);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
@media(hover:hover){.year-btn:hover{background:var(--color-bg-alt)}}
.year-btn[aria-pressed=true]{background:var(--color-ink);color:var(--color-on-ink)}
.year-note{margin-bottom:1rem}
.figures{display:grid;gap:1.25rem}
.figure{display:grid;align-content:start;gap:.4rem;padding:1.25rem 0;border-top:1px solid var(--color-line)}
.figure dt{font-size:var(--step--1);font-weight:var(--weight-heading);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink)}
.figure dd{display:grid;gap:.4rem}
.fig-value{font-size:var(--step-3);font-weight:var(--weight-display);letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums}
.figure.is-current .fig-value{font-size:var(--step-5);color:var(--color-ink)}
.fig-period{justify-self:start;font-size:var(--step--1);font-weight:var(--weight-strong);padding:.15rem .6rem;border:1px solid var(--color-ink-line);border-radius:999px}
.fig-period.is-unstated{display:none} /* provenance note for editors, not readers */
.fig-note{max-width:40em;color:var(--color-muted)}
@media(min-width:900px){.figures{grid-template-columns:1fr 1fr;column-gap:3rem}.figure.is-current{grid-column:1/-1}}
.share{display:grid;gap:1rem 3rem;align-items:center}
.share-pct{font-size:var(--step-6);font-weight:var(--weight-display);letter-spacing:-.05em;line-height:.9;color:var(--color-brand-display)}
@media(min-width:760px){.share{grid-template-columns:auto 1fr}}
.rev{width:100%;max-width:44rem;border-collapse:collapse}
.rev th,.rev td{text-align:left;padding:.85rem 0;border-bottom:1px solid var(--color-line);font-size:var(--step-1)}
.rev thead th{font-size:var(--step--1);font-weight:var(--weight-heading);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink);border-bottom:2px solid var(--color-ink)}
.rev tbody th{font-weight:var(--weight-strong)}
.rev .num-col{text-align:right;font-variant-numeric:tabular-nums;font-weight:var(--weight-heading)}
.rev-note{display:block;font-size:var(--step--1);font-weight:var(--weight-body);color:var(--color-muted)}
.fin-more{display:grid;gap:2rem}
.fin-more>*{max-width:44rem}
.fin-more .prose p{font-size:var(--step-0)}
.legal .prose{max-width:38em}
.legal .prose p{font-size:var(--step-0);margin-top:1rem}
.legal-sec{margin-top:clamp(28px,4vw,48px)}
.legal-sec .h-md{font-size:var(--step-2)}
.legal-contact{margin-top:2rem;font-style:normal}
.past-body{display:grid;gap:.2rem}
.past-meta{color:var(--color-muted);font-size:var(--step--1)}
.past-desc{color:var(--color-muted);max-width:44em}

.about-more .prose h2+p{margin-bottom:0}.about-more .prose p+h2{margin-top:2rem}
