
:root {
  --ink: #1f2521;
  --ink-soft: #4f5752;
  --paper: #f5f5f3;
  --white: #ffffff;
  --mist: #e8ece9;
  --sage: #dce6df;
  --lavender: #a7aec7;
  --lavender-deep: #838daa;
  --line: rgba(31, 37, 33, 0.15);
  --shadow: 0 24px 70px rgba(31,37,33,.10);
  --radius: 22px;
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}
a { color: inherit; }
img { display:block; max-width:100%; }
button, input, select, textarea { font: inherit; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 1000; background: var(--ink); color: white; padding: .7rem 1rem; border-radius: 8px; }
.skip-link:focus { top: 1rem; }
.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(245,245,243,.90);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(31,37,33,.08);
}
.nav-wrap { min-height: 78px; display:flex; align-items:center; justify-content:space-between; gap: 2rem; }
.brand { display:inline-flex; align-items:center; gap:.75rem; text-decoration:none; font-weight:750; letter-spacing:-.035em; font-size:1.12rem; }
.brand-mark { width: 34px; height:34px; border-radius:9px; background:var(--ink); color:white; display:grid; place-items:center; font-size:1.1rem; font-weight:800; }
.nav-links { display:flex; align-items:center; gap:1.65rem; }
.nav-links a { text-decoration:none; font-size:.93rem; font-weight:550; color:#343b37; padding:.35rem 0; border-bottom:2px solid transparent; }
.nav-links a:hover, .nav-links a[aria-current="page"] { border-color:var(--lavender-deep); }
.nav-links a.nav-cta,
.nav-links a.nav-cta:visited,
.nav-links a.nav-cta:hover,
.nav-links a.nav-cta[aria-current="page"] {
  display:inline-flex;
  text-decoration:none;
  background:var(--ink);
  color:#fff !important;
  padding:.7rem 1rem !important;
  border-radius:9px;
  border-bottom:0 !important;
}
.menu-button { display:none; border:0; background:transparent; padding:.4rem; cursor:pointer; }
.menu-button span { display:block; width:25px; height:2px; margin:5px 0; background:var(--ink); }
.hero { min-height: 690px; position:relative; display:grid; align-items:end; overflow:hidden; background:#343936; }
.hero::before { content:""; position:absolute; inset:0; background:url('/assets/images/hero.webp') center/cover no-repeat; }
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(19,23,21,.88) 0%, rgba(19,23,21,.62) 42%, rgba(19,23,21,.12) 75%), linear-gradient(0deg, rgba(19,23,21,.62), transparent 55%); }
.hero-content { position:relative; z-index:2; color:white; padding: 6.5rem 0 5.8rem; max-width:750px; }
.eyebrow { font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--lavender); margin:0 0 1rem; }
.hero h1, .page-hero h1 { margin:0; font-size:clamp(3.2rem, 7vw, 6.3rem); line-height:.98; letter-spacing:-.065em; font-weight:630; }
.hero p.lead { max-width:680px; font-size:clamp(1.12rem,2vw,1.42rem); color:rgba(255,255,255,.87); margin:1.6rem 0 0; }
.hero-note { max-width:620px; margin:1rem 0 0; color:rgba(255,255,255,.72); }
.button-row { display:flex; gap:.8rem; flex-wrap:wrap; margin-top:2rem; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.75rem 1.2rem; border-radius:9px; text-decoration:none; border:1px solid transparent; font-weight:650; transition:.2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background:var(--lavender); color:var(--ink); }
.button-primary:hover { background:#c0c6da; }
.button-light { color:white; border-color:rgba(255,255,255,.6); background:rgba(255,255,255,.08); }
.button-dark { background:var(--ink); color:white; }
.section { padding:clamp(4.5rem,8vw,8rem) 0; }
.section-tight { padding:4rem 0; }
.section-alt { background:var(--sage); }
.section-intro { max-width:780px; margin:0 auto 3.2rem; text-align:center; }
.section-intro.left { margin-left:0; text-align:left; }
h2 { font-size:clamp(2.2rem,4vw,4rem); line-height:1.05; letter-spacing:-.055em; font-weight:590; margin:0 0 1.25rem; }
h3 { font-size:clamp(1.35rem,2vw,1.75rem); letter-spacing:-.035em; line-height:1.2; margin:0 0 .8rem; }
.large-copy { font-size:clamp(1.13rem,1.8vw,1.35rem); color:var(--ink-soft); }
.feature-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:1.25rem; }
.feature-card { background:var(--white); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); border:1px solid rgba(31,37,33,.06); }
.feature-card .image { aspect-ratio: 4/3; overflow:hidden; }
.feature-card img { width:100%; height:100%; object-fit:cover; transition: transform .6s ease; }
.feature-card:hover img { transform:scale(1.025); }
.feature-card .copy { padding:1.7rem 1.7rem 2rem; }
.feature-card p { margin:0; color:var(--ink-soft); }
.quote-band { background:var(--ink); color:white; text-align:center; padding:5rem 0; }
.quote-band p { font-size:clamp(1.7rem,3.2vw,3.1rem); line-height:1.2; letter-spacing:-.04em; margin:0 auto; max-width:980px; }
.page-hero { padding:clamp(5rem,10vw,9rem) 0 4.5rem; background:linear-gradient(135deg,#eef0ee,#dce6df); }
.page-hero h1 { color:var(--ink); font-size:clamp(3rem,6vw,5.8rem); }
.page-hero p { max-width:760px; font-size:clamp(1.15rem,2vw,1.35rem); color:var(--ink-soft); }
.story-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,6vw,6rem); align-items:center; }
.story-grid.reverse { grid-template-columns:.95fr 1.05fr; }
.story-grid.reverse .story-image { order:2; }
.story-image { border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); min-height:430px; }
.story-image img { width:100%; height:100%; min-height:430px; object-fit:cover; }
.story-copy p { font-size:1.1rem; color:var(--ink-soft); }
.story-copy .statement { font-size:clamp(1.5rem,2.8vw,2.5rem); color:var(--ink); line-height:1.2; letter-spacing:-.04em; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; counter-reset:steps; }
.step { position:relative; background:white; padding:2rem; border-radius:var(--radius); box-shadow:var(--shadow); min-height:260px; }
.step::before { counter-increment:steps; content:counter(steps, decimal-leading-zero); display:inline-grid; place-items:center; width:48px; height:48px; background:var(--sage); border-radius:50%; font-weight:750; color:var(--ink); margin-bottom:2rem; }
.step p { color:var(--ink-soft); }
.process-line { height:2px; background:linear-gradient(90deg,var(--lavender),var(--ink)); margin:2.5rem 0; opacity:.5; }
.callout { background:var(--ink); color:white; border-radius:var(--radius); padding:clamp(2rem,5vw,4rem); display:flex; justify-content:space-between; align-items:center; gap:2rem; }
.callout h2 { font-size:clamp(2rem,4vw,3.5rem); margin:0; }
.callout p { max-width:620px; color:rgba(255,255,255,.72); }
.waitlist-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,6vw,6rem); align-items:start; }
.form-card { background:white; border-radius:var(--radius); padding:clamp(1.5rem,4vw,3rem); box-shadow:var(--shadow); }
.field { margin-bottom:1.15rem; }
label { display:block; font-weight:650; font-size:.92rem; margin-bottom:.4rem; }
input, select, textarea { width:100%; border:1px solid var(--line); background:#fbfbfa; color:var(--ink); border-radius:9px; padding:.85rem .95rem; outline:none; }
input:focus, select:focus, textarea:focus { border-color:var(--lavender-deep); box-shadow:0 0 0 3px rgba(167,174,199,.25); }
select { appearance:auto; min-height:47px; }
textarea { min-height:150px; resize:vertical; }
.form-note { font-size:.88rem; color:var(--ink-soft); margin:.8rem 0 0; }
.hidden { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.faq-list { border-top:1px solid var(--line); }
.faq-item { border-bottom:1px solid var(--line); }
.faq-question { width:100%; display:flex; justify-content:space-between; gap:1rem; text-align:left; border:0; background:transparent; padding:1.25rem 0; font-weight:650; cursor:pointer; color:var(--ink); }
.faq-question span:last-child { font-size:1.4rem; transition:transform .2s; }
.faq-question[aria-expanded="true"] span:last-child { transform:rotate(45deg); }
.faq-answer { display:none; padding:0 2rem 1.25rem 0; color:var(--ink-soft); }
.faq-answer.open { display:block; }
.success-card { max-width:780px; margin:7rem auto; background:white; border-radius:var(--radius); box-shadow:var(--shadow); padding:clamp(2rem,6vw,5rem); text-align:center; }
.success-card h1 { font-size:clamp(2.5rem,6vw,5rem); line-height:1; letter-spacing:-.06em; }
.site-footer { background:#e9ebe9; border-top:1px solid rgba(31,37,33,.08); padding:3.3rem 0 2rem; }
.footer-grid { display:grid; grid-template-columns:1.2fr 1fr auto; gap:2rem; align-items:start; }
.footer-grid p { margin:.5rem 0 0; color:var(--ink-soft); max-width:520px; font-size:.9rem; }
.footer-links { display:flex; gap:1.2rem; flex-wrap:wrap; }
.footer-links a { text-decoration:none; font-size:.9rem; }
.socials { display:flex; gap:.7rem; }
.socials a { width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; text-decoration:none; font-weight:700; }
.footer-bottom { display:flex; justify-content:space-between; gap:1rem; padding-top:2rem; margin-top:2rem; border-top:1px solid var(--line); color:var(--ink-soft); font-size:.82rem; }
.reveal { opacity:0; transform:translateY(18px); transition:opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity:1; transform:none; }
@media (max-width: 900px) {
  .menu-button { display:block; }
  .nav-links { display:none; position:absolute; top:78px; left:0; right:0; background:var(--paper); padding:1.25rem 20px 1.5rem; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:.3rem; }
  .nav-links.open { display:flex; }
  .nav-links a { padding:.8rem 0; }
  .nav-cta { justify-content:center; margin-top:.4rem; }
  .hero { min-height:630px; }
  .hero::after { background:linear-gradient(90deg, rgba(19,23,21,.88), rgba(19,23,21,.52)); }
  .feature-grid, .steps { grid-template-columns:1fr; }
  .story-grid, .story-grid.reverse, .waitlist-layout { grid-template-columns:1fr; }
  .story-grid.reverse .story-image { order:0; }
  .callout { flex-direction:column; align-items:flex-start; }
  .footer-grid { grid-template-columns:1fr; }
}
@media (max-width: 600px) {
  .container { width:min(calc(100% - 28px), var(--max)); }
  .nav-wrap { min-height:70px; }
  .nav-links { top:70px; }
  .hero { min-height:650px; }
  .hero h1 { font-size:3.55rem; }
  .hero-content { padding-bottom:4rem; }
  .section { padding:4.5rem 0; }
  .page-hero { padding-top:4rem; }
  .footer-bottom { flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
  .reveal { opacity:1; transform:none; }
}
