/* glebora - shared design system. Soil-strata identity (ADR-023 s42-cont).
   Palette = charcoal + terracotta + sand on off-white. Light-dominant "document"
   ground; charcoal is the rare dark band (hero/header/footer are light so the
   charcoal logo shows); terracotta = the ONE reserved accent (CTAs + the wordmark
   dot); sand = the warm secondary. Self-contained; system-serif stack (no CDN). */

/* Source Serif 4 (OFL) - self-hosted, latin subset, variable weight. The deliberate
   editorial display serif (ADR-028 s55 typography pass); replaces the never-loaded
   "Fraunces" reference that silently fell back to Georgia/Palatino. */
@font-face{
  font-family:"Source Serif 4"; font-style:normal; font-weight:400 700; font-display:swap;
  src:url("/assets/fonts/source-serif-4-latin.woff2") format("woff2");
}
@font-face{
  font-family:"Source Serif 4"; font-style:italic; font-weight:400 700; font-display:swap;
  src:url("/assets/fonts/source-serif-4-latin-italic.woff2") format("woff2");
}

:root{
  /* off-white paper - the dominant ground; sand = warm secondary/card tint */
  --paper:#f4f1e7; --paper-2:#ece5d5; --paper-line:#d9ccb2; --sand:#c9b299;
  --ink:#26241f; --ink-soft:#544e44; --ink-faint:#6b6456;
  /* charcoal - the rare dark band (was deep teal). Warm near-black, not brown. */
  --deep:#2b2924; --deep-2:#211f1b; --deep-line:#43403a;
  /* warm off-white / sand - text & notes ON the charcoal band */
  --cream:#f2ece0; --cream-soft:#d8c6ab; --cream-faint:#a99f8c;
  /* headings on paper = charcoal ink (document-sharp) */
  --green:#26241f; --green-deep:#26241f; --moss:#bd6a3f;
  /* terracotta = the ONE accent (CTAs + the wordmark dot, ~10%).
     --clay = brand terracotta (accents, borders, large text - matches the dot);
     --clay-ink = AA weight for terracotta-as-TEXT on paper AND the CTA fill;
     --amber = the on-charcoal sibling (readable terracotta on the dark band). */
  --clay:#bd6a3f; --clay-ink:#9a4b17; --amber:#d98a5c;
  --sky:#bd6a3f; --sky-soft:#ece5d5;
  --serif:"Source Serif 4","Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"SFMono-Regular",ui-monospace,"Cascadia Mono","Segoe UI Mono",Consolas,"Liberation Mono",monospace;
  --max:70rem; --col:38rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{margin:0; background:var(--paper); color:var(--ink);
  font:400 18px/1.7 var(--sans); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility}
h1,h2,h3{margin:0; line-height:1.12; letter-spacing:-.015em; font-weight:400; font-family:var(--serif)}
p{margin:0}
a{color:inherit}
em{font-style:italic}
img{max-width:100%}
:focus-visible{outline:2px solid var(--clay); outline-offset:3px; border-radius:3px}

.wrap{max-width:var(--max); margin:0 auto; padding:0 1.6rem}
.col{max-width:var(--col)}
.skip{position:absolute; left:-999px; top:0; background:var(--clay-ink); color:#fdf6ee;
  padding:.6rem 1rem; border-radius:0 0 8px 0; z-index:60}
.skip:focus{left:0}

/* ---------- header / nav ---------- */
header{position:fixed; inset:0 0 auto 0; z-index:40; padding:1.05rem 0;
  background:rgba(244,241,231,.85); backdrop-filter:saturate(1.1) blur(10px);
  transition:background .4s ease, padding .4s ease, border-color .4s ease, box-shadow .4s ease;
  border-bottom:1px solid transparent}
header.scrolled{background:rgba(244,241,231,.95);
  border-bottom-color:var(--paper-line); box-shadow:0 6px 22px rgba(38,36,32,.06); padding:.7rem 0}
.bar{display:flex; align-items:center; justify-content:space-between; gap:1.5rem}
/* brand = the founder's soil-strata lockup (charcoal, shows on the light header);
   the <b>/<i> text is kept off-screen for screen-readers + SEO. */
.brand{flex:none; display:block; width:168px; height:39px; text-decoration:none;
  text-indent:-9999px; overflow:hidden; white-space:nowrap;
  background:url("/assets/logo-full.png") left center/contain no-repeat}
.brand::before{content:none}

.nav{display:flex; align-items:center; gap:.3rem; margin-left:auto}
.nav > a, .menu-trigger{
  font:600 .92rem/1 var(--sans); color:var(--ink-soft); background:none; border:0; cursor:pointer;
  text-decoration:none; padding:.55rem .7rem; border-radius:8px; transition:color .2s, background .2s;
  display:inline-flex; align-items:center; gap:.35rem}
.nav > a:hover, .menu-trigger:hover, .menu-trigger[aria-expanded="true"]{color:var(--ink); background:rgba(43,41,36,.05)}
.nav a[aria-current="page"]{color:var(--clay-ink)}
.caret{width:.5rem; height:.5rem; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-1px); transition:transform .25s}
.menu-trigger[aria-expanded="true"] .caret{transform:rotate(225deg) translateY(-1px)}

.has-menu{position:relative}
.menu{position:absolute; top:calc(100% + .5rem); left:0; min-width:15rem;
  background:var(--paper); border:1px solid var(--paper-line); border-radius:12px; padding:.5rem;
  box-shadow:0 18px 40px rgba(38,36,32,.14); opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .2s, transform .2s, visibility .2s; z-index:50}
.has-menu:hover .menu, .menu.open{opacity:1; visibility:visible; transform:none}
.menu a{display:block; text-decoration:none; color:var(--ink-soft); padding:.6rem .7rem; border-radius:8px;
  font:600 .9rem/1.3 var(--sans); transition:background .2s, color .2s}
.menu a:hover{background:rgba(43,41,36,.05); color:var(--ink)}
.menu a small{display:block; font-weight:400; font-size:.78rem; color:var(--ink-faint); margin-top:.15rem}

.nav-cta{font:600 .88rem/1 var(--sans); letter-spacing:.01em; color:var(--clay-ink); text-decoration:none;
  border:1px solid var(--clay); padding:.62rem 1.05rem; border-radius:999px; transition:.25s; flex:none}
.nav-cta:hover{background:var(--clay-ink); color:#fdf6ee; border-color:var(--clay-ink)}

.burger{display:none; background:none; border:0; cursor:pointer; padding:.5rem; margin-left:.4rem}
.burger span{display:block; width:22px; height:2px; background:var(--ink); margin:4px 0; transition:.3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* mobile overlay */
.mobile{position:fixed; inset:0; z-index:39; background:rgba(244,241,231,.98); backdrop-filter:blur(6px);
  display:flex; flex-direction:column; justify-content:center; padding:6rem 2rem 2rem;
  transform:translateY(-100%); transition:transform .38s cubic-bezier(.4,0,.2,1); overflow-y:auto}
.mobile.open{transform:none}
.mobile a{color:var(--ink); text-decoration:none; font:400 1.5rem/1.3 var(--serif); padding:.55rem 0;
  border-bottom:1px solid var(--paper-line)}
.mobile .grp{font:700 .72rem/1 var(--sans); text-transform:uppercase; letter-spacing:.16em; color:var(--clay-ink);
  margin:1.4rem 0 .3rem}
.mobile a.sub{font-size:1.15rem; padding-left:1rem; color:var(--ink-soft)}
.mobile .m-cta{margin-top:1.8rem; border:0; text-align:center; background:var(--clay-ink); color:#fdf6ee;
  border-radius:10px; padding:.9rem; font-family:var(--sans); font-weight:600; font-size:1rem}

/* ---------- panels ---------- */
.panel{position:relative; padding:clamp(4rem,10vw,8rem) 0}
.panel--deep{background:var(--deep); color:var(--cream)}
.panel--deep h1,.panel--deep h2,.panel--deep h3{color:var(--cream)}
.panel--paper{background:var(--paper); color:var(--ink)}
.panel--paper h2,.panel--paper h3{color:var(--green-deep)}
.panel--deep + .panel--deep{border-top:1px solid var(--deep-line)}
/* alternating sand-tint rhythm on light sections; raised cards lift to paper */
.panel--tint{background:var(--paper-2)}
.panel--tint .card,.panel--tint .linklist a,.panel--tint .tool,
.panel--tint .inquiry,.panel--tint .toc{background:var(--paper)}

.eyebrow{font:700 .78rem/1 var(--sans); text-transform:uppercase; letter-spacing:.18em; margin-bottom:1.5rem}
.panel--deep .eyebrow{color:var(--amber)}
.panel--paper .eyebrow{color:var(--clay-ink)}
.lede{font-size:1.22rem; line-height:1.65}
.panel--deep .lede{color:var(--cream-soft)}
.panel--paper .lede{color:var(--ink-soft)}
.body{max-width:var(--col)}
.body p{font-size:1.08rem}
.panel--deep .body p{color:var(--cream-soft)}
.panel--paper .body p{color:var(--ink-soft)}
.body p + p{margin-top:1.15rem}
.h-lead{font-size:clamp(1.9rem,4.6vw,3.1rem); max-width:20ch; letter-spacing:-.02em}
.h-sec{font-size:clamp(1.7rem,3.6vw,2.5rem); max-width:18ch}

/* ---------- hero (globe split) ---------- */
.hero{min-height:100svh; display:flex; align-items:center; overflow:hidden; padding-top:6rem; padding-bottom:3rem}
.hero::before{content:""; position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(120% 90% at 82% 10%, rgba(189,106,63,.10), transparent 55%),
    radial-gradient(95% 85% at 6% 100%, rgba(201,178,153,.40), transparent 62%),
    linear-gradient(180deg,#f7f4ec 0%, #f4f1e7 58%, #ede5d4 100%);}
.hero .wrap{position:relative; z-index:2}
.hero-grid{display:grid; grid-template-columns:1fr; gap:2rem; align-items:center}
@media(min-width:60rem){.hero-grid{grid-template-columns:1.05fr .95fr; gap:2.5rem}}
.hero h1{font-size:clamp(2.4rem,6vw,4.4rem); letter-spacing:-.025em; max-width:15ch}
.hero .sub{margin-top:1.6rem; max-width:44ch; font-size:1.18rem; color:var(--ink-soft)}
.hero .actions{margin-top:2.4rem; display:flex; gap:1rem; align-items:center; flex-wrap:wrap}
.globe-stage{position:relative; width:100%; aspect-ratio:1/1; max-width:32rem; margin:0 auto}
.globe-stage canvas{width:100%; height:100%; display:block; cursor:grab; touch-action:none}
.globe-stage canvas:active{cursor:grabbing}
.globe-cap{position:absolute; left:0; right:0; bottom:-1.6rem; text-align:center;
  font:600 .72rem/1.4 var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint)}
@media(min-width:60rem){.globe-cap{bottom:.2rem}}

.btn{display:inline-block; text-decoration:none; font:600 1rem/1 var(--sans);
  padding:1rem 1.7rem; border-radius:10px; transition:.25s}
.btn--solid{background:var(--clay-ink); color:#fdf6ee}
.btn--solid:hover{background:#7f3d12; transform:translateY(-1px)}
.btn--ghost{color:var(--cream); border:1px solid var(--cream-faint)}
.btn--ghost:hover{border-color:var(--cream); background:rgba(236,231,215,.06)}
.panel--paper .btn--ghost{color:var(--green-deep); border-color:var(--paper-line)}
.panel--paper .btn--ghost:hover{border-color:var(--green-deep); background:rgba(38,36,32,.05)}

/* ---------- components ---------- */
.split{display:grid; grid-template-columns:1fr; gap:2.4rem}
@media(min-width:52rem){.split{grid-template-columns:0.9fr 1.1fr; gap:4rem; align-items:start}}

.steps{margin-top:1rem; display:grid; gap:0}
.step{display:grid; grid-template-columns:auto 1fr; gap:1.4rem; padding:1.7rem 0; border-top:1px solid var(--paper-line)}
.step:last-child{border-bottom:1px solid var(--paper-line)}
.step .no{font-family:var(--serif); font-size:1.5rem; color:var(--clay); line-height:1; min-width:2.4rem}
.step h3{font-size:1.25rem; color:var(--green-deep)}
.step h3 .art{font:600 .66rem/1 var(--sans); text-transform:uppercase; letter-spacing:.1em;
  color:var(--clay-ink); white-space:nowrap; margin-left:.55rem; vertical-align:middle}
.step p{margin-top:.5rem; color:var(--ink-soft); font-size:1.03rem; max-width:48ch}

.trio{margin-top:2.6rem; display:grid; grid-template-columns:1fr; gap:1.6rem}
@media(min-width:48rem){.trio{grid-template-columns:repeat(3,1fr); gap:2rem}}
.versus{margin-top:2.6rem; display:grid; grid-template-columns:1fr; gap:1.6rem}
@media(min-width:48rem){.versus{grid-template-columns:1fr 1fr; gap:2rem}}
.card{padding:1.8rem; background:var(--paper-2); border:1px solid var(--paper-line); border-radius:14px}
.panel--deep .card{background:var(--deep-2); border-color:var(--deep-line)}
.card h3{font-size:1.16rem; color:var(--green-deep)}
.panel--deep .card h3{color:var(--cream)}
.card p{margin-top:.6rem; color:var(--ink-soft); font-size:1rem}
.panel--deep .card p{color:var(--cream-soft)}
.fineprint{margin-top:2rem; font-size:.95rem; color:var(--ink-faint); font-style:italic}

.meta{display:grid; grid-template-columns:1fr; gap:1.6rem; margin-top:2.4rem}
@media(min-width:48rem){.meta{grid-template-columns:repeat(3,1fr); gap:2.4rem}}
.meta .item{padding-top:1.3rem; border-top:1px solid var(--paper-line)}
.panel--deep .meta .item{border-top-color:var(--deep-line)}
.meta .item h3{font-size:1.05rem; color:var(--green-deep)}
.panel--deep .meta .item h3{color:var(--cream)}
.meta .item p{margin-top:.5rem; color:var(--ink-soft); font-size:1rem}
.panel--deep .meta .item p{color:var(--cream-soft)}

/* archetype profiles (pricing) - spec column + prose, editorial rules */
.archs{margin-top:2.6rem; display:grid; gap:0}
.arch{display:grid; grid-template-columns:1fr; gap:1.4rem; padding:2.2rem 0; border-top:1px solid var(--paper-line)}
.arch:last-child{border-bottom:1px solid var(--paper-line)}
@media(min-width:52rem){.arch{grid-template-columns:0.72fr 1.28fr; gap:3.6rem; align-items:start}}
.arch h3{font-size:1.3rem; color:var(--green-deep)}
.arch-spec{list-style:none; margin:1.1rem 0 0; padding:0}
.arch-spec li{display:flex; justify-content:space-between; gap:1rem; font-size:.88rem;
  color:var(--ink-faint); border-top:1px solid var(--paper-line); padding:.5rem 0}
.arch-spec li:first-child{border-top:0; padding-top:0}
.arch-spec b{color:var(--ink); font-weight:600; text-align:right}
.arch p{color:var(--ink-soft); font-size:1.03rem; max-width:56ch}
.arch p + p{margin-top:.85rem}
.arch .drives{margin-top:1.3rem; padding-left:1.2rem; border-left:3px solid var(--clay); color:var(--ink); font-size:1rem}
.arch-band{margin-top:1.7rem; padding-top:1.3rem; border-top:1px solid var(--sand)}
.arch-band-row{display:flex; justify-content:space-between; align-items:baseline; gap:1.2rem; padding:.4rem 0}
.arch-band-k{font:700 .74rem/1.3 var(--sans); text-transform:uppercase; letter-spacing:.11em; color:var(--clay-ink); flex:none}
.arch-band-v{font:400 1.14rem/1.2 var(--serif); color:var(--ink); text-align:right}
.arch-band-note{margin-top:.7rem; font-size:.9rem; font-style:italic; color:var(--ink-faint); max-width:52ch}

.about-mission{margin-top:1.8rem; font-family:var(--serif); font-size:1.6rem; line-height:1.25;
  letter-spacing:-.01em; color:var(--clay-ink)}

/* named data-source strip (credibility + attribution) */
.sources{margin-top:2.4rem; display:flex; flex-wrap:wrap; gap:.7rem; align-items:center}
.sources .src{font:600 .8rem/1 var(--sans); letter-spacing:.02em; color:var(--cream-soft);
  border:1px solid var(--deep-line); border-radius:999px; padding:.5rem .9rem}
.panel--paper .sources .src{color:var(--ink-soft); border-color:var(--paper-line)}

/* guardrail (deep, quiet) */
.guardrail .mark{font-family:var(--serif); font-size:3rem; color:var(--moss); line-height:.6; height:1.4rem; display:block}
.guardrail h2{font-size:clamp(1.8rem,4.2vw,2.8rem); max-width:20ch; margin-top:1.2rem}
.guardrail .body{margin-top:1.8rem; max-width:44rem}
.guardrail .body p{font-size:1.15rem; color:var(--cream-soft)}
.guardrail .body strong{color:var(--cream); font-weight:600}

/* figure / real imagery */
figure.plot{margin:2.4rem 0 0; border:1px solid var(--paper-line); border-radius:14px; overflow:hidden; background:var(--paper-2)}
.panel--deep figure.plot{border-color:var(--deep-line); background:var(--deep-2)}
figure.plot img{display:block; width:100%; height:auto}
figure.plot figcaption{padding:.9rem 1.1rem; font-size:.85rem; color:var(--ink-faint); line-height:1.5}
.panel--deep figure.plot figcaption{color:var(--cream-faint)}
figure.plot .credit{display:block; margin-top:.5rem; font-size:.75rem; opacity:.7}

/* contact */
.contact{position:relative; overflow:hidden}
.contact::before{content:""; position:absolute; inset:0; z-index:0;
  background:radial-gradient(80% 120% at 50% 120%, rgba(189,106,63,.16), transparent 60%), linear-gradient(180deg,#211f1b,#2b2924)}
.contact .wrap{position:relative; z-index:1; text-align:center}
.contact h2{font-size:clamp(2rem,5vw,3.4rem); max-width:18ch; margin:0 auto}
.contact .body{margin:1.8rem auto 0; text-align:center}
.contact .body p{color:var(--cream-soft); font-size:1.14rem}
.mail{display:inline-block; margin-top:2.2rem; font-family:var(--serif); font-size:1.5rem; color:var(--amber);
  text-decoration:none; border-bottom:1px solid transparent; transition:.25s}
.mail:hover{border-bottom-color:var(--amber)}
.contact .whisper{margin-top:1rem; font-size:.92rem; color:var(--cream-faint)}

/* prose (guides / long-form) */
.prose{max-width:44rem}
.prose h2{font-size:clamp(1.5rem,3vw,2rem); margin:2.6rem 0 1rem; color:var(--green-deep)}
.prose h3{font-size:1.25rem; margin:2rem 0 .6rem; color:var(--green-deep)}
.prose p{color:var(--ink-soft); margin:0 0 1.1rem; font-size:1.06rem}
.prose ul,.prose ol{color:var(--ink-soft); margin:0 0 1.1rem 1.2rem; padding:0}
.prose li{margin:.4rem 0}
.prose a{color:var(--clay-ink); text-decoration:underline; text-underline-offset:2px}
.prose strong{color:var(--ink)}
/* key-takeaway pull-line (scannability) - reuses the clay border-left treatment */
.keypt{margin:1.4rem 0; padding:.2rem 0 .2rem 1.2rem; border-left:3px solid var(--clay);
  font-family:var(--serif); font-size:1.18rem; line-height:1.35; color:var(--ink)}
.prose .keypt{font-size:1.15rem}
.updated{font-size:.85rem; color:var(--ink-faint); font-style:italic}
.toc{background:var(--paper-2); border:1px solid var(--paper-line); border-radius:12px; padding:1.2rem 1.4rem; margin:2rem 0}
.toc h2{font-size:.8rem; text-transform:uppercase; letter-spacing:.14em; margin:0 0 .6rem; color:var(--clay-ink)}
.toc ol{margin:0 0 0 1.1rem; color:var(--ink-soft)}
.toc a{color:var(--ink-soft); text-decoration:none}
.toc a:hover{color:var(--clay-ink)}
/* inline code + code/data blocks (guides) - monospace on a faint panel */
.prose code{font-family:var(--mono); font-size:.9em; background:var(--paper-2);
  border:1px solid var(--paper-line); border-radius:4px; padding:.08em .35em; color:var(--ink)}
.prose pre{background:var(--paper-2); border:1px solid var(--paper-line); border-radius:12px;
  padding:1.1rem 1.3rem; margin:1.4rem 0; overflow-x:auto; font-size:.9rem; line-height:1.55}
.prose pre code{background:none; border:0; padding:0; font-size:inherit; color:var(--ink-soft)}
.prose figure{margin:1.6rem 0}
.prose figcaption{font-size:.85rem; color:var(--ink-faint); font-style:italic; margin-top:.5rem}

/* breadcrumb */
.crumbs{font-size:.85rem; color:var(--ink-faint); margin-bottom:1.2rem}
.panel--deep .crumbs{color:var(--cream-faint)}
.crumbs a{text-decoration:none; color:inherit}
.crumbs a:hover{color:var(--clay-ink)}

/* faq / glossary */
.qa{border-top:1px solid var(--paper-line); padding:1.5rem 0}
.qa h3{font-size:1.15rem; color:var(--green-deep)}
.qa p{margin-top:.6rem; color:var(--ink-soft); font-size:1.03rem; max-width:52ch}
.qa dt{font-family:var(--serif); font-size:1.15rem; color:var(--green-deep)}
.qa dd{margin:.5rem 0 0; color:var(--ink-soft)}

/* index lists (resources hub / article lists) */
.linklist{margin-top:2rem; display:grid; gap:1.2rem}
.linklist a{display:block; text-decoration:none; padding:1.4rem 1.6rem; border:1px solid var(--paper-line);
  border-radius:12px; background:var(--paper-2); transition:.2s}
.linklist a:hover{border-color:var(--clay); transform:translateY(-1px)}
.linklist h3{font-size:1.16rem; color:var(--green-deep)}
.linklist p{margin-top:.4rem; color:var(--ink-soft); font-size:.98rem}

/* ---------- inquiry form ---------- */
.form-grid{display:grid; grid-template-columns:1fr; gap:2.6rem; align-items:start}
@media(min-width:56rem){.form-grid{grid-template-columns:0.82fr 1.18fr; gap:4rem}}
.form-aside .h-sec{margin-bottom:1.2rem}
.form-aside > p{color:var(--ink-soft); font-size:1.03rem; margin-bottom:1.2rem}
.aside-list{list-style:none; margin:0 0 1.6rem; padding:0}
.aside-list li{position:relative; padding:.55rem 0 .55rem 1.3rem; border-top:1px solid var(--paper-line);
  color:var(--ink-soft); font-size:.98rem}
.aside-list li::before{content:""; position:absolute; left:0; top:1.05rem; width:.5rem; height:.5rem;
  border-radius:50%; background:var(--moss)}
.aside-list strong{color:var(--ink)}
.aside-alt{font-size:.95rem; color:var(--ink-faint)}
.aside-alt a{color:var(--clay-ink); text-decoration:underline; text-underline-offset:2px}

.inquiry{background:var(--paper-2); border:1px solid var(--paper-line); border-radius:16px; padding:1.9rem}
.field{display:flex; flex-direction:column; margin-bottom:1.15rem}
.field-row{display:grid; grid-template-columns:1fr; gap:0 1.1rem}
@media(min-width:34rem){.field-row{grid-template-columns:1fr 1fr}}
.field label{font:600 .82rem/1 var(--sans); letter-spacing:.02em; color:var(--ink); margin-bottom:.5rem}
.field .opt{font-weight:400; color:var(--ink-faint)}
.inquiry input,.inquiry select,.inquiry textarea{
  font:400 1rem/1.5 var(--sans); color:var(--ink); background:#fbf8f1;
  border:1px solid var(--paper-line); border-radius:9px; padding:.72rem .85rem; width:100%; transition:border-color .2s, box-shadow .2s}
.inquiry textarea{resize:vertical; min-height:7rem}
.inquiry input:focus,.inquiry select:focus,.inquiry textarea:focus{
  outline:none; border-color:var(--clay); box-shadow:0 0 0 3px rgba(176,106,60,.14)}
.inquiry input:invalid:not(:placeholder-shown){border-color:#b1553f}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
#ts-widget{margin:.4rem 0 1.1rem; min-height:65px}
.consent{font-size:.85rem; color:var(--ink-faint); margin:.2rem 0 1.2rem}
.inquiry .btn--solid{border:0; cursor:pointer; font-family:var(--sans)}
.inquiry .btn--solid[disabled]{opacity:.6; cursor:default}
.form-status{margin-top:1rem; font-size:.95rem; display:none}
.form-status.show{display:block}
.form-status.ok{color:var(--green-deep)}
.form-status.err{color:#a4472f}

/* footer - light (so the charcoal logo shows) */
footer{background:var(--paper); color:var(--ink-faint); padding:3rem 0 3.4rem; border-top:1px solid var(--paper-line)}
.foot-grid{display:grid; grid-template-columns:1fr; gap:2rem}
@media(min-width:48rem){.foot-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
footer .brand{width:196px; height:46px}
footer .tagline{font-size:.9rem; max-width:32ch; margin-top:.9rem; color:var(--ink-faint)}
footer h4{font:700 .74rem/1 var(--sans); text-transform:uppercase; letter-spacing:.14em; color:var(--ink-soft); margin:0 0 1rem}
footer nav a{display:block; text-decoration:none; color:var(--ink-soft); font-size:.92rem; padding:.3rem 0; transition:color .2s}
footer nav a:hover{color:var(--clay-ink)}
.foot-legal{margin-top:2.6rem; padding-top:1.6rem; border-top:1px solid var(--paper-line);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; font-size:.82rem; color:var(--ink-faint)}
.foot-legal a{color:var(--ink-soft); text-decoration:none}

/* ---------- interactive tools: operator self-check + pricing sizer ---------- */
.tool{background:var(--paper-2); border:1px solid var(--paper-line); border-radius:16px;
  padding:clamp(1.4rem,3.5vw,2.1rem); max-width:46rem}
.tool-head{display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin-bottom:.9rem}
.tool-step{font:700 .72rem/1 var(--sans); text-transform:uppercase; letter-spacing:.16em; color:var(--clay-ink)}
.tool-bar{height:3px; background:var(--paper-line); border-radius:2px; overflow:hidden; margin:0 0 1.6rem}
.tool-bar i{display:block; height:100%; width:0; background:var(--clay); transition:width .35s ease}
.tool-q h3{font-size:clamp(1.15rem,2.4vw,1.4rem); color:var(--green-deep); margin-bottom:.5rem}
.tool-q .hint{color:var(--ink-soft); font-size:.98rem; margin-bottom:1.25rem; max-width:40ch}
.tool-opts{display:grid; gap:.7rem}
.tool-opt{display:block; width:100%; text-align:left; font:500 1.02rem/1.4 var(--sans); color:var(--ink);
  background:#fbf8f1; border:1px solid var(--paper-line); border-radius:11px; padding:.9rem 1.1rem;
  cursor:pointer; transition:border-color .18s, background .18s, transform .18s}
.tool-opt:hover,.tool-opt:focus-visible{border-color:var(--clay); background:#fff; transform:translateY(-1px); outline:none}
.tool-opt b{display:block; font-weight:600}
.tool-opt small{display:block; color:var(--ink-faint); font-weight:400; margin-top:.25rem; font-size:.86rem; line-height:1.4}
.tool-back{margin-top:1.3rem; background:none; border:0; color:var(--ink-faint); font:600 .85rem/1 var(--sans); cursor:pointer; padding:.35rem 0}
.tool-back:hover{color:var(--clay-ink)}
.tool-back[hidden]{display:none}
.tool-result{border-left:3px solid var(--clay); padding-left:1.3rem}
.tool-result.is-check{border-color:var(--green)}
.tool-result .verdict{font-family:var(--serif); font-size:clamp(1.35rem,3vw,1.7rem); color:var(--green-deep); line-height:1.15; margin-bottom:.8rem}
.tool-result p{color:var(--ink-soft); font-size:1.04rem; margin-bottom:.9rem}
.tool-result p:last-of-type{margin-bottom:0}
.tool-result .cta{display:flex; gap:.9rem; flex-wrap:wrap; margin-top:1.4rem; align-items:center}
.tool-result .restart{background:none; border:0; color:var(--ink-faint); font:600 .9rem/1 var(--sans); cursor:pointer; text-decoration:underline; text-underline-offset:2px}
.tool-result .restart:hover{color:var(--clay-ink)}
.tool-note{margin-top:1.5rem; padding-top:1.1rem; border-top:1px solid var(--paper-line);
  font-size:.85rem; color:var(--ink-faint); font-style:italic}

.tool .field{display:flex; flex-direction:column; margin-bottom:1.15rem}
.tool .field:last-of-type{margin-bottom:0}
.tool .field label{font:600 .9rem/1.35 var(--sans); color:var(--ink); margin-bottom:.5rem}
.tool select{font:400 1rem/1.5 var(--sans); color:var(--ink); background:#fbf8f1;
  border:1px solid var(--paper-line); border-radius:9px; padding:.72rem .85rem; width:100%; transition:border-color .2s, box-shadow .2s}
.tool select:focus{outline:none; border-color:var(--clay); box-shadow:0 0 0 3px rgba(176,106,60,.14)}

/* pricing sizer readout */
.sizer-out[hidden]{display:none}
.sizer-out{margin-top:1.7rem; border-top:1px solid var(--paper-line); padding-top:1.5rem}
.sizer-out .label{font:700 .72rem/1 var(--sans); text-transform:uppercase; letter-spacing:.16em; color:var(--clay-ink); margin-bottom:.9rem}
.sizer-band{display:flex; gap:.45rem; margin:0 0 1.4rem}
.sizer-band span{flex:1; text-align:center; font:600 .82rem/1.2 var(--sans); padding:.7rem .3rem; border:1px solid var(--paper-line); border-radius:9px; color:var(--ink-faint); background:#fbf8f1; transition:.2s}
.sizer-band span.on{background:var(--clay-ink); color:#fdf6ee; border-color:var(--clay-ink)}
.sizer-read{color:var(--ink-soft); font-size:1.02rem; margin:0 0 1.2rem}
.sizer-read b{color:var(--ink); font-weight:600}
.sizer-drivers{list-style:none; margin:0 0 1.4rem; padding:0; display:grid; gap:0}
.sizer-drivers li{display:flex; justify-content:space-between; gap:1rem; font-size:.95rem; color:var(--ink-soft); border-top:1px solid var(--paper-line); padding:.6rem 0}
.sizer-drivers b{color:var(--ink); font-weight:600; text-align:right}
/* ---------- credibility strip (C) - the trust spine, stated up front ---------- */
.credstrip{display:grid; grid-template-columns:1fr; gap:1.6rem 2.2rem; margin-top:2.4rem}
@media(min-width:40rem){.credstrip{grid-template-columns:1fr 1fr}}
@media(min-width:64rem){.credstrip{grid-template-columns:repeat(4,1fr)}}
.cred::before{content:""; display:block; width:2rem; height:2px; background:var(--clay); margin-bottom:1rem}
.cred h3{font-family:var(--serif); font-size:1.12rem; color:var(--green-deep); line-height:1.2}
.cred p{margin-top:.5rem; font-size:.9rem; color:var(--ink-soft); line-height:1.55}
.cred .note{display:block; margin-top:.5rem; font-size:.8rem; color:var(--ink-faint); font-family:var(--mono); letter-spacing:.01em}

/* ---------- plot assessment record (A) - real engine output, as a filed document ----------
   Renders real results from our deforestation engine (engine/golden/*.json) in the grammar
   of a genuine institutional record (see docs/design/04-official-document-design.md): a
   masthead (who/what/which-number), label:value metadata, a findings table that shows
   tree-cover loss BESIDE confirmed deforestation (loss ≠ deforestation - shown, not
   asserted), a stated verdict basis, a datasets/method provenance block, and a footer
   stamp. Hairlines not cards; tabular figures; one terracotta keyline. (ADR-028 s55) */
.specimen{border:1px solid var(--ink); border-radius:4px; background:var(--paper);
  overflow:hidden; margin-top:2.4rem}
.specimen-body{padding:clamp(1.3rem,3.2vw,2rem)}

/* masthead */
.doc-mast{display:flex; justify-content:space-between; align-items:flex-start; gap:1.2rem;
  flex-wrap:wrap; padding-bottom:.9rem; border-bottom:2px solid var(--ink)}
.doc-mast .wm{font:600 1.2rem/1 var(--serif); color:var(--ink); letter-spacing:-.01em}
.doc-mast .role{display:block; margin-top:.32rem; font:600 .66rem/1.3 var(--sans);
  text-transform:uppercase; letter-spacing:.14em; color:var(--ink-faint)}
.doc-id{margin:0; display:grid; grid-template-columns:max-content max-content; gap:.22rem .9rem;
  align-items:baseline}
.doc-id dt{font:600 .62rem/1.4 var(--sans); text-transform:uppercase; letter-spacing:.08em;
  color:var(--ink-faint); text-align:right}
.doc-id dd{margin:0; font:500 .74rem/1.4 var(--mono); color:var(--ink); font-variant-numeric:tabular-nums}

/* section label */
.doc-sec{margin-top:1.7rem}
.doc-sec-h{font:700 .66rem/1 var(--sans); text-transform:uppercase; letter-spacing:.14em;
  color:var(--ink-faint); margin:0 0 1rem; padding-bottom:.4rem; border-bottom:1px solid var(--paper-line)}

/* one plot block */
.plotrec + .plotrec{margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--paper-line)}
.plotrec-h{display:flex; justify-content:space-between; align-items:baseline; gap:.5rem 1rem;
  flex-wrap:wrap; margin-bottom:.6rem}
.plotrec-h .name{font:600 1.05rem/1.25 var(--serif); color:var(--ink)}
.verdict{font:700 .7rem/1 var(--mono); letter-spacing:.08em; text-transform:uppercase;
  white-space:nowrap; padding-left:.65rem; border-left:3px solid var(--paper-line)}
.verdict--review{color:var(--clay-ink); border-left-color:var(--clay)}
.verdict--pass{color:var(--ink-soft); border-left-color:var(--ink)}

/* label:value meta line */
.plot-meta{margin:0 0 .8rem; font:400 .82rem/1.6 var(--sans); color:var(--ink-soft)}
.plot-meta .k{color:var(--ink-faint)}
.plot-meta .v{font-family:var(--mono); font-variant-numeric:tabular-nums; color:var(--ink)}
.plot-meta .sep{color:var(--sand); margin:0 .55rem}

/* findings table */
.table-wrap{overflow-x:auto}
.findings{width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums lining-nums}
.findings th, .findings td{padding:.5rem .65rem; text-align:left; vertical-align:baseline}
.findings th:first-child, .findings td:first-child{padding-left:0}
.findings thead th{font:600 .6rem/1.2 var(--sans); text-transform:uppercase; letter-spacing:.06em;
  color:var(--ink-faint); border-bottom:1.5px solid var(--ink); white-space:nowrap}
.findings tbody td{font:400 .82rem/1.45 var(--sans); color:var(--ink-soft);
  border-bottom:1px solid var(--paper-line)}
.findings tbody tr:last-child td{border-bottom:0}
.findings .thing{color:var(--ink); font-weight:500; white-space:nowrap}
.findings .method{font-family:var(--mono); font-size:.73rem; color:var(--ink-faint)}
.findings .num{text-align:right; font-family:var(--mono); color:var(--ink); white-space:nowrap}
.findings .rowloss td{background:rgba(189,106,63,.09)}   /* the disturbance signal */

/* verdict basis */
.plot-basis{margin:.75rem 0 0; font:400 .85rem/1.6 var(--sans); color:var(--ink-soft); max-width:62ch}
.plot-basis b{color:var(--ink); font-weight:600}

/* datasets & method provenance */
.prov{margin:0; display:grid; grid-template-columns:1fr; gap:.5rem 1.5rem}
@media(min-width:40rem){.prov{grid-template-columns:max-content 1fr; gap:.45rem 1.5rem; align-items:baseline}}
.prov dt{font:600 .68rem/1.4 var(--sans); text-transform:uppercase; letter-spacing:.05em; color:var(--ink-faint)}
.prov dd{margin:0; font:400 .8rem/1.5 var(--sans); color:var(--ink-soft)}
.prov dd .ver{font-family:var(--mono); font-size:.75rem; color:var(--ink)}

/* footer stamp */
.doc-foot{display:flex; justify-content:space-between; gap:.5rem 1.4rem; flex-wrap:wrap;
  margin-top:1.7rem; padding-top:.8rem; border-top:1px solid var(--paper-line);
  font:400 .68rem/1.5 var(--mono); color:var(--ink-faint); font-variant-numeric:tabular-nums}

/* filed DDS receipt - real Acceptance/test submission */
.filed-rec{margin-top:1.1rem; border:1px solid var(--paper-line); border-left:3px solid var(--clay);
  border-radius:4px; background:var(--paper-2); padding:1rem 1.15rem}
.filed-rec-h{display:flex; justify-content:space-between; align-items:baseline; gap:.5rem 1rem;
  flex-wrap:wrap; margin-bottom:.85rem}
.fr-title{font:600 .98rem/1.2 var(--serif); color:var(--ink)}
.fr-env{font:700 .58rem/1 var(--sans); text-transform:uppercase; letter-spacing:.1em;
  color:var(--clay-ink); border:1px solid var(--clay); border-radius:3px; padding:.32rem .5rem; white-space:nowrap}
.fr-fields{margin:0; display:grid; grid-template-columns:1fr; gap:.35rem 1.4rem}
@media(min-width:34rem){.fr-fields{grid-template-columns:max-content 1fr; gap:.4rem 1.4rem; align-items:baseline}}
.fr-fields dt{font:600 .62rem/1.4 var(--sans); text-transform:uppercase; letter-spacing:.07em; color:var(--ink-faint)}
.fr-fields dd{margin:0; font:400 .82rem/1.5 var(--sans); color:var(--ink-soft)}
.filed-rec .fr-mono{font-family:var(--mono); font-variant-numeric:tabular-nums; color:var(--ink); letter-spacing:.02em}
.fr-note{margin:.95rem 0 0; padding-top:.85rem; border-top:1px solid var(--paper-line);
  font:400 .8rem/1.55 var(--sans); color:var(--ink-faint); max-width:64ch}
.fr-note b{color:var(--ink-soft); font-weight:600}

.specimen-note{margin:0; padding:.9rem clamp(1.3rem,3.2vw,2rem); border-top:1px solid var(--ink);
  background:#faf7f0; font-size:.78rem; color:var(--ink-faint); line-height:1.6}
.specimen-note a{color:var(--clay-ink); text-decoration:underline; text-underline-offset:2px}
.specimen-more{margin-top:1.1rem; font-size:.95rem}
.specimen-more a{color:var(--clay-ink); text-decoration:underline; text-underline-offset:2px}

/* ---------- method flow (B) - "how we read the evidence" schematic ---------- */
.method-flow{margin-top:2.4rem; border:1px solid var(--paper-line); border-radius:14px;
  background:var(--paper); padding:clamp(1.4rem,3vw,2rem)}
.mf-label{font:700 .72rem/1 var(--sans); text-transform:uppercase; letter-spacing:.16em;
  color:var(--clay-ink); margin-bottom:1.1rem}
.mf-inputs{display:grid; grid-template-columns:1fr; gap:.8rem}
@media(min-width:46rem){.mf-inputs{grid-template-columns:repeat(3,1fr)}}
.mf-node{border:1px solid var(--paper-line); border-radius:6px; padding:.9rem 1rem; background:var(--paper-2)}
.mf-node .n{font:600 .72rem/1 var(--mono); color:var(--ink-faint); display:block; margin-bottom:.45rem}
.mf-node .h{font:600 .95rem/1.25 var(--sans); color:var(--ink)}
.mf-node .d{font-size:.8rem; color:var(--ink-soft); margin-top:.25rem; font-family:var(--mono)}
.mf-arrow{display:flex; justify-content:center; align-items:center; color:var(--sand); margin:.75rem 0}
.mf-arrow span{font-size:1.1rem; line-height:1}
.mf-cross{border:1px dashed var(--sand); border-radius:6px; padding:1rem 1.1rem; background:var(--paper-2); text-align:center}
.mf-cross .h{font:600 1rem/1.25 var(--sans); color:var(--ink)}
.mf-cross .d{font-size:.85rem; color:var(--ink-soft); margin-top:.35rem; max-width:54ch; margin:.35rem auto 0}
.mf-outcomes{display:grid; grid-template-columns:1fr; gap:.8rem}
@media(min-width:46rem){.mf-outcomes{grid-template-columns:repeat(3,1fr)}}
.mf-out{border:1px solid var(--paper-line); border-left-width:3px; border-radius:6px; padding:.9rem 1rem; background:var(--paper)}
.mf-out .verdict{font:700 .68rem/1.2 var(--sans); text-transform:uppercase; letter-spacing:.09em;
  margin-bottom:.5rem; display:block}
.mf-out .d{font-size:.84rem; color:var(--ink-soft); line-height:1.5}
.mf-out--flag{border-left-color:var(--clay)} .mf-out--flag .verdict{color:var(--clay-ink)}
.mf-out--review{border-left-color:var(--sand)} .mf-out--review .verdict{color:var(--ink)}
.mf-out--clear{border-left-color:var(--ink-faint)} .mf-out--clear .verdict{color:var(--ink-soft)}

/* reveal motion */
.js .reveal{opacity:0; transform:translateY(20px);
  transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); transition-delay:calc(var(--d,0) * 90ms)}
.js .reveal.in{opacity:1; transform:none}

@media(max-width:60rem){
  .nav, .nav-cta{display:none}
  .burger{display:block}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{opacity:1; transform:none; transition:none}
  .mobile{transition:none}
}
