/* ============ Grotesk / Paper tokens ============ */
:root{
  /* ---- THE PALETTE: five colours, nothing else ----
     Every value on this site resolves to one of these five. The two ink
     tints below are not additional colours; they are ink mixed into paper. */
  --paper:#F1F0EC;      /* 1. canvas                  */
  --paper-pure:#FAFAF8; /* 2. raised surface (cards)  */
  --ink:#111110;        /* 3. type and structure      */
  --rule:#D8D6D0;       /* 4. hairlines               */
  --flag:#EF4322;       /* 5. the one accent          */

  /* derived ink tints (hex fallback first, then the true mix) */
  --ink-70:#4B4B47;
  --ink-45:#8C8B89;
  --ink-70:color-mix(in srgb, var(--ink) 74%, var(--paper));
  --ink-45:color-mix(in srgb, var(--ink) 47%, var(--paper));

  --font-sans:"Helvetica Neue","Inter Tight",Helvetica,Arial,sans-serif;
  --font-serif:"Times New Roman",Times,Georgia,serif;
  --font-mono:ui-monospace,"SF Mono","Roboto Mono",Menlo,Consolas,monospace;

  /* ---- TYPE SCALE: eight roles, no ad-hoc sizes ---- */
  --t-hero:clamp(46px, 6.6vw, 88px);   /* 88 · 0.94 · -0.028em · 700 */
  --t-d1:clamp(32px, 4.4vw, 56px);     /* 56 · 1.02 · -0.028em · 700 */
  --t-d2:clamp(26px, 3vw, 40px);       /* 40 · 1.06 · -0.028em · 600 */
  --t-d3:clamp(19px, 2vw, 24px);       /* 24 · 1.15 · -0.012em · 600 */
  --t-lead:clamp(18px, 1.6vw, 20px);   /* 20 · 1.30 */
  --t-body:16px;                       /* 16 · 1.45 */
  --t-small:14px;                      /* the only step below body   */
  --t-caption:11px;                    /* mono, uppercase, 0.14em    */
  --t-micro:9.5px;                     /* mono, uppercase, 0.14em    */

  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px;
  --s-7:48px; --s-8:64px; --s-9:96px; --s-10:128px;

  --measure:36rem;
  --pad-x:clamp(24px, 6vw, 88px);
  --nav-h:72px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{scroll-padding-top:calc(var(--nav-h) + 24px)}
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:var(--t-body);
  line-height:1.45;
  letter-spacing:-0.012em;
  -webkit-font-smoothing:antialiased;
}

::selection{background:var(--flag);color:var(--paper-pure)}

img,svg{max-width:100%;display:block}
a{color:inherit}

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

/* ============ Type roles ============ */
.eyebrow{
  font-family:var(--font-mono);
  font-size:var(--t-caption);
  letter-spacing:0.14em;
  text-transform:uppercase;
  line-height:1.4;
  color:var(--ink-45);
}
.micro{
  font-family:var(--font-mono);
  font-size:var(--t-micro);
  letter-spacing:0.14em;
  text-transform:uppercase;
  line-height:1.4;
  color:var(--ink-45);
}
h1{
  font-size:var(--t-hero);
  line-height:0.94;
  letter-spacing:-0.028em;
  font-weight:700;
}
/* the swash phrase cannot wrap, so the floor drops on the narrowest phones */
@media (max-width:369px){
  h1{font-size:40px}
}
h2{
  font-size:var(--t-d1);
  line-height:1.02;
  letter-spacing:-0.028em;
  font-weight:700;
}
h3{
  font-size:var(--t-d3);
  line-height:1.15;
  letter-spacing:-0.012em;
  font-weight:600;
}
/* display-2: the single step between section head and card head */
.d2{
  font-size:var(--t-d2);
  line-height:1.06;
  letter-spacing:-0.028em;
  font-weight:600;
}
.lead{
  font-size:var(--t-lead);
  line-height:1.30;
  letter-spacing:-0.012em;
  color:var(--ink-70);
  max-width:var(--measure);
}
.serif-accent{
  font-family:var(--font-serif);
  font-style:italic;
  letter-spacing:0;
  font-weight:400;
}

/* ============ Layout primitives ============ */
.wrap{max-width:1200px;margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x)}
/* Whitespace ladder: three steps, all on the spacing scale. */
section{padding-top:var(--s-8);padding-bottom:var(--s-8)}
@media (min-width:640px){
  section{padding-top:var(--s-9);padding-bottom:var(--s-9)}
}
@media (min-width:1000px){
  section{padding-top:var(--s-10);padding-bottom:var(--s-10)}
}
.section-head{margin-bottom:var(--s-8)}
.section-head .eyebrow{display:block;margin-bottom:var(--s-4)}
.section-head h2{max-width:16em}
.rule{border:0;border-top:1px solid var(--rule)}

/* ============ Buttons ============ */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-sans);
  font-size:var(--t-small);
  font-weight:600;
  letter-spacing:-0.012em;
  line-height:1;
  padding:15px 28px;
  border-radius:999px;
  border:1px solid var(--ink);
  background:var(--ink);
  color:var(--paper-pure);
  text-decoration:none;
  cursor:pointer;
  transition:transform .18s ease, opacity .18s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-flag{background:var(--flag);border-color:var(--flag);color:#FFFFFF}
.btn-outline{background:transparent;color:var(--ink)}
.btn-block{width:100%;justify-content:center}

.text-link{
  font-size:var(--t-small);
  font-weight:500;
  color:var(--ink);
  text-decoration:underline;
  text-underline-offset:4px;
  text-decoration-thickness:1px;
}
.text-link:hover{text-decoration-thickness:2px}

/* ============ Nav ============ */
.nav{
  position:sticky;
  top:0;
  z-index:50;
  background:var(--paper);
  border-bottom:1px solid var(--rule);
}
.nav-inner{
  max-width:1200px;
  margin:0 auto;
  padding:0 var(--pad-x);
  min-height:var(--nav-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--s-5);
  flex-wrap:wrap;
  padding-top:12px;
  padding-bottom:12px;
}
.wordmark{
  font-weight:800;
  font-size:var(--t-d3);
  letter-spacing:-0.04em;
  text-decoration:none;
  line-height:1;
}
.wordmark .wm-x{
  font-family:var(--font-serif);
  font-style:italic;
  font-weight:400;
  font-size:1.18em;
  letter-spacing:0;
  color:var(--flag);
  margin:0 1px;
}
.wordmark sup{
  font-family:var(--font-mono);
  font-size:var(--t-micro);
  letter-spacing:0.14em;
  color:var(--ink-45);
  margin-left:8px;
  text-transform:uppercase;
  font-weight:400;
}
.nav-menu{order:3;width:100%}
.nav-links{
  display:flex;
  gap:clamp(16px, 2.5vw, 32px);
  list-style:none;
  overflow-x:auto;
  padding-bottom:2px;
}
/* Hamburger: only shown on small screens when JS is available, so the
   no-JS header keeps its plain inline link row. */
.nav-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  width:44px; height:44px;
  flex:none;
  padding:0;
  background:none;
  border:1px solid var(--rule);
  border-radius:999px;
  color:var(--ink);
  cursor:pointer;
  transition:border-color .18s ease;
}
.nav-toggle:hover{border-color:var(--ink-45)}
.nav-toggle svg{width:17px;height:17px;display:block}
.nav-toggle .icon-close{display:none}
.nav-toggle[aria-expanded="true"] .icon-open{display:none}
.nav-toggle[aria-expanded="true"] .icon-close{display:block}
.nav-links a{
  font-family:var(--font-mono);
  font-size:var(--t-caption);
  letter-spacing:0.14em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--ink-70);
  white-space:nowrap;
  border-bottom:1px solid transparent;
  padding:12px 0 10px;
  transition:color .18s ease, border-color .18s ease;
}
.nav-links a:hover{color:var(--ink);border-color:var(--ink)}
.nav .btn{padding:14px 22px;font-size:var(--t-small);white-space:nowrap;flex:none}
.wordmark{white-space:nowrap;flex:none}

/* ---- Mobile / tablet header (JS available): one row + hamburger ---- */
@media (max-width:919px){
  .js .nav-toggle{display:inline-flex}
  .js .nav-inner{
    flex-wrap:nowrap;
    gap:var(--s-3);
    padding-top:12px;
    padding-bottom:12px;
    justify-content:flex-start;
  }
  .js .nav-inner .wordmark{margin-right:auto}
  /* the link list becomes a dropdown panel under the header bar */
  .js .nav-menu{
    position:absolute;
    top:100%; left:0; right:0;
    order:0;
    width:auto;
    background:var(--paper-pure);
    border-bottom:1px solid var(--rule);
    box-shadow:0 1px 0 var(--rule);
    z-index:60;
    display:none;
  }
  .js .nav-menu.open{display:block}
  .js .nav-menu .nav-links{
    flex-direction:column;
    gap:0;
    overflow:visible;
    padding:var(--s-2) var(--pad-x) var(--s-4);
    max-width:1200px;
    margin:0 auto;
  }
  .js .nav-menu .nav-links li + li{border-top:1px solid var(--rule)}
  .js .nav-menu .nav-links a{
    display:block;
    padding:16px 0;
    font-size:var(--t-small);
    border-bottom:0;
  }
  .js .nav-menu .nav-links a:hover{color:var(--ink)}
}
/* no-JS small screens keep the original scrollable link row */
@media (max-width:560px){
  .nav-inner{gap:var(--s-3)}
  .wordmark sup{display:none}
  .nav .btn{padding:12px 16px;font-size:var(--t-small)}
  .nav-links{gap:18px}
}
/* narrowest phones: keep logo + CTA + hamburger comfortably on one row */
@media (max-width:379px){
  .nav-inner{padding-left:16px;padding-right:16px}
  .wordmark{font-size:var(--t-d3)}
  .nav .btn{padding:11px 13px;font-size:var(--t-small)}
  .nav-toggle{width:40px;height:40px}
}
/* footer link row wraps instead of pushing the page wider */
.footer-row .nav-links{flex-wrap:wrap;max-width:100%;min-width:0}
@media (min-width:920px){
  .nav-menu{order:0;width:auto}
  .nav-links{overflow:visible;padding-bottom:0}
}

/* ============ Hero ============ */
.hero{padding-top:clamp(48px, 7vw, 88px);padding-bottom:clamp(48px, 7vw, 80px)}
.hero-grid{
  display:grid;
  gap:var(--s-7);
  align-items:start;
  margin-top:var(--s-7);
}
@media (min-width:960px){
  .hero-grid{grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--s-8)}
}
.hero .eyebrow{display:block;margin-bottom:var(--s-5);color:var(--ink-70)}
.hero h1{max-width:13em}
.hero .lead{margin-bottom:var(--s-6)}
.hero-cta{display:flex;align-items:center;gap:var(--s-5);flex-wrap:wrap;margin-bottom:var(--s-6)}
.hero-trust{
  border-top:1px solid var(--rule);
  padding-top:var(--s-4);
  max-width:var(--measure);
}
.hero-trust p{font-size:var(--t-small);color:var(--ink-70)}
.hero-trust .micro{display:block;margin-top:var(--s-3)}

/* the hand-drawn underline swash */
.swash-wrap{position:relative;display:inline-block;white-space:nowrap}
.swash-wrap svg{
  position:absolute;
  left:-1.5%; bottom:-0.22em;
  width:103%; height:0.28em;
  overflow:visible;
  pointer-events:none;
  transform:rotate(-0.6deg);
}
.swash-wrap path{
  fill:none;
  stroke:var(--flag);
  stroke-width:4;
  vector-effect:non-scaling-stroke;
  stroke-linecap:round;
}
@media (prefers-reduced-motion:no-preference){
  .swash-wrap path{
    stroke-dasharray:100;
    stroke-dashoffset:100;
    animation:swash-draw .9s ease-out .35s forwards;
  }
  @keyframes swash-draw{to{stroke-dashoffset:0}}
}

/* hero visual: photo + overlapping path card */
.hero-visual{position:relative}
.hero-figure{
  position:relative;
  margin:0;
  overflow:hidden;
  border:1px solid var(--rule);
  aspect-ratio:4/5;
  /* warm gradient fallback if the photo never loads */
  background:linear-gradient(160deg, #EAE4D8 0%, #DFD2BD 48%, #C8B69A 100%);
}
.hero-figure img{
  width:100%;
  height:112%;
  object-fit:cover;
  filter:grayscale(1) contrast(1.08);
  transform:translateY(-5%);
  will-change:transform;
}
.hero-figure .micro{
  position:absolute;
  left:12px; bottom:10px;
  color:rgba(250,250,248,.85);
}

/* hero side card */
.hero-card{
  background:var(--paper-pure);
  border:1px solid var(--rule);
  padding:var(--s-5);
  position:relative;
  z-index:2;
  margin:-48px var(--s-4) 0;
}
@media (min-width:960px){
  .hero-visual{padding-bottom:56px}
  .hero-card{
    position:absolute;
    left:-72px; bottom:0;
    width:min(320px, 92%);
    margin:0;
  }
}
.hero-card .eyebrow{margin-bottom:var(--s-5);color:var(--ink-45)}
.hero-card ol{list-style:none}
.hero-card li{
  display:flex;
  gap:var(--s-4);
  align-items:baseline;
  padding:var(--s-3) 0;
  border-bottom:1px solid var(--rule);
  font-size:var(--t-small);
  font-weight:500;
}
.hero-card li:last-child{border-bottom:0}
.hero-card .num{
  font-family:var(--font-mono);
  font-size:var(--t-caption);
  letter-spacing:0.14em;
  color:var(--flag);
}
.hero-card .note{
  margin-top:var(--s-4);
  font-size:var(--t-small);
  color:var(--ink-70);
}

/* ============ By the numbers band ============ */
.numbers{
  padding:0;
  background:var(--paper-pure);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.numbers-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
}
.stat{
  padding:var(--s-6) var(--s-5);
  border-top:1px solid var(--rule);
}
.stat:nth-child(-n+2){border-top:0}
.stat:nth-child(even){border-left:1px solid var(--rule)}
.stat strong{
  display:block;
  font-size:var(--t-d1);
  font-weight:700;
  letter-spacing:-0.028em;
  line-height:1;
  margin-bottom:var(--s-2);
}
.stat span{
  font-family:var(--font-mono);
  font-size:var(--t-micro);
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--ink-45);
  line-height:1.5;
  display:block;
}
.stat-flag strong{color:var(--flag)}
@media (min-width:900px){
  .numbers-grid{grid-template-columns:repeat(4,1fr)}
  .stat{border-top:0;padding:var(--s-7) var(--s-6)}
  .stat + .stat{border-left:1px solid var(--rule)}
}

/* ============ How it works ============ */
.steps{
  display:grid;
  gap:var(--s-5);
}
@media (min-width:900px){
  .steps{grid-template-columns:repeat(3,1fr)}
}
.step{
  background:var(--paper-pure);
  border:1px solid var(--rule);
  padding:var(--s-6);
  display:flex;
  flex-direction:column;
  transition:transform .22s ease, border-color .22s ease;
}
.step:hover{transform:translateY(-4px);border-color:var(--ink-45)}
.step-top{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:var(--s-5);
}
.step-num{
  font-family:var(--font-mono);
  font-size:var(--t-small);
  letter-spacing:0.14em;
  color:var(--flag);
}
.step h3{margin-bottom:var(--s-3)}
.step > p{color:var(--ink-70);font-size:var(--t-small);margin-bottom:var(--s-5)}
.step ul{
  list-style:none;
  margin-top:auto;
  border-top:1px solid var(--rule);
}
.step li{
  font-family:var(--font-mono);
  font-size:var(--t-caption);
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ink-70);
  padding:9px 0;
  border-bottom:1px solid var(--rule);
}
.how-close{
  margin-top:var(--s-7);
  max-width:var(--measure);
}
.how-close p{color:var(--ink-70)}

/* ============ Coaching / pricing ============ */
#coaching .section-head p{margin-top:var(--s-4)}
.tiers{display:grid;gap:var(--s-5)}
.tiers-alt{
  display:grid;
  gap:var(--s-5);
}
@media (min-width:760px){
  .tiers-alt{grid-template-columns:repeat(2,1fr)}
  .tier-featured ul{columns:2;column-gap:var(--s-7)}
  .tier-featured li{break-inside:avoid}
}
.tier-alt{
  background:var(--paper-pure);
  border:1px solid var(--rule);
  padding:var(--s-5) var(--s-6);
}
.tier-alt h3{font-size:var(--t-d3);margin-bottom:var(--s-2)}
.tier-alt p{font-size:var(--t-small);color:var(--ink-70);max-width:34em;margin-bottom:var(--s-3)}
.tiers-alt-label{display:block;margin:var(--s-6) 0 var(--s-4)}
@media (min-width:960px){
  .tier-featured{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s-7)}
  .tier-featured .tier-head{margin-bottom:0}
  .tier-featured .tier-body{display:flex;flex-direction:column}
}
.tier{
  background:var(--paper-pure);
  border:1px solid var(--rule);
  padding:var(--s-6);
  display:flex;
  flex-direction:column;
  transition:transform .22s ease, border-color .22s ease;
}
.tier:hover{transform:translateY(-4px);border-color:var(--ink-45)}
.tier-head{margin-bottom:var(--s-5)}
.tier-head .eyebrow{display:block;margin-bottom:var(--s-3)}
.tier h3{margin-bottom:var(--s-2)}
.tier-desc{font-size:var(--t-small);color:var(--ink-70)}
.tier-price{
  margin:var(--s-4) 0 var(--s-5);
  padding:var(--s-4) 0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.tier-price strong{
  font-size:var(--t-d2);
  font-weight:700;
  letter-spacing:-0.028em;
  line-height:1.06;
  display:block;
}
.tier-price span{
  font-family:var(--font-mono);
  font-size:var(--t-caption);
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ink-45);
}
.tier ul{list-style:none;margin-bottom:var(--s-6)}
.tier li{
  font-size:var(--t-small);
  padding:7px 0 7px 22px;
  position:relative;
  color:var(--ink-70);
}
.tier li::before{
  content:"";
  position:absolute;
  left:0; top:14px;
  width:10px; height:1.5px;
  background:currentColor;
}
.tier .btn{margin-top:auto}
.tier-note{margin-top:var(--s-3);font-size:var(--t-small);color:var(--ink-45)}

/* featured tier: the one dark frame in the pricing set */
.tier-featured{
  background:var(--ink);
  border-color:var(--ink);
  color:var(--paper);
}
.tier-featured .tier-desc,
.tier-featured .tier li,
.tier-featured .tier-note{color:rgba(241,240,236,.7)}
.tier-featured li{color:rgba(241,240,236,.75)}
.tier-featured .tier-price{border-color:rgba(241,240,236,.2)}
.tier-featured .tier-price span{color:rgba(241,240,236,.55)}
.tier-featured:hover{border-color:var(--ink)}
.chip{
  display:inline-block;
  font-family:var(--font-mono);
  font-size:var(--t-micro);
  letter-spacing:0.14em;
  text-transform:uppercase;
  background:var(--flag);
  color:#FFFFFF;
  border-radius:999px;
  padding:6px 12px;
  margin-bottom:var(--s-4);
}
/* ============ What you'll build (weeks) ============ */
.weeks{display:grid;gap:var(--s-5)}
@media (min-width:760px){
  .weeks{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1060px){
  .weeks{grid-template-columns:repeat(3,1fr)}
}
.week{
  background:var(--paper-pure);
  border:1px solid var(--rule);
  padding:var(--s-6);
  display:flex;
  flex-direction:column;
  transition:transform .22s ease, border-color .22s ease;
}
.week:hover{transform:translateY(-4px);border-color:var(--ink-45)}
.week .wk{
  font-family:var(--font-mono);
  font-size:var(--t-caption);
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--flag);
  display:block;
  margin-bottom:var(--s-4);
}
.week h3{font-size:var(--t-d3);margin-bottom:var(--s-4)}
.week ul{list-style:none;border-top:1px solid var(--rule);margin-top:auto}
.week li{
  font-size:var(--t-small);
  color:var(--ink-70);
  padding:8px 0 8px 20px;
  border-bottom:1px solid var(--rule);
  position:relative;
}
.week li::before{
  content:"";
  position:absolute;
  left:0; top:15px;
  width:9px; height:1.5px;
  background:var(--ink-45);
}
.weeks-close{
  margin-top:var(--s-7);
  max-width:var(--measure);
  border-top:1px solid var(--rule);
  padding-top:var(--s-4);
}
.weeks-close p{font-size:var(--t-small);color:var(--ink-70)}
.weeks-close .micro{display:block;margin-top:var(--s-3)}

/* ============ Founder photo ============ */
.founder-photo{
  margin-top:var(--s-6);
  max-width:300px;
}
.founder-photo .frame{
  position:relative;
  aspect-ratio:4/5;
  border:1px solid rgba(241,240,236,.25);
  background:linear-gradient(165deg, #2A2A26 0%, #1C1C19 60%, #161613 100%);
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.founder-photo img{
  position:absolute;
  inset:0;
  width:100%; height:100%;
  object-fit:cover;
  filter:grayscale(1) contrast(1.06);
}
.founder-photo .monogram{
  font-family:var(--font-serif);
  font-style:italic;
  font-size:72px;
  color:rgba(241,240,236,.35);
  letter-spacing:0;
}
.founder-photo .micro{display:block;margin-top:var(--s-3);color:rgba(241,240,236,.5)}

/* ============ Booking scheduler ============ */
.scheduler{display:none}
.scheduler.active{display:block}
.scheduler-frame{
  position:relative;
  background:var(--paper-pure);
  border:1px solid var(--rule);
  min-height:560px;
}
.scheduler-frame iframe{
  display:block;
  width:100%;
  height:660px;
  border:0;
  position:relative;
  z-index:2;
}
@media (min-width:760px){
  .scheduler-frame iframe{height:760px}
}
.scheduler-loading{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  gap:var(--s-3);
  align-items:center;
  justify-content:center;
  z-index:1;
}
.scheduler-loading .micro{color:var(--ink-45)}
.scheduler-dot{
  width:10px;height:10px;border-radius:50%;
  background:var(--flag);
}
@media (prefers-reduced-motion:no-preference){
  .scheduler-dot{animation:sched-pulse 1s ease-in-out infinite alternate}
  @keyframes sched-pulse{from{opacity:.25;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
}
.scheduler-alt{margin-top:var(--s-4);font-size:var(--t-small);color:var(--ink-70)}

/* ============ Founder (dark manifesto frame) ============ */
.founder{
  background:var(--ink);
  color:var(--paper);
}
.founder .eyebrow{color:rgba(241,240,236,.5)}
.founder-grid{
  display:grid;
  gap:var(--s-7);
}
@media (min-width:960px){
  .founder-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s-8)}
}
.founder h2{max-width:10em;margin-top:var(--s-4)}
.founder .pull{
  font-family:var(--font-serif);
  font-style:italic;
  font-size:var(--t-d3);
  line-height:1.3;
  letter-spacing:0;
  margin-top:var(--s-6);
  color:rgba(241,240,236,.85);
  max-width:16em;
}
.founder-story p{
  color:rgba(241,240,236,.72);
  margin-bottom:var(--s-4);
  max-width:var(--measure);
}
.founder-story p strong{color:var(--paper);font-weight:600}
.founder-sig{
  margin-top:var(--s-6);
  padding-top:var(--s-4);
  border-top:1px solid rgba(241,240,236,.2);
}
.founder-sig .who{font-weight:600}
.founder-sig .micro{display:block;margin-top:4px;color:rgba(241,240,236,.5)}

/* ============ Contact ============ */
.contact-grid{display:grid;gap:var(--s-7)}
@media (min-width:960px){
  .contact-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s-8)}
}
.contact-copy p{color:var(--ink-70);margin-bottom:var(--s-4);max-width:var(--measure)}
.contact-copy .expect{
  margin-top:var(--s-6);
  border-top:1px solid var(--rule);
}
.contact-copy .expect li{
  list-style:none;
  display:flex;
  gap:var(--s-4);
  align-items:baseline;
  padding:var(--s-3) 0;
  border-bottom:1px solid var(--rule);
  font-size:var(--t-small);
}
.contact-copy .expect .num{
  font-family:var(--font-mono);
  font-size:var(--t-caption);
  letter-spacing:0.14em;
  color:var(--flag);
}
.form{
  background:var(--paper-pure);
  border:1px solid var(--rule);
  padding:var(--s-6);
}
.field{margin-bottom:var(--s-5)}
.field label{
  display:block;
  font-family:var(--font-mono);
  font-size:var(--t-caption);
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ink-70);
  margin-bottom:var(--s-2);
}
.field input,
.field textarea{
  width:100%;
  font-family:var(--font-sans);
  font-size:var(--t-body);
  letter-spacing:-0.012em;
  color:var(--ink);
  background:var(--paper);
  border:1px solid var(--rule);
  border-radius:0;
  padding:13px 14px;
  transition:border-color .18s ease;
}
.field input:hover,
.field textarea:hover{border-color:var(--ink-45)}
.field input:focus,
.field textarea:focus{outline:2px solid var(--flag);outline-offset:0;border-color:transparent}
.field textarea{min-height:120px;resize:vertical}
.form .micro{display:block;margin-top:var(--s-4)}
.form-alt{margin-top:var(--s-4);font-size:var(--t-small);color:var(--ink-70)}

/* ============ Footer ============ */
footer{
  border-top:1px solid var(--rule);
  padding:var(--s-7) 0 var(--s-8);
}
.footer-inner{
  display:flex;
  flex-direction:column;
  gap:var(--s-5);
}
.footer-disclaimer{
  font-size:var(--t-small);
  color:var(--ink-45);
  max-width:var(--measure);
}
.footer-row{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:var(--s-5);
  flex-wrap:wrap;
}
.footer-link{color:var(--ink-45);text-decoration:underline;text-underline-offset:3px}
.footer-link:hover{color:var(--ink)}

/* ============ Scroll progress ============ */
.progress{
  position:fixed;
  top:0; left:0; right:0;
  height:2px;
  z-index:70;
  pointer-events:none;
}
.progress b{
  display:block;
  height:100%;
  background:var(--flag);
  transform:scaleX(0);
  transform-origin:0 50%;
}

/* ============ Drawn checkmarks (featured tier) ============ */
.tier li .ck{
  position:absolute;
  left:0; top:9px;
  width:13px; height:13px;
}
.tier li .ck path{
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:24;
  stroke-dashoffset:0;
}
.tier-featured li{color:rgba(241,240,236,.75)}
.tier-featured li::before{display:none}
@media (prefers-reduced-motion:no-preference){
  .js .tier-featured .ck path{
    stroke-dashoffset:24;
    transition:stroke-dashoffset .45s ease;
  }
  .js .tier-featured.in .ck path{stroke-dashoffset:0}
}

/* ============ Risk reversal ============ */
.risk{
  margin-top:var(--s-7);
  max-width:var(--measure);
  border-top:1px solid var(--rule);
  padding-top:var(--s-5);
}
.risk h3{margin-bottom:var(--s-3)}
.risk p{font-size:var(--t-small);color:var(--ink-70);margin-bottom:var(--s-3)}

/* ============ Offer band ============ */
.offer{
  background:var(--ink);
  color:var(--paper);
  padding-top:var(--s-7);
  padding-bottom:var(--s-7);
}
.offer .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--s-6);
  flex-wrap:wrap;
}
.offer .eyebrow{color:rgba(241,240,236,.5);display:block;margin-bottom:var(--s-3)}
.offer h2{font-size:var(--t-d2);line-height:1.06;letter-spacing:-0.028em;max-width:14em}
.offer p{
  margin-top:var(--s-3);
  color:rgba(241,240,236,.72);
  max-width:34em;
  font-size:var(--t-small);
}
.offer p strong{color:var(--paper);font-weight:700}
.offer .offer-cta{flex:none}
.offer .micro{display:block;margin-top:var(--s-3);color:rgba(241,240,236,.45)}

/* ============ FAQ ============ */
.faq-list{border-top:1px solid var(--rule);max-width:52rem}
.faq-list details{border-bottom:1px solid var(--rule)}
.faq-list summary{
  display:flex;
  gap:var(--s-4);
  align-items:baseline;
  padding:var(--s-5) 0;
  cursor:pointer;
  font-weight:600;
  font-size:var(--t-body);
  letter-spacing:-0.012em;
  list-style:none;
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:hover{color:var(--ink-70)}
.faq-num{
  font-family:var(--font-mono);
  font-size:var(--t-caption);
  letter-spacing:0.14em;
  color:var(--flag);
  flex:none;
}
.faq-ind{
  margin-left:auto;
  flex:none;
  font-weight:400;
  font-size:var(--t-d3);
  line-height:1;
  color:var(--ink-45);
  transition:transform .2s ease;
}
.faq-list details[open] .faq-ind{transform:rotate(45deg)}
.faq-a{
  padding:0 0 var(--s-5) 34px;
  color:var(--ink-70);
  font-size:var(--t-small);
  max-width:var(--measure);
}
.faq-a p + p{margin-top:var(--s-3)}

/* ============ Sticky book bar ============ */
.sticky-bar{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:55;
  background:var(--ink);
  color:var(--paper);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--s-5);
  padding:10px var(--pad-x);
  transform:translateY(110%);
}
@media (prefers-reduced-motion:no-preference){
  .sticky-bar{transition:transform .35s ease}
}
.sticky-bar.show{transform:translateY(0)}
.sticky-bar p{font-size:var(--t-small);line-height:1.3}
.sticky-bar p strong{font-weight:700}
.sticky-bar .sb-sub{color:rgba(241,240,236,.65)}
.sticky-bar .sb-spots{
  font-family:var(--font-mono);
  font-size:var(--t-micro);
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:rgba(241,240,236,.55);
  display:none;
}
.sticky-bar .btn{padding:11px 20px;font-size:var(--t-small);flex:none}
body.has-bar{padding-bottom:64px}
@media (max-width:560px){
  .sticky-bar .sb-sub{display:none}
}

/* ============ One-time nudge card ============ */
.nudge{
  position:fixed;
  right:16px; bottom:16px;
  z-index:56;
  width:min(320px, calc(100vw - 32px));
  background:var(--paper-pure);
  border:1px solid var(--ink);
  padding:var(--s-5);
  opacity:0;
  transform:translateY(14px);
  pointer-events:none;
}
@media (prefers-reduced-motion:no-preference){
  .nudge{transition:opacity .4s ease, transform .4s ease}
}
.nudge.show{opacity:1;transform:none;pointer-events:auto}
body.has-bar .nudge{bottom:80px}
.nudge .eyebrow{display:block;margin-bottom:var(--s-3);color:var(--ink-45)}
.nudge p{font-size:var(--t-small);color:var(--ink-70);margin-bottom:var(--s-3)}
.nudge p strong{color:var(--ink)}
.nudge .btn{width:100%;justify-content:center;padding:12px 20px;font-size:var(--t-small)}
.nudge-close{
  position:absolute;
  top:8px; right:8px;
  width:28px; height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:none;
  border:0;
  cursor:pointer;
  font-size:var(--t-body);
  line-height:1;
  color:var(--ink-45);
}
.nudge-close:hover{color:var(--ink)}

/* ============ Reveal on scroll ============ */
.js .reveal{opacity:0;transform:translateY(16px)}
.js .reveal.in{
  opacity:1;
  transform:none;
  transition:opacity .6s ease, transform .6s ease;
}
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none}
  .btn:hover, .step:hover, .tier:hover, .quote:hover{transform:none}
  .tier-featured, .tier-featured:hover{transform:none}
}

.skip-link{
  position:absolute;
  left:-9999px;
  top:0;
  background:var(--ink);
  color:var(--paper-pure);
  padding:12px 20px;
  z-index:100;
}
.skip-link:focus{left:0}
