:root{
  --ink:#10111a;
  --navy:#222659;
  --sand:#f4efe0;
  --card:#fffdf6;
  --green:#3f6b4f;
  --green-dark:#28402f;
  --gold:#F7941C;
  --coral:#d9563f;
  --rule:#cabf9e;
  --rule-soft:#ded4b6;
  --max:1120px;
  --header-offset:160px;
}
*{box-sizing:border-box;}
html{
  scroll-behavior:smooth;
  scroll-padding-top:var(--header-offset);
}
body{
  margin:0;
  background:var(--sand);
  color:var(--ink);
  font-family:'Public Sans', sans-serif;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}
img,svg{max-width:100%;display:block;}
a{color:inherit;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 28px;}
h1,h2,h3,h4{font-family:'Fraunces', serif; font-weight:600; margin:0; letter-spacing:-0.01em;}
p{line-height:1.65; margin:0 0 1em 0;}
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'Public Sans', sans-serif;
  font-weight:700;
  font-size:15px;
  padding:13px 26px;
  border-radius:3px;
  text-decoration:none;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn:focus-visible{outline:3px solid var(--gold); outline-offset:2px;}
.btn-coral{background:var(--coral); color:#fff9f2; }
.btn-coral:hover{background:#a63e2c;}
.btn-navy{background:var(--navy); color:#fff9f2; }
.btn-navy:hover{background:#fff9f2; color:var(--navy);}

.btn-outline{background:transparent; border-color:var(--navy); color:var(--navy);}
.btn-outline:hover{background:var(--navy); color:#fff;}
.btn-outline-light{background:transparent; border-color:rgba(255,255,255,.55); color:#fff9f2;}
.btn-outline-light:hover{background:rgba(255,255,255,.12);}

/* ---------- NAV ---------- */
header.site{
  position:sticky; top:0; z-index:50;
  background:rgba(250, 248, 240, 0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--rule);
}

.logo {
  width:250px;
  max-width:100%;
}

.nav{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:16px;
  padding:28px; max-width:var(--max); margin:0 auto;
}
.brand{
  display:flex; align-items:center; gap:10px;
  min-width:0;
  font-family:'Fraunces', serif; font-weight:600; font-size:19px;
  text-decoration:none; color:var(--ink);
}
.brand .mark{
  width:34px;height:34px;border-radius:50%;
  background:var(--green); color:#f4efe0;
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces', serif; font-weight:600; font-size:15px;
  flex:none;
}
nav.links{display:flex;flex:1;justify-content:flex-end; align-items:center; gap:48px;margin-right:48px;}
nav.links a{
  text-decoration:none; font-size:16px; font-weight:600; color:var(--green-dark);
  padding:9px 0; border-bottom:2px solid transparent;
}
nav.links a:hover{border-bottom-color:var(--gold);}
.nav-cta{display:flex; align-items:center; gap:24px; flex:none;}
.nav .btn{padding:9px 18px; font-size:16px;}
.burger{display:none; background:none; border:none; cursor:pointer; padding:6px;}
.burger span{display:block; width:24px; height:2px; background:var(--ink); margin:5px 0;}

@media (max-width:860px){
  :root{ --header-offset:110px; }
  .nav{
    gap:12px;
    padding:16px 20px;
    align-items:center;
  }
  .brand{flex:1;}
  .logo{width:100%; max-width:min(180px, 52vw);}
  .nav-cta{gap:16px;}
  .nav .btn{padding:8px 14px; font-size:14px;}
  .burger{padding:8px;}
  nav.links{
    position:absolute; top:100%; left:0; right:0;
    background:var(--sand); flex-direction:column; align-items:flex-start;
    padding:18px 28px 22px; gap:16px; border-bottom:1px solid var(--rule);
    display:none;
  }
  nav.links.open{display:flex;}
  .burger{display:block;}
  .nav-cta .btn-outline{display:none;}
}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  background:var(--navy);
  color:#f4efe0;
  overflow:hidden;
  padding:64px 0 0;
}
/* .hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 700px 400px at 85% -10%, rgba(226,163,61,.20), transparent 60%),
    radial-gradient(ellipse 500px 500px at -5% 90%, rgba(63,107,79,.35), transparent 60%);
  pointer-events:none;
} */
.hero-grid{
  position:relative;
  display:grid;
  grid-template-columns:1.15fr 1fr;
  grid-template-areas:
    "title portrait"
    "copy portrait";
  column-gap:16px;
  row-gap:0;
  align-items:end;
}
.hero h1{
  grid-area:title;
  font-size:clamp(38px, 6vw, 66px);
  line-height:1.03;
  font-weight:600;
  margin-bottom:20px;
}
.hero h1 em{
  font-style:normal; font-weight:400; color:var(--gold);
}
.hero-copy{grid-area:copy; padding-bottom:24px;}
.hero-portrait{
  grid-area:portrait;
  position:relative;
  display:flex; justify-content:center; align-items:flex-end;
}
.hero-portrait img{max-width:90%;}
@media (max-width:900px){
  .hero{padding-top:36px;}
  .hero-grid{
    grid-template-columns:1fr 132px;
    grid-template-areas:
      "title portrait"
      "copy copy";
    column-gap:16px;
    row-gap:0;
    align-items:start;
  }
  .hero h1{
    font-size:clamp(28px, 7.2vw, 38px);
    margin-bottom:0;
  }
  .hero-copy{
    padding-bottom:0;
    padding-top:20px;
    border-top:1px solid rgba(244,239,224,.22);
  }
  .hero-portrait{align-self:end;}
  .hero-portrait img{
    max-width:100%;
    width:100%;
    aspect-ratio:3/4;
    object-fit:cover;
    object-position:50% 12%;
  }
  .facts-strip{
    flex-direction:column;
    align-items:stretch;
  }
  .fact{
    flex:none;
    padding:12px 0;
    margin-top:0;
    font-size:20px;
  }
}
.hero .lede{
  font-size:18px; max-width:480px; color:#e7e1cf; margin-bottom:30px;
}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:38px;}
.hero-kickoff{font-size:15px; margin-top:-14px;}
.hero-kickoff a{color:var(--gold); text-decoration:underline;}
.facts-strip{
  display:flex; flex-wrap:wrap; gap:0;
  border-top:1px solid rgba(244,239,224,.22);
  padding:24px 0;
}
.fact{
  flex:1;
  padding:16px 0;font-size:24px; color:#f4efe0; margin-top:4px; font-weight:600;text-align:center;
}
/* .facts-strip .num{color:var(--gold); font-size:20px;width:100%;} */

/* .portrait-card{
  width:100%; max-width:340px;
  aspect-ratio:4/5;
  background:linear-gradient(165deg,#4a7a5c,#2c4a37);
  border-radius:6px 6px 0 0;
  position:relative;
  display:flex; align-items:flex-end; justify-content:center;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.5);
  overflow:hidden;
} */
.portrait-tag{
  position:absolute; left:16px; bottom:16px;
  background:rgba(27,46,74,.85);
  border:1px solid rgba(244,239,224,.3);
  color:#f4efe0; font-family:'IBM Plex Mono', monospace;
  font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  padding:6px 10px; border-radius:2px;
}

/* ---------- SECTION shared ---------- */
section{padding:64px 0;}
@media (max-width:700px){ section{padding:60px 0;} }
.section-head{max-width:640px; margin-bottom:44px;}
.section-head h2{font-size:clamp(28px,4vw,42px); margin-top:10px;}
.section-head p{font-size:16px; color:var(--ink); margin-top:14px;}
.section-subhead{font-size:24px; color:var(--ink); margin-bottom:24px;}
/* ---------- ABOUT ---------- */
.about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:start;}
@media (max-width:860px){.about-grid{grid-template-columns:1fr;}}
.quote-block{
  background:var(--card);
  border:1px solid var(--rule);
  border-left:4px solid var(--green);
  padding:26px 26px 24px;
  border-radius:2px;
  margin:26px 0;
}
.quote-block p{
  font-family:'Fraunces', serif; font-style:italic; font-weight:400;
  font-size:19px; color:var(--green-dark); line-height:1.55; margin-bottom:10px;
}
.quote-block .attr{font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--green); text-transform:uppercase; letter-spacing:.06em;}
.quote-block.coral{border-left-color:var(--coral);}
.about-copy h2{margin-top:10px; font-size:clamp(26px,3.6vw,36px);}
.about-copy > p:first-of-type{margin-top:18px;}
.about-side{
  background:var(--navy); color:#f4efe0; border-radius:6px; padding:30px 26px;
  position:sticky; top:96px;
}
.about-side h3{font-size:19px; margin-bottom:14px; color:var(--gold);}
.side-line{display:flex; gap:12px; padding:10px 0; border-top:1px solid rgba(244,239,224,.18); font-size:14.5px;}
.side-line:first-of-type{border-top:none;}
.side-line b{color:#fff; font-weight:600;}
.about-side .side-line + p{font-size:14px; color:#e7e1cf; margin-top:-6px;}
.about-side .side-line:last-of-type + p{margin-bottom:0;}
.about-side .more{font-size:13px; color:#b9c2b4; margin:16px 0 0;}

/* ---------- PLATFORM / accomplishments ---------- */
.platform{background:#efe8d4; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);}
.platform .section-head{max-width:750px;}
.accomplishments{
  background:var(--card);
  border:1px solid var(--rule);
  border-radius:4px;
  position:relative;
  overflow:hidden;
}
/* .accomplishments-head{
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 26px; border-bottom:2px solid var(--ink);
  font-family:'IBM Plex Mono', monospace; font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--ink);
} */
.row{
  display:grid; grid-template-columns:34px 1fr; gap:16px;
  padding:16px 26px;
  border-bottom:1px solid var(--rule-soft);
  background-image:linear-gradient(var(--rule-soft) 1px, transparent 1px);
}
.row:last-child{border-bottom:none;}
.check{
  width:22px;height:22px; margin-top:2px; flex:none;
}
.row h4{font-family:'Public Sans', sans-serif; font-weight:700; font-size:16px; margin-bottom:3px;}
.row p{font-size:14px; color:var(--ink); margin:0;}

.next-up{margin-top:52px;}
.next-up .section-head{margin-bottom:24px;}
.next-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
@media (max-width:860px){.next-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.next-grid{grid-template-columns:1fr;}}
.next-card{
  background:var(--card); padding:22px 20px 24px;border-radius:4px;}

.next-card h4{font-size:16px; margin-bottom:6px;}
.next-card p{font-size:14px; color:var(--ink); margin:0;}

/* ---------- PHOTOS ---------- */
.photo-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media (max-width:760px){.photo-grid{grid-template-columns:1fr;}}
.polaroid{
  background:var(--card); border:1px solid var(--rule); border-radius:3px;
  padding:12px 12px 16px; transform:rotate(var(--r,0deg));
  box-shadow:0 12px 24px -14px rgba(28,43,31,.35);
}
.polaroid:nth-child(1){--r:-1.4deg;}
.polaroid:nth-child(2){--r:1deg;}
.polaroid:nth-child(3){--r:-0.6deg;}
.polaroid .frame{
  aspect-ratio:4/3; border-radius:2px; margin-bottom:12px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(150deg,#e9dfc0,#cfc19a);
}
.polaroid .frame svg{width:46%; opacity:.55;}
.polaroid figcaption{font-size:13.5px; color:var(--green-dark); font-weight:600;}
.polaroid figcaption span{display:block; font-weight:400; color:#6b6550; font-size:12.5px; margin-top:2px;}

/* ---------- ENDORSEMENTS ---------- */
.endorse{background:var(--navy); color:#f4efe0;}
.endorse .section-head h2{color:#fff9f2;}
.endorse-quotes{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:56px;}
@media (max-width:760px){.endorse-quotes{grid-template-columns:1fr;}}
.eq-card{
  background:rgba(244,239,224,.06);
  border:1px solid rgba(244,239,224,.18);
  border-radius:4px; padding:26px;
}
.eq-card p.q{font-family:'Fraunces', serif; font-style:italic; font-size:17.5px; line-height:1.6; color:#f4efe0; margin-bottom:14px;}
.eq-card .who{font-family:'IBM Plex Mono', monospace; font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--gold);}

.endorse-cat{margin-bottom:34px;}
.endorse-cat h3{
  font-size:13px; font-family:'IBM Plex Mono', monospace; text-transform:uppercase;
  letter-spacing:.1em; color:var(--gold); margin-bottom:16px;
  display:flex; align-items:center; gap:12px;
}
.endorse-cat h3::after{content:""; flex:1; height:1px; background:rgba(244,239,224,.22);}
.name-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:10px 26px;}
@media (max-width:760px){.name-grid{grid-template-columns:1fr;}}
.name-item{
  font-size:14.5px; padding:9px 0; border-bottom:1px solid rgba(244,239,224,.12);
}
.name-item b{font-weight:600; color:#fff;}
.name-item span{display:block; font-size:12.5px; color:#b9c2b4; margin-top:2px;}
.pill-wrap{display:flex; flex-wrap:wrap; gap:9px;}
.pill{
  font-size:13.5px; padding:7px 13px; border:1px solid rgba(244,239,224,.25);
  border-radius:100px; color:#e7e1cf;
}

/* ---------- CTA / DONATE ---------- */
.cta{
  background:var(--gold);
  color:#2a1c0c;
  position:relative;
  overflow:hidden;
}
.cta-grid{
  display:grid; grid-template-columns:1.3fr 1fr; gap:40px; align-items:center;
}
@media (max-width:800px){.cta-grid{grid-template-columns:1fr;}}
.cta h2{font-size:clamp(28px,4vw,40px); margin-bottom:14px;}
.cta p{color:#3f2e10; font-size:16.5px; max-width:460px;}
.cta-actions{display:flex; flex-direction:column; gap:12px; align-items:flex-start;}
.cta-actions .btn{width:100%; justify-content:center;}
.cta .btn-outline{border-color:#2a1c0c; color:#2a1c0c;}
.cta .btn-outline:hover{background:#2a1c0c; color:var(--gold);}

/* ---------- FOOTER ---------- */
footer{background:var(--ink); color:#cfc9b4; padding:44px 0;}
.footer-grid{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:24px;}
footer .brand{color:#f4efe0;}
footer .brand .mark{background:var(--gold); color:var(--ink);}
.footer-links{display:flex; gap:18px; flex-wrap:wrap;}
.footer-links a{font-size:13.5px; text-decoration:none; color:#cfc9b4;}
.footer-links a:hover{color:var(--gold);}