@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');

:root{--red:#a30d18;--red-dark:#780811;--ink:#171615;--muted:#68625c;--paper:#f6f1e9;--white:#fffdf9;--line:#d9d0c5;--serif:"Libre Caslon Display",Georgia,serif;--sans:"DM Sans",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.65}img{max-width:100%;display:block}a{color:inherit}button,input,textarea{font:inherit}.skip{position:fixed;left:1rem;top:-5rem;background:var(--ink);color:#fff;padding:.7rem 1rem;z-index:99}.skip:focus{top:1rem}
.shell{width:min(1180px,calc(100% - 40px));margin:auto}.site-header{position:relative;z-index:10;background:rgba(255,253,249,.96);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:104px}.brand img{width:min(520px,47vw);height:auto}.nav{display:flex;align-items:center;gap:1.45rem;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.nav a{text-decoration:none;border-bottom:2px solid transparent;padding:.45rem 0}.nav a:hover,.nav a[aria-current="page"]{border-color:var(--red)}.nav .donate{background:var(--red);color:white;padding:.75rem 1rem;border:0}.menu-button{display:none;background:none;border:1px solid var(--ink);padding:.55rem .7rem;font-weight:700}
.hero{position:relative;min-height:680px;display:grid;place-items:end start;overflow:hidden;background:#111}.hero-slides,.hero-slide{position:absolute;inset:0}.hero-slide{opacity:0;transition:opacity 1s ease}.hero-slide.active{opacity:1}.hero-slide img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.04)}.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,9,7,.88) 0%,rgba(14,9,7,.45) 48%,rgba(14,9,7,.08) 78%),linear-gradient(0deg,rgba(14,9,7,.62),transparent 54%)}.hero-copy{position:relative;z-index:2;color:#fff;width:min(760px,92%);padding:6rem max(20px,calc((100vw - 1180px)/2)) 5rem}.eyebrow{display:flex;align-items:center;gap:.8rem;font-size:.76rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.eyebrow::before{content:"";width:34px;height:2px;background:currentColor}.hero h1,.page-hero h1{font-family:var(--serif);font-weight:400;line-height:.93;letter-spacing:-.035em;margin:.8rem 0 1.5rem}.hero h1{font-size:clamp(4rem,8vw,7.7rem)}.hero p{font-size:clamp(1.05rem,2vw,1.3rem);max-width:620px;color:#eee7dd}.hero-actions,.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}.button{display:inline-block;text-decoration:none;background:var(--red);color:#fff;padding:.9rem 1.2rem;font-weight:700;border:1px solid var(--red);cursor:pointer}.button:hover{background:var(--red-dark)}.button.ghost{background:transparent;border-color:currentColor}.button.light{background:var(--white);color:var(--ink);border-color:var(--white)}.slide-controls{position:absolute;right:max(20px,calc((100vw - 1180px)/2));bottom:3rem;z-index:3;display:flex;gap:.55rem}.slide-dot{border:1px solid white;background:transparent;width:38px;height:5px;padding:0;cursor:pointer}.slide-dot.active{background:#fff}
.intro{display:grid;grid-template-columns:.65fr 1.35fr;gap:4rem;padding:8rem 0}.intro h2,.section-title{font-family:var(--serif);font-size:clamp(2.6rem,5vw,5rem);font-weight:400;line-height:1.02;margin:0}.intro-copy{font-size:1.12rem}.intro-copy p:first-child{font-size:1.45rem;line-height:1.5;margin-top:0}.stat-band{background:var(--red);color:white;padding:2.4rem 0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px}.stat{padding:1rem 2rem;border-left:1px solid rgba(255,255,255,.35)}.stat strong{display:block;font:400 3rem/1 var(--serif)}.stat span{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em}
.split{display:grid;grid-template-columns:1fr 1fr;min-height:620px}.split-image img{width:100%;height:100%;object-fit:cover}.split-copy{background:var(--ink);color:#fff;padding:clamp(3rem,8vw,8rem);display:flex;flex-direction:column;justify-content:center}.split-copy h2{font:400 clamp(3rem,6vw,6.5rem)/.95 var(--serif);margin:.5rem 0 1.6rem}.split-copy p{color:#d9d0c5;font-size:1.08rem}.cta{padding:7rem 0}.cta-inner{border-top:1px solid var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:4rem;padding-top:3rem}.cta h2{font:400 clamp(3rem,5vw,5.5rem)/1 var(--serif);margin:0}.cta p{font-size:1.1rem;margin-top:0}
.page-hero{padding:7rem 0 5rem;border-bottom:1px solid var(--line);position:relative;overflow:hidden}.page-hero::after{content:"";position:absolute;width:360px;height:360px;border:1px solid #c9bcb0;border-radius:50%;right:-90px;top:-170px}.page-hero h1{font-size:clamp(4rem,9vw,8rem);max-width:1000px}.page-hero p{font-size:1.25rem;max-width:720px;color:var(--muted)}.content{padding:6rem 0}.prose{max-width:780px}.prose h2{font:400 2.5rem/1.1 var(--serif);margin-top:2.4rem}.athletes{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.athlete{background:var(--white);border:1px solid var(--line);padding:2rem;position:relative;overflow:hidden}.athlete::before{content:attr(data-initials);position:absolute;right:-.1em;top:-.25em;font:400 8rem/1 var(--serif);color:#eadfd4}.athlete h2{font:400 2.35rem/1 var(--serif);position:relative;margin:.25rem 0 1.3rem}.athlete p{position:relative}.athlete .year{color:var(--red);font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;font-weight:700}.gallery{display:grid;grid-template-columns:1.3fr .7fr;grid-template-rows:310px 310px;gap:1rem}.gallery figure{margin:0;overflow:hidden;background:#ddd}.gallery figure:first-child{grid-row:1/3}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery figure:hover img{transform:scale(1.03)}
.notice{border-left:4px solid var(--red);background:#eee5da;padding:1.2rem 1.4rem;margin:2rem 0}.form{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;max-width:900px}.field{display:flex;flex-direction:column;gap:.4rem}.field.full{grid-column:1/-1}.field label{font-size:.82rem;font-weight:700;letter-spacing:.04em}.field input,.field textarea{border:1px solid #afa59b;background:var(--white);padding:.85rem;border-radius:0}.field input:focus,.field textarea:focus{outline:3px solid rgba(163,13,24,.2);border-color:var(--red)}.field textarea{min-height:130px;resize:vertical}.check{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.7rem}.form button:disabled{opacity:.55;cursor:not-allowed}.small{font-size:.85rem;color:var(--muted)}
.updates-list{display:grid;grid-template-columns:minmax(0,1fr);gap:1.2rem;max-width:900px}.update-card{background:var(--white);border:1px solid var(--line);padding:clamp(1.5rem,4vw,3rem)}.update-card h2{font:400 clamp(2.1rem,4vw,3.4rem)/1.05 var(--serif);margin:.35rem 0 1rem}.update-card p{max-width:680px}.update-card.quiet{background:transparent}.update-meta{color:var(--red);font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin:0}
.post{padding:6rem 0}.post-hero{max-width:900px}.back-link{display:inline-block;color:var(--red);font-weight:700;text-decoration:none;margin-bottom:2.5rem}.back-link::before{content:"← ";}.post h1{font:400 clamp(3rem,7vw,6rem)/.98 var(--serif);letter-spacing:-.035em;margin:.6rem 0 1.2rem;text-wrap:balance}.post-summary{font-size:1.28rem;color:var(--muted);max-width:760px}.post-image{max-width:980px;margin-top:3rem}.post-image img{width:100%;max-height:520px;object-fit:cover}.post-body{max-width:780px;padding-top:4rem;font-size:1.1rem}.post-body h2{font:400 clamp(2rem,4vw,3rem)/1.1 var(--serif);margin:3rem 0 1rem}.post-body blockquote{border-left:4px solid var(--red);margin:2.5rem 0;padding:1rem 0 1rem 1.5rem;color:var(--muted);font-size:1.25rem}
.site-footer{background:var(--ink);color:#ddd5cc;padding:5rem 0 2rem}.footer-grid{display:grid;grid-template-columns:1.3fr .7fr .7fr;gap:4rem}.footer-logo{filter:grayscale(1) brightness(0) invert(1);width:390px;max-width:100%;opacity:.9}.footer-nav{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}.footer-nav a{text-decoration:none}.footer-note{border-top:1px solid #45413d;margin-top:4rem;padding-top:1.5rem;font-size:.78rem;color:#9f9890}
.reveal{opacity:0;transform:translateY(18px);transition:.7s ease}.reveal.visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media(max-width:860px){.header-inner{min-height:84px}.brand img{width:min(450px,70vw)}.menu-button{display:block}.nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--white);padding:1.5rem 20px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.nav.open{display:flex}.hero{min-height:610px}.intro,.cta-inner,.split,.footer-grid{grid-template-columns:1fr}.intro{gap:2rem;padding:5rem 0}.stats{grid-template-columns:1fr}.stat{border-left:0;border-top:1px solid rgba(255,255,255,.35)}.split-image{height:400px}.athletes{grid-template-columns:1fr}.gallery{grid-template-columns:1fr;grid-template-rows:repeat(3,270px)}.gallery figure:first-child{grid-row:auto}.form{grid-template-columns:1fr}.field.full{grid-column:auto}.page-hero{padding:5rem 0 3.5rem}}
@media(max-width:520px){.shell{width:min(100% - 28px,1180px)}.hero-copy{padding-bottom:6rem}.hero h1{font-size:3.5rem}.slide-controls{left:20px;right:auto;bottom:2rem}.brand img{width:73vw}.page-hero h1{font-size:3.6rem}.athlete{padding:1.4rem}}

/* Quieter memorial-site controls and revised page treatments */
.nav .donate{background:transparent;color:var(--red);padding:.65rem .85rem;border:1px solid var(--red)}
.button{background:transparent;color:var(--red);border-color:currentColor}
.button:hover{background:rgba(163,13,24,.06)}
.hero .button{background:rgba(255,255,255,.04);color:#fff;border-color:rgba(255,255,255,.72)}
.hero .button:hover{background:rgba(255,255,255,.12)}
.actions{gap:1.5rem}
.text-link{color:var(--red);font-weight:700;text-underline-offset:.25em}
.footer-logo{filter:none;opacity:1;background:var(--white);padding:.7rem;border-radius:2px}
.application-content{padding-top:5rem}
.application-content h1{font:400 clamp(3.5rem,7vw,7rem)/1 var(--serif);margin:.7rem 0 3rem}
.gallery-content>.eyebrow{margin-bottom:2rem}

/* More natural headline wrapping on narrow screens */
.hero h1,.intro h2,.page-hero h1,.application-content h1{text-wrap:balance;overflow-wrap:normal;word-break:normal}
@media(max-width:520px){
  .hero h1{font-size:clamp(2.75rem,13vw,3.35rem);white-space:nowrap;letter-spacing:-.045em}
  .intro h2{font-size:clamp(2.65rem,12vw,3.25rem);max-width:7.5em;line-height:1.04}
  .page-hero h1,.application-content h1{font-size:clamp(3rem,13vw,3.6rem);line-height:1}
}

/* Keep display headings composed at tablet and smaller desktop widths */
.hero h1{font-size:clamp(3.25rem,7vw,6.5rem);white-space:nowrap}
.intro{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.intro h2{font-size:clamp(2.75rem,4.5vw,4.5rem)}
@media(max-width:860px){
  .hero h1{font-size:clamp(2.9rem,11vw,5rem)}
  .intro h2{font-size:clamp(2.75rem,10vw,4rem);max-width:none}
}
@media(max-width:520px){
  .hero h1{font-size:clamp(2.65rem,12vw,3.2rem)}
  .intro h2{font-size:clamp(2.55rem,11vw,3.1rem)}
}

/* Position the hero by its outer gutter without collapsing its content width */
.hero-copy{
  width:100%;
  padding-left:max(20px,calc((100vw - 1180px)/2));
  padding-right:20px;
}
.hero-copy>h1,.hero-copy>p,.hero-copy>.hero-actions{max-width:680px}
@media(max-width:520px){.hero-copy{padding-left:20px;padding-right:20px}}

.hero-copy>p{display:block;width:min(620px,100%);max-width:none}
.hero-copy>.hero-actions{display:flex;width:min(680px,100%);max-width:none}
.hero-copy .button{white-space:nowrap}
.recovered-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem;padding:8rem 0}.recovered-copy h2{font:400 clamp(2.75rem,4.5vw,4.5rem)/1.03 var(--serif);margin:.8rem 0}.long-copy{font-size:1.08rem}.long-copy p:first-child{margin-top:0}.long-copy h3{font:400 2rem/1.1 var(--serif);margin:2.5rem 0 .7rem}.long-copy a{color:var(--red);text-underline-offset:.2em}
@media(max-width:860px){.recovered-copy{grid-template-columns:1fr;gap:2rem;padding:5rem 0}}
.page-hero .athletes-title{font-size:clamp(3rem,6vw,5.5rem)}
@media(max-width:520px){.page-hero .athletes-title{font-size:clamp(2.6rem,11vw,3.25rem)}}

/* Consistent, restrained heading scale across interior pages */
.page-hero h1,.application-content h1{font-size:clamp(3rem,6vw,5.5rem)}
@media(max-width:520px){.page-hero h1,.application-content h1{font-size:clamp(2.6rem,11vw,3.25rem)}}

/* Final mobile flow overrides must follow the desktop composition rules */
@media(max-width:860px){
  .intro{grid-template-columns:1fr}
  .intro h2{max-width:100%}
  .intro-copy{min-width:0}
}

/* Subfolder production refinements */
.page-hero::after{display:none}
.menu-button{color:#000;border-color:#000}
@media(max-width:860px){.menu-button{color:#000;border-color:#000}}
.bank-details{display:grid;grid-template-columns:max-content 1fr;gap:.6rem 2rem;background:var(--white);border:1px solid var(--line);padding:1.5rem 2rem;margin:1.5rem 0}.bank-details dt{font-weight:700}.bank-details dd{margin:0}
@media(max-width:520px){.bank-details{grid-template-columns:1fr;gap:.2rem}.bank-details dd{margin-bottom:.6rem}}

/* Featured athlete with photograph */
.athlete-feature{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:2.5rem;align-items:start}
.athlete-feature::before{z-index:0}
.athlete-photo{margin:0;position:relative;z-index:1;aspect-ratio:3/4;overflow:hidden;background:#ddd}
.athlete-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;filter:saturate(.9)}
.athlete-body{position:relative;z-index:1}
@media(max-width:860px){.athlete-feature{grid-template-columns:1fr;gap:1.6rem}.athlete-photo{aspect-ratio:4/5}}
.optima-link{text-decoration-color:var(--line);text-underline-offset:.2em}.optima-link:hover{text-decoration-color:var(--red)}
.footer-note a{text-underline-offset:.2em}

/* Form states */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{display:none;color:var(--red);font-weight:600;margin:0}.form.is-error .form-error{display:block}
.form-thanks{max-width:900px;border-top:1px solid var(--ink);padding-top:2rem}.form-thanks:focus{outline:none}.form-thanks h2{font:400 clamp(2.4rem,4vw,3.5rem)/1 var(--serif);margin:0 0 1rem}
