/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 800;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url(fonts/archivo-k3kQo8.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/ibmplexmono--F63fj.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/ibmplexmono--F6qfj.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/instrumentserif-jizHRF.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Fore Datum v8. Calm and light-first: quiet sentence-case type, lots of space, and the real product as the main image.
   Archivo at normal width for everything a person reads, IBM Plex Mono only for data and receipts, one green accent. */
:root{
  --bg:#F7F8F6; --surface:#FFFFFF; --sunk:#EEF2EF; --line:#DFE5E1; --line-2:#C7D0CA;
  --fg:#0D1613; --muted:#56635D; --faint:#6B7771;
  --accent:#17694D; --accent-2:#0F513B; --accent-soft:#E3F0EA; --on-accent:#FFFFFF; --amber:#8F4C0E; --amber-soft:#F8ECDD;
  --shadow:0 1px 2px rgba(13,22,19,.04), 0 12px 40px -12px rgba(13,22,19,.18);
  --sans:"Archivo","FD Body Fallback",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --r:12px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0B1110; --surface:#121A18; --sunk:#0F1614; --line:#22302B; --line-2:#30413A;
    --fg:#E8EEEB; --muted:#9AA8A1; --faint:#8C9A93;
    --accent:#4CC497; --accent-2:#7BD9B4; --accent-soft:#16302A; --on-accent:#06120D; --amber:#E9A866; --amber-soft:#2E2215;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 18px 50px -16px rgba(0,0,0,.6); color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0B1110; --surface:#121A18; --sunk:#0F1614; --line:#22302B; --line-2:#30413A;
  --fg:#E8EEEB; --muted:#9AA8A1; --faint:#8C9A93;
  --accent:#4CC497; --accent-2:#7BD9B4; --accent-soft:#16302A; --on-accent:#06120D; --amber:#E9A866; --amber-soft:#2E2215;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 18px 50px -16px rgba(0,0,0,.6); color-scheme:dark;
}
@font-face{font-family:"FD Body Fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans");size-adjust:100%}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:400 1.0625rem/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}
img{max-width:100%}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.wrap{max-width:1200px;margin:0 auto;padding-left:max(24px, env(safe-area-inset-left, 0px));padding-right:max(24px, env(safe-area-inset-right, 0px))}
.skip{position:absolute;left:-9999px;top:8px;background:var(--fg);color:var(--bg);padding:8px 12px;border-radius:8px;z-index:50}
.skip:focus{left:12px}

/* type */
h1,h2,h3{font-family:var(--sans);margin:0;text-wrap:balance;color:var(--fg)}
h1{font-size:clamp(2.6rem, 5.6vw, 4.5rem);line-height:1.04;font-weight:600;letter-spacing:-.032em}
h2{font-size:clamp(2rem, 3.6vw, 3rem);line-height:1.08;font-weight:600;letter-spacing:-.026em}
h3{font-size:1.2rem;line-height:1.3;font-weight:600;letter-spacing:-.01em}
.it{color:var(--muted)}
p{margin:0}
.lead{font-size:clamp(1.12rem, 1.6vw, 1.3rem);line-height:1.55;color:var(--muted);max-width:58ch}
.muted{color:var(--muted)}
.kicker{display:inline-block;font:500 .78rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.mono{font-family:var(--mono)}
.fact-src{font-size:.88rem;color:var(--faint)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 20px;border-radius:999px;font:600 1rem/1 var(--sans);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .15s, border-color .15s}
.btn.primary{background:var(--fg);color:var(--bg)}
.btn.primary:hover{background:var(--accent-2);color:var(--on-accent)}
.btn.ghost{border-color:var(--line-2);color:var(--fg);background:transparent}
.btn.ghost:hover{border-color:var(--fg)}
.btn .arr{transition:transform .15s}
.btn:hover .arr{transform:translateX(3px)}

/* nav */
.nav{position:sticky;top:env(safe-area-inset-top, 0px);z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:28px;min-height:68px}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font:650 1.06rem/1 var(--sans);letter-spacing:-.01em}
.logo svg{width:26px;height:26px;color:var(--accent)}
#nav-list{display:flex;gap:26px;list-style:none;margin:0 0 0 auto;padding:0}
#nav-list a{text-decoration:none;color:var(--muted);font-size:.97rem}
#nav-list a:hover,#nav-list a[aria-current="page"]{color:var(--fg)}
.nav .btn{min-height:40px;padding:0 16px;font-size:.95rem}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--line-2);border-radius:999px;color:var(--fg);font:500 .95rem var(--sans);min-height:40px;padding:0 16px;cursor:pointer}

/* sections */
section{padding-block:clamp(72px, 10vw, 128px)}
.sec-head{display:grid;gap:16px;max-width:760px;margin-bottom:clamp(36px, 5vw, 56px)}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px, 6vw, 88px);align-items:start}
.split > *{min-width:0}
.band{background:var(--surface);border-block:1px solid var(--line)}

/* hero */
.hero{padding-block:clamp(56px, 8vw, 104px) 0}
.hero-copy{display:grid;gap:22px;max-width:1000px}
.hero h1{text-wrap:pretty}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}

/* product window */
.app{margin-top:clamp(44px, 6vw, 72px);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.app-bar{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--sunk)}
.dots{display:flex;gap:6px}.dots i{width:10px;height:10px;border-radius:50%;background:var(--line-2)}
.app-title{font:500 .85rem var(--mono);color:var(--muted)}
.pill{margin-left:auto;font:500 .72rem/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;padding:6px 9px;border-radius:999px;background:var(--amber-soft);color:var(--amber)}
.app-body{display:grid;grid-template-columns:230px minmax(0,1fr)}
.app-side{border-right:1px solid var(--line);padding:18px 12px;display:grid;align-content:start;gap:4px;font-size:.93rem}
.app-side .grp{font:500 .7rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding:14px 10px 6px}
.app-side span{padding:8px 10px;border-radius:8px;color:var(--muted)}
.app-side span.on{background:var(--accent-soft);color:var(--fg);font-weight:600}
.app-main{padding:clamp(20px, 3vw, 32px);display:grid;gap:20px;min-width:0}
.q{justify-self:end;max-width:560px;background:var(--fg);color:var(--bg);padding:12px 16px;border-radius:14px 14px 4px 14px;font-size:1rem}
.a{display:grid;gap:16px}
.a .who{display:flex;align-items:center;gap:8px;font:500 .8rem var(--mono);color:var(--muted)}
.a .who b{width:22px;height:22px;border-radius:6px;background:var(--accent);display:inline-block}
.a p{max-width:70ch}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.tbl table{width:100%;border-collapse:collapse;font-size:.92rem;font-variant-numeric:tabular-nums}
.tbl th{font:500 .72rem var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--faint);text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--sunk);white-space:nowrap}
.tbl td{padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl tr:last-child td{border-bottom:0}
.tbl .num{text-align:right}
.flag{color:var(--amber);font-weight:600}
.receipts{display:flex;flex-wrap:wrap;gap:8px}
.receipt{display:inline-flex;align-items:center;gap:8px;font:500 .8rem var(--mono);padding:7px 11px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--bg)}
.receipt::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent)}
.receipt.warn::before{background:var(--amber)}
.app-note{font-size:.86rem;color:var(--faint);margin-top:12px}

/* proof */
.proof{padding-block:clamp(56px, 7vw, 88px)}
.proof-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;align-items:baseline;margin-bottom:32px}
.proof-head p{font-size:1.15rem;color:var(--fg);max-width:46ch}
.stats{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.stat{padding:26px 24px 0 0;display:grid;gap:6px}
.stat + .stat{padding-left:24px;border-left:1px solid var(--line)}
.stat b{font-size:clamp(2.2rem, 4vw, 3.2rem);font-weight:600;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.stat span{color:var(--muted);max-width:30ch}

/* steps (home) */
.steps{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:clamp(20px, 3vw, 32px)}
.step{display:grid;gap:14px;align-content:start}
.step .k{font:500 .78rem var(--mono);color:var(--accent);letter-spacing:.04em}
.step p{color:var(--muted)}
.mini{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;font:500 .82rem/1.45 var(--mono);color:var(--muted);display:grid;gap:8px;min-height:188px;align-content:start;margin-bottom:8px}
.mini .row{display:flex;justify-content:space-between;gap:12px;padding:7px 10px;border-radius:8px;background:var(--sunk)}
.mini .row b{color:var(--fg);font-weight:500}
.mini .ok{color:var(--accent)}
.mini .warn{color:var(--amber)}
.mini .ans{font-family:var(--sans);font-size:.95rem;color:var(--fg);line-height:1.45;padding:4px 2px}

/* receipt trail */
.trail{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:clamp(20px, 3vw, 28px);display:grid;gap:16px}
.trail .fig{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.trail .fig b{font-size:2.2rem;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.trail ol{list-style:none;margin:0;padding:0;display:grid;gap:0}
.trail li{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px 0;border-bottom:1px dashed var(--line)}
.trail li:last-child{border-bottom:0}
.trail li i{width:10px;height:10px;border-radius:50%;margin-top:6px;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.trail li.warn i{background:var(--amber);box-shadow:0 0 0 4px var(--amber-soft)}
.trail li span{font:500 .78rem var(--mono);color:var(--faint);white-space:nowrap}
.trail li p{font-size:.97rem}
.trail li small{display:block;color:var(--muted);font-size:.88rem}
.split .lead{margin-top:20px}
.checks{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:14px}
.checks li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px}
.checks li::before{content:"";width:16px;height:16px;margin-top:5px;border-radius:50%;background:var(--accent-soft);box-shadow:inset 0 0 0 4px var(--accent)}

/* three points */
.points{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:clamp(24px, 4vw, 48px)}
.points > div{display:grid;gap:10px;align-content:start;padding-top:22px;border-top:2px solid var(--fg)}
.points p{color:var(--muted)}

/* closing call to action */
.cta{display:grid;gap:20px;justify-items:start;padding:clamp(36px, 6vw, 72px);border-radius:20px;background:var(--fg);color:var(--bg)}
.cta h2{color:var(--bg);max-width:20ch}
.cta .it{color:color-mix(in srgb, var(--bg) 62%, var(--fg))}
.cta .lead{color:color-mix(in srgb, var(--bg) 72%, var(--fg))}
.cta .kicker{color:color-mix(in srgb, var(--accent) 60%, var(--bg))}
.cta .btn.primary{background:var(--bg);color:var(--fg)}
.cta .btn.primary:hover{background:var(--accent-soft)}
.cta .ctas{margin-top:0}
.cta .btn.ghost{color:var(--bg);border-color:color-mix(in srgb, var(--bg) 45%, var(--fg))}
.cta .btn.ghost:hover{border-color:var(--bg)}

/* inner pages */
.page-hero{padding-block:clamp(64px, 9vw, 120px) clamp(36px, 5vw, 56px)}
.page-hero h1{margin-top:20px;max-width:18ch}
.page-hero .lead{margin-top:22px}
.stages{display:grid;grid-template-columns:repeat(5, minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.stage{padding:24px 20px 0 0;display:grid;gap:10px;align-content:start}
.stage + .stage{padding-left:20px;border-left:1px solid var(--line)}
.stage .n{font:500 .78rem var(--mono);color:var(--accent)}
.stage p{color:var(--muted);font-size:.98rem}
.list-clean{list-style:none;margin:0;padding:0;display:grid}
.list-clean li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:20px 0;border-top:1px solid var(--line)}
.list-clean li:last-child{border-bottom:1px solid var(--line)}
.list-clean .n{font:500 .8rem/1.9 var(--mono);color:var(--faint)}
.list-clean p{color:var(--muted);margin-top:4px}

/* contact form */
.form{position:relative;display:grid;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:clamp(20px, 3vw, 32px);box-shadow:var(--shadow)}
.form label{display:grid;gap:6px;font-weight:500;font-size:.95rem}
.form input,.form textarea{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line-2);border-radius:10px;padding:12px 14px;min-height:46px}
.form textarea{min-height:120px;resize:vertical}
.form input:focus,.form textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.form-status{min-height:1.5em;font-size:.95rem;color:var(--muted)}
.form-status.ok{color:var(--accent)}
.form-status.err{color:var(--amber)}

/* long-form text (privacy) */
.prose{max-width:70ch}
.prose h2{font-size:clamp(1.35rem, 2.4vw, 1.7rem);margin-top:44px}
.prose h2:first-child{margin-top:0}
.prose p{margin-top:14px;line-height:1.7}

/* footer */
footer{border-top:1px solid var(--line);padding-block:56px 32px;font-size:.95rem}
footer .wrap{display:grid;grid-template-columns:2fr repeat(3, 1fr);gap:32px}
footer .fh{font:500 .74rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 14px}
footer a{display:block;text-decoration:none;color:var(--muted);padding:5px 0}
footer a:hover{color:var(--fg)}
footer .logo{display:inline-flex;padding:0;color:var(--fg)}
.legal{grid-column:1/-1;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid var(--line);padding-top:24px;margin-top:16px;color:var(--faint);font-size:.88rem}

/* responsive */
@media (max-width: 1000px){
  .stages{grid-template-columns:repeat(2, minmax(0,1fr));gap:24px}
  .stage,.stage + .stage{padding:20px 0 0;border-left:0;border-top:1px solid var(--line)}
  .stages{border-top:0}
}
@media (max-width: 900px){
  .split,.steps,.points{grid-template-columns:minmax(0,1fr)}
  .app-body{grid-template-columns:minmax(0,1fr)}
  .app-side{display:none}
  footer .wrap{grid-template-columns:1fr 1fr}
  footer .wrap > div:first-child{grid-column:1/-1}
}
@media (max-width: 760px){
  .menu-btn{display:inline-flex;align-items:center}
  .nav .btn{display:none}
  #nav-list{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:8px max(24px, env(safe-area-inset-left, 0px)) 16px}
  #nav-list a{display:block;padding:12px 0;font-size:1.05rem}
  .nav.open #nav-list{display:flex}
  .stats{grid-template-columns:minmax(0,1fr)}
  .stat,.stat + .stat{padding:20px 0;border-left:0;border-bottom:1px solid var(--line)}
  .stages{grid-template-columns:minmax(0,1fr)}
  .q{max-width:none}
}

/* customer proof (rendered only from approved items in proof.json) */
.cp-card{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px, 5vw, 64px);align-items:center;margin-top:24px}
.cp-media{position:relative;margin:0;border-radius:14px;overflow:hidden;aspect-ratio:4/3;background:var(--surface)}
.cp-media img{width:100%;height:100%;object-fit:cover;display:block}
.cp-media .cp-logo{position:absolute;left:20px;bottom:20px;height:40px;width:auto;object-fit:contain;padding:8px 12px;border-radius:8px;background:rgba(255,255,255,.92)}
.cp-logo.solo{height:40px;width:auto}
.cp-body{display:grid;gap:28px}
.cp-headline{font-size:clamp(1.6rem, 3vw, 2.4rem);line-height:1.15;letter-spacing:-.02em;margin:0}
.cp-quote{margin:0;display:grid;gap:18px}
.cp-quote p{font-size:clamp(1.15rem, 1.8vw, 1.4rem);line-height:1.45}
.cp-quote footer{display:flex;gap:14px;align-items:center;color:var(--muted)}
.cp-quote footer span{display:grid;gap:2px}
.cp-quote footer b{color:var(--fg)}
.cp-headshot{width:56px;height:56px;border-radius:50%;object-fit:cover}
.cp-result{display:grid;gap:8px;padding-top:20px;border-top:2px solid var(--fg)}
.cp-result b{font-size:clamp(2.4rem, 4.5vw, 3.6rem);font-weight:600;letter-spacing:-.03em;line-height:1}
.cp-result span{color:var(--muted)}
.cp-result small{color:var(--faint);font-size:.85rem}
.cp-running{display:flex;align-items:center;gap:12px;margin-top:12px;color:var(--muted);font-size:.95rem}
.cp-running img{height:28px;width:auto}
@media (max-width: 900px){.cp-card{grid-template-columns:minmax(0,1fr)}}

/* photography */
.photo-band{position:relative;padding:0;margin:0;min-height:clamp(300px, 42vw, 540px);display:grid;align-items:end;overflow:hidden;background:var(--fg)}
.photo-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%}
.photo-band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(8,14,12,0) 35%, rgba(8,14,12,.78) 100%)}
.photo-band .wrap{position:relative;z-index:1;width:100%;padding-block:clamp(24px, 4vw, 44px)}
.photo-band p{color:#F2F5F3;font-size:clamp(1.25rem, 2.4vw, 1.8rem);line-height:1.3;font-weight:500;letter-spacing:-.015em;max-width:30ch}
.about-photo{margin:clamp(40px, 6vw, 64px) 0 0}
.about-photo img{display:block;width:100%;height:auto;aspect-ratio:16/8;object-fit:cover;border-radius:16px}
.about-photo figcaption{margin-top:12px;font-size:.88rem;color:var(--faint)}
.about-photo figcaption a{color:var(--muted)}
