:root{
  --navy: #282A43;
  --navy-deep: #1C1D30;
  --mint: #6DD5A2;
  --mint-deep: #43B584;
  --white: #FFFFFF;
  --ink: #23233A;
  --ink-soft: #52536B;
  --line: rgba(35,35,58,0.09);
  --line-strong: rgba(35,35,58,0.14);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter', sans-serif;
  background:var(--white);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  font-size:15.5px;
}
h1,h2{
  font-family:'Satoshi', sans-serif;
  color:var(--navy);
  letter-spacing:-0.02em;
  font-weight:700;
}
h3,.display{
  font-family:'Satoshi', sans-serif;
  color:var(--navy);
  letter-spacing:-0.01em;
  font-weight:600;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1120px;margin:0 auto;padding:0 32px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

/* ---------- Header ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,0.82);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 32px;
  max-width:1120px; margin:0 auto;
}
.logo{
  display:flex; align-items:center;
}
.logo img{
  height:38px; width:auto; display:block;
}
footer .logo img{ height:36px; }
nav ul{list-style:none; display:flex; gap:40px;}
nav ul a{font-size:14.5px; font-weight:700; color:var(--navy); transition:opacity .15s; position:relative;}
nav ul a:hover{opacity:0.6;}
nav ul a.active{opacity:1;}
nav ul a.active::after{
  content:''; position:absolute; left:0; right:0; bottom:-6px;
  height:2px; background:var(--mint-deep); border-radius:2px;
}
.nav-right{display:flex; align-items:center; gap:24px;}
.nav-cta{
  color:var(--navy);
  font-size:14px; font-weight:600;
  border:1px solid var(--line-strong);
  padding:9px 20px; border-radius:999px;
  transition:border-color .15s, background .15s;
}
.nav-cta:hover{border-color:var(--navy); background:var(--navy); color:#fff;}

/* ---------- Hero ---------- */
.hero{
  padding:100px 0 0;
  text-align:center;
}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12.5px; font-weight:600; letter-spacing:0.05em;
  text-transform:uppercase; color:var(--ink-soft);
  border:1px solid var(--line-strong);
  padding:7px 16px; border-radius:999px;
  margin-bottom:32px;
}
.eyebrow span{color:var(--mint-deep);}
.hero h1{
  font-size:clamp(36px, 4.8vw, 60px);
  line-height:1.05;
  max-width:760px;
  margin:0 auto;
  font-weight:800;
  letter-spacing:-0.025em;
}
.hero h1 .accent{ color: var(--mint-deep); }
.hero-sub{
  margin:24px auto 0;
  font-size:17px;
  color:var(--ink-soft);
  max-width:520px;
  line-height:1.65;
}
.hero-actions{
  margin-top:36px;
  display:flex; align-items:center; justify-content:center; gap:22px; flex-wrap:wrap;
}
.btn-primary{
  background:var(--navy); color:#fff;
  padding:14px 26px; border-radius:999px;
  font-weight:600; font-size:14.5px;
  display:inline-block;
  transition:transform .15s, background .15s;
  border:none; cursor:pointer;
}
.btn-primary:hover{background:var(--navy-deep); transform:translateY(-1px);}
.btn-secondary{
  background:transparent; color:var(--navy);
  border:1px solid var(--line-strong);
  padding:14px 26px; border-radius:999px;
  font-weight:600; font-size:14.5px;
  display:inline-block;
  transition:border-color .15s, background .15s;
}
.btn-secondary:hover{border-color:var(--navy); background:var(--navy); color:#fff;}
.hero-note{font-size:13.5px; color:var(--ink-soft);}

/* Paired CTAs — hovering one visually steps the other back */
.btn-pair{
  display:flex; align-items:center; justify-content:center; gap:22px; flex-wrap:wrap;
}
.btn-pair .btn-primary, .btn-pair .btn-secondary{
  transition: background .18s, color .18s, border-color .18s, opacity .18s, transform .15s;
}
.btn-pair:has(.btn-secondary:hover) .btn-primary{
  background:var(--white); color:var(--ink-soft); border:1px solid var(--line-strong);
}
.btn-pair:has(.btn-primary:hover) .btn-secondary{
  opacity:0.55;
}

/* Inline email + button, used in hero sections */
.hero-form{
  margin-top:36px;
  display:flex; gap:10px; justify-content:center; flex-wrap:wrap;
}
.hero-form input{
  background:var(--white);
  border:1px solid var(--line-strong);
  border-radius:999px;
  padding:14px 20px;
  font-size:14.5px;
  color:var(--ink);
  width:280px;
  max-width:76vw;
  font-family:inherit;
  transition:border-color .15s;
}
.hero-form input:focus{border-color:var(--navy); outline:none;}
.hero-form input::placeholder{color:var(--ink-soft);}

/* Dual capture cards — For students / For companies, each with its own email field */
.hero-dual{
  margin-top:40px;
  display:flex; gap:20px; justify-content:center; flex-wrap:wrap;
}
.hero-dual-card{
  background:var(--white);
  border:1px solid var(--line-strong);
  border-radius:18px;
  box-shadow:0 14px 34px -22px rgba(35,35,58,0.20);
  padding:24px 26px;
  text-align:left;
  width:290px;
  max-width:100%;
  transition:box-shadow .18s, transform .18s, opacity .18s;
}
.hero-dual-card:hover{transform:translateY(-3px); box-shadow:0 18px 40px -18px rgba(35,35,58,0.26);}
.hero-dual:has(.hero-dual-card:hover) .hero-dual-card:not(:hover){opacity:0.6;}
.hero-dual-card .tag{
  font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--mint-deep); display:block; margin-bottom:12px;
}
.hero-dual-card h3{font-size:18px; margin-bottom:14px;}
.hero-dual-card input{
  width:100%;
  border:1px solid var(--line-strong);
  border-radius:999px;
  padding:12px 16px;
  font-size:13.5px;
  color:var(--ink);
  font-family:inherit;
  margin-bottom:10px;
  transition:border-color .15s;
}
.hero-dual-card input:focus{border-color:var(--navy); outline:none;}
.hero-dual-card input::placeholder{color:var(--ink-soft);}
.hero-dual-card button{width:100%;}

@media (max-width:640px){
  .hero-dual{flex-direction:column; align-items:center;}
  .hero-dual-card{width:100%; max-width:340px;}
}

/* Split hero — headline/copy on the left, capture cards on the right */
.hero-split{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:56px;
  align-items:center;
  text-align:left;
}
.hero-split h1{margin:0; max-width:none;}
.hero-split .hero-sub{margin:20px 0 0; max-width:440px;}
.hero-split .hero-dual{
  margin-top:0;
  flex-direction:column;
  align-items:stretch;
}
.hero-split .hero-dual-card{width:100%; max-width:360px; justify-self:end;}

@media (max-width:900px){
  .hero-split{grid-template-columns:1fr; text-align:center; gap:36px;}
  .hero-split h1{margin:0 auto;}
  .hero-split .hero-sub{margin:20px auto 0;}
  .hero-split .hero-dual{align-items:center;}
  .hero-split .hero-dual-card{margin:0 auto;}
}

.product-intro{
  margin-top:90px;
  padding-top:72px;
  border-top:1px solid var(--line);
  text-align:center;
}
.product-intro h2{
  font-size:clamp(32px,4vw,48px);
  font-weight:800;
}
.product-intro p{
  max-width:700px;
  margin:18px auto 0;
  color:var(--ink-soft);
  font-size:17px;
  line-height:1.65;
}
.product-intro + .track-section{
  margin-top:64px;
  padding-top:0;
  border-top:0;
}

/* ---------- Match card (requirements-checklist mockup) ---------- */
.match-card-wrap{
  margin-top:90px;
  padding:64px 0 0;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center;
  text-align:left;
}
.match-card-copy h2{font-size:clamp(24px,2.8vw,32px); margin-bottom:16px;}
.match-card-copy p{color:var(--ink-soft); font-size:15.5px; line-height:1.7; max-width:420px;}

.match-card{
  background:var(--white);
  border:1px solid var(--line-strong);
  border-radius:20px;
  padding:26px 26px 24px;
  box-shadow:0 24px 60px -28px rgba(35,35,58,0.22);
  max-width:380px;
  margin:0 auto;
}
.match-card-role{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:14px;
  padding-bottom:18px; margin-bottom:6px;
  border-bottom:1px solid var(--line);
}
.match-card-role .company{
  display:block; font-size:11.5px; font-weight:600; color:var(--ink-soft);
  text-transform:uppercase; letter-spacing:0.04em; margin-bottom:4px;
}
.match-card-role h4{font-size:17px; font-weight:600; color:var(--navy); margin:0;}
.match-card-score{text-align:right; flex-shrink:0;}
.match-card-score .num{font-family:'Satoshi', sans-serif; font-size:24px; font-weight:700; color:var(--mint-deep); line-height:1;}
.match-card-score .label{font-size:10.5px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.05em;}

.match-req-list{list-style:none; padding:14px 0 4px;}
.match-req-list li{
  display:flex; gap:12px; align-items:flex-start;
  padding:10px 0;
}
.req-icon{
  width:20px; height:20px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; margin-top:1px;
  font-size:11px; font-weight:700;
}
.match-req-list li.ok .req-icon{background:rgba(67,181,132,0.16); color:var(--mint-deep);}
.match-req-list li.warn .req-icon{background:rgba(224,158,63,0.16); color:#B87A1F;}
.match-req-list li strong{display:block; font-size:13.5px; font-weight:600; color:var(--ink); margin-bottom:2px;}
.match-req-list li p{font-size:12.5px; color:var(--ink-soft); line-height:1.4;}

.match-course{
  margin-top:8px;
  background:rgba(109,213,162,0.08);
  border:1px solid rgba(67,181,132,0.25);
  border-radius:14px;
  padding:16px 18px;
}
.match-course .tag{
  font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--mint-deep); display:block; margin-bottom:6px;
}
.match-course h5{font-size:14.5px; font-weight:600; color:var(--navy); margin-bottom:3px;}
.match-course p{font-size:12.5px; color:var(--ink-soft); margin-bottom:12px;}
.match-course p strong{color:var(--mint-deep);}
.match-course button{
  width:100%; background:var(--navy); color:#fff; border:none;
  padding:11px; border-radius:999px; font-size:13px; font-weight:600;
  font-family:inherit; cursor:pointer; transition:background .15s;
}
.match-course button:hover{background:var(--navy-deep);}

@media (max-width: 900px){
  .match-card-wrap{grid-template-columns:1fr; gap:40px; text-align:center;}
  .match-card-copy{text-align:center;}
  .match-card-copy p{margin:0 auto;}
}

/* ---------- Track (signature element) ---------- */
.track-section{
  margin-top:90px;
  padding:56px 0 0;
  border-top:1px solid var(--line);
}
.track-label{
  text-align:center;
  font-size:12.5px; font-weight:600; text-transform:uppercase;
  letter-spacing:0.06em; color:var(--ink-soft);
  margin-bottom:52px;
}
.track{
  position:relative;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:0;
}
.track::before{
  content:'';
  position:absolute;
  top:6px; left:0; right:0; height:1px;
  background:var(--line-strong);
}
.track-line-fill{
  position:absolute;
  top:6px; left:0; height:1px; width:0%;
  background:var(--mint-deep);
  animation:fillTrack 1.8s 0.2s cubic-bezier(.2,.7,.3,1) forwards;
}
@keyframes fillTrack{ to{ width:100%; } }
.track-stop{
  position:relative;
  padding-top:36px;
  padding-right:20px;
}
.track-dot{
  position:absolute; top:0; left:0;
  width:13px; height:13px; border-radius:50%;
  background:var(--white);
  border:2px solid var(--line-strong);
  z-index:2;
}
.track-stop:last-child .track-dot{
  background:var(--mint); border-color:var(--mint-deep);
}
.track-stop h3{font-size:14.5px; margin-bottom:7px; font-weight:600;}
.track-stop p{font-size:13px; color:var(--ink-soft); line-height:1.55;}

/* Flat note boxes below the track — extras that apply to specific stops */
.track-notes{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:48px;
}
.track-note{
  border:1px solid var(--line-strong);
  border-radius:14px;
  padding:18px 20px;
  background:var(--white);
  text-align:left;
}
.track-note .tag{
  font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--mint-deep); display:block; margin-bottom:6px;
}
.track-note p{font-size:13px; color:var(--ink-soft); line-height:1.55;}

@media (max-width: 860px){
  .track{grid-template-columns:1fr; gap:28px;}
  .track::before, .track-line-fill{ display:none; }
  .track-stop{padding-left:26px; padding-top:0; text-align:left;}
  .track-dot{top:5px;}
  .track-label{text-align:left;}
  .track-notes{grid-template-columns:1fr;}
}

/* ---------- Sections ---------- */
.section{padding:100px 0;}
.section-head{
  max-width:600px; margin:0 auto 60px; text-align:center;
}
.section-head.left{margin-left:0; text-align:left;}
.kicker{
  display:inline-flex;
  align-items:center;
  font-size:12.5px; font-weight:700; text-transform:uppercase;
  letter-spacing:0.06em; color:var(--mint-deep);
  background:rgba(109,213,162,0.12);
  border:1px solid rgba(67,181,132,0.32);
  padding:7px 16px;
  border-radius:999px;
  margin-bottom:18px;
}
.section-head h2{font-size:clamp(26px,3.2vw,36px); font-weight:600;}
.section-head p{margin-top:16px; color:var(--ink-soft); font-size:16px;}

.feature-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:20px;
}
.feature{
  background:var(--white);
  padding:32px 28px;
  transition:transform .18s, box-shadow .18s;
  border:1px solid var(--line-strong);
  border-radius:18px;
  box-shadow:0 14px 34px -22px rgba(35,35,58,0.20);
  flex:1 1 300px;
  max-width:360px;
}
.feature:hover{transform:translateY(-3px); box-shadow:0 18px 40px -18px rgba(35,35,58,0.26);}
.feature-icon{
  width:40px; height:40px; border-radius:10px;
  background:var(--white);
  border:1px solid var(--line-strong);
  box-shadow:0 6px 14px -8px rgba(35,35,58,0.18);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:20px;
}
.feature-icon svg{width:19px; height:19px; stroke:var(--navy);}
.feature h3{font-size:16px; margin-bottom:8px; font-weight:600;}
.feature p{font-size:14px; color:var(--ink-soft); line-height:1.65;}

@media (max-width: 860px){
  .feature-grid{flex-direction:column; align-items:stretch;}
  .feature{max-width:none;}
}

/* ---------- Accordion card wrapper (process steps / FAQ) ---------- */
.accordion-card{
  border:1px solid var(--line-strong);
  border-radius:16px;
  background:var(--white);
  box-shadow:0 24px 50px -32px rgba(35,35,58,0.25);
  overflow:hidden;
  padding:0 20px;
}
.accordion-card .step,
.accordion-card .faq-item{
  border-top:1px solid var(--line);
  padding-left:0; padding-right:0;
}
.accordion-card .step:first-child,
.accordion-card .faq-item:first-child{border-top:none;}
.accordion-card .step:last-child,
.accordion-card .faq-item:last-child{border-bottom:none;}
.accordion-card .step summary:hover,
.accordion-card .faq-item summary:hover{background:rgba(35,35,58,0.02);}

/* ---------- Numbered step list (process sections) — collapsible ---------- */
.steps{
  display:flex; flex-direction:column;
}
.step{
  border-top:1px solid var(--line);
  padding:6px 0;
}
.step:last-child{border-bottom:1px solid var(--line);}
.step summary{
  display:grid;
  grid-template-columns:44px 1fr 20px;
  align-items:center;
  gap:20px;
  padding:22px 4px;
  cursor:pointer;
  list-style:none;
}
.step summary::-webkit-details-marker{display:none;}
.step-num{
  font-family:'Satoshi', sans-serif;
  font-size:13px; font-weight:700; color:var(--mint-deep);
}
.step summary h3{font-size:16.5px; font-weight:600; margin:0;}
.step-chevron{
  width:9px; height:9px;
  border-right:2px solid var(--ink-soft);
  border-bottom:2px solid var(--ink-soft);
  transform:rotate(45deg);
  transition:transform .2s;
  justify-self:end;
}
.step[open] .step-chevron{transform:rotate(-135deg);}
.step-body{
  padding:0 4px 26px 64px;
}
.step-body p{font-size:14.5px; color:var(--ink-soft); line-height:1.65; max-width:560px;}

/* ---------- Split: students / companies cards ---------- */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.split-card{
  padding:52px 44px;
  background:var(--white);
}
.split-tag{
  font-size:12px; font-weight:600; text-transform:uppercase;
  letter-spacing:0.06em; color:var(--ink-soft); margin-bottom:18px; display:block;
}
.split-card h3{font-size:23px; margin-bottom:14px; font-weight:600;}
.split-card p{font-size:14.5px; line-height:1.7; color:var(--ink-soft); max-width:400px;}
.split-list{margin-top:28px; display:flex; flex-direction:column; gap:13px;}
.split-list div{
  display:flex; align-items:baseline; gap:10px;
  font-size:14px; color:var(--ink);
}
.split-list div::before{
  content:''; width:5px; height:5px; border-radius:50%;
  background:var(--mint-deep); flex-shrink:0; margin-top:6px;
}
.split-card .btn-primary{margin-top:32px;}
.split-card.companies .btn-primary{
  background:transparent; color:var(--navy); border:1px solid var(--line-strong);
}
.split-card.companies .btn-primary:hover{background:var(--navy); color:#fff;}

@media (max-width: 860px){
  .split{grid-template-columns:1fr;}
}

/* ---------- Pill stat row (free plan / included items) ---------- */
.stat-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:20px;
}
.stat-card{
  background:var(--white); padding:26px 24px;
  border:1px solid var(--line-strong);
  border-radius:18px;
  box-shadow:0 14px 34px -22px rgba(35,35,58,0.20);
  transition:transform .18s, box-shadow .18s;
  flex:1 1 240px;
  max-width:280px;
}
.stat-card:hover{transform:translateY(-3px); box-shadow:0 18px 40px -18px rgba(35,35,58,0.26);}
.stat-card h3{font-size:15px; margin-bottom:8px; font-weight:600;}
.stat-card p{font-size:13.5px; color:var(--ink-soft); line-height:1.6;}
@media (max-width: 860px){ .stat-grid{flex-direction:column; align-items:stretch;} .stat-card{max-width:none;} }

/* ---------- FAQ — collapsible ---------- */
.faq-item{
  border-top:1px solid var(--line);
}
.faq-item:last-child{border-bottom:1px solid var(--line);}
.faq-item summary{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:22px 4px;
  cursor:pointer;
  list-style:none;
  font-family:'Satoshi', sans-serif;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary h3{font-size:15.5px; margin:0; font-weight:600;}
.faq-chevron{
  width:9px; height:9px; flex-shrink:0;
  border-right:2px solid var(--ink-soft);
  border-bottom:2px solid var(--ink-soft);
  transform:rotate(45deg);
  transition:transform .2s;
}
.faq-item[open] .faq-chevron{transform:rotate(-135deg);}
.faq-item p{font-size:14.5px; color:var(--ink-soft); line-height:1.65; max-width:640px; padding:0 4px 24px;}

/* ---------- Funding types grid (About page) ---------- */
.fund-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:20px;
}
.fund-card{
  background:var(--white); padding:32px 28px;
  transition:transform .18s, box-shadow .18s;
  border:1px solid var(--line-strong);
  border-radius:18px;
  box-shadow:0 14px 34px -22px rgba(35,35,58,0.20);
  flex:1 1 300px;
  max-width:360px;
}
.fund-card:hover{transform:translateY(-3px); box-shadow:0 18px 40px -18px rgba(35,35,58,0.26);}
.fund-card .feature-icon{margin-bottom:20px;}
.fund-card h3{font-size:15.5px; margin-bottom:8px; font-weight:600;}
.fund-card p{font-size:13.5px; color:var(--ink-soft); line-height:1.6;}
.fund-note{
  margin-top:24px;
  font-size:13.5px; color:var(--ink-soft);
  border-top:1px solid var(--line);
  padding-top:22px;
}
.fund-note strong{color:var(--navy);}
@media (max-width: 860px){
  .fund-grid{flex-direction:column; align-items:stretch;}
  .fund-card{max-width:none;}
}

/* ---------- Verify badge (used on Students page) ---------- */
.verify-badge{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(109,213,162,0.12);
  border:1px solid rgba(67,181,132,0.3);
  color:var(--mint-deep);
  font-size:12.5px; font-weight:600;
  padding:7px 14px; border-radius:999px;
  margin-bottom:20px;
}

/* ---------- Waitlist ---------- */
.waitlist{
  text-align:center;
  padding:0;
}
.waitlist h2{font-size:clamp(26px,3.4vw,38px);}
.waitlist p{color:var(--ink-soft); margin-top:14px; font-size:16px;}
.waitlist-form{
  margin-top:34px;
  display:flex; gap:10px; justify-content:center;
  flex-wrap:wrap;
}
.waitlist-form input{
  background:var(--white);
  border:1px solid var(--line-strong);
  border-radius:999px;
  padding:14px 20px;
  font-size:14.5px;
  color:var(--ink);
  width:300px;
  max-width:80vw;
  font-family:inherit;
  transition:border-color .15s;
}
.waitlist-form input:focus{border-color:var(--navy); outline:none;}
.waitlist-form input::placeholder{color:var(--ink-soft);}
.waitlist-form small{
  display:block; width:100%; margin-top:14px;
  font-size:12.5px; color:var(--ink-soft);
}

/* ---------- Footer ---------- */
footer{
  padding:56px 0 40px;
  border-top:1px solid var(--line);
}
.footer-top{
  display:flex; justify-content:space-between; align-items:flex-start;
  flex-wrap:wrap; gap:40px;
  margin-bottom:40px;
}
.footer-note{max-width:300px; font-size:13.5px; color:var(--ink-soft);}
footer .logo{margin-bottom:14px;}
.footer-cols{display:flex; gap:64px; flex-wrap:wrap;}
.footer-col h4{font-size:12.5px; text-transform:uppercase; letter-spacing:0.05em; color:var(--ink-soft); margin-bottom:14px; font-weight:600;}
.footer-col a{display:block; font-size:14px; color:var(--ink); margin-bottom:10px;}
.footer-col a:hover{color:var(--mint-deep);}
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:12px;
  font-size:13px; color:var(--ink-soft);
  padding-top:24px; border-top:1px solid var(--line);
}

:focus-visible{
  outline:2px solid var(--navy);
  outline-offset:3px;
}

/* ============================================================
   Chapter pillbar — vertical segmented-control scroll-spy nav
   for the About page. A sliding navy pill highlights whichever
   section is active; labels are always visible.
   ============================================================ */
.chapter-pillbar{
  position:fixed;
  top:50%;
  right:28px;
  transform:translateY(-50%);
  z-index:60;
}
.chapter-pillbar-inner{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:2px;
  background:var(--white);
  border:1px solid var(--line-strong);
  border-radius:22px;
  padding:6px;
  box-shadow:0 18px 40px -20px rgba(35,35,58,0.24);
}
.pill-indicator{
  position:absolute;
  top:0; left:6px; right:6px;
  height:0;
  background:var(--navy);
  border-radius:16px;
  transform:translateY(0);
  transition:transform .32s cubic-bezier(.4,0,.2,1), height .32s cubic-bezier(.4,0,.2,1);
  z-index:0;
}
.chapter-pill{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  background:none;
  border:none;
  border-radius:16px;
  padding:13px 22px;
  font-family:'Inter', sans-serif;
  font-size:14px;
  font-weight:600;
  color:var(--ink-soft);
  white-space:nowrap;
  text-align:left;
  cursor:pointer;
  transition:color .25s ease, background .2s ease;
  -webkit-tap-highlight-color:transparent;
}
.chapter-pill:hover:not([aria-current="true"]){
  color:var(--navy);
  background:rgba(40,42,67,0.05);
}
.chapter-pill[aria-current="true"]{
  color:#fff;
}
.chapter-pill:focus-visible{
  outline:2px solid var(--navy);
  outline-offset:3px;
}

/* Mobile — slim top progress bar instead of the rail */
.scroll-progress{
  position:fixed;
  top:0; left:0; right:0;
  height:3px;
  background:transparent;
  z-index:70;
  display:none;
}
.scroll-progress-fill{
  height:100%;
  width:0%;
  background:var(--mint-deep);
}

@media (max-width:900px){
  .chapter-pillbar{display:none;}
  .scroll-progress{display:block;}
}

@media (prefers-reduced-motion: reduce){
  .pill-indicator,
  .chapter-pill{
    transition:none !important;
  }
}

/* ---------- Mobile header (hamburger nav) ---------- */
/* The toggle + burger exist on every page but are inert above 768px,
   so the desktop/laptop header is untouched. */
.nav-toggle{display:none;}
.nav-burger{display:none;}

@media (max-width: 768px){
  .nav{
    padding:14px 18px;
    gap:10px;
    position:relative;
  }

  /* Logo: never allowed to shrink away, just a touch smaller */
  .logo{flex:0 0 auto;}
  .logo img{height:30px;}

  /* Keep the checkbox reachable by keyboard/AT, but out of sight */
  .nav-toggle{
    display:block;
    position:absolute;
    width:1px; height:1px;
    opacity:0;
    pointer-events:none;
    margin:0;
  }

  /* Burger button, sitting to the right of the CTA */
  .nav-burger{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    flex:0 0 auto;
    width:40px; height:40px; padding:9px;
    border:1px solid var(--line-strong);
    border-radius:12px;
    background:rgba(255,255,255,0.6);
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .nav-burger span{
    display:block; height:2px; width:100%;
    background:var(--navy); border-radius:2px;
    transition:transform .2s ease, opacity .15s ease;
  }
  .nav-toggle:focus-visible ~ .nav-burger{
    outline:2px solid var(--mint-deep);
    outline-offset:2px;
  }

  /* Burger morphs into a close icon while the menu is open */
  .nav-toggle:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle:checked ~ .nav-burger span:nth-child(2){opacity:0;}
  .nav-toggle:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  /* Nav links collapse into a drop-down panel under the header */
  .nav > nav{
    display:none;
    position:absolute;
    top:100%; left:0; right:0;
    background:#fff;
    border-bottom:1px solid var(--line);
    box-shadow:0 18px 40px rgba(35,35,58,0.10);
  }
  .nav-toggle:checked ~ nav{display:block;}
  .nav > nav ul{
    flex-direction:column;
    gap:0;
    padding:6px 18px 12px;
  }
  .nav > nav ul li + li{border-top:1px solid var(--line);}
  .nav > nav ul a{
    display:block;
    padding:14px 2px;
    font-size:16px;
  }
  /* Active marker becomes a short dash so it doesn't read as a divider */
  .nav > nav ul a.active::after{
    left:2px; right:auto; bottom:9px;
    width:18px;
  }

  /* Waitlist CTA: pill/rectangle wide enough for the label on one line */
  .nav-right{gap:10px; flex:0 1 auto;}
  .nav-cta{
    flex:0 1 auto;
    padding:10px 15px;
    border-radius:12px;
    font-size:13px;
    line-height:1.2;
    text-align:center;
    white-space:nowrap;
  }
}

/* Very narrow phones: shave the header down, and let the CTA fall to a
   second line if the label still can't fit, rather than overflow the page */
@media (max-width: 400px){
  .nav{padding:12px 14px; gap:8px;}
  .logo img{height:24px;}
  .nav-cta{padding:9px 11px; font-size:12px; white-space:normal;}
  .nav-burger{width:36px; height:36px; padding:8px; gap:4px;}
}
