/* ============================================================
   Throughline · the Promise · marketing site
   Three pages (Home · Lenses · About) + The Proof waitlist.
   Calm editorial register. Built on Throughline design tokens.
   ============================================================ */
@import url("https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500;1,600&family=Inter:wght@300;400;500;600&display=swap");
:root{
  --vellum:#F8F5EE; --cream:#FCFAF4; --tracing:#F2EDE2; --hairline:#E4E0D6;
  --graphite:#1F2024; --soft:#6E6B65; --softer:#9A9690;
  --blueprint:#1F4E79; --brass:#C9A961; --terra:#B85948; --sage:#7A8B6C;
  --brass-ink:#8A6A2E; --sage-ink:#4F5E42; --blueprint-dark:#5B84AE;
  --display:"Jost","Futura","ITC Avant Garde Gothic Pro","Century Gothic","Helvetica Neue",Helvetica,Arial,sans-serif;
  --body:-apple-system,BlinkMacSystemFont,"Inter","Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SFMono-Regular","Berkeley Mono",Menlo,Consolas,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--graphite);background:var(--vellum);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
em{font-style:italic}
::selection{background:rgba(201,169,97,.3)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ── sticky top bar ─────────────────────────────────────── */
.top{position:sticky;top:0;z-index:50;background:rgba(248,245,238,.93);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--hairline)}
.top .row{max-width:1140px;margin:0 auto;padding:13px 28px;display:flex;align-items:center;gap:24px}
.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;flex-shrink:0}
.brand .mk{display:block}
.brand .b{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--graphite);line-height:1.1}
.brand .sub{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--softer);font-weight:700;margin-top:2px}
.nav{display:flex;align-items:center;gap:22px;margin-left:14px}
.nav a{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--soft);text-decoration:none;transition:color .15s ease}
.nav a:hover{color:var(--graphite)}
.nav a.here{color:var(--graphite);border-bottom:1px solid var(--brass);padding-bottom:2px}
.top .spacer{flex:1}
/* prominent product link */
.product-cta{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--vellum);background:var(--blueprint);border:1px solid var(--blueprint);padding:11px 19px;border-radius:4px;text-decoration:none;transition:filter .16s ease;flex-shrink:0}
.product-cta:hover{filter:brightness(1.12)}
.product-cta:active{transform:translateY(1px)}
.product-cta span{font-size:13px}
@media (max-width:760px){.nav{display:none}.product-cta{padding:10px 14px;font-size:10px}}

/* ── layout ─────────────────────────────────────────────── */
section{padding:80px 0}
section.cream{background:var(--cream);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}
section.dark{background:var(--graphite)}
.cap{max-width:1000px;margin:0 auto;padding:0 28px}
.cap.narrow{max-width:760px}
.eye{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--blueprint);margin-bottom:20px}
section.dark .eye{color:var(--blueprint-dark)}
.eye.brass{color:var(--brass-ink)}

/* ── hero ───────────────────────────────────────────────── */
.hero-wrap{padding:96px 0 84px}
.hero-mark{margin-bottom:34px}
.hero-tag{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--softer);margin-bottom:18px}
.hero-tag em{font-style:normal;color:var(--brass-ink)}
.hero{font-family:var(--display);font-weight:400;font-size:clamp(40px,7vw,82px);line-height:1.0;letter-spacing:-.022em;color:var(--graphite);max-width:15ch}
.hero em{font-style:italic;font-weight:600;color:var(--blueprint)}
.standfirst{font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(19px,2.4vw,25px);line-height:1.45;color:var(--soft);max-width:46ch;margin-top:26px}
.standfirst em{color:var(--graphite);font-style:italic}

/* ── headings + body ────────────────────────────────────── */
h2{font-family:var(--display);font-weight:400;font-size:clamp(30px,4.4vw,46px);line-height:1.06;letter-spacing:-.018em;color:var(--graphite);max-width:22ch}
h2 em{font-style:italic;font-weight:600;color:var(--blueprint)}
section.dark h2{color:var(--vellum)}
h3{font-family:var(--display);font-style:italic;font-weight:600;font-size:24px;color:var(--graphite);letter-spacing:-.012em;line-height:1.2}
.body{font-size:17px;line-height:1.7;color:var(--graphite);max-width:64ch;margin-top:18px}
.body.soft{color:var(--soft)}
section.dark .body{color:#C7C7C7}
.body em{font-style:italic}

/* ── lens library grid ──────────────────────────────────── */
.canon{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:42px}
@media (max-width:840px){.canon{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.canon{grid-template-columns:1fr}}
.lens{background:var(--vellum);border:1px solid var(--hairline);border-top:2px solid var(--brass);padding:20px 20px 22px;display:flex;flex-direction:column;gap:8px;transition:border-color .16s ease,transform .16s ease}
section.cream .lens{background:var(--cream)}
.lens:hover{border-color:var(--soft);transform:translateY(-2px)}
.lens.coming{border-top:2px dashed var(--blueprint);background:rgba(31,78,121,.035)}
.lens .lname{font-family:var(--display);font-style:italic;font-weight:600;font-size:21px;color:var(--graphite);line-height:1.1;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lens .meta{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--softer);margin-top:auto;padding-top:12px}
.lens .ask{font-size:14px;line-height:1.5;color:var(--soft);margin-top:2px}
.lens .ask em{color:var(--graphite);font-style:italic}

/* state pill */
.pill{display:inline-flex;align-items:center;font-family:var(--mono);font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;padding:3px 8px;border-radius:99px;white-space:nowrap}
.pill.live{background:rgba(122,139,108,.18);color:var(--sage-ink)}
.pill.coming{background:rgba(31,78,121,.10);color:var(--blueprint)}

/* ── benefits ───────────────────────────────────────────── */
.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}
@media (max-width:820px){.benefits{grid-template-columns:1fr}}
.ben{background:var(--vellum);border:1px solid var(--hairline);padding:26px 24px 28px}
section.cream .ben{background:var(--cream)}
.ben .verb{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;margin-bottom:14px}
.ben.b1 .verb{color:var(--blueprint)}
.ben.b2 .verb{color:var(--brass-ink)}
.ben.b3 .verb{color:var(--sage-ink)}
.ben h3{font-family:var(--display);font-style:italic;font-weight:600;font-size:22px;line-height:1.15;color:var(--graphite);margin-bottom:12px}
.ben p{font-size:14.5px;line-height:1.6;color:var(--soft)}
.ben p em{color:var(--graphite);font-style:italic}

/* ── compose (perspective) ──────────────────────────────── */
.compose{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px;background:var(--cream);border:1px solid var(--hairline);padding:26px}
section.cream .compose{background:var(--vellum)}
@media (max-width:740px){.compose{grid-template-columns:1fr}}
.col-head{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--soft);margin-bottom:12px;padding-bottom:8px;border-bottom:1px dashed var(--hairline)}
.tile{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--vellum);border:1px solid var(--hairline);margin-bottom:6px;font-size:14px;transition:border-color .15s ease}
section.cream .tile{background:var(--cream)}
.tile .box{width:15px;height:15px;border:1.4px solid var(--soft);border-radius:2px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:10px;color:var(--vellum)}
.tile.on{border-color:var(--brass);background:rgba(201,169,97,.10)}
.tile.on .box{background:var(--brass);border-color:var(--brass)}
.tile .tmeta{margin-left:auto;font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;color:var(--softer);font-weight:700}
.tile.dim{border-style:dashed;color:var(--softer)}
.picked{display:flex;align-items:center;gap:9px;padding:10px 13px;background:var(--graphite);color:var(--vellum);margin-bottom:6px;font-size:14px}
.picked::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brass);flex-shrink:0}
.run{margin-top:8px;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;text-decoration:none;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--vellum);background:var(--blueprint);padding:14px 18px;border-radius:4px;transition:filter .16s ease}
.run:hover{filter:brightness(1.12)}
.presets{margin-top:20px}
.preset{font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--soft);padding:6px 0}
.preset::before{content:"○  ";color:var(--softer)}

/* ── note / callout ─────────────────────────────────────── */
.note{padding:20px 24px;background:rgba(31,78,121,.05);border-left:3px solid var(--blueprint);margin-top:28px;font-family:var(--display);font-style:italic;font-size:16px;line-height:1.5;color:var(--graphite);max-width:64ch}
.note b{font-style:normal;font-weight:600;color:var(--blueprint)}
.warmth{padding:24px 26px;background:rgba(122,139,108,.08);border-left:3px solid var(--sage);margin-top:28px;max-width:66ch}
.warmth .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--sage-ink);font-weight:700;margin-bottom:10px}
.warmth h3{font-size:21px;margin-bottom:10px}
.warmth p{font-size:15px;line-height:1.6;color:var(--graphite)}

/* ── stat / context row ─────────────────────────────────── */
.stat-row{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:start;margin-top:34px;max-width:74ch}
@media (max-width:620px){.stat-row{grid-template-columns:1fr;gap:14px}}
.stat-fig{font-family:var(--display);font-weight:400;font-size:clamp(48px,8vw,76px);line-height:1;color:var(--blueprint);letter-spacing:-.02em}
.stat-cap{font-size:16px;line-height:1.6;color:var(--graphite)}
.stat-cap .src{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--softer);font-weight:600;margin-top:10px}
.stat-cap a{color:var(--blueprint);text-decoration:none;border-bottom:1px dashed rgba(31,78,121,.4)}
.stat-cap a:hover{border-bottom-style:solid}

/* ── inline form ────────────────────────────────────────── */
.iform{margin-top:30px;max-width:520px}
.iform .flabel{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--blueprint);margin-bottom:8px}
.iform .frow{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--blueprint);padding:12px 2px}
.iform input{flex:1;appearance:none;background:none;border:0;outline:none;font-family:var(--mono);font-size:15px;color:var(--graphite);min-width:0}
.iform input::placeholder{color:var(--softer)}
.iform .submit{appearance:none;cursor:pointer;border:1px solid var(--graphite);background:var(--graphite);color:var(--vellum);font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;padding:11px 16px;border-radius:4px;transition:background .16s ease;white-space:nowrap}
.iform .submit:hover{background:var(--blueprint);border-color:var(--blueprint)}
.iform .fhint{font-family:var(--display);font-style:italic;font-size:14px;color:var(--soft);margin-top:12px}

/* ── about blocks ───────────────────────────────────────── */
.about-blocks{margin-top:36px;display:flex;flex-direction:column}
.ablk{padding:26px 0;border-top:1px solid var(--hairline)}
.ablk:first-child{border-top:none;padding-top:0}
.ablk .k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--brass-ink);margin-bottom:10px}
.ablk p{font-size:16px;line-height:1.7;color:var(--graphite);max-width:64ch}
.ablk p + p{margin-top:12px}

/* ── close CTA ──────────────────────────────────────────── */
.close{text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}
.close .cta-main{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--vellum);background:var(--blueprint);padding:16px 28px;border-radius:4px;text-decoration:none;transition:filter .16s ease}
.close .cta-main:hover{filter:brightness(1.12)}
.close .cta-sub{font-family:var(--display);font-style:italic;font-size:15px;color:var(--soft)}

/* ── footer ─────────────────────────────────────────────── */
footer.site{background:var(--graphite);padding:40px 0}
footer.site .row{max-width:1140px;margin:0 auto;padding:0 28px;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center}
@media (max-width:680px){footer.site .row{grid-template-columns:1fr;gap:20px}}
footer.site .fnm{font-family:var(--display);font-style:italic;font-weight:600;font-size:22px;color:var(--vellum);line-height:1;margin-bottom:8px}
footer.site .fnm em{font-style:normal;color:var(--brass)}
footer.site .fmeta{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:#9CA3AF;line-height:1.7}
footer.site .fmeta a{color:#BFD4E6;text-decoration:none}
footer.site .flinks{display:flex;gap:20px;flex-wrap:wrap}
footer.site .flinks a{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#9CA3AF;text-decoration:none;transition:color .15s ease}
footer.site .flinks a:hover{color:var(--vellum)}

/* reveal on load */
@keyframes rise{from{transform:translateY(16px)}to{transform:none}}
.rise{animation:rise .56s cubic-bezier(.2,.7,.2,1) both}
