@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url(/fonts/Archivo-100-900.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;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/IBMPlexMono-400.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;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/IBMPlexMono-500.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;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/IBMPlexSans-400.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;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/IBMPlexSans-500.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;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/IBMPlexSans-600.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;
}

:root{
  --ink:#0E1917;
  --ink-2:#15221F;
  --ink-line:#26332F;
  --paper:#F5F6F5;
  --paper-2:#FFFFFF;
  --line:#DCE1DF;
  --text:#17211F;
  --text-soft:#48534F;
  --text-inv:#E9EEEC;
  --text-inv-soft:#A9B8B3;
  --current:#0F7A65;
  --current-deep:#0A5648;
  --current-bright:#2FB598;
  --signal:#D89020;
  --signal-deep:#8F5E12;
  --r:14px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{
  font-family:'IBM Plex Sans',sans-serif;
  font-size:16.5px;line-height:1.65;
  color:var(--text);background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Archivo',sans-serif;
  font-variation-settings:'wdth' 113;
  font-weight:760;
  letter-spacing:-.02em;
  line-height:1.05;
}
h2{font-size:clamp(26px,3vw,36px);margin-bottom:14px}
h3{font-size:18px;font-variation-settings:'wdth' 110;font-weight:700;letter-spacing:-.012em;line-height:1.3}
p{color:var(--text-soft)}
a{color:var(--current);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--current);outline-offset:3px}
::selection{background:rgba(47,181,152,.3)}
.mono{font-family:'IBM Plex Mono',monospace}
.container{max-width:1080px;margin:0 auto;padding:0 28px}

.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--current);color:#fff;padding:10px 18px;text-decoration:none}
.skip:focus{left:0}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(14,25,23,.9);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--ink-line);
}
.nav{display:flex;justify-content:space-between;height:62px;align-items:center}
.brand{
  display:flex;align-items:center;gap:10px;
  font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 113;
  font-weight:760;font-size:16.5px;letter-spacing:-.01em;color:var(--text-inv);
  text-decoration:none;
}
.brand-mark{
  width:24px;height:24px;border-radius:6px;flex:none;
  background:linear-gradient(135deg,var(--current),var(--current-deep));
  display:grid;place-items:center;color:#fff;font-size:13px;
}
.nav-links{display:flex;align-items:center;gap:24px;list-style:none}
.nav-links a{color:var(--text-inv-soft);font-size:14.5px;text-decoration:none}
.nav-links a:hover{color:var(--text-inv);text-decoration:underline;text-underline-offset:6px}
.nav-cta a{
  color:var(--current-bright);font-weight:600;text-decoration:none;
  font-family:'IBM Plex Mono',monospace;font-size:13px;
}
.nav-cta a:hover{text-decoration:underline}
.menu-btn{
  display:none;background:none;border:1px solid var(--ink-line);border-radius:8px;
  color:var(--text-inv);padding:8px 12px;cursor:pointer;
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
}
@media(max-width:800px){
  .nav-links li:not(.nav-cta){display:none}
  .menu-btn{display:inline-block}
  header.nav-open .nav-links{
    position:absolute;top:62px;left:0;right:0;
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    background:var(--ink);border-bottom:1px solid var(--ink-line);
    padding:8px 28px 18px;
  }
  header.nav-open .nav-links li{display:block}
  header.nav-open .nav-links a{display:block;padding:12px 0;font-size:16px;border-bottom:1px solid var(--ink-line)}
  header.nav-open .nav-links li:last-child a{border-bottom:none}
}

/* ---------- Hero ---------- */
.hero{
  background:var(--ink);color:var(--text-inv);
  min-height:calc(100svh - 62px);
  display:flex;align-items:center;
  position:relative;overflow:hidden;
  padding:110px 0 130px;
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background-image:
    linear-gradient(rgba(233,238,236,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(233,238,236,.035) 1px,transparent 1px);
  background-size:56px 56px;
}
.hero-field{position:absolute;inset:0;z-index:0}
.hero-field svg{width:100%;height:100%;display:block}
.field-g{animation:drift 40s linear infinite alternate}
@keyframes drift{to{transform:translateX(-70px)}}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  background:radial-gradient(ellipse 85% 70% at 38% 45%,transparent 25%,rgba(14,25,23,.6) 100%);
}
.hero .container{position:relative;z-index:3}
.hero-meta{
  font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.05em;
  color:var(--text-inv-soft);margin-bottom:34px;
  display:flex;gap:10px;flex-wrap:wrap;
}
.hero-meta .sep{color:var(--ink-line)}
.hero h1{
  font-size:clamp(38px,7vw,94px);
  line-height:1.03;
  color:var(--text-inv);
  margin-bottom:30px;
}
.hero h1 .alt{color:var(--current-bright)}
.hero-lede{font-size:18.5px;max-width:54ch;color:var(--text-inv-soft)}
.hero-actions{margin-top:38px;display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.btn{
  display:inline-block;background:var(--current);color:#fff;
  padding:13px 24px;border-radius:8px;font-weight:600;font-size:15.5px;
  text-decoration:none;
}
.btn:hover{background:var(--current-deep);text-decoration:none}
.hero .btn{background:var(--current-bright);color:var(--ink)}
.hero .btn:hover{background:#4cc7ab}
.quiet-link{font-size:15px}
.hero .quiet-link{color:var(--current-bright)}
.scroll-cue{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:3;
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.3em;
  color:var(--text-inv-soft);text-transform:uppercase;text-align:center;
}
.scroll-cue span{display:block;animation:bob 2.2s ease-in-out infinite;margin-top:4px}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

/* ---------- Platform strip ---------- */
.strip{background:var(--ink);border-top:1px solid var(--ink-line);padding:20px 0}
.strip .container{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.strip-label{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-inv-soft)}
.chips{display:flex;gap:9px;flex-wrap:wrap}
.chip{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--text-inv);border:1px solid var(--ink-line);padding:6px 13px;border-radius:999px;white-space:nowrap}
.chips-strip{margin-top:9px}

/* ---------- Subpages (article, privacy, 404) ---------- */
.page-head{background:var(--ink);color:var(--text-inv);padding:90px 0 60px}
.page-head h1{font-size:clamp(32px,4.6vw,56px);color:var(--text-inv);line-height:1.06}
.page-head .hero-meta{margin-bottom:22px}
.article{padding:64px 0 90px}
.article .container{max-width:760px}
.article h2{margin-top:44px}
.article p{margin-bottom:18px;font-size:17px}
.article p b{color:var(--text);font-weight:600}
.article .pull{
  font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 112;font-weight:740;
  font-size:clamp(21px,2.4vw,26px);letter-spacing:-.015em;line-height:1.35;color:var(--text);
  border-left:3px solid var(--signal);padding-left:22px;margin:34px 0;
}
.article-foot{border-top:1px solid var(--line);margin-top:46px;padding-top:22px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--text-soft)}
.notfound{min-height:calc(100svh - 62px);display:flex;align-items:center;background:var(--ink);color:var(--text-inv)}
.notfound .code{font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.2em;color:var(--signal);margin-bottom:14px}
.notfound h1{color:var(--text-inv);font-size:clamp(34px,5vw,64px);margin-bottom:18px}
.notfound p{color:var(--text-inv-soft);max-width:48ch;margin-bottom:30px}
.strip-tag{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-inv-soft)}
.strip-tag b{color:var(--signal);font-weight:500}

/* ---------- Document sections ---------- */
.sec{border-bottom:1px solid var(--line);padding:72px 0}
.sec-grid{display:grid;grid-template-columns:150px 1fr;gap:40px}
.sec-grid > *{min-width:0}
.sec-marker{
  font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.06em;
  color:var(--text-soft);
}
.sec-marker b{color:var(--signal-deep);font-weight:500;display:block;margin-bottom:2px}
.sec-intro{max-width:56ch;margin-bottom:8px}
@media(max-width:880px){
  .sec{padding:56px 0}
  .sec-grid{grid-template-columns:1fr;gap:18px}
}

/* services list */
.svc{list-style:none;margin-top:34px;border-top:1px solid var(--line)}
.svc li{
  display:grid;grid-template-columns:300px 1fr;gap:28px;
  padding:24px 0;border-bottom:1px solid var(--line);
}
.svc h3{padding-top:2px}
.svc p{font-size:15.5px;max-width:60ch}
.svc .note{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--signal-deep);
  display:block;margin-top:6px;letter-spacing:.04em;
}
@media(max-width:880px){.svc li{grid-template-columns:1fr;gap:6px}}

/* approach */
.phases{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:34px}
.phase{border-top:2px solid var(--ink);padding-top:18px}
.phase .when{
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--text-soft);
  display:block;margin-bottom:10px;letter-spacing:.04em;
}
.phase h3{margin-bottom:8px}
.phase p{font-size:15.5px}
.phase.hot{border-top-color:var(--signal)}
@media(max-width:880px){.phases{grid-template-columns:1fr;gap:26px}}

/* figure */
figure{margin-top:40px}
figure svg{width:100%;max-width:760px;height:auto;display:block}
figcaption{
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--text-soft);
  margin-top:12px;letter-spacing:.04em;
}
figcaption b{color:var(--signal-deep);font-weight:500}
.flow{stroke-dasharray:5 6;animation:flow 1.6s linear infinite}
@keyframes flow{to{stroke-dashoffset:-11}}
.fig-label{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;fill:var(--text-soft)}
.fig-label.on-accent{fill:#DFF5EE}
.fig-label.estate{fill:var(--current);letter-spacing:.14em}
.fig-label.contract{font-size:9.5px;fill:var(--signal);letter-spacing:.1em}
@media (prefers-reduced-motion: reduce){
  .flow{animation:none}
  .field-g{animation:none}
  .scroll-cue span{animation:none}
}

/* pov band */
.pov{background:var(--ink);border-bottom:none;color:var(--text-inv)}
.pov .sec-marker,.pov .sec-marker b{color:var(--text-inv-soft)}
.pov .sec-marker b{color:var(--signal)}
.pov h2{
  color:var(--text-inv);
  font-size:clamp(30px,4vw,48px);
  font-variation-settings:'wdth' 114;font-weight:780;
  max-width:20ch;margin-bottom:24px;
}
.pov .u{
  text-decoration:underline;text-decoration-color:var(--signal);
  text-decoration-thickness:3px;text-underline-offset:7px;
}
.pov p{color:var(--text-inv-soft);max-width:62ch;margin-bottom:16px;font-size:17px}
.pov p b{color:var(--text-inv);font-weight:600}
.pov a{color:var(--current-bright)}

/* outcomes */
.keep{list-style:none;margin-top:30px;max-width:720px}
.keep li{
  padding:18px 0 18px 26px;border-bottom:1px solid var(--line);position:relative;
}
.keep li::before{
  content:"";position:absolute;left:0;top:26px;
  width:9px;height:9px;background:var(--signal);border-radius:2px;
}
.keep h3{display:inline}
.keep p{display:inline;font-size:15.5px}
.keep h3::after{content:" · ";color:var(--line)}

/* engagement table */
.rate-wrap{overflow-x:auto;margin-top:34px}
table{border-collapse:collapse;width:100%;min-width:640px}
caption{display:none}
th{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--text-soft);font-weight:500;
  text-align:left;padding:0 20px 12px 0;border-bottom:2px solid var(--ink);
}
td{
  padding:20px 20px 20px 0;border-bottom:1px solid var(--line);
  vertical-align:top;font-size:15.5px;color:var(--text-soft);
}
td:first-child{width:220px}
td h3{margin-bottom:4px}
.fee{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--signal-deep);white-space:nowrap}
tr.lead td{background:linear-gradient(90deg,rgba(15,122,101,.055),transparent 70%)}
td .row-link{font-size:14.5px;white-space:nowrap}

/* about + contact */
.about-copy{max-width:62ch}
.about-copy p{margin-bottom:16px;font-size:16.5px}
.about-copy b{color:var(--text);font-weight:600}
.facts{
  font-family:'IBM Plex Mono',monospace;font-size:12.5px;line-height:2;
  color:var(--text-soft);margin-top:26px;
  border-top:1px solid var(--line);padding-top:18px;max-width:62ch;
}
.contact-copy{max-width:56ch}
.contact-copy p{font-size:17px;margin-bottom:26px}
.contact-email{margin-top:22px;font-family:'IBM Plex Mono',monospace;font-size:14px}

/* footer */
footer{background:var(--ink);color:var(--text-inv-soft);padding:34px 0}
.foot{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:13.5px}
.foot a{color:var(--text-inv-soft)}
.foot a:hover{color:var(--text-inv)}
.foot-links{display:flex;gap:22px;list-style:none}
