/* SeedHammer EDITION landing · direction: TRIPLE ZERO
   Paper and ink, one brass accent. The accent marks measured values,
   the live engraving stroke, and the primary CTA. Nothing else. */

@font-face{font-family:Switzer;src:url(assets/fonts/Switzer-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Switzer;src:url(assets/fonts/Switzer-Semibold.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(assets/fonts/PlexMono-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(assets/fonts/PlexMono-Semibold.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --paper:#FAF9F6; --ink:#191B1E; --head:#101214; --muted:#6D675C;
  --hair:#DFDACE; --panel:#F3F1EA; --panel2:#ECE9E0;
  --brass:#A87710; --brass-link:#8A6508; --engraved:#2A2C2F; --cta-text:#FFFDF7;
  --mono:"Plex Mono",ui-monospace,"SF Mono",Consolas,monospace;
  --sans:Switzer,system-ui,"Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#131518; --ink:#C6CBD1; --head:#EDEFF2; --muted:#8B9099;
    --hair:#2A2E33; --panel:#1A1D21; --panel2:#20242A;
    --brass:#D9A441; --brass-link:#E4B45C; --engraved:#C9CCCE; --cta-text:#1A1406;
  }
  .vitrine img,.duo img.plate-img{filter:brightness(.85) contrast(1.03)}
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:16px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased;
}
a{color:var(--brass-link);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
a:focus-visible,button:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
code{font-family:var(--mono);font-size:.92em;background:var(--panel);padding:1px 5px;border:1px solid var(--hair)}
h1,h2{color:var(--head);text-wrap:balance}
h2{font-size:clamp(23px,3.4vw,29px);line-height:1.25;letter-spacing:-.01em;margin:0 0 16px}
p{margin:0 0 14px}
img{max-width:100%;height:auto;display:block}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.fineprint{font-size:13px;color:var(--muted)}

/* ---------- masthead ---------- */
.masthead{border-bottom:1px solid var(--hair)}
.masthead-inner{
  max-width:1060px;margin:0 auto;padding:18px 24px;
  display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;
}
/* The marks carry fill="currentColor" in the markup rather than taking a
   fill from here, so they paint from the brand's colour even when this
   stylesheet is the ten-minute-stale copy a browser still holds from the
   previous deploy. A fill that lives only in CSS renders black in that
   window. */
/* One lockup: the mark anchors it, the wordmark sits at cap height beside
   it, and EDITION is a quiet label behind a hairline. */
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--brass)}
.mark{height:20px;width:auto;display:block}
.logo{height:18px;width:auto;display:block}
.wordmark{
  font-family:var(--mono);font-weight:400;font-size:10px;letter-spacing:.18em;color:var(--muted);
  border-left:1px solid var(--hair);padding-left:11px;margin-left:2px;
}
.nav{display:flex;gap:24px}
.nav a{font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--ink);text-decoration:none}
.nav a:hover{color:var(--brass-link);text-decoration:underline;text-underline-offset:4px}
.notice{
  margin:0;border-top:1px solid var(--hair);background:var(--panel);
  text-align:center;font-size:12.5px;color:var(--muted);padding:7px 24px;
}

/* ---------- hero ---------- */
.hero{max-width:820px;margin:0 auto;padding:56px 24px 8px;text-align:center}
.kicker{font-family:var(--mono);font-size:12.5px;letter-spacing:.18em;color:var(--muted);margin:0 0 30px;text-wrap:balance}
.hero-fig{margin:0 0 8px}
.plate-svg{width:min(460px,92%);height:auto;display:inline-block}
.engrave-strokes use{
  fill:none;stroke:var(--brass);stroke-width:360;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:1;stroke-dashoffset:1;animation:engrave 1.15s linear forwards;
}
@keyframes engrave{
  0%{stroke-dashoffset:1;stroke:var(--brass)}
  78%{stroke-dashoffset:0;stroke:var(--brass)}
  100%{stroke-dashoffset:0;stroke:var(--engraved)}
}
.dims line{stroke:var(--hair);stroke-width:120;fill:none}
.dims text{fill:var(--muted);font-family:var(--mono);letter-spacing:.06em}
.plate-svg .dims text{font-size:2500px}
.plate-outline{fill:var(--panel2);stroke:var(--hair);stroke-width:220}
.plate-margin{fill:none;stroke:var(--hair);stroke-width:110;stroke-dasharray:900 700}
figure>figcaption{
  font-family:var(--mono);font-size:12px;line-height:1.6;color:var(--muted);
  max-width:62ch;margin:10px auto 0;
}
figure>figcaption b{color:var(--ink);font-weight:600}
.subhead{max-width:54ch;margin:22px auto 8px;font-size:17.5px;line-height:1.6}
.cta-row{display:flex;gap:18px;justify-content:center;align-items:center;flex-wrap:wrap;margin:22px 0 6px}
.cta{
  display:inline-block;background:var(--brass-link);color:var(--cta-text);
  font-family:var(--mono);font-weight:600;font-size:14px;letter-spacing:.08em;
  padding:13px 24px;text-decoration:none;border:1px solid var(--brass-link);
}
.cta:hover{filter:brightness(1.07)}
.cta-ghost{font-family:var(--mono);font-size:14px;color:var(--ink);text-underline-offset:4px}
.microline{font-family:var(--mono);font-size:12px;color:var(--muted);margin:4px 0 0}

/* ---------- proof rail ---------- */
.proof{
  max-width:1060px;margin:48px auto 0;padding:0 24px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  border-top:1px solid var(--hair);
}
.proof a{
  padding:20px 14px 22px;text-decoration:none;border-bottom:1px solid var(--hair);
  display:flex;flex-direction:column;gap:4px;
}
.proof a:hover{background:var(--panel)}
.proof b{
  font-family:var(--mono);font-weight:600;font-size:clamp(17px,2vw,21px);
  font-variant-numeric:tabular-nums;color:var(--brass-link);white-space:nowrap;
}
.proof span{font-size:12.5px;line-height:1.45;color:var(--muted)}

/* ---------- sections ---------- */
.s{
  max-width:1060px;margin:0 auto;padding:56px 24px 8px;
  display:grid;grid-template-columns:88px minmax(0,1fr);gap:0 28px;
}
.s .no{
  grid-column:1;margin:0;padding-top:8px;
  font-family:var(--mono);font-size:13px;letter-spacing:.1em;color:var(--brass);
}
.s .body{grid-column:2;max-width:72ch}
main > .s{position:relative}
main > .s::before{
  content:"";position:absolute;top:28px;left:24px;right:24px;height:1px;background:var(--hair);
}
.proof + .s::before{display:none}
@media (max-width:680px){
  .s{display:block;padding-top:48px}
  .s .no{padding:6px 0 10px}
  main > .s::before{top:24px}
}

/* reveal (JS adds .js on the root and .in per section; no-JS gets the static page) */
@media (prefers-reduced-motion: no-preference){
  .js .reveal .body,.js .reveal .no{opacity:0;transform:translateY(10px);transition:opacity .22s ease,transform .22s ease}
  .js .reveal.in .body,.js .reveal.in .no{opacity:1;transform:none}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .engrave-strokes use{animation:none;stroke-dashoffset:0;stroke:var(--engraved)}
}

/* ---------- figures ---------- */
figure{margin:22px 0}
.device-fig{text-align:center}
.device{
  position:relative;display:inline-block;max-width:480px;width:100%;
  border:1px solid var(--hair);background:var(--panel2);
}
.device img{width:100%;image-rendering:auto;display:block}
.device iframe{width:100%;height:620px;border:0;display:block;background:var(--panel2)}
.boot{
  display:block;width:100%;
  background:var(--brass-link);color:var(--cta-text);border:0;
  font-family:var(--mono);font-weight:600;font-size:13px;letter-spacing:.1em;
  padding:11px 20px;cursor:pointer;
}
.boot:hover{filter:brightness(1.07)}

.vitrine{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.vitrine figure{margin:0;border:1px solid var(--hair);background:var(--panel);display:flex;flex-direction:column}
.vitrine img{width:100%;aspect-ratio:1;object-fit:contain;background:#fff}
.vitrine figcaption{margin-top:auto}
.vitrine figcaption{
  font-family:var(--mono);font-size:11.5px;color:var(--muted);
  padding:7px 10px;border-top:1px solid var(--hair);margin:0;max-width:none;
}
.vitrine-fig>figcaption,.duo-fig>figcaption,.bits-fig>figcaption{margin-left:0;margin-right:0;max-width:66ch}

.duo{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch}
.duo img{width:100%;height:100%;object-fit:contain;border:1px solid var(--hair);background:var(--panel)}
@media (max-width:560px){.duo{grid-template-columns:1fr}.duo img{height:auto}}

.bits-fig svg{width:100%;max-width:620px;height:auto;display:block}
.bits-yours{fill:var(--panel2);stroke:var(--hair);stroke-width:1}
.bits-machine{fill:var(--brass)}
.bits-label{fill:var(--ink);font-family:var(--mono);font-size:12.5px;letter-spacing:.02em}
.bits-fig .dims line{stroke-width:1}
.bits-fig .dims text{font-size:11.5px}

/* ---------- stats and tables ---------- */
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:20px 0 8px}
.statrow div{border:1px solid var(--hair);background:var(--panel);padding:14px 16px}
.statrow b{
  display:block;font-family:var(--mono);font-weight:600;font-size:22px;
  font-variant-numeric:tabular-nums;color:var(--brass-link);
}
.statrow span{font-size:12.5px;color:var(--muted);line-height:1.45}

.tablewrap{overflow-x:auto;margin:18px 0}
table{border-collapse:collapse;width:100%;font-size:14px}
th{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);text-align:left;font-weight:600;padding:8px 12px;border-bottom:1px solid var(--hair);
}
td{padding:10px 12px;border-bottom:1px solid var(--hair);vertical-align:top}
td.num{
  font-family:var(--mono);font-weight:600;font-variant-numeric:tabular-nums;
  white-space:nowrap;color:var(--brass-link);font-size:14.5px;
}
td.src{font-family:var(--mono);font-size:12px;color:var(--muted)}

/* ---------- footer ---------- */
/* stacked tables and grids on narrow screens */
@media (max-width:560px){
  .tablewrap thead{display:none}
  .tablewrap tr{display:block;padding:9px 0;border-bottom:1px solid var(--hair)}
  .tablewrap td{display:block;border-bottom:0;padding:1px 0}
  .tablewrap td.num{white-space:normal}
  .statrow{grid-template-columns:1fr}
}
@media (max-width:500px){
  .proof{grid-template-columns:1fr 1fr}
  .proof a:last-child{grid-column:1/-1}
}

.footer{border-top:1px solid var(--hair);margin-top:64px;background:var(--panel)}
.footer-inner{max-width:1060px;margin:0 auto;padding:40px 24px 48px;text-align:center}
.footer-links{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin:18px 0 22px}
.footer-links a{font-family:var(--mono);font-size:13px}
.footer .fineprint{max-width:64ch;margin:6px auto}
