@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root{
  --red:#c8102e;--burgundy:#650d1b;--white:#fff;--champagne:#f5e9df;--ink:#171717;
  --muted:#746a64;--line:#e7ded8;--display:'Space Grotesk',sans-serif;--serif:'Instrument Serif',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;
  --gutter:clamp(22px,6.2vw,96px);--ease:cubic-bezier(.2,.72,.2,1);color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:30px}
body{margin:0;background:var(--white);color:var(--ink);font:400 14px/1.55 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body,button,input,textarea,select{font-family:var(--sans)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{color:inherit}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #d6815e;outline-offset:3px}
::selection{background:#e8b8a5;color:#32110e}
[hidden]{display:none!important}
.skip-link{position:fixed;z-index:1000;top:10px;left:10px;padding:10px 15px;background:var(--white);color:var(--ink);transform:translateY(-160%)}
.skip-link:focus{transform:none}
.eyebrow,.micro-label{display:block;margin:0;color:#786d67;font-size:9px;font-weight:700;letter-spacing:.18em;line-height:1.5;text-transform:uppercase}
.rule{display:inline-block;width:39px;height:1px;background:currentColor;vertical-align:middle}
.section-pad{padding-right:var(--gutter);padding-left:var(--gutter)}
.section-kicker{display:flex;align-items:center;gap:13px;padding-top:36px;color:#786d67;font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.section-kicker>span:first-child{color:var(--red)}
.section-kicker .rule{width:46px;background:#c9bdb6}
.button{display:inline-flex;min-height:51px;align-items:center;justify-content:center;gap:15px;padding:0 23px;border:1px solid transparent;font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;transition:background .22s,color .22s,border-color .22s,transform .22s;cursor:pointer}
.button:hover{transform:translateY(-2px)}
.button--crimson{background:var(--red);color:var(--white)}
.button--crimson:hover{background:var(--burgundy)}
.button--dark{background:var(--ink);color:var(--white)}
.button--dark:hover{background:var(--burgundy)}
.button--light{background:var(--white);color:var(--red)}
.button--light:hover{background:var(--champagne)}
.text-link,.underlined-link{display:inline-flex;align-items:center;gap:10px;border:0;border-bottom:1px solid currentColor;padding:7px 0;background:transparent;color:inherit;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.text-link:hover,.underlined-link:hover{color:var(--red)}

/* Wordmark and navigation */
.site-header{position:absolute;z-index:50;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:22px var(--gutter);color:var(--white)}
.wordmark{display:inline-flex;align-items:center;gap:12px;color:inherit}
.wordmark__monogram{display:grid;width:40px;height:40px;place-items:center;border:1px solid currentColor;font:600 10px/1 var(--display);letter-spacing:-.08em}
.wordmark__monogram span{color:#efad95}
.wordmark__name{font-size:9px;font-weight:700;letter-spacing:.16em}
.site-nav{display:flex;align-items:center;gap:clamp(16px,2.5vw,38px)}
.site-nav>a{font-size:9px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;transition:color .2s}
.site-nav>a:hover{color:#f0b49c}
.site-nav .nav-support{padding:12px 15px;border:1px solid rgba(255,255,255,.6);color:#fff}
.site-nav .nav-support:hover{background:var(--red);border-color:var(--red);color:#fff}
.menu-toggle{display:none}

/* Full-bleed portrait hero */
.hero{position:relative;display:flex;min-height:710px;height:100svh;max-height:1060px;align-items:center;overflow:hidden;background:#101012;color:var(--white)}
.hero__photo-wrap{position:absolute;inset:0 0 0 39%;overflow:hidden}
.hero__photo{width:100%;height:100%;object-fit:cover;object-position:center 31%;transform:translate3d(0,var(--hero-parallax,0px),0) scale(1.035);will-change:transform;animation:photo-in 1.1s var(--ease) both}
.hero__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,13,15,.98) 0%,rgba(14,13,15,.89) 31%,rgba(14,13,15,.42) 57%,rgba(14,13,15,.03) 100%),linear-gradient(0deg,rgba(14,13,15,.48),transparent 46%)}
.hero__copy{position:relative;z-index:2;width:min(68%,820px);padding:76px 0 45px var(--gutter);animation:copy-in .8s .15s var(--ease) both}
.hero__eyebrow{display:flex;align-items:center;gap:10px;color:#f1c8b4;font-size:8px;letter-spacing:.19em}
.hero__name{margin:35px 0 14px;font:600 clamp(24px,3.5vw,48px)/.86 var(--display);letter-spacing:-.075em}
.hero__name span{color:#efc3ae}
.hero h1{margin:20px 0 17px;font:600 clamp(66px,9vw,116px)/.78 var(--display);letter-spacing:-.105em;text-transform:uppercase}
.hero h1 em{font:400 1.04em/.9 var(--serif);letter-spacing:-.065em;color:#f0c8b3;text-transform:none}
.hero__intro{margin:24px 0 28px;color:#f1e9e4;font:400 clamp(18px,2vw,25px)/1.08 var(--serif)}
.hero__actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}
.hero__actions .text-link{color:#fff}
.hero__actions .text-link:hover{color:#f0b49c}
.hero__side-note{position:absolute;z-index:2;right:28px;top:50%;writing-mode:vertical-rl;transform:translateY(-50%);color:rgba(255,255,255,.82);font-size:8px;letter-spacing:.22em}
.scroll-cue{position:absolute;z-index:2;left:var(--gutter);bottom:31px;display:flex;align-items:center;gap:11px;color:#eee4df;font-size:8px;font-weight:600;letter-spacing:.17em}
.scroll-cue span{display:block;width:1px;height:32px;background:#e8c4b2;animation:cue 1.6s ease-in-out infinite}
.hero__index{position:absolute;right:var(--gutter);bottom:29px;color:#fff;font:500 12px var(--display);letter-spacing:.12em}
.hero__index span{padding:0 5px;color:#dba792}

/* Meet Kadence */
.intro{padding-top:2px;padding-bottom:100px;background:#fff}
.intro__layout{display:grid;grid-template-columns:minmax(290px,.88fr) minmax(0,1.12fr);align-items:center;gap:clamp(45px,9vw,142px);max-width:1330px;margin:0 auto;padding:54px 4px 90px}
.intro__image-frame{position:relative;width:min(100%,490px);justify-self:center;padding:0 24px 24px 0}
.intro__image-frame:before{position:absolute;right:0;bottom:0;width:80%;height:83%;background:var(--champagne);content:''}
.intro__image-frame img{position:relative;z-index:1;width:100%;height:min(58vw,610px);min-height:410px;object-fit:cover;object-position:center 25%}
.image-caption{position:absolute;z-index:2;right:-12px;bottom:24px;padding:9px 12px;background:var(--white);font:italic 17px var(--serif);transform:rotate(-3deg)}
.intro__copy{max-width:680px}
.intro__copy>.eyebrow{color:var(--red)}
.intro__copy h2,.moments h2,.note-copy h2{margin:15px 0;font:600 clamp(66px,9vw,120px)/.78 var(--display);letter-spacing:-.105em}
.intro__copy h2 em,.moments h2 em,.note-copy h2 em{font:400 1.05em/.9 var(--serif);letter-spacing:-.06em;color:var(--red)}
.intro__lead{margin:19px 0 14px;font:400 clamp(24px,3vw,36px)/1 var(--serif);color:#372e2a}
.body-copy{max-width:590px;margin:0;color:#685e58;font-size:14px;line-height:1.8}
.profile-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.profile-strip>div{display:flex;flex-direction:column;gap:5px;min-width:0}
.profile-strip .micro-label{font-size:8px;color:#9b8175}
.editable-placeholder{color:#453c37;font-size:12px;line-height:1.55;overflow-wrap:anywhere}
.profile-strip .profile-detail--wide{grid-column:1/-1}
.profile-detail--wide .editable-placeholder{max-width:800px;font-size:14px;line-height:1.6}
.intro__copy>.underlined-link{margin-top:25px}
.five{display:grid;grid-template-columns:.74fr 1.7fr;gap:5vw;align-items:end;max-width:1330px;margin:0 auto;padding:42px 4px 0;border-top:1px solid var(--line)}
.five__heading .eyebrow{color:var(--red)}
.five__heading h3{margin:12px 0 9px;font:600 clamp(48px,6vw,75px)/.78 var(--display);letter-spacing:-.09em}
.five__heading h3 em{font:400 1.04em var(--serif);color:var(--red)}
.five__heading p{margin:0;color:var(--muted);font:18px/1.2 var(--serif)}
.five__cards{display:grid;grid-template-columns:repeat(5,minmax(105px,1fr));gap:8px}
.five-card{position:relative;display:flex;min-height:178px;flex-direction:column;align-items:flex-start;justify-content:space-between;overflow:hidden;padding:15px 13px;border:0;background:var(--ink);color:#fff;text-align:left;cursor:pointer;transition:background .25s,transform .25s}
.five-card:hover,.five-card[aria-expanded=true]{background:var(--burgundy);transform:translateY(-4px)}
.five-card>span{color:#e9b69e;font:500 10px var(--display)}
.five-card strong{font:500 14px/1.05 var(--display);letter-spacing:-.03em}
.five-card>i{position:absolute;top:9px;right:11px;color:#eac3b2;font:400 20px var(--serif)}
.five-card small{color:#c8bcb6;font-size:8px;letter-spacing:.06em}
.five-card__answer{max-height:0;overflow:hidden;color:#f2c7b2;font:16px/1.2 var(--serif);opacity:0;transition:max-height .35s var(--ease),opacity .3s}
.five-card[aria-expanded=true] .five-card__answer{max-height:180px;margin:6px 0;opacity:1}

/* Journey: burgundy editorial chapter */
.journey{overflow:hidden;background:var(--burgundy);color:#fff}
.journey__top{position:relative;min-height:620px;padding-bottom:68px}
.section-kicker--light{color:#f1d4c5}
.section-kicker--light .rule{background:rgba(255,255,255,.42)}
.journey__headline{position:relative;z-index:2;width:57%;padding:94px 0 30px}
.journey__headline .eyebrow,.journey__why>.eyebrow{color:#f0c6b0}
.journey__headline h2{margin:18px 0 20px;font:600 clamp(76px,11vw,146px)/.76 var(--display);letter-spacing:-.11em}
.journey__headline h2 em{font:400 1.02em/.9 var(--serif);letter-spacing:-.06em;color:#efc3ac}
.journey__headline>p:last-child{max-width:350px;margin:0;font:24px/1.13 var(--serif);color:#f7e9e0}
.journey__portrait{position:absolute;top:117px;right:var(--gutter);width:35%;height:410px}
.journey__portrait img{width:100%;height:100%;object-fit:cover;object-position:center 26%}
.journey__portrait span{position:absolute;right:-13px;bottom:18px;padding:10px 13px;background:var(--champagne);color:var(--burgundy);font-size:8px;font-weight:700;letter-spacing:.12em}
.journey__statement{display:flex;align-items:center;justify-content:center;gap:35px;padding:33px var(--gutter);background:#fff;color:var(--burgundy);text-align:center}
.journey__statement p{max-width:850px;margin:0;font:400 clamp(25px,3.5vw,43px)/1.02 var(--serif)}
.journey__statement em{color:var(--red)}
.journey__ornament{color:#d8a38f;font-size:22px}
.journey__why{max-width:1180px;margin:0 auto;padding-top:72px;padding-bottom:69px}
.journey__why h3{margin:14px 0 20px;font:500 clamp(42px,6vw,75px)/.9 var(--display);letter-spacing:-.08em}
.journey__why h3 em{font:400 1.05em var(--serif);color:#f3d3c0}
.journey__why>p:not(.eyebrow):not(.journey__support-note){max-width:800px;font:clamp(20px,2.2vw,28px)/1.35 var(--serif);color:#fff}
.journey__support-note{margin-top:22px;color:rgba(255,255,255,.84);font-size:12px;line-height:1.7}
.journey__theme{display:block;margin-top:25px;color:#f4d3c0;font-size:9px;letter-spacing:.16em;line-height:1.8;text-transform:uppercase}
.journey__theme strong{color:#fff;font:italic 21px/1.2 var(--serif);letter-spacing:0;text-transform:none}
.timeline{max-width:1240px;margin:0 auto;padding-top:10px;padding-bottom:87px}
.timeline-item{position:relative;display:grid;grid-template-columns:78px minmax(0,1fr) 104px 32px;align-items:center;gap:20px;min-height:145px;padding:20px 0;border-top:1px solid rgba(255,255,255,.25)}
.timeline-item:last-child{border-bottom:1px solid rgba(255,255,255,.25)}
.timeline-item__count{align-self:start;padding-top:5px;color:#e9b69e;font:500 13px var(--display)}
.timeline-item__content .eyebrow{color:#e9b69e;font-size:8px}
.timeline-item__content h3{margin:6px 0 5px;font:500 clamp(25px,3.2vw,40px)/1 var(--display);letter-spacing:-.06em}
.timeline-item__content p:last-child{max-width:620px;margin:0;color:#eadbd5;font-size:12px;line-height:1.6}
.timeline-item__photo{grid-column:3;grid-row:1;width:104px;height:112px;object-fit:cover;object-position:center 35%;filter:saturate(.86)}
.timeline-item__mark{grid-column:4;color:#e7b39e;font:28px var(--serif);text-align:right}

/* Fundraising and community */
.support{padding-top:3px;padding-bottom:100px;background:#fff}
.support__heading,.moments__heading{display:flex;align-items:end;justify-content:space-between;gap:55px;padding:43px 0 38px}
.support__heading .eyebrow,.moments__heading .eyebrow{color:var(--red)}
.support h2{margin:14px 0 0;font:600 clamp(68px,9.4vw,128px)/.77 var(--display);letter-spacing:-.105em}
.support h2 em{font:400 1.03em/.9 var(--serif);color:var(--red)}
.support__lead{max-width:330px;margin:0 0 8px;color:#514944;font:25px/1.1 var(--serif)}
.campaign-panel{padding:26px 30px;border:1px solid #dfd5ce;background:#fbf9f7}
.campaign-panel__title{display:flex;align-items:center;justify-content:space-between;gap:20px}
.campaign-panel__title .eyebrow{color:#726761}
.campaign-status{display:flex;align-items:center;gap:8px;color:#786b65;font-size:8px;font-weight:700;letter-spacing:.13em}
.campaign-status i{width:6px;height:6px;border-radius:50%;background:#cf9075}
.campaign-empty{max-width:760px;margin:22px 0 3px;color:#6f645e;font:20px/1.3 var(--serif)}
.campaign-stats{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:30px;margin-top:27px}
.campaign-stat{display:flex;flex-direction:column;gap:7px}
.campaign-stat .micro-label{font-size:8px;color:#9b8175}
.campaign-stat strong{font:500 clamp(28px,4vw,48px)/1 var(--display);letter-spacing:-.07em}
.campaign-stat small{color:#81766f;font-size:9px}
.campaign-stat--progress{justify-content:center}
.progress-copy{display:flex;align-items:center;justify-content:space-between;color:#71655f;font-size:9px;font-weight:700;letter-spacing:.1em}
.progress-track{height:6px;margin-top:12px;background:#e6dcd5}
.progress-track span{display:block;width:0;height:100%;background:var(--red);transition:width .9s var(--ease)}
.donation-area{margin-top:64px}
.donation-area__heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:24px}
.donation-area__heading .eyebrow{color:var(--red)}
.donation-area__heading h3{margin:10px 0 0;font:500 clamp(38px,5vw,61px)/.86 var(--display);letter-spacing:-.08em}
.donation-area__heading>p{margin:0;color:#736861;font:20px/1.15 var(--serif);text-align:right}
.donation-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.donation-option{display:flex;min-height:104px;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:17px 20px;border:1px solid #e3d8d1;background:#fff;text-align:left;cursor:pointer;transition:background .22s,border-color .22s,color .22s,transform .22s}
button.donation-option:hover,.donation-option.is-selected{border-color:var(--red);background:#fff7f4;transform:translateY(-2px)}
.donation-option strong{font:500 30px/1 var(--display);letter-spacing:-.06em}
.donation-option>span{color:#786c66;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.donation-option--custom{justify-content:flex-start;gap:9px}
.donation-option--custom .custom-label{color:#786c66;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.currency-input{display:flex;align-items:center;gap:8px;font:500 26px/1 var(--display)}
.currency-input input{width:100%;min-width:0;border:0;border-bottom:1px solid #d8c9c0;padding:4px 0;background:transparent;color:var(--ink);font:500 23px var(--display)}
.currency-input input:focus{outline:none;border-color:var(--red)}
.currency-input input::placeholder{color:#a99b92;font:400 12px var(--sans)}
.donation-summary{display:flex;align-items:center;gap:18px;margin-top:22px;padding:18px 0;border-bottom:1px solid var(--line)}
.donation-summary>span{color:#897a72;font-size:8px;font-weight:700;letter-spacing:.15em}
.donation-summary>strong{margin-right:auto;font:500 23px var(--display)}
.donation-summary .checkout-button{white-space:nowrap}
.payment-note{display:flex;align-items:flex-start;gap:9px;margin:13px 0 0;color:#716761;font-size:10px;line-height:1.6}
.payment-note>span{color:var(--red);font-size:15px}
.check-note{margin:16px 0 18px;padding:17px 20px;border-left:2px solid var(--red);background:#f4ede8}
.check-note .micro-label{color:#776a63}
.check-note p{margin:8px 0;color:#4e4742;font:16px/1.5 var(--serif)}
.check-note small{display:block;color:#746861;font-size:10px;line-height:1.6}
.donation-secondary{display:flex;align-items:center;gap:28px;margin-top:17px}
.donation-secondary .underlined-link{font-size:8px}
.share-campaign{font:inherit}
.support-wall{display:grid;grid-template-columns:.8fr 1.2fr;gap:45px;align-items:center;margin:72px 0 32px;padding:35px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.support-wall .eyebrow{color:var(--red)}
.support-wall h3{margin:12px 0 0;font:500 clamp(40px,5.5vw,68px)/.84 var(--display);letter-spacing:-.085em}
.support-wall h3 em{font:400 1.03em var(--serif);color:var(--red)}
.supporter-wall__messages{display:grid;gap:12px}
.supporter-empty{margin:0;color:#786c65;font:22px/1.2 var(--serif)}
.supporter-note{padding:18px 21px;background:#f9f5f2}
.supporter-note p{margin:0;color:#403632;font:22px/1.2 var(--serif)}
.supporter-note span{display:block;margin-top:12px;color:#9b7766;font-size:8px;font-weight:700;letter-spacing:.14em}
.message-form{display:grid;grid-template-columns:1fr .7fr 1.3fr auto;align-items:start;gap:16px;padding:24px;background:#f7f3f0}
.message-form__heading{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px}
.message-form__heading .eyebrow{color:var(--red)}
.message-form__heading p{margin:0;color:#746a64;font-size:10px}
.message-form label{position:relative;display:flex;flex-direction:column;gap:6px;color:#655a54;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.message-form label>span{font-weight:400;text-transform:none}
.message-form input:not([type=checkbox]),.message-form textarea{width:100%;padding:11px;border:1px solid #ded4cd;background:#fff;color:#241f1c;font-size:12px;letter-spacing:normal;text-transform:none}
.message-form textarea{min-height:92px;resize:vertical}
.message-form input::placeholder,.message-form textarea::placeholder{color:#a79a92}
.message-form .consent-check{display:flex;flex-direction:row;align-items:flex-start;gap:8px;padding-top:24px;font-size:9px;line-height:1.5;letter-spacing:0;text-transform:none}
.consent-check input{accent-color:var(--red);margin:1px 0 0}
.char-count{align-self:flex-end;color:#8d817a;font-size:8px!important}
.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.message-form>.button{align-self:end;white-space:nowrap}
.form-status{grid-column:1/-1;min-height:18px;margin:0;color:#6d5145;font-size:10px}

/* Editorial photo story */
.moments{padding-top:3px;padding-bottom:94px;background:var(--champagne)}
.moments .section-kicker .rule{background:#cdb6a8}
.moments__heading{padding-top:43px}
.moments__heading>div{max-width:700px}
.moments__heading>p{max-width:290px;margin:0 0 7px;color:#695c55;font:22px/1.2 var(--serif)}
.photo-gallery{display:grid;grid-template-columns:1fr .8fr 1fr .8fr;grid-template-rows:240px 210px 245px;gap:9px}
.gallery-photo{position:relative;min-width:0;min-height:0;overflow:hidden;padding:0;border:0;background:#d5c9c1;text-align:left;cursor:zoom-in}
.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ease),filter .5s}
.gallery-photo:hover img,.gallery-photo:focus-visible img{transform:scale(1.035);filter:saturate(1.06)}
.gallery-photo:after{position:absolute;inset:45% 0 0;background:linear-gradient(0deg,rgba(14,12,12,.68),transparent);content:'';pointer-events:none}
.gallery-photo>span{position:absolute;z-index:1;left:14px;bottom:13px;color:#fff;font:600 9px var(--display);letter-spacing:.13em}
.gallery-photo>span i{padding-left:8px;color:#f4c9b2;font:600 8px var(--sans);letter-spacing:.12em}
.gallery-photo--tall{grid-column:1;grid-row:1/3}
.gallery-photo--school{grid-column:2;grid-row:1}
.gallery-photo--chair{grid-column:3;grid-row:1/3}
.gallery-photo--white{grid-column:4;grid-row:1}
.gallery-photo--chorus{grid-column:2;grid-row:2}
.gallery-photo--volley{grid-column:4;grid-row:2}
.gallery-photo--court{grid-column:2/5;grid-row:3}
.lightbox{position:fixed;inset:0;z-index:100;width:min(100vw,1300px);height:min(100svh,900px);max-width:none;max-height:none;margin:auto;padding:45px 70px;border:0;background:#151313;color:#fff}
.lightbox::backdrop{background:rgba(12,10,10,.94)}
.lightbox figure{display:flex;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:12px;margin:0}
.lightbox figure img{width:auto;height:auto;max-width:100%;max-height:calc(100% - 35px);object-fit:contain}
.lightbox figcaption{color:#ead4c7;font-size:9px;letter-spacing:.15em;text-transform:uppercase}
.lightbox button{position:absolute;z-index:2;display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(255,255,255,.5);background:#201d1c;color:#fff;font:24px var(--serif);cursor:pointer}
.lightbox button:hover{background:var(--red)}
.lightbox__close{top:18px;right:18px}
.lightbox__previous{top:50%;left:18px;transform:translateY(-50%)}
.lightbox__next{top:50%;right:18px;transform:translateY(-50%)}

/* Personal note, sharing and finale */
.note-section{padding-top:4px;padding-bottom:100px;background:#fff}
.note-layout{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr);align-items:center;gap:clamp(50px,9vw,130px);max-width:1240px;margin:auto;padding:52px 4px 0}
.note-photo{position:relative;width:min(100%,430px);justify-self:center}
.note-photo:before{position:absolute;z-index:0;inset:30px -19px -17px 20px;background:var(--champagne);content:''}
.note-photo img{position:relative;z-index:1;width:100%;height:520px;object-fit:cover;object-position:center 24%}
.note-photo__stamp{position:absolute;z-index:2;right:-36px;bottom:21px;display:grid;width:100px;height:100px;place-items:center;border:1px solid #e6bca9;border-radius:50%;background:#fff;color:var(--red);font:italic 15px/1.1 var(--serif);text-align:center;transform:rotate(8deg)}
.note-copy{max-width:650px}
.note-copy .eyebrow{color:var(--red)}
.note-copy h2{font-size:clamp(61px,8vw,105px)}
.draft-label{display:inline-block;margin:8px 0 17px;padding:7px 9px;background:#f5e9df;color:#755248;font-size:8px;font-weight:700;letter-spacing:.13em}
.note-copy blockquote{margin:0;color:#49403b;font:clamp(23px,3vw,34px)/1.18 var(--serif)}
.note-signoff{margin:25px 0 0;color:#8c7063;font-size:8px;font-weight:700;letter-spacing:.16em;line-height:1.8}
.note-signoff span{font:italic 29px/1 var(--serif);letter-spacing:0;color:var(--red)}
.share-section{display:grid;grid-template-columns:1fr .82fr;align-items:center;gap:70px;padding:73px var(--gutter);background:var(--ink);color:#fff}
.share-section__left .eyebrow{color:#e9b69e}
.share-section__left h2{margin:17px 0 20px;font:600 clamp(63px,8vw,108px)/.78 var(--display);letter-spacing:-.1em}
.share-section__left h2 em{font:400 1.02em/.9 var(--serif);color:#f1c8b4}
.share-section__left>p:last-child{max-width:420px;margin:0;color:#d6cbc5;font:24px/1.15 var(--serif)}
.share-actions{display:flex;flex-direction:column;border-top:1px solid rgba(255,255,255,.28)}
.share-action{display:flex;align-items:center;gap:15px;padding:18px 0;border:0;border-bottom:1px solid rgba(255,255,255,.28);background:transparent;color:#fff;text-align:left;font-size:9px;font-weight:700;letter-spacing:.12em;cursor:pointer;transition:color .2s,padding .2s}
.share-action>span{color:#e9b69e;font:500 10px var(--display)}
.share-action>b{margin-left:auto;color:#e9b69e;font:400 17px var(--serif)}
.share-action:hover{padding-left:8px;color:#f1c8b4}
.download-link{align-self:flex-start;margin-top:15px;border-bottom:1px solid #e9b69e;padding:8px 0;color:#f4d2c1;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.download-link span{padding-left:9px}
.download-link[hidden]{display:none!important}
.final-cta{position:relative;display:flex;min-height:610px;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:82px var(--gutter) 90px;background:var(--red);color:#fff;text-align:center}
.final-cta .eyebrow{color:#f4d6c8}
.final-cta h2{margin:23px 0;font:600 clamp(65px,10vw,132px)/.78 var(--display);letter-spacing:-.1em}
.final-cta h2 em{font:400 1.04em/.9 var(--serif);color:#f5d9c7}
.final-cta>p:not(.eyebrow){max-width:440px;margin:0;color:#f7e9e0;font:24px/1.16 var(--serif)}
.final-cta__actions{display:flex;align-items:center;gap:28px;margin-top:24px}
.text-link--light{color:#fff}
.text-link--light:hover{color:#f3d0bd}
.final-cta__ornament{position:absolute;top:35px;left:var(--gutter);color:rgba(255,255,255,.52);font:11px var(--display);letter-spacing:.22em}
.final-cta__star{position:absolute;top:20%;right:8%;color:rgba(255,255,255,.2);font-size:clamp(35px,6vw,80px);opacity:0;transform:scale(.65) rotate(-28deg);transition:opacity .4s,transform .6s var(--ease)}
.final-cta.is-visible .final-cta__star{opacity:1;transform:scale(1) rotate(0);animation:final-mark 2.8s 1.1s ease-in-out infinite alternate}
.site-footer{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:23px;padding:34px var(--gutter) 26px;background:var(--ink);color:#fff}
.wordmark--footer{color:#fff}
.site-footer>p{margin:0;color:#bdb5b1;font-size:11px;text-align:right}
.site-footer>p span{color:#cc8871}
.footer-links{display:flex;gap:21px;flex-wrap:wrap}
.footer-links a{color:#d0c6c1;font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.footer-links a:hover{color:#f1c8ad}
.site-footer small{justify-self:end;color:#99918d;font-size:9px;text-align:right}
.footer-credit{grid-column:1/-1;margin-top:-8px;color:#99918d;font-size:8px;letter-spacing:.04em}
.footer-credit a{color:#d0c6c1;text-decoration:underline;text-decoration-color:#c8102e;text-underline-offset:3px;transition:color .2s}
.footer-credit a:hover{color:#f1c8ad}
.mobile-donate{display:none}
.toast{position:fixed;z-index:110;left:50%;bottom:26px;max-width:calc(100vw - 35px);padding:13px 19px;background:var(--ink);color:#fff;text-align:center;font-size:11px;opacity:0;pointer-events:none;transform:translate(-50%,20px);transition:opacity .2s,transform .2s}
.toast.is-visible{opacity:1;transform:translate(-50%,0)}
.announcement{position:relative;z-index:2;padding:12px var(--gutter);background:var(--champagne);color:var(--burgundy);text-align:center;font-size:10px;font-weight:700;letter-spacing:.1em}
.deadline-note{margin:17px 0 0;padding-top:13px;border-top:1px solid #eee7e2;color:var(--burgundy);font-size:9px;font-weight:700;letter-spacing:.12em;text-align:right}
.reveal.is-visible,.timeline-item.is-visible,.five-card.is-visible,.campaign-panel.is-visible,.photo-gallery.is-visible{animation:reveal-up .72s var(--ease) both}
.final-cta.is-visible .final-cta__star{animation:final-mark 2.8s 1.1s ease-in-out infinite alternate}
@keyframes photo-in{from{opacity:.55;filter:brightness(.92)}to{opacity:1;filter:none}}
@keyframes copy-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes cue{0%,100%{transform:scaleY(.55);transform-origin:top;opacity:.55}55%{transform:scaleY(1);transform-origin:top;opacity:1}}
@keyframes reveal-up{from{opacity:.55;transform:translateY(17px)}to{opacity:1;transform:none}}
@keyframes final-mark{to{transform:rotate(12deg) scale(1.04)}}

@media(max-width:1080px){
  :root{--gutter:clamp(24px,5vw,58px)}
  .hero__photo-wrap{left:34%}.hero__copy{width:72%}.hero h1{font-size:clamp(65px,8.6vw,100px)}
  .intro__layout{gap:6vw}.five{grid-template-columns:1fr;gap:22px}.five__heading{display:grid;grid-template-columns:1fr auto;align-items:end;gap:0 20px}.five__heading .eyebrow,.five__heading p{grid-column:1}.five__heading h3{grid-column:2;grid-row:1/3;justify-self:end}.five-card{min-height:150px}
  .message-form{grid-template-columns:1fr 1fr}.message-form label:nth-of-type(2){grid-column:1}.message-form label:nth-of-type(3){grid-column:2;grid-row:2/4}.message-form>.button{grid-column:2}
}
@media(max-width:760px){
  html{scroll-padding-top:20px}.site-header{padding:16px 22px}.wordmark__monogram{width:36px;height:36px}.wordmark__name{font-size:8px}
  .site-nav{position:absolute;top:67px;left:12px;right:12px;display:none;flex-direction:column;align-items:stretch;gap:0;padding:8px 18px 16px;background:#171717;box-shadow:0 16px 34px rgba(0,0,0,.25)}
  .site-nav.is-open{display:flex}.site-nav>a{padding:15px 2px;border-bottom:1px solid rgba(255,255,255,.15)}.site-nav .nav-support{border:0;padding:15px 2px;color:#f4d1bd}
  .menu-toggle{display:flex;width:43px;height:40px;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(255,255,255,.65);background:rgba(20,18,18,.22);cursor:pointer}
  .menu-toggle span{display:block;width:17px;height:1px;background:#fff;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
  .hero{display:block;height:100svh;min-height:680px;max-height:900px}.hero__photo-wrap{inset:0 0 0 14%}.hero__photo{object-position:55% 31%}.hero__veil{background:linear-gradient(90deg,rgba(16,16,20,.88),rgba(16,16,20,.56) 47%,rgba(16,16,20,.12)),linear-gradient(0deg,rgba(16,16,20,.88),transparent 68%)}
  .hero__copy{position:absolute;right:0;bottom:67px;left:0;width:auto;padding:0 25px 18px}.hero__eyebrow{font-size:7px}.hero__name{font-size:30px;margin:17px 0 11px}.hero h1{font-size:clamp(54px,13.4vw,90px);margin:15px 0}.hero__intro{font-size:21px;margin:18px 0 22px}.hero__actions{gap:16px}.hero__actions .button{min-height:47px;padding:0 16px;font-size:8px}.hero__side-note{right:10px;font-size:7px}.scroll-cue{left:25px;bottom:20px;font-size:7px}.scroll-cue span{height:25px}.hero__index{right:24px;bottom:22px}
  .section-pad{padding-right:23px;padding-left:23px}.section-kicker{gap:10px;padding-top:25px;font-size:8px}.section-kicker .rule{width:31px}
  .intro{padding-top:0;padding-bottom:73px}.intro__layout{grid-template-columns:1fr;gap:35px;padding:35px 3px 56px}.intro__image-frame{justify-self:start;width:78%;margin-left:13px}.intro__image-frame img{width:100%;height:450px;min-height:0}.intro__copy{padding:0 4px}.intro__copy h2,.moments h2,.note-copy h2{font-size:clamp(61px,15.5vw,93px)}.intro__lead{font-size:27px}.body-copy{font-size:13px}.profile-strip{gap:16px}.profile-detail--wide .editable-placeholder{font-size:13px}
  .five{padding:31px 3px 0;gap:20px}.five__heading{grid-template-columns:1fr auto;gap:0 12px}.five__heading h3{font-size:46px}.five__heading p{font-size:13px}.five__cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;padding:3px 2px 16px;margin-right:-23px;scrollbar-width:none}.five__cards::-webkit-scrollbar{display:none}.five-card{flex:0 0 150px;min-height:157px;scroll-snap-align:start}
  .journey__top{min-height:0;padding-bottom:44px}.journey__headline{width:100%;padding:58px 0 0}.journey__headline h2{font-size:clamp(67px,17vw,112px)}.journey__headline>p:last-child{max-width:260px;font-size:21px}.journey__portrait{position:relative;top:auto;right:auto;width:69%;height:340px;margin:28px 0 0 auto}.journey__statement{gap:13px;padding:27px 19px}.journey__statement p{font-size:24px}.journey__ornament{font-size:15px}.journey__why{padding-top:53px;padding-bottom:48px}.journey__why h3{font-size:clamp(42px,10vw,67px)}.journey__why>p:not(.eyebrow):not(.journey__support-note){font-size:23px}.timeline{padding-top:10px;padding-bottom:57px}.timeline-item{grid-template-columns:37px minmax(0,1fr) 62px 18px;gap:11px;min-height:110px;padding:18px 0}.timeline-item__count{font-size:10px}.timeline-item__content h3{font-size:28px}.timeline-item__content p:last-child{font-size:11px}.timeline-item__photo{width:62px;height:76px}.timeline-item__mark{font-size:19px}
  .support{padding-top:0;padding-bottom:73px}.support__heading{display:block;padding:35px 3px 30px}.support h2{font-size:clamp(59px,15.5vw,94px)}.support__lead{max-width:330px;margin:23px 0 0;font-size:22px}.campaign-panel{padding:21px 17px}.campaign-panel__title{align-items:flex-start;flex-direction:column;gap:11px}.campaign-status{font-size:7px}.campaign-stats{grid-template-columns:1fr 1fr;gap:18px}.campaign-stat--progress{grid-column:1/-1}.campaign-stat strong{font-size:33px}.campaign-empty{font-size:18px}.donation-area{margin-top:48px}.donation-area__heading{align-items:flex-end}.donation-area__heading h3{font-size:40px}.donation-area__heading>p{font-size:16px}.donation-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.donation-option{min-height:87px;padding:12px}.donation-option strong{font-size:25px}.donation-option>span{font-size:7px}.donation-summary{flex-wrap:wrap;gap:10px 15px}.donation-summary>span{width:100%}.donation-summary .button{width:100%;margin:5px 0 0}.payment-note{font-size:10px;line-height:1.5}.check-note{padding:15px}.check-note p{font-size:15px}.donation-secondary{flex-wrap:wrap;gap:11px 20px}.donation-secondary .underlined-link{font-size:8px}.support-wall{grid-template-columns:1fr;gap:12px;margin:51px 0 26px;padding:25px 0}.support-wall h3{font-size:46px}.supporter-empty{font-size:19px}.message-form{grid-template-columns:1fr;gap:15px;padding:21px 17px}.message-form__heading{display:block}.message-form__heading p{margin-top:7px;line-height:1.5}.message-form label:nth-of-type(2),.message-form label:nth-of-type(3){grid-column:auto;grid-row:auto}.message-form .consent-check{padding-top:0}.message-form>.button{grid-column:1;justify-self:stretch}
  .moments{padding-top:0;padding-bottom:72px}.moments__heading{display:block;padding:35px 0 25px}.moments__heading>p{margin:22px 0 0;font-size:20px}
  .photo-gallery{display:flex;grid-template-columns:none;grid-template-rows:none;gap:9px;margin-right:-23px;padding:0 23px 13px 0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.photo-gallery::-webkit-scrollbar{display:none}.gallery-photo{flex:0 0 min(76vw,320px);height:min(62svh,410px);min-height:300px;grid-column:auto;grid-row:auto;scroll-snap-align:center}.gallery-photo--school,.gallery-photo--chorus{flex-basis:min(66vw,280px);height:min(54svh,360px);align-self:center}.gallery-photo--white{flex-basis:min(70vw,295px)}.gallery-photo--court{display:block;flex-basis:min(76vw,320px)}
  .lightbox{width:100vw;height:100svh;padding:35px 10px}.lightbox figure img{max-width:calc(100% - 55px);max-height:calc(100% - 54px)}.lightbox__previous{left:5px}.lightbox__next{right:5px}
  .note-section{padding-top:0;padding-bottom:68px}.note-layout{grid-template-columns:1fr;gap:34px;padding:34px 7px 0}.note-photo{justify-self:start;width:82%;max-width:360px}.note-photo img{height:440px}.note-photo__stamp{right:-27px;width:82px;height:82px;font-size:12px}.note-copy blockquote{font-size:25px}
  .share-section{grid-template-columns:1fr;gap:28px;padding:61px 23px}.share-section__left h2{font-size:clamp(59px,15vw,88px)}.share-section__left>p:last-child{font-size:21px}.share-actions{width:100%}.share-action{font-size:9px;padding:17px 0}
  .final-cta{min-height:570px;padding:77px 23px 70px}.final-cta h2{font-size:clamp(57px,14.7vw,95px)}.final-cta>p:not(.eyebrow){font-size:21px}.final-cta__actions{flex-direction:column;gap:9px}.final-cta__star{top:10%;right:7%;font-size:42px}
  .site-footer{grid-template-columns:1fr;gap:17px;padding:28px 23px 92px}.site-footer>p{text-align:left}.footer-links{gap:16px}.site-footer small{justify-self:start;text-align:left;line-height:1.5}
  .mobile-donate{position:fixed;z-index:45;right:13px;bottom:11px;left:13px;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--red);color:#fff;box-shadow:0 5px 22px rgba(71,0,14,.25);font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;transform:translateY(140%);transition:transform .3s var(--ease)}.mobile-donate.is-visible{transform:translateY(0)}.mobile-donate span{font-size:16px}.toast{bottom:83px}
}
@media(max-width:380px){.hero__actions{gap:11px}.hero__actions .button{padding:0 12px}.text-link{font-size:8px}.profile-strip{grid-template-columns:1fr}.five-card{flex-basis:138px}.donation-area__heading h3{font-size:36px}.donation-area__heading>p{font-size:15px}.final-cta h2{font-size:54px}.gallery-photo{height:min(58svh,360px);min-height:280px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hero__photo,.hero__copy{animation:none}.reveal.is-visible,.timeline-item.is-visible,.five-card.is-visible,.campaign-panel.is-visible,.photo-gallery.is-visible{animation:none}}

/* Keep oversized campaign headlines expressive without crowding neighboring letters. */
.hero h1,.intro__copy h2,.moments h2,.note-copy h2,.five__heading h3,.journey__headline h2,.journey__why h3,.support h2,.donation-area__heading h3,.share-section__left h2,.final-cta h2{letter-spacing:-.045em}
.hero h1 em,.intro__copy h2 em,.moments h2 em,.note-copy h2 em,.five__heading h3 em,.journey__headline h2 em,.journey__why h3 em,.support h2 em,.share-section__left h2 em,.final-cta h2 em{letter-spacing:-.02em}
