  :root{
    --paper: #F1F2EC;
    --paper-raised: #E9EADF;
    --ink: #14201C;
    --ink-soft: #4B564F;
    --line: #D6D6C6;
    --teal: #1F6F54;
    --teal-dim: #E3ECE5;
    --ochre: #B9791E;
    --ochre-dim: #F3E7D2;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'IBM Plex Sans', sans-serif;
    font-size:16px;
    line-height:1.55;
  }
  .mono{ font-family:'IBM Plex Mono', monospace; }
  .display{ font-family:'Fraunces', serif; }
  a{ color:inherit; }
  .wrap{ max-width:1120px; margin:0 auto; padding:0 32px; }
  @media (max-width:640px){ .wrap{ padding:0 20px; } }

  /* ---------- NAV ---------- */
  nav.top{ border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--paper); z-index:10; }
  nav.top .wrap{ display:flex; align-items:center; justify-content:space-between; height:72px; }
  .logo{ font-family:'Fraunces', serif; font-weight:600; font-size:1.25rem; letter-spacing:-0.01em; }
  .logo .dot{ color:var(--teal); }
  .nav-links{ display:flex; gap:28px; font-size:0.92rem; color:var(--ink-soft); }
  .nav-links a:hover{ color:var(--ink); }
  .btn{ display:inline-block; font-family:'IBM Plex Sans', sans-serif; font-weight:500; font-size:0.92rem; padding:10px 20px; border-radius:3px; text-decoration:none; cursor:pointer; border:1px solid transparent; }
  .btn-primary{ background:var(--ink); color:var(--paper); }
  .btn-primary:hover{ background:#233029; }
  .btn-ghost{ border-color:var(--ink); color:var(--ink); }
  .btn-ghost:hover{ background:var(--ink); color:var(--paper); }
  @media (max-width:640px){ .nav-links{ display:none; } }

  /* ---------- BADGE ---------- */
  .badge{
    display:inline-flex; align-items:center; gap:8px;
    font-size:0.82rem; color:var(--ink-soft);
    border:1px solid var(--line);
    background:var(--paper-raised);
    padding:6px 12px; border-radius:20px;
    margin-bottom:24px;
  }
  .badge .dot2{ width:6px; height:6px; border-radius:50%; background:var(--teal); display:inline-block; }

  /* ---------- HERO ---------- */
  header.hero{ padding:64px 0 88px; }
  .hero-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:64px; align-items:center; }
  @media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; gap:48px; } }
  .hero h1{ font-family:'Fraunces', serif; font-weight:500; font-size:clamp(2.1rem, 4vw, 3.2rem); line-height:1.1; letter-spacing:-0.01em; margin:0 0 24px; }
  .hero p.lead{ font-size:1.08rem; color:var(--ink-soft); max-width:46ch; margin:0 0 32px; }
  .hero-ctas{ display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin-bottom:20px;}
  .hero-note{ font-size:0.85rem; color:var(--ink-soft); }

  .thankyou-hero .lead{ max-width:52ch; }
  .policy-body{ max-width:70ch; }
  .policy-body h3{ font-family:'Fraunces', serif; font-weight:500; font-size:1.1rem; margin:32px 0 10px; }
  .policy-body h3:first-child{ margin-top:0; }
  .policy-body p{ color:var(--ink-soft); margin:0; }
  .policy-body a{ color:var(--teal); text-decoration:underline; }

  .scorecard{ background:var(--paper-raised); border:1px solid var(--line); border-radius:6px; padding:28px; position:relative; }
  .scorecard .preview-tag{
    position:absolute; top:-11px; left:24px;
    background:var(--ink); color:var(--paper);
    font-size:0.72rem; padding:3px 10px; border-radius:3px;
    font-family:'IBM Plex Mono', monospace; letter-spacing:0.02em;
  }
  .scorecard-head{ display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid var(--line); padding-bottom:18px; margin-bottom:20px; }
  .scorecard-head .label{ font-size:0.8rem; color:var(--ink-soft); }
  .scorecard-head .big{ font-family:'IBM Plex Mono', monospace; font-size:2.4rem; font-weight:600; line-height:1; }
  .scorecard-head .target{ text-align:right; }
  .scorecard-head .target .big{ color:var(--teal); }
  .skillrow{ display:grid; grid-template-columns:88px 1fr 96px; align-items:center; gap:12px; margin-bottom:14px; font-size:0.86rem; }
  .skillrow .name{ color:var(--ink-soft); }
  .bar{ height:8px; background:#DEDFD3; border-radius:2px; position:relative; overflow:hidden; }
  .bar > span{ position:absolute; left:0; top:0; bottom:0; background:var(--teal); border-radius:2px; }
  .bar > span.gap-fill{ background:var(--ochre); }
  .bar > span.fill-70{ width:70%; }
  .bar > span.fill-78{ width:78%; }
  .bar > span.fill-84{ width:84%; }
  .bar > span.fill-68{ width:68%; }
  .bar > span.gap-70-16{ left:70%; width:16%; }
  .bar > span.gap-78-10{ left:78%; width:10%; }
  .bar > span.gap-84-6{ left:84%; width:6%; }
  .bar > span.gap-68-14{ left:68%; width:14%; }
  .skillrow .delta{ font-family:'IBM Plex Mono', monospace; text-align:right; color:var(--ochre); font-size:0.85rem; }
  .scorecard-foot{ margin-top:20px; padding-top:16px; border-top:1px solid var(--line); font-size:0.85rem; color:var(--ink-soft); }
  .scorecard-foot b{ color:var(--ink); }

  /* ---------- SECTION shared ---------- */
  section{ padding:72px 0; border-bottom:1px solid var(--line); }
  section:last-of-type{ border-bottom:none; }
  .section-head{ max-width:640px; margin-bottom:48px; }
  .section-head h2{ font-family:'Fraunces', serif; font-weight:500; font-size:clamp(1.6rem,2.6vw,2.1rem); margin:0 0 14px; letter-spacing:-0.01em; }
  .section-head p{ color:var(--ink-soft); margin:0; font-size:1.02rem; }

  /* ---------- CONTRAST ---------- */
  .contrast{ display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
  @media (max-width:760px){ .contrast{ grid-template-columns:1fr; } }
  .contrast > div{ padding:32px; }
  .contrast .against{ background:var(--paper); }
  .contrast .with{ background:var(--teal-dim); border-left:1px solid var(--line); }
  @media (max-width:760px){ .contrast .with{ border-left:none; border-top:1px solid var(--line); } }
  .contrast h3{ font-family:'IBM Plex Sans',sans-serif; font-size:0.95rem; font-weight:600; margin:0 0 16px; }
  .contrast .against h3{ color:var(--ink-soft); }
  .contrast .with h3{ color:var(--teal); }
  .contrast ul{ margin:0; padding:0; list-style:none; }
  .contrast li{ font-size:0.94rem; color:var(--ink-soft); padding:9px 0; border-top:1px solid var(--line); }
  .contrast li:first-child{ border-top:none; }
  .contrast .with li{ color:var(--ink); }

  /* ---------- STEPS ---------- */
  .steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0 32px; }
  @media (max-width:900px){ .steps{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .steps{ grid-template-columns:1fr; } }
  .step{ padding:0 32px 0 0; border-right:1px solid var(--line); }
  .steps .step:last-child{ border-right:none; padding-right:0; }
  @media (max-width:900px){
    .step{ border-right:1px solid var(--line); padding:0 32px 24px 0; margin-bottom:24px;}
    .step:nth-child(2n){ border-right:none; padding-right:0; }
  }
  @media (max-width:560px){ .step{ border-right:none; padding:0 0 24px; } }
  .step .num{ font-family:'IBM Plex Mono', monospace; color:var(--teal); font-size:0.85rem; margin-bottom:10px; }
  .step h4{ font-family:'Fraunces', serif; font-weight:500; font-size:1.15rem; margin:0 0 10px; }
  .step p{ color:var(--ink-soft); font-size:0.92rem; margin:0; }

  /* #ai has 3 cards, not 4 — give it its own column count so the row
     doesn't sit at 3/4 width with dead space on the right. */
  #ai .steps{ grid-template-columns:repeat(3,1fr); }
  #ai .step{ border-right:1px solid var(--line); padding:0 32px 0 0; margin-bottom:0; }
  #ai .step:last-child{ border-right:none; padding-right:0; }
  @media (max-width:700px){
    #ai .steps{ grid-template-columns:1fr; }
    #ai .step{ border-right:none; padding:0 0 24px; margin-bottom:24px; }
    #ai .step:last-child{ margin-bottom:0; }
  }

  /* ---------- EXAM STRUCTURE ---------- */
  .exam-part{ margin-bottom:40px; }
  .exam-part:last-child{ margin-bottom:0; }
  .exam-part-head{
    display:flex; justify-content:space-between; align-items:baseline;
    border-bottom:2px solid var(--ink); padding-bottom:10px; margin-bottom:4px;
  }
  .exam-part-head h3{ font-family:'Fraunces', serif; font-weight:500; font-size:1.25rem; margin:0; }
  .exam-part-head .dur{ font-family:'IBM Plex Mono', monospace; font-size:0.88rem; color:var(--ink-soft); }
  table.taskbook{ width:100%; border-collapse:collapse; font-size:0.88rem; }
  table.taskbook th{
    text-align:left; font-weight:500; color:var(--ink-soft);
    font-size:0.78rem; padding:10px 10px; border-bottom:1px solid var(--line);
  }
  table.taskbook td{ padding:10px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
  table.taskbook tr:last-child td{ border-bottom:none; }
  table.taskbook .unscored{ color:var(--ink-soft); font-style:italic; }
  table.taskbook .time, table.taskbook .items{ font-family:'IBM Plex Mono', monospace; white-space:nowrap; color:var(--ink-soft); }
  .skill-tag{
    display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:0.76rem;
    background:var(--teal-dim); color:var(--teal); padding:1px 7px; border-radius:3px; margin:1px 3px 1px 0;
  }
  .step .skill-tag{ margin-bottom:10px; }
  .exam-note{ font-size:0.82rem; color:var(--ink-soft); margin-top:32px; max-width:70ch; }

  /* ---------- ROADMAP ---------- */
  .roadmap{ display:grid; grid-template-columns:repeat(4,1fr); gap:0 32px; }
  @media (max-width:900px){ .roadmap{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .roadmap{ grid-template-columns:1fr; } }
  .rm{ padding:0 32px 0 0; border-right:1px solid var(--line); }
  .roadmap .rm:last-child{ border-right:none; padding-right:0; }
  @media (max-width:900px){
    .rm{ border-right:1px solid var(--line); padding:0 32px 24px 0; margin-bottom:24px;}
    .rm:nth-child(2n){ border-right:none; padding-right:0; }
  }
  @media (max-width:560px){ .rm{ border-right:none; padding:0 0 24px; } }
  .rm .phase{ font-family:'IBM Plex Mono', monospace; font-size:0.78rem; color:var(--ochre); margin-bottom:8px; }
  .rm .phase.live{ color:var(--teal); }
  .rm h4{ font-family:'Fraunces', serif; font-weight:500; font-size:1.05rem; margin:0 0 8px; }
  .rm p{ color:var(--ink-soft); font-size:0.88rem; margin:0; }

  /* ---------- WHY JOIN EARLY ---------- */
  .perks{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
  @media (max-width:700px){ .perks{ grid-template-columns:1fr; } }
  .perk .num{ font-family:'IBM Plex Mono', monospace; font-size:1.5rem; font-weight:600; color:var(--teal); margin-bottom:10px; }
  .perk h4{ font-family:'Fraunces', serif; font-weight:500; font-size:1.05rem; margin:0 0 8px; }
  .perk p{ color:var(--ink-soft); font-size:0.9rem; margin:0; max-width:34ch; }

  /* ---------- FINAL CTA ---------- */
  .cta-final{ background:var(--ink); color:var(--paper); border-radius:8px; padding:56px 48px; display:grid; grid-template-columns:1.3fr 1fr; gap:32px; align-items:center; }
  @media (max-width:760px){ .cta-final{ grid-template-columns:1fr; padding:40px 28px; } }
  .cta-final h2{ font-family:'Fraunces', serif; font-weight:500; font-size:clamp(1.6rem,3vw,2rem); margin:0 0 14px; }
  .cta-final p{ color:#C7CFC9; margin:0; font-size:0.98rem; }
  .cta-form{ display:flex; gap:10px; flex-wrap:wrap; }
  .cta-form input[type=email]{ flex:1; min-width:180px; padding:12px 14px; border-radius:3px; border:1px solid #3A473F; background:#1D2A24; color:var(--paper); font-family:'IBM Plex Sans', sans-serif; font-size:0.92rem; }
  .cta-form input[type=email]::placeholder{ color:#8A9690; }
  .cta-form .btn-primary{ background:var(--teal); color:var(--paper); }
  .cta-form .btn-primary:hover{ background:#28855F; }
  .cta-form .btn-primary:disabled{ opacity:0.6; cursor:not-allowed; }
  .cta-consent{ display:flex; align-items:flex-start; gap:8px; flex-basis:100%; margin-top:2px; font-size:0.85rem; color:#C7CFC9; cursor:pointer; }
  .cta-consent input{ margin-top:3px; flex-shrink:0; }
  .cta-consent a{ color:#8FE0B8; text-decoration:underline; }
  .cta-form-msg{ font-size:0.9rem; margin-top:10px; }
  .cta-success{ color:#8FE0B8; }
  .cta-error{ color:#E39B8A; }
  .hp-field{ position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
  .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;
  }

  /* ---------- FOOTER ---------- */
  footer{ padding:36px 0 48px; }
  footer .wrap{ display:flex; justify-content:space-between; align-items:flex-start; gap:24px; flex-wrap:wrap; }
  footer .disclaimer{ font-size:0.78rem; color:var(--ink-soft); max-width:56ch; }
  footer .disclaimer .copyright{ margin-bottom:6px; }
  footer .fnav{ display:flex; gap:20px; font-size:0.85rem; color:var(--ink-soft); }
