:root{
  --navy: #14213A;
  --navy-deep: #0A1220;
  --ivory: #F6F1E4;
  --ivory-dim: #E9E2D0;
  --gold: #D9A441;
  --gold-bright: #F0C674;
  --clay: #B85C38;
  --clay-bright: #D2714B;
  --line: rgba(217,164,65,0.22);
  --line-dark: rgba(246,241,228,0.12);
  --ink: #14213A;
  --serif: 'Fraunces', serif;
  --sans: 'Inter', sans-serif;
  --mono: 'IBM Plex Mono', monospace;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--ivory);
  color:var(--navy);
  font-family:var(--sans);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block; max-width:100%;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
.wrap-flush{padding:0;}
.wrap-edge{padding:0 32px;}
.eyebrow{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:500;
}
h1,h2,h3{font-family:var(--serif); font-weight:600; letter-spacing:-0.01em;}
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-decoration:none;
  padding:14px 26px;
  border-radius:2px;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn:focus-visible{outline:2px solid var(--gold-bright); outline-offset:3px;}
.btn-gold{background:var(--gold); color:var(--navy-deep); font-weight:600;}
.btn-gold:hover{background:var(--gold-bright);}
.btn-ghost{border-color:rgba(246,241,228,.4); color:var(--ivory);}
.btn-ghost:hover{border-color:var(--gold-bright); color:var(--gold-bright);}
.btn-clay{background:var(--clay); color:var(--ivory); font-weight:600;}
.btn-clay:hover{background:var(--clay-bright);}
.btn-outline-navy{border-color:rgba(20,33,58,.35); color:var(--navy);}
.btn-outline-navy:hover{border-color:var(--navy); background:var(--navy); color:var(--ivory);}

/* ---------- NAV ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(10,18,32,.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-dark);
  box-shadow:0 10px 30px rgba(3,8,15,.16);
}
nav{
  display:flex;
  align-items:center;
  gap:28px;
  padding:15px 32px;
  max-width:1180px; margin:0 auto;
  position:relative;
}
.logo{
  font-family:var(--serif);
  font-size:19px;
  font-weight:600;
  color:var(--ivory);
  letter-spacing:.01em;
  text-decoration:none;
}
.logo span{color:var(--gold-bright);}
.nav-menu{
  display:flex;
  align-items:center;
  gap:10px;
  margin-left:auto;
}
.nav-links{
  display:flex;
  gap:26px;
  list-style:none;
  align-items:center;
}
.nav-links a{
  position:relative;
  display:inline-block;
  padding-bottom:6px;
  color:rgba(233,226,208,.82);
  text-decoration:none;
  font-family:var(--mono);
  font-size:12px;
  font-weight:500;
  letter-spacing:.08em;
  text-transform:uppercase;
  transition:color .15s ease;
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:1px;
  background:var(--gold-bright);
  transform:scaleX(.35);
  transform-origin:left center;
  opacity:0;
  transition:transform .18s ease, opacity .18s ease;
}
.nav-links a:hover,
.nav-links a:focus-visible{
  color:var(--gold-bright);
}
.nav-links a:hover::after,
.nav-links a:focus-visible::after{
  transform:scaleX(1);
  opacity:1;
}
.nav-cta{display:flex; gap:12px; margin-left:10px;}
.nav-toggle{
  display:none;
  margin-left:auto;
  width:46px;
  height:46px;
  border:1px solid rgba(246,241,228,.16);
  background:rgba(246,241,228,.03);
  color:var(--ivory);
  border-radius:2px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
  transition:border-color .18s ease, background .18s ease, transform .18s ease;
}
.nav-toggle span{
  width:16px;
  height:1.5px;
  background:currentColor;
  transition:transform .18s ease, opacity .18s ease;
}
.nav-toggle:hover,
.nav-toggle:focus-visible{
  border-color:var(--gold-bright);
  background:rgba(240,198,116,.08);
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){
  transform:translateY(6.5px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] span:nth-child(2){
  opacity:0;
}
.nav-toggle[aria-expanded="true"] span:nth-child(3){
  transform:translateY(-6.5px) rotate(-45deg);
}

/* ---------- HERO ---------- */
.hero{
  background:radial-gradient(ellipse 900px 500px at 50% -10%, #1c2c4d 0%, var(--navy) 55%, var(--navy-deep) 100%);
  color:var(--ivory);
  padding:60px 10px 0;
  position:relative;
  overflow:hidden;
}
.hero-inner{
  max-width:1180px; margin:0 auto;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:56px;
  align-items:center;
}
.hero-eyebrow{color:var(--gold-bright); margin-bottom:18px;}
.hero h1{
  font-size:clamp(34px, 4.4vw, 54px);
  line-height:1.06;
  margin-bottom:22px;
}
.hero h1 em{
  font-style:italic;
  color:var(--gold-bright);
}
.hero p.lede{
  font-size:17px;
  color:var(--ivory-dim);
  max-width:46ch;
  margin-bottom:34px;
}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:56px;}

.hero-progress-card{
  width:100%;
  max-width:440px;
  padding:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-self:center;
}
.hero-progress-head{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  margin-bottom:16px;
}
.hero-progress-label{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--gold-bright);
}
.hero-progress-percent{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.08em;
  color:var(--ivory-dim);
  text-transform:uppercase;
}
.hero-raised-amount{
  font-family:var(--mono);
  font-size:clamp(38px, 5vw, 56px);
  line-height:1;
  color:var(--ivory);
  margin-bottom:8px;
}
.hero-goal-copy{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ivory-dim);
  margin-bottom:12px;
}
.hero-impact-copy{
  max-width:34ch;
  font-size:15px;
  color:var(--ivory-dim);
  margin-bottom:18px;
  line-height:1.55;
}
.hero-progress-track{
  height:8px;
  background:rgba(246,241,228,.1);
  overflow:hidden;
  border-radius:999px;
}
.hero-progress-fill{
  width:0;
  height:100%;
  background:linear-gradient(90deg, var(--gold) 0%, var(--gold-bright) 70%, #f4d89a 100%);
  box-shadow:0 0 24px rgba(240,198,116,.28);
  border-radius:999px;
}

.stat-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line-dark);
}
.stat{
  padding:22px 0;
  border-right:1px solid var(--line-dark);
}
.stat:last-child{border-right:none;}
.stat-num{
  font-family:var(--mono);
  font-size:28px;
  font-weight:600;
  color:var(--gold-bright);
}
.stat-label{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ivory-dim);
  margin-top:4px;
}

/* ---------- SECTION SHELL ---------- */
section{padding:96px 0;}
.section-head{
  max-width:640px;
  margin-bottom:56px;
}
.section-head .eyebrow{color:var(--clay); margin-bottom:14px;}
.section-head h2{font-size:clamp(26px,3vw,36px); line-height:1.15;}
.section-head p{margin-top:16px; font-size:16px; color:#3d4a63; max-width:56ch;}
.light .section-head .eyebrow{color:var(--clay);}

/* ---------- ALLOCATION ---------- */
.allocation{background:var(--ivory);}
.alloc-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.alloc-card{
  background:var(--ivory);
  padding:36px 32px;
}
.alloc-mark{
  width:34px; height:34px;
  margin-bottom:22px;
}
.alloc-card h3{font-size:19px; margin-bottom:10px; font-weight:600;}
.alloc-card p{font-size:14.5px; color:#3d4a63;}
.alloc-share{
  font-family:var(--mono);
  font-size:12px;
  color:var(--clay);
  letter-spacing:.06em;
  margin-top:16px;
  display:block;
}

/* ---------- MOBILIZER ---------- */
.mobilizer{
  background:var(--navy-deep);
  color:var(--ivory);
}
.mob-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:start;
}
.mobilizer-eyebrow{color:var(--gold-bright); margin-bottom:14px;}
.mobilizer-heading{font-size:clamp(26px,3vw,36px); margin-bottom:20px;}
.mob-copy p{color:var(--ivory-dim); font-size:16px; max-width:50ch; margin-bottom:22px;}
.mob-list{list-style:none; margin-top:28px;}
.mob-list li{
  display:flex; gap:14px;
  padding:16px 0;
  border-top:1px solid var(--line-dark);
  font-size:14.5px;
  color:var(--ivory-dim);
}
.mob-list li:last-child{border-bottom:1px solid var(--line-dark);}
.mob-list b{color:var(--ivory); font-weight:600; min-width:80px; font-family:var(--mono); font-size:13px;}

.pledge-card{
  background:#101c33;
  border:1px solid var(--line-dark);
  padding:36px;
}
.pledge-card h3{font-size:18px; margin-bottom:6px; color:var(--ivory);}
.pledge-card .sub{font-size:13.5px; color:var(--ivory-dim); margin-bottom:26px;}
.tier-row{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:22px;}
.tier{
  border:1px solid var(--line-dark);
  padding:14px 8px;
  text-align:center;
  cursor:pointer;
  transition:border-color .15s ease, background .15s ease;
}
.tier.active{border-color:var(--gold); background:rgba(217,164,65,.08);}
.tier-amt{font-family:var(--mono); font-weight:600; color:var(--gold-bright); font-size:15px;}
.tier-name{font-size:10.5px; color:var(--ivory-dim); text-transform:uppercase; letter-spacing:.06em; margin-top:4px;}
.field{margin-bottom:16px;}
.field label{
  display:block;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ivory-dim);
  margin-bottom:7px;
}
.field input{
  width:100%;
  background:#0a1424;
  border:1px solid var(--line-dark);
  color:var(--ivory);
  padding:12px 14px;
  font-family:var(--sans);
  font-size:14px;
}
.field input:focus{outline:none; border-color:var(--gold);}
.field input::placeholder{color:#5c6a86;}
.pledge-card .btn{width:100%; justify-content:center; margin-top:6px;}
.pledge-fine{font-size:11.5px; color:#5c6a86; margin-top:14px; text-align:center;}

/* ---------- APPLY ---------- */
.apply{
  background:var(--ivory-dim);
  border-top:1px solid rgba(20,33,58,.08);
  border-bottom:1px solid rgba(20,33,58,.08);
}
.apply-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:64px;
}
.section-head-tight{margin-bottom:0;}
.apply-copy p{font-size:16px; color:#3d4a63; max-width:50ch; margin-bottom:20px;}
.criteria{margin-top:28px;}
.criteria-row{
  display:flex; gap:16px;
  padding:14px 0;
  border-top:1px solid rgba(20,33,58,.12);
  font-size:14.5px;
  color:#2a3550;
}
.criteria-row:last-child{border-bottom:1px solid rgba(20,33,58,.12);}
.criteria-check{
  width:16px; height:16px; flex-shrink:0; margin-top:2px;
  color:var(--clay);
}
.apply-card{
  background:var(--navy);
  color:var(--ivory);
  padding:40px 34px;
  align-self:start;
}
.apply-card .eyebrow{color:var(--gold-bright); margin-bottom:14px;}
.apply-card h3{font-family:var(--serif); font-size:24px; margin-bottom:14px;}
.apply-card p{color:var(--ivory-dim); font-size:14.5px; margin-bottom:26px;}
.apply-card .btn{width:100%; justify-content:center;}
.apply-stat{
  display:flex; justify-content:space-between;
  font-family:var(--mono); font-size:12px;
  padding:10px 0;
  border-top:1px solid var(--line-dark);
  color:var(--ivory-dim);
}
.apply-stat b{color:var(--gold-bright);}

/* ---------- PARTNERS ---------- */
.partners{background:var(--ivory);}
.partner-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1px;
  background:rgba(20,33,58,.1);
  border:1px solid rgba(20,33,58,.1);
}
.partner-cell{
  background:var(--ivory);
  height:96px;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif);
  font-weight:600;
  font-size:15px;
  color:#8891a3;
  letter-spacing:.02em;
  transition:color .18s ease;
}
.partner-cell:hover{color:var(--navy);}

/* ---------- FAQ ---------- */
.faq{
  background:var(--ivory-dim);
  border-top:1px solid rgba(20,33,58,.08);
}
.faq-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.faq-card{
  background:var(--ivory);
  border:1px solid rgba(20,33,58,.1);
  padding:28px;
}
.faq-card h3{
  font-size:20px;
  margin-bottom:12px;
}
.faq-card p{
  font-size:15px;
  color:#3d4a63;
}

/* ---------- FOOTER ---------- */
footer{
  background:var(--navy-deep);
  color:var(--ivory-dim);
  padding:64px 10px 32px;
}
.foot-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:48px;
  padding-bottom:40px;
  border-bottom:1px solid var(--line-dark);
}
.foot-logo{font-family:var(--serif); font-size:20px; color:var(--ivory); margin-bottom:14px;}
.foot-logo span{color:var(--gold-bright);}
.foot-grid p{font-size:14px; max-width:36ch;}
.foot-col h4{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ivory);
  margin-bottom:16px;
}
.foot-col ul{list-style:none;}
.foot-col li{margin-bottom:10px;}
.foot-col a{text-decoration:none; font-size:14px; color:var(--ivory-dim); transition:color .15s ease;}
.foot-col a:hover{color:var(--gold-bright);}
.foot-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding-top:24px;
  font-family:var(--mono);
  font-size:11.5px;
  color:#5c6a86;
  flex-wrap:wrap;
  gap:10px;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  .wrap{
    padding:0 20px;
  }
  .wrap-edge{
    padding:0 20px;
  }
  section{
    padding:80px 0;
  }
  nav{
    gap:16px;
    padding:14px 20px;
  }
  .nav-toggle{display:inline-flex;}
  .nav-menu{
    display:none;
    position:absolute;
    top:calc(100% + 12px);
    left:20px;
    right:20px;
    margin-left:0;
    padding:18px;
    background:rgba(10,18,32,.98);
    border:1px solid var(--line-dark);
    box-shadow:0 24px 44px rgba(2,6,11,.34);
    flex-direction:column;
    align-items:stretch;
    gap:18px;
  }
  .nav-menu.is-open{display:flex;}
  .nav-links{
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
  }
  .nav-links a{
    width:100%;
    padding-bottom:8px;
  }
  .nav-cta{
    margin-left:0;
    width:100%;
  }
  .nav-cta .btn{
    width:100%;
    justify-content:center;
  }
  .hero-inner{grid-template-columns:1fr; gap:40px;}
  .stat-row{grid-template-columns:1fr 1fr;}
  .stat:nth-child(2){border-right:none;}
  .stat:nth-child(3){border-top:1px solid var(--line-dark); grid-column:1/3;}
  .alloc-grid{grid-template-columns:1fr;}
  .mob-grid{grid-template-columns:1fr;}
  .apply-grid{grid-template-columns:1fr;}
  .partner-grid{grid-template-columns:repeat(2,1fr);}
  .faq-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr; gap:32px;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}
