/* Verdikor · tokens follow DESIGN.md */
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/IBMPlexSans-Regular-Latin1.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/IBMPlexSans-SemiBold-Latin1.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/IBMPlexSans-Bold-Latin1.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/IBMPlexMono-Medium-Latin1.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/IBMPlexMono-SemiBold-Latin1.woff2) format("woff2")}

:root{
  --paper:#eef1f4; --paper-2:#e4e8ed; --sheet:#ffffff; --ink:#14202b; --ink-2:#4a5866; --rule:#cfd6dd;
  --stamp:#1f4fd8; --stamp-hover:#1a43b8; --stamp-soft:#dbe4fb; --on-stamp:#ffffff;
  --ok:#1d7a4c; --ok-soft:#dcefe3; --bad:#b3261e; --bad-soft:#f6dcda; --warn:#9a6700; --warn-soft:#f7ebc8;
  --gray:#5d6773; --gray-soft:#e6e9ed; --head-bg:rgba(238,241,244,.86);
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:72px;--s9:112px;
  --r:4px; --r-chip:3px; --wrap:1160px; --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#10161c; --paper-2:#141b22; --sheet:#171f27; --ink:#e7edf3; --ink-2:#9fadbb; --rule:#2c3741;
    --stamp:#7ea0ff; --stamp-hover:#9ab5ff; --stamp-soft:#1d2a4a; --on-stamp:#0b1220;
    --ok:#5fd39a; --ok-soft:#153626; --bad:#ff8a80; --bad-soft:#3f1a17; --warn:#f0c454; --warn-soft:#3b2f10;
    --gray:#a7b2bf; --gray-soft:#232c35; --head-bg:rgba(16,22,28,.84);
    color-scheme:dark;
  }
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
a{color:var(--stamp);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--stamp-hover)}
:focus-visible{outline:2px solid var(--stamp);outline-offset:2px;border-radius:2px}
::selection{background:var(--stamp-soft)}
h1,h2,h3{margin:0;font-weight:600;color:var(--ink)}
p{margin:0}
code,.mono{font-family:var(--mono);font-size:.9em}
button{font:inherit;color:inherit}
.m0{margin:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:min(var(--wrap),100% - 40px);margin-inline:auto}
.wrap.narrow{width:min(760px,100% - 40px)}
.skip{position:absolute;left:-999px;top:0;background:var(--sheet);padding:var(--s2) var(--s4);z-index:100}
.skip:focus{left:var(--s4);top:var(--s4)}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:50;background:var(--head-bg);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent;transition:border-color .2s}
.site-head.scrolled{border-bottom-color:var(--rule)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);height:68px}
.brand{display:inline-flex;color:var(--ink)}
.brand svg{height:26px;width:auto}
.wm-ink{fill:var(--ink)} .wm-dot{fill:var(--stamp)}
.menu{display:flex;align-items:center;gap:var(--s6)}
.menu ul{display:flex;gap:var(--s5);list-style:none;margin:0;padding:0}
.menu ul a{color:var(--ink);text-decoration:none;font-size:15px;padding:6px 0;border-bottom:1.5px solid transparent}
.menu ul a:hover{border-bottom-color:var(--rule)}
.menu ul a[aria-current="page"]{border-bottom-color:var(--stamp)}
.menu .btn{min-height:40px;padding:0 16px;font-size:14px}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);cursor:pointer;place-items:center}
.bars,.bars::before,.bars::after{display:block;width:18px;height:1.5px;background:var(--ink);position:relative;transition:transform .2s var(--ease),opacity .2s}
.bars::before,.bars::after{content:"";position:absolute;left:0}
.bars::before{top:-6px}.bars::after{top:6px}
.menu-btn[aria-expanded="true"] .bars{background:transparent}
.menu-btn[aria-expanded="true"] .bars::before{transform:translateY(6px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars::after{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:900px){
  .menu-btn{display:grid}
  .menu{position:fixed;inset:68px 0 auto 0;flex-direction:column;align-items:stretch;gap:var(--s5);padding:var(--s5) 20px var(--s6);background:var(--paper);border-bottom:1px solid var(--rule);transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s var(--ease),visibility 0s .2s}
  .menu.open{opacity:1;visibility:visible;transform:none;transition:opacity .2s,transform .2s var(--ease)}
  .menu ul{flex-direction:column;gap:0}
  .menu ul a{display:block;padding:14px 0;font-size:18px;border-bottom:1px solid var(--rule)}
  .menu ul a[aria-current="page"]{color:var(--stamp);border-bottom-color:var(--rule)}
  .menu .btn{min-height:48px;justify-content:center;font-size:16px}
  html:not(.js) .menu{position:static;opacity:1;visibility:visible;transform:none;padding:0;border:0}
  html:not(.js) .menu-btn{display:none}
}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;padding:0 20px;border-radius:var(--r);font:600 15px/1 var(--sans);text-decoration:none;border:1px solid transparent;white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s,transform .15s var(--ease)}
.btn span[aria-hidden]{transition:transform .2s var(--ease)}
.btn:hover span[aria-hidden]{transform:translateX(3px)}
.btn:active{transform:translateY(1px)}
.btn-lg{min-height:50px;padding:0 24px;font-size:16px}
.btn-primary{background:var(--stamp);color:var(--on-stamp)}
.btn-primary:hover{background:var(--stamp-hover);color:var(--on-stamp)}
.btn-secondary{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-secondary:hover{background:var(--sheet);color:var(--ink)}
.btn-quiet{background:transparent;color:var(--ink-2);border-color:transparent}
.btn-quiet:hover{color:var(--ink)}
.link-arrow{font-weight:600;text-decoration:none;display:inline-flex;gap:6px}
.link-arrow:hover{text-decoration:underline}

/* ---------- type ---------- */
.label{font:600 13px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.label::before{content:"";display:inline-block;width:8px;height:8px;background:var(--stamp);margin-right:10px;vertical-align:1px}
h1{font-size:clamp(36px,4.6vw,60px);line-height:1.05;letter-spacing:-.028em;font-weight:700;max-width:18ch}
h2{font-size:clamp(28px,3.2vw,42px);line-height:1.1;letter-spacing:-.022em;max-width:22ch}
h3,.h3{font-size:20px;line-height:1.3;letter-spacing:-.005em;font-weight:600;max-width:none}
.lead{font-size:clamp(17px,1.4vw,20px);line-height:1.55;color:var(--ink-2);max-width:56ch}
.prose{display:grid;gap:var(--s4)}
.prose p{max-width:64ch}
.small{font-size:15px;color:var(--ink-2)}
.muted{color:var(--ink-2)}

/* ---------- layout ---------- */
.sec{padding-top:var(--s9)}
.sec-tight{padding-top:var(--s7)}
@media (max-width:720px){.sec{padding-top:var(--s8)}}
.sec-head{display:grid;gap:var(--s4);margin-bottom:var(--s7);align-content:start}
.split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--s8);align-items:start}
.split>.sec-head{position:sticky;top:110px;margin-bottom:0}
@media (max-width:960px){.split{grid-template-columns:1fr;gap:var(--s6)}.split>.sec-head{position:static}}
.page-hero{padding-top:var(--s8)}
.page-hero .wrap{display:grid;gap:var(--s5)}
.subnav{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.subnav a{font:500 14px/1 var(--mono);padding:10px 12px;border:1px solid var(--rule);border-radius:var(--r);color:var(--ink);text-decoration:none;background:var(--sheet)}
.subnav a:hover{border-color:var(--stamp);color:var(--stamp)}

/* ---------- reveal ---------- */
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* ---------- hero ---------- */
.hero{padding-top:var(--s8)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:var(--s8);align-items:center}
@media (max-width:1000px){.hero-grid{grid-template-columns:1fr;gap:var(--s7)}}
.hero-copy{display:grid;gap:var(--s5)}
.actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s2)}
.facts{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);list-style:none;margin:var(--s2) 0 0;padding:0;font:500 13.5px/1.4 var(--mono);color:var(--ink-2)}
.facts li::before{content:"✓";color:var(--ok);margin-right:8px;font-weight:600}
.hero .reveal:nth-child(2){transition-delay:.06s}.hero .reveal:nth-child(3){transition-delay:.12s}.hero .reveal:nth-child(4){transition-delay:.18s}.hero .reveal:nth-child(5){transition-delay:.24s}

/* ---------- case sheet ---------- */
.sheet{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r)}
.case{position:relative;overflow:hidden}
.case-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s2) var(--s4);padding:var(--s3) var(--s5);border-bottom:1px solid var(--rule);font:500 13px/1.5 var(--mono);color:var(--ink-2)}
.case-head strong{color:var(--ink);font-weight:600}
.case-count{transition:color .3s}
.claims{list-style:none;margin:0;padding:0}
.claim{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s3) var(--s5);align-items:start;padding:var(--s4) var(--s5);border-bottom:1px solid var(--rule);transition:background .3s}
.claim:last-child{border-bottom:0}
.claim p{font-size:16px;line-height:1.55}
.claim .tags{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap;min-height:24px}
.claim.is-bad .x{text-decoration:line-through;text-decoration-color:var(--bad);text-decoration-thickness:1.5px}
.case-foot{padding:var(--s4) var(--s5);border-top:1px solid var(--rule);font-size:15px;display:grid;gap:6px}
.rec-note{color:var(--bad);font-weight:600}
.case.verified .rec-text{text-decoration:line-through;text-decoration-color:var(--ink-2);color:var(--ink-2)}
.case-note{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);margin-top:var(--s3);font:500 12px/1.4 var(--mono);color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em}
.replay{border:0;background:none;padding:4px 0;font:600 12px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--stamp);cursor:pointer}
@media (max-width:520px){.claim{grid-template-columns:1fr}.claim .tags{justify-content:flex-start}}
.chip{display:inline-flex;align-items:center;font:600 11.5px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;padding:5px 7px;border:1.5px solid currentColor;border-radius:var(--r-chip);white-space:nowrap}
.chip.ok{color:var(--ok);background:var(--ok-soft)}
.chip.bad{color:var(--bad);background:var(--bad-soft)}
.chip.warn{color:var(--warn);background:var(--warn-soft)}
.chip.pend{color:var(--stamp);background:var(--stamp-soft)}
.chip.gray{color:var(--gray);background:var(--gray-soft)}
.e{display:inline-flex;font:600 12px/1 var(--mono);color:var(--stamp);background:var(--stamp-soft);padding:5px 6px;border-radius:var(--r-chip)}
.ent{font-family:var(--mono);font-size:.9em;background:var(--paper);padding:1px 4px;border-radius:2px}

/* hero animation states (only when JS runs the sequence) */
.case .scan{position:absolute;left:0;right:0;top:0;height:64px;pointer-events:none;opacity:0;background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--stamp) 14%,transparent) 70%,var(--stamp) 70%,var(--stamp) 72%,transparent 72%)}
.case.scanning .scan{opacity:1}
.case.pre .tags>*{opacity:0;transform:scale(1.8) rotate(-6deg)}
.case.pre .claim.is-bad .x{text-decoration-color:transparent}
.case.pre .case-foot{opacity:0}
.case .tags>*{transition:opacity .25s,transform .35s cubic-bezier(.2,1.4,.4,1)}
.case .claim.stamped .tags>*{opacity:1;transform:none}
.case .claim.stamped.is-bad .x{text-decoration-color:var(--bad);transition:text-decoration-color .4s .2s}
.case .claim.stamped[data-status="bad"]{background:color-mix(in srgb,var(--bad-soft) 45%,transparent)}
.case .case-foot{transition:opacity .4s}
.case .claim p.typing::after{content:"▍";color:var(--stamp);margin-left:1px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* ---------- integrations band ---------- */
.band{margin-top:var(--s8);border-block:1px solid var(--rule);background:var(--paper-2)}
.integrations{display:grid;grid-template-columns:auto 1fr;gap:var(--s3) var(--s7);align-items:center;padding-block:var(--s5)}
.int-rows{display:grid;gap:6px;font-size:15.5px}
.int-rows em{font-style:normal;font:600 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--stamp);border:1px solid currentColor;border-radius:3px;padding:3px 5px;margin-left:4px;vertical-align:2px}
.int-k{display:inline-block;min-width:44px;font:600 12px/1 var(--mono);color:var(--ink-2);letter-spacing:.06em}
@media (max-width:820px){.integrations{grid-template-columns:1fr}}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.stat{padding:var(--s5) var(--s5) 0 0}
.stat+.stat{padding-left:var(--s5);border-left:1px solid var(--rule)}
.stat b{display:block;font:700 clamp(48px,6vw,80px)/1 var(--sans);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.stat span{display:block;margin-top:var(--s3);color:var(--ink-2);font-size:16px;max-width:26ch}
@media (max-width:720px){.stats{grid-template-columns:1fr}.stat,.stat+.stat{padding:var(--s5) 0;border-left:0;border-bottom:1px solid var(--rule)}}
.source{margin-top:var(--s5);font-size:14px;color:var(--ink-2);max-width:80ch}

/* ---------- three checks ---------- */
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.three-item{display:grid;gap:var(--s3);align-content:start;padding:var(--s5) var(--s5) var(--s6) 0;color:var(--ink);text-decoration:none;position:relative}
.three-item+.three-item{padding-left:var(--s5);border-left:1px solid var(--rule)}
.three-item::after{content:"";position:absolute;left:0;right:0;top:-1px;height:3px;background:var(--stamp);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.three-item+.three-item::after{left:-1px}
.three-item:hover::after,.three-item:focus-visible::after{transform:scaleX(1)}
.three-item .n{font:600 14px/1 var(--mono);color:var(--stamp)}
.three-item p{color:var(--ink-2)}
.more{font-weight:600;color:var(--stamp);font-size:15px;margin-top:var(--s2)}
.more span{display:inline-block;transition:transform .2s var(--ease)}
.three-item:hover .more span{transform:translateX(4px)}
@media (max-width:820px){.three{grid-template-columns:1fr}.three-item,.three-item+.three-item{padding:var(--s5) 0;border-left:0;border-bottom:1px solid var(--rule)}}

/* ---------- lint demo ---------- */
.lint{display:grid;gap:var(--s3)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--rule);overflow-x:auto}
.tabs [role=tab]{border:0;background:none;padding:12px 14px;font:600 14px/1 var(--mono);color:var(--ink-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs [role=tab] small{font:500 11px/1 var(--sans);margin-left:6px;color:var(--ink-2)}
.tabs [role=tab][aria-selected=true]{color:var(--ink);border-bottom-color:var(--stamp)}
.tabs [role=tab]:hover{color:var(--ink)}
.tabpanel{display:grid;gap:var(--s3)}
.tabpanel:not([hidden]){animation:panel .35s var(--ease)}
@keyframes panel{from{opacity:0;transform:translateY(6px)}}
pre.art{margin:0;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);padding:var(--s4) var(--s5);font:500 13.5px/1.75 var(--mono);color:var(--ink);overflow-x:auto;white-space:pre}
pre.art .dim{color:var(--ink-2);user-select:none}
.err-u{text-decoration:underline wavy var(--bad);text-underline-offset:4px;text-decoration-thickness:1.2px}
.verdict{background:var(--sheet);border:1px solid var(--rule);border-left:3px solid var(--stamp);border-radius:var(--r);padding:var(--s4) var(--s5);display:grid;gap:var(--s2);font-size:15.5px}
.v-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}
.fix{color:var(--ink-2)} .fix code{color:var(--ok)}

/* ---------- architecture ---------- */
.arch{display:grid;grid-template-columns:1fr 110px 1.2fr 110px 1fr;align-items:center;row-gap:var(--s4)}
.arch-col{border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);padding:var(--s5);height:100%}
.arch-col.core{border:1.5px solid var(--stamp);box-shadow:0 0 0 6px var(--stamp-soft)}
.arch-h{font:600 13px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-bottom:var(--s3)}
.arch-col.core .arch-h{color:var(--stamp)}
.arch-col ul{margin:0;padding:0;list-style:none;font-size:15.5px;line-height:1.85}
.arch-col .sq{display:inline-block;width:7px;height:7px;background:var(--stamp);margin-right:10px;vertical-align:2px}
.arch-link{position:relative;height:40px}
.arch-link svg{width:100%;height:40px}
.arch-link span{position:absolute;left:50%;top:-14px;transform:translateX(-50%);font:600 11px/1 var(--mono);color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em}
.wire{stroke:var(--rule);stroke-width:2;fill:none}
.pulse{stroke:var(--stamp);stroke-width:2.5;fill:none;stroke-dasharray:18 102;animation:flow 1.8s linear infinite}
.pulse.d2{animation-delay:.9s}
@keyframes flow{from{stroke-dashoffset:120}to{stroke-dashoffset:0}}
.arch-people{grid-column:3;border:1px dashed var(--rule);border-radius:var(--r);padding:var(--s4) var(--s5);text-align:center;position:relative;font-size:15.5px}
.arch-people::before{content:"";position:absolute;left:50%;top:-17px;height:16px;border-left:2px dotted var(--rule)}
.arch-people .arch-h{margin-bottom:6px}
.flow-note{margin-top:var(--s5);max-width:80ch}
@media (max-width:960px){.arch{grid-template-columns:1fr}.arch-link{height:44px}.arch-link svg{width:44px;height:44px;margin:auto;transform:rotate(90deg)}.arch-link span{left:calc(50% + 34px);top:16px;transform:none}.arch-people{grid-column:1}.arch-col.core{box-shadow:0 0 0 4px var(--stamp-soft)}}

/* ---------- audience rows ---------- */
.aud{border-top:1px solid var(--ink)}
.aud-row{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,2fr) 40px;gap:var(--s3) var(--s7);padding:var(--s6) 0;border-bottom:1px solid var(--rule);color:var(--ink);text-decoration:none;align-items:baseline;transition:padding .25s var(--ease)}
.aud-row p{color:var(--ink-2);max-width:62ch}
.aud-row .go{font-size:22px;color:var(--stamp);transition:transform .25s var(--ease)}
.aud-row:hover{padding-left:var(--s3)}
.aud-row:hover .go{transform:translateX(6px)}
@media (max-width:820px){.aud-row{grid-template-columns:1fr auto}.aud-row p{grid-column:1/-1}.aud-row .go{grid-row:1;grid-column:2}}

/* ---------- CTA ---------- */
.cta{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--s7);align-items:end;padding:var(--s7);background:var(--ink);color:var(--paper);border-radius:var(--r);position:relative;overflow:hidden}
.cta h2,.cta .label{color:var(--paper)}
.cta .label{opacity:.75}
.cta h2{margin:var(--s3) 0}
.cta .lead{color:color-mix(in srgb,var(--paper) 75%,transparent)}
.cta::after{content:"";position:absolute;right:var(--s7);top:var(--s7);width:28px;height:28px;background:var(--stamp)}
.cta-actions{display:grid;gap:var(--s4);justify-items:start}
.cta .btn-primary{background:var(--stamp);color:#fff}
@media (prefers-color-scheme:dark){.cta .btn-primary{color:var(--on-stamp)}}
.cta .link-arrow{color:var(--paper)}
@media (max-width:820px){.cta{grid-template-columns:1fr;padding:var(--s6) var(--s5)}.cta::after{right:var(--s5);top:var(--s5);width:18px;height:18px}}

/* ---------- product ---------- */
.ledger .rows{font:500 13px/1.5 var(--mono);overflow-x:auto}
.ledger .row{display:grid;grid-template-columns:80px 70px 96px minmax(220px,1fr);gap:var(--s3);padding:10px var(--s5);border-bottom:1px solid var(--rule)}
.ledger .row.hd{color:var(--ink-2);text-transform:uppercase;font-size:11.5px;letter-spacing:.05em}
.ledger .row.more{color:var(--ink-2);border-bottom:0;display:block}
.link-demo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s5);align-items:start}
.link-demo .claim{cursor:default;outline-offset:-2px}
.link-demo .claim.on{background:var(--stamp-soft)}
.link-rows{font:500 13px/1.5 var(--mono);overflow:hidden}
.lr{padding:12px var(--s4);border-bottom:1px solid var(--rule);color:var(--ink-2);transition:background .25s,color .25s,opacity .25s}
.lr:last-child{border-bottom:0}
.lr.empty{font-style:normal;color:var(--bad)}
.link-demo.active .lr{opacity:.35}
.link-demo.active .lr.hit{opacity:1;background:var(--ok-soft);color:var(--ink)}
.link-demo.active .lr.hit.empty{background:var(--bad-soft)}
@media (max-width:820px){.link-demo{grid-template-columns:1fr}}
.legend{list-style:none;margin:var(--s6) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4) var(--s5);font-size:15px;color:var(--ink-2)}
.legend li{display:grid;gap:var(--s2);justify-items:start}
@media (max-width:820px){.legend{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.legend{grid-template-columns:1fr}}
.lifecycle{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s5);position:relative}
.lifecycle::before{content:"";position:absolute;left:14px;right:14px;top:14px;height:2px;background:var(--rule)}
.lifecycle::after{content:"";position:absolute;left:14px;right:14px;top:14px;height:2px;background:var(--stamp);transform:scaleX(0);transform-origin:left;transition:transform 1.6s var(--ease)}
.lifecycle.in::after{transform:scaleX(1)}
.lifecycle li{position:relative;display:grid;gap:var(--s2);align-content:start}
.lc-n{width:30px;height:30px;display:grid;place-items:center;font:600 13px/1 var(--mono);background:var(--sheet);border:1.5px solid var(--rule);border-radius:50%;position:relative;z-index:1;margin-bottom:var(--s3);transition:border-color .3s,background .3s,color .3s}
.lifecycle.in li .lc-n{border-color:var(--stamp);color:var(--stamp)}
.lifecycle.in li:nth-child(2) .lc-n{transition-delay:.4s}.lifecycle.in li:nth-child(3) .lc-n{transition-delay:.8s}.lifecycle.in li:nth-child(4) .lc-n{transition-delay:1.2s}
.lifecycle p{color:var(--ink-2);font-size:15.5px}
@media (max-width:820px){.lifecycle{grid-template-columns:1fr}.lifecycle::before,.lifecycle::after{left:14px;right:auto;top:14px;bottom:14px;width:2px;height:auto}.lifecycle::after{transform:scaleY(0);transform-origin:top}.lifecycle.in::after{transform:scaleY(1)}.lifecycle li{padding-left:48px}.lc-n{position:absolute;left:0;top:0}}
.spec{border-top:1px solid var(--ink)}
.spec-row{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2fr);gap:var(--s3) var(--s7);padding:var(--s5) 0;border-bottom:1px solid var(--rule)}
.spec-row p{color:var(--ink-2);max-width:64ch}
@media (max-width:820px){.spec-row{grid-template-columns:1fr}}

/* ---------- trust ---------- */
.principles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--ink)}
.principles li{padding:var(--s6) var(--s6) var(--s6) 0;border-bottom:1px solid var(--rule);display:grid;gap:var(--s3);align-content:start}
.principles li:nth-child(even){padding-left:var(--s6);border-left:1px solid var(--rule)}
.principles p{color:var(--ink-2);max-width:50ch}
@media (max-width:820px){.principles{grid-template-columns:1fr}.principles li,.principles li:nth-child(even){padding:var(--s5) 0;border-left:0}}
.chain{display:grid;gap:var(--s4)}
.chain-list{list-style:none;margin:0;padding:0;display:grid;gap:0}
.blk{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);padding:var(--s4) var(--s5);display:grid;gap:6px;font:500 13px/1.55 var(--mono);position:relative;transition:border-color .3s,background .3s}
.blk+.blk{margin-top:26px}
.blk+.blk::before{content:"";position:absolute;left:28px;top:-27px;height:26px;border-left:2px solid var(--rule);transition:border-color .3s}
.blk .bh{display:flex;justify-content:space-between;gap:var(--s3);color:var(--ink-2)}
.blk .bh b{color:var(--ink)}
.blk .data{color:var(--ink);font-family:var(--sans);font-size:15px}
.blk .hash{color:var(--ink-2);word-break:break-all}
.blk .hash i{font-style:normal;color:var(--ok)}
.blk.tampered{border-color:var(--warn);background:color-mix(in srgb,var(--warn-soft) 50%,var(--sheet))}
.blk.broken{border-color:var(--bad)}
.blk.broken::before{border-left-color:var(--bad)!important;border-left-style:dashed!important}
.blk.broken .hash i{color:var(--bad)}
.blk .data mark{background:var(--warn-soft);color:var(--warn);padding:0 3px;border-radius:2px}
.chain-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3)}
.chain-status{font:600 13px/1.4 var(--mono)}
.chain-status.ok{color:var(--ok)} .chain-status.bad{color:var(--bad)}
.disclose{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--s6);padding:var(--s6);align-items:center}
.disclose h2{margin:var(--s3) 0}
.disclose p{color:var(--ink-2);max-width:56ch}
@media (max-width:820px){.disclose{grid-template-columns:1fr;padding:var(--s5)}}

/* ---------- use cases ---------- */
.uc{display:grid;gap:var(--s6);border-top:1px solid var(--ink);padding-top:var(--s5)}
.uc-head{display:grid;gap:var(--s3)}
.uc-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6)}
.uc-body>div{display:grid;gap:var(--s2);align-content:start}
.uc-body h3{font:600 13px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--stamp)}
.uc-body p{color:var(--ink-2)}
@media (max-width:900px){.uc-body{grid-template-columns:1fr;gap:var(--s5)}}
.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border-top:1px solid var(--ink)}
.role{padding:var(--s5) var(--s5) var(--s5) 0;border-bottom:1px solid var(--rule);display:grid;gap:var(--s2);align-content:start}
.role p:last-child{color:var(--ink-2);font-size:16px}
.role-k{font:600 13px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink)}

/* ---------- company ---------- */
.commit{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}
.commit-col{padding:var(--s5) var(--s6) var(--s5) 0}
.commit-col+.commit-col{padding-left:var(--s6);border-left:1px solid var(--rule)}
.commit-h{font:600 13px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--s3)}
.commit-h.will{color:var(--ok)} .commit-h.wont{color:var(--bad)}
.commit ul{margin:0;padding:0;list-style:none}
.commit li{padding:var(--s3) 0;border-bottom:1px solid var(--rule)}
@media (max-width:820px){.commit{grid-template-columns:1fr}.commit-col,.commit-col+.commit-col{padding:var(--s5) 0;border-left:0}}
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s5)}
.person{display:grid;grid-template-columns:72px 1fr;gap:var(--s5);padding:var(--s5)}
.person>div{display:grid;gap:6px;align-content:start}
.avatar{width:72px;height:72px;border-radius:var(--r);background:var(--ink);display:grid;place-items:center;font:600 24px var(--mono);color:var(--paper);position:relative}.avatar::after{content:"";position:absolute;right:-4px;top:-4px;width:14px;height:14px;background:var(--stamp)}
.person.todo{border-style:dashed;border-color:var(--warn)}

/* ---------- early access ---------- */
.ea{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s8);align-items:start}
@media (max-width:960px){.ea{grid-template-columns:1fr;gap:var(--s6)}}
.ea-info{display:grid;gap:var(--s6)}
.ea-block{display:grid;gap:var(--s3)}
.ea-block p{color:var(--ink-2)}
.ticks{list-style:none;margin:0;padding:0}
.ticks li{padding:10px 0 10px 24px;border-bottom:1px solid var(--rule);position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:19px;width:8px;height:8px;background:var(--stamp)}
.steps-mini{margin:0;padding:0;list-style:none;counter-reset:s}
.steps-mini li{counter-increment:s;padding:10px 0 10px 36px;position:relative;border-bottom:1px solid var(--rule);color:var(--ink-2)}
.steps-mini li b{color:var(--ink)}
.steps-mini li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:11px;font:600 13px/1.4 var(--mono);color:var(--stamp)}
.form{padding:var(--s6);display:grid;gap:var(--s4);position:sticky;top:96px}
@media (max-width:960px){.form{position:static;padding:var(--s5)}}
.field{display:grid;gap:6px;border:0;margin:0;padding:0;min-width:0}
.field.two{grid-template-columns:1fr 1fr;gap:var(--s3)}
.field.two>div{display:grid;gap:6px}
@media (max-width:520px){.field.two{grid-template-columns:1fr}}
.field label,.field legend{font-weight:600;font-size:15px;padding:0}
.opt{font-weight:400;color:var(--ink-2);font-size:13px}
input,textarea{width:100%;font:400 16px/1.4 var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:11px 12px;transition:border-color .15s,background .15s}
input:hover,textarea:hover{border-color:var(--ink-2)}
input:focus,textarea:focus{outline:2px solid var(--stamp);outline-offset:0;border-color:var(--stamp);background:var(--sheet)}
input[aria-invalid=true]{border-color:var(--bad)}
.choices{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:4px}
.choices label{display:inline-flex;align-items:center;gap:8px;font-weight:400;font-size:15px;padding:8px 12px;border:1px solid var(--rule);border-radius:var(--r);cursor:pointer;background:var(--paper)}
.choices label:has(input:checked){border-color:var(--stamp);background:var(--stamp-soft)}
.choices input{width:auto;accent-color:var(--stamp);margin:0}
.form-error{color:var(--bad);font-weight:600;font-size:15px}
.form-done{color:var(--ok);font-weight:600;font-size:15px}
.form .btn{justify-self:start}
.faq{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;padding:var(--s5) 40px var(--s5) 0;font-weight:600;font-size:18px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font:400 26px/1 var(--mono);color:var(--stamp);transition:transform .25s var(--ease)}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{padding:0 0 var(--s5);color:var(--ink-2);max-width:64ch}

/* ---------- plain pages ---------- */
.doc h2{font-size:22px;margin-top:var(--s5)}
.doc ul{max-width:64ch;padding-left:20px;margin:0}
.doc li+li{margin-top:var(--s2)}
.nf{margin-top:var(--s5)}
.nf p{padding:var(--s5)}

/* ---------- footer ---------- */
.foot{margin-top:var(--s9);border-top:1px solid var(--rule);background:var(--paper-2)}
.foot-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--s7);padding-block:var(--s7)}
.foot-brand{display:grid;gap:var(--s3);align-content:start}
.foot .brand svg{height:24px}
.foot-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}
.foot-h{font:600 12px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:var(--s3)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2);font-size:15px}
.foot ul a{color:var(--ink);text-decoration:none}
.foot ul a:hover{color:var(--stamp);text-decoration:underline}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s3);padding-block:var(--s5);border-top:1px solid var(--rule)}
.foot-bottom a{color:var(--ink-2)}
@media (max-width:820px){.foot-top{grid-template-columns:1fr}.foot-cols{grid-template-columns:1fr 1fr}}
.split>*,.hero-grid>*,.ea>*,.link-demo>*{min-width:0}
[hidden]{display:none!important}
.team{max-width:820px}
.team{grid-template-columns:1fr}
@media (max-width:520px){.person{grid-template-columns:1fr;gap:var(--s4)}.avatar{width:56px;height:56px;font-size:19px}}
/* founder card v2: portrait leads */
.team{max-width:900px}
.person{grid-template-columns:minmax(220px,320px) 1fr;gap:0;padding:0;overflow:hidden;align-items:stretch}
.portrait{aspect-ratio:4/5;background:var(--ink);display:grid;place-items:center;position:relative;overflow:hidden}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.portrait span{font:600 clamp(48px,7vw,84px)/1 var(--mono);color:var(--paper);letter-spacing:-.02em}
.portrait::after{content:"";position:absolute;right:20px;top:20px;width:22px;height:22px;background:var(--stamp)}
.person-body{display:grid;gap:var(--s3);align-content:end;padding:var(--s6)}
.person-body h3{font-size:clamp(28px,3vw,36px);letter-spacing:-.02em}
.person-body p{color:var(--ink-2);max-width:42ch}
.person-body .role-k{color:var(--stamp)}
@media (max-width:640px){.person{grid-template-columns:1fr}.portrait{aspect-ratio:1/1}.person-body{padding:var(--s5)}}
.person>.portrait{display:grid;place-items:center;align-content:center;background:#14202b}
.person>.portrait span{color:#eef1f4}
.person>.portrait::after{background:#5b84ff}
.person>.person-body{gap:var(--s3);align-content:center;padding:var(--s7) var(--s6)}
@media (max-width:640px){.person>.person-body{padding:var(--s5)}}
.person>.portrait img{object-position:50% 20%}

/* ---------- ask your SOC ---------- */
.ask{display:grid}
.ask-qs{display:flex;flex-wrap:wrap;gap:var(--s2);padding:var(--s4) var(--s5);border-bottom:1px solid var(--rule)}
.ask-q{border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:999px;padding:8px 14px;font:400 14.5px/1.35 var(--sans);text-align:left;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.ask-q:hover{border-color:var(--ink-2)}
.ask-q[aria-pressed=true]{background:var(--stamp-soft);border-color:var(--stamp);color:var(--ink)}
.ask-a{padding:var(--s5);display:grid;gap:var(--s4);min-height:220px;align-content:start}
.ask-text{font-size:17px;line-height:1.6}
.ask-text.typing::after{content:"▍";color:var(--stamp);margin-left:1px;animation:blink 1s steps(1) infinite}
.ask-src{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2);font-size:14.5px;color:var(--ink-2)}
.ask-src li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);padding-top:var(--s2);border-top:1px dashed var(--rule);transition:opacity .3s,transform .3s var(--ease)}
.ask-src li.pre{opacity:0;transform:translateY(4px)}
.ask-foot{padding:var(--s3) var(--s5) var(--s4);border-top:1px solid var(--rule);font-size:14px;color:var(--ink-2)}
.ask .case-note{padding:0 var(--s5) var(--s3);margin-top:0}
.split .ticks{margin-top:var(--s2)}
