:root{
  --conifer:#14263a;
  --stone:#d7dbe0;
  --ink:#121a22;
  --soft:#4c545e;
  --lichen:#3d6ea5;
  --lichen-bright:#6a9bd1;
  --cream:#f6f4ea;
  --serif:'Bitter',Georgia,serif;
  --sans:'Public Sans',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;overflow-x:hidden;background:var(--stone);color:var(--ink);font:17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}
img,svg{display:block;max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.01em;margin:0}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 5px rgba(246,244,234,.85)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--cream);color:var(--ink);padding:14px 22px;border-radius:8px;z-index:100;font:600 14px var(--sans);text-decoration:none}
.skip-link:focus{left:16px;top:16px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font:600 16px var(--sans);text-decoration:none;border:0;cursor:pointer;white-space:nowrap;transition:transform .15s ease,background .15s ease}
.btn-primary{background:var(--lichen-bright);color:var(--ink)}
.btn-primary:hover{background:var(--cream);transform:translateY(-1px)}
.btn-line{border:1.5px solid var(--ink);color:var(--ink);background:transparent}
.btn-line:hover{background:var(--ink);color:var(--cream)}
.btn-line.on-dark{border-color:rgba(246,244,234,.5);color:var(--cream)}
.btn-line.on-dark:hover{background:var(--cream);color:var(--conifer)}
.btn small{font:500 12px var(--mono)}

/* header */
header.top{background:var(--conifer);color:var(--cream);position:relative;overflow:hidden}
header.top .wrap{position:relative;z-index:1;display:flex;flex-direction:column;min-height:min(62vh,560px)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:26px 0}
.brand{display:flex;align-items:center;gap:11px;min-width:0;text-decoration:none;color:var(--cream)}
.nav-links{display:flex;gap:24px;flex:none;list-style:none;margin:0;padding:0}
.nav-links a{color:var(--cream);text-decoration:none;font:600 14px var(--sans);opacity:.8;padding-bottom:4px;border-bottom:2px solid transparent}
.nav-links a:hover{opacity:1}
.nav-links a[aria-current="page"]{opacity:1;border-bottom-color:var(--lichen-bright)}
.mark{width:34px;height:34px;flex:none;border-radius:50%;border:1.5px solid #6a9bd1;object-fit:cover}
.brand b{display:block;font-family:var(--serif);font-size:16px;font-weight:600;line-height:1.15}
.brand span{display:block;font:600 10px var(--mono);letter-spacing:.08em;color:#a7b2c2;margin-top:2px}

.hero{position:relative;flex:1;display:flex;align-items:center;padding:20px 0}
.hero-copy{position:relative;z-index:1;max-width:620px;padding-bottom:52px}
.hero-image{position:absolute;right:0;bottom:0;width:min(68%,880px);z-index:0;pointer-events:none}
.hero-image img{width:100%;height:auto;display:block}
.hero h1{font-size:clamp(42px,7.2vw,92px);line-height:1.02;color:var(--cream);text-wrap:balance}
.hero h1 em{font-style:italic;color:var(--lichen-bright)}
.hero-copy p{max-width:540px;margin:24px 0 0;font-size:18px;color:#cdd6e2;text-wrap:pretty}
.hero .actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:30px}
.hero-copy .sponsor{font-size:15px;max-width:460px;margin-top:20px;color:#cdd6e2}

/* editorial stat strip, overlapping hero/body seam */
.stats{position:relative;z-index:2;margin:-44px 0 0;background:var(--cream);border-radius:18px 18px 0 0;box-shadow:0 30px 60px -30px rgba(18,26,34,.45);padding:30px 8px}
.stats .wrap{display:flex;align-items:baseline;flex-wrap:wrap;gap:0}
.stat{flex:1 1 200px;padding:6px 26px;position:relative}
.stat+.stat{border-left:1px solid rgba(18,26,34,.14)}
.stat strong{display:block;font-family:var(--serif);font-size:clamp(26px,3vw,36px);font-weight:600;color:var(--conifer)}
.stat span{display:block;font-size:13.5px;color:var(--soft);margin-top:2px}

main{display:block}
section{padding:88px 0 0}
.sec-head{max-width:620px;margin:0 0 40px}
.sec-head h2{font-size:clamp(28px,3.6vw,42px);line-height:1.08;text-wrap:balance}
.sec-head p{margin:14px 0 0;color:var(--soft);font-size:17.5px;max-width:52ch}

/* process */
#how{padding-bottom:72px;position:relative;overflow:hidden}
#how .wrap{position:relative;z-index:1}
#how .sec-head{margin-left:auto;text-align:right}
#how .sec-head h2{text-wrap:normal}
#how .sec-head p{margin-left:auto}
#how .process{align-items:flex-end}
.how-image{position:absolute;left:4%;top:50%;transform:translateY(-50%);width:min(46%,640px);margin:0;z-index:0}
.how-image img{width:100%;height:auto;display:block}
.how-credit{position:absolute;left:16px;bottom:24px;margin:0;font:500 11px var(--mono);letter-spacing:.02em;color:var(--soft);z-index:1}
.process{display:flex;flex-direction:column;gap:44px}
.step{display:grid;grid-template-columns:76px minmax(0,1fr);gap:6px 24px;align-items:start;max-width:640px}
.step-num{font-family:var(--serif);font-size:52px;font-weight:600;line-height:.9;color:transparent;-webkit-text-stroke:1.5px var(--conifer)}
.step-body b{display:block;font-family:var(--serif);font-size:22px;font-weight:600;margin-bottom:6px}
.step-body p{margin:0;color:var(--soft);font-size:16px;max-width:46ch}
.step-body .meta{display:inline-block;margin-top:12px;font:600 12px var(--mono);letter-spacing:.03em;color:var(--conifer);background:rgba(61,110,165,.14);padding:5px 10px;border-radius:6px}

/* mission / pull quote */
.mission{position:relative;background:var(--conifer);color:var(--cream);padding:96px 0}
.mission .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:56px;align-items:start}
.mission blockquote{margin:0;font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(24px,3.2vw,38px);line-height:1.28;color:var(--cream);text-wrap:balance}
.mission blockquote em{font-style:italic;color:var(--lichen-bright)}
.mission .side{padding-top:12px;font-size:15.5px;color:#c3cbd8}
.mission .side p+p{margin-top:16px}

/* faq */
.faq{max-width:760px}
.faq details{border-top:1px solid rgba(18,26,34,.18)}
.faq details:last-child{border-bottom:1px solid rgba(18,26,34,.18)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:18px;align-items:center;min-height:64px;padding:6px 0;font-family:var(--serif);font-weight:600;font-size:18px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;font:600 15px var(--mono)}
.faq details[open] summary::after{content:'\2212'}
.faq p{margin:0 0 22px;color:var(--soft);max-width:64ch;font-size:15.5px}

/* final rsvp */
.rsvp{margin:96px 0 0;background:var(--lichen-bright);border-radius:20px;padding:52px 48px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;position:relative;overflow:hidden}
.rsvp h2{font-size:clamp(26px,3.2vw,36px);color:var(--ink)}
.rsvp p{margin:10px 0 0;color:var(--conifer);max-width:520px;font-size:16px}
.rsvp .btn-primary{background:var(--ink);color:var(--cream)}
.rsvp .btn-primary:hover{background:var(--conifer);color:var(--cream)}

/* sponsors */
.sponsor-row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:20px 48px;align-items:baseline;border-top:1px solid rgba(18,26,34,.14);padding-top:32px}
.sponsor-row li{font-family:var(--serif);font-size:19px;font-weight:600;color:var(--soft);letter-spacing:-.005em}
.sponsor-row img{max-height:90px;max-width:100%;width:auto;height:auto;display:block}

footer{margin-top:80px;background:var(--conifer);color:#a7b0c0;padding:44px 0}
.foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-start;font-size:14px}
.foot .fbrand{color:var(--cream);font-family:var(--serif);font-size:16px;font-weight:600}
.foot a{color:var(--cream);text-decoration:underline;text-decoration-color:rgba(246,244,234,.35)}
.foot .cols{display:flex;gap:56px;flex-wrap:wrap}
.foot .cols div div{margin-top:6px}

.sticky{position:fixed;left:0;right:0;bottom:0;z-index:20;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:rgba(246,244,234,.97);border-top:1px solid rgba(18,26,34,.15);display:none;gap:14px;align-items:center;transform:translateY(110%);transition:transform .25s ease;backdrop-filter:blur(6px)}
.sticky.on{transform:none}
.sticky div{flex:1;min-width:0;font-size:13px;line-height:1.3;color:var(--ink)}
.sticky div b{display:block;font-family:var(--serif);font-size:15px}
.sticky .btn{min-height:46px;padding:0 20px}

@media (max-width:980px){
  .mission .wrap{grid-template-columns:1fr}
  .hero-image{display:none}
  .how-image{display:none}
  .how-credit{display:none}
  #how .sec-head{margin-left:0;text-align:left}
  #how .sec-head p{margin-left:0}
  #how .process{align-items:stretch}
}
@media (max-width:640px){
  body{padding-bottom:80px}
  .bar{padding:18px 0;gap:10px}
  .brand{gap:9px}
  .brand b{font-size:14px}
  .brand span span{display:none}
  .mark{width:30px;height:30px}
  .nav-links{gap:16px}
  .nav-links a{font-size:13px}
  .wrap{padding:0 20px}
  section{padding-top:56px}
  header.top .wrap{min-height:auto}
  .hero{padding:16px 0 0}
  .hero-copy{padding-bottom:52px}
  .hero .actions .btn{flex:1 1 100%}
  .stats{display:none}
  .step{grid-template-columns:48px minmax(0,1fr);gap:4px 16px}
  .step-num{font-size:36px}
  .mission{padding:56px 0}
  .rsvp{grid-template-columns:1fr;text-align:left;padding:32px 24px}
  .foot{flex-direction:column;gap:28px}
  .sticky{display:flex}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sticky{transition:none}}
