:root{
  color-scheme: only light;
  --paper:#EDEBE4; --ink:#1A1814; --graphite:#6E6A60; --ochre:#BC7A18;
  --rule:rgba(26,24,20,.20); --rule-soft:rgba(26,24,20,.10);
  --gutter:clamp(20px,5vw,72px); --maxw:1460px;
  --d-bg:#141210; --d-fg:#F0EEE7; --d-mid:#A8A296; --d-hair2:rgba(240,238,231,.13);
}
@media (prefers-color-scheme: dark){
  :root{--paper:#EDEBE4;--ink:#1A1814;--graphite:#6E6A60;--ochre:#BC7A18;
    --rule:rgba(26,24,20,.20);--rule-soft:rgba(26,24,20,.10);}
  html,body{background:#EDEBE4 !important;color:#1A1814 !important;}
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;background:var(--paper);color:var(--ink);}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Newsreader",Georgia,serif;font-weight:300;font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;}
/* width/height:100% are load-bearing: an SVG is a replaced element, so
   inset:0 alone leaves it at the 300x150 default viewport — the grain
   shipped as a corner patch, not the full-viewport texture (found 2026-08-08). */
.grain{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.05;mix-blend-mode:multiply;}
.wrap{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);}
main{position:relative;z-index:1;}

.stamp{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;border:1px solid var(--rule);padding:5px 9px 4px;display:inline-block;
  line-height:1;white-space:nowrap;color:var(--ink);background:transparent;text-decoration:none;
  transition:background .25s,color .25s,border-color .25s;}
.stamp--ochre{border-color:var(--ochre);color:var(--ochre);}
.stamp--solid{background:var(--ink);color:var(--paper);border-color:var(--ink);}
a.stamp--solid:hover{background:transparent;color:var(--ink);}
a.stamp:hover{border-color:var(--ink);}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:.88em;letter-spacing:-.005em;}
.tag{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--graphite);}
.cite{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--graphite);display:block;margin-top:6px;}
.move{color:var(--ochre);}

.flash{border:1px solid var(--rule);padding:12px 16px;margin:18px auto;max-width:var(--maxw);
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink);background:transparent;}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

.head{position:sticky;top:0;z-index:40;background:var(--d-bg);border-bottom:1px solid rgba(240,238,231,.12);
  transition:background .4s,border-color .4s;}
.head[data-past="true"]{background:rgba(237,235,228,.94);border-bottom-color:var(--rule-soft);}
@supports (backdrop-filter:blur(1px)){.head{backdrop-filter:blur(7px);}}
.head__in{max-width:var(--maxw);margin:0 auto;padding:13px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px;}
.lockup{display:flex;}
/* The seal: EG/ON stacked in a near-square — Schiele's signature-stamp form.
   (Amended 2026-08-06: the wide word-in-a-box read as Pace's construction.)
   Right padding is small because the trailing letterspace after G/N carries
   ~.30em of optical air; left padding balances it. */
.logo{font-family:"IBM Plex Mono",ui-monospace,monospace;font-weight:500;font-size:11px;letter-spacing:.30em;text-transform:uppercase;
  border:1px solid var(--d-fg);padding:5px 2px 4px 7px;line-height:1.28;display:inline-block;text-align:center;
  color:var(--d-fg);text-decoration:none;transition:color .4s,border-color .4s;}
.logo span{display:block;}
.head[data-past="true"] .logo{color:var(--ink);border-color:var(--ink);}
.lockup__slot{border:1px solid rgba(240,238,231,.28);border-left:0;padding:6px 10px 5px;display:none;align-items:center;
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--d-mid);}
.lockup[data-cobrand="true"] .lockup__slot{display:flex;}
.nav{display:flex;gap:24px;}
.nav a{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--d-mid);text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent;transition:color .25s,border-color .25s;}
.head[data-past="true"] .nav a{color:var(--graphite);}
.nav a:hover{color:var(--ochre);border-bottom-color:var(--ochre);}
/* ≤1000px: the nav wraps to its own row under the seal — hiding it left
   mobile with no route to the persona pages except the footer. */
@media(max-width:1000px){
  .head__in{flex-wrap:wrap;row-gap:0;}
  .nav{order:3;flex-basis:100%;flex-wrap:wrap;gap:9px 16px;
    margin-top:11px;padding-top:10px;border-top:1px solid rgba(240,238,231,.12);}
  .head[data-past="true"] .nav{border-top-color:var(--rule-soft);}
  .nav a{font-size:10px;}
}
.head__actions{display:flex;align-items:center;gap:18px;}
.head__signin{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--d-mid);text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent;transition:color .25s,border-color .25s;}
.head[data-past="true"] .head__signin{color:var(--graphite);}
.head__signin:hover{color:var(--ochre);border-bottom-color:var(--ochre);}
.head .stamp{color:var(--d-fg);border-color:var(--d-fg);}
.head .stamp--solid{background:var(--d-fg);color:var(--d-bg);}
.head[data-past="true"] .stamp--solid{background:var(--ink);color:var(--paper);border-color:var(--ink);}

/* ---------- HERO = the dark room ---------- */
.hero{background:var(--d-bg);color:var(--d-fg);position:relative;z-index:1;}
.hero__in{max-width:var(--maxw);margin:0 auto;padding:clamp(20px,2.6vh,38px) var(--gutter) 0;
  display:grid;grid-template-columns:minmax(0,330px) minmax(0,1.75fr);gap:clamp(18px,3vw,50px);align-items:center;}
@media(max-width:1000px){.hero__in{grid-template-columns:1fr;gap:22px;}}
h1{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(44px,5.4vw,80px);
  line-height:.98;letter-spacing:-.026em;margin:0 0 18px;color:var(--ink);max-width:11ch;}
.hero h1{color:var(--d-fg);}
h1 em{font-style:italic;}
.hero__line{font-size:16.5px;line-height:1.55;color:var(--d-mid);max-width:44ch;margin:0 0 20px;}
/* The one licensed ochre phrase (Frank, 2026-08-06): the subline's closing
   clause — the page's thesis. The exception does not travel. */
.hero__deserve{color:var(--ochre);}
.hero__cta{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:clamp(20px,3vh,30px);}
.hero__cta small{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--d-mid);}
.hero .stamp{color:var(--d-fg);border-color:rgba(240,238,231,.34);}
.hero .stamp--solid{background:var(--d-fg);color:var(--d-bg);border-color:var(--d-fg);}
.hero a.stamp--solid:hover{background:transparent;color:var(--d-fg);}

#gwrap{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;margin:0;}
#gwrap.dragging{cursor:grabbing;}
#gwrap svg{display:block;width:100%;height:auto;}
/* The generic outline renders around the plate <g>'s full (transform-scaled,
   text-included) bounding box — inconsistent across browsers and often
   mis-sized here. sphere.js wires DOM focus into the plate's own ochre
   frame instead (a purpose-built indicator that always renders correctly),
   so the generic outline is redundant on plates specifically; #gwrap itself
   (tabindex, role=application) keeps the generic outline on its own focus. */
#gwrap g:focus-visible{outline:none;}


/* ---------- the readout rail: fixed geometry, the reading swaps in place ---------- */
.hero__rail{max-width:var(--maxw);margin:0 auto;padding:12px var(--gutter) clamp(22px,3.2vh,38px);
  display:grid;grid-template-columns:1.15fr 1fr .8fr 1.15fr;gap:clamp(16px,2.6vw,44px);transition:opacity .22s ease;}
.rail__c{border-top:1px solid var(--d-fg);padding-top:8px;}
.rail__k{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--d-mid);display:block;margin-bottom:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rail__v{height:104px;overflow:hidden;}
.rail__v svg{display:block;width:100%;height:auto;max-height:104px;}
.rail__quiet{font-style:italic;font-size:13.5px;color:var(--d-mid);}
.rd__row--ghost{opacity:.55;}
.rail__live{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--ochre);
  vertical-align:2px;margin-left:4px;animation:railLive 2.6s ease-in-out infinite;}
@keyframes railLive{0%,100%{opacity:1;}50%{opacity:.3;}}
.rail__v--fade{-webkit-mask-image:linear-gradient(180deg,#000 68%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 68%,transparent 100%);}
.rail__v--id{display:flex;flex-direction:column;}
.rail__more{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--d-mid);text-decoration:none;display:inline-block;margin-top:auto;padding-top:8px;}
.rail__more:hover{color:var(--ochre);}

.hero__rail .rd__n{font-size:21px;margin:0 0 1px;}
.hero__rail .rd__w{margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hero__rail .rd__row{padding:2px 0;font-size:13.5px;}
@media(max-width:880px){.hero__rail{grid-template-columns:1fr 1fr;}
  .rail__c--mkt{display:none;}}

.rd{border-top:1px solid var(--d-fg);padding-top:12px;transition:opacity .22s ease;}
.rd__n{font-family:"Instrument Serif",Georgia,serif;font-size:26px;line-height:1.05;margin:0 0 2px;letter-spacing:-.018em;color:var(--d-fg);}
.rd__n a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;}
.rd__n a:hover{border-bottom-color:var(--ochre);}
.rd__w{font-style:italic;font-size:14px;color:var(--d-mid);margin:0 0 4px;line-height:1.3;}
.rd__top{display:flex;align-items:baseline;justify-content:space-between;gap:14px;}
.rd__t{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ochre);white-space:nowrap;}
.rd__lbl{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--d-mid);display:block;margin:11px 0 6px;border-top:1px solid var(--d-hair2);padding-top:7px;}
.rd__row{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:3px 0;font-size:14.5px;color:var(--d-fg);line-height:1.3;}
.rd__near{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--d-mid);white-space:nowrap;}
.rd__near.is-above{color:var(--ochre);}
.rd__line svg{display:block;width:100%;height:auto;}
.hero__foot{grid-column:1/-1;border-top:1px solid var(--d-hair2);margin-top:clamp(14px,2.4vh,26px);padding-top:12px;
  display:flex;flex-wrap:wrap;gap:8px 30px;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--d-mid);}
.hero__foot b{font-weight:400;color:var(--d-fg);font-variant-numeric:tabular-nums;}

.sec{padding:clamp(66px,10.5vh,132px) 0 0;}
.sec__head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;
  border-bottom:1px solid var(--ink);padding-bottom:11px;margin-bottom:clamp(22px,4vh,40px);}
/* ≤640px: let the tag drop under the title instead of squeezing it. */
@media(max-width:640px){.sec__head{flex-wrap:wrap;gap:6px 24px;}.sec__head .tag{width:100%;}}
.sec__title{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(23px,2.5vw,32px);letter-spacing:-.015em;margin:0;color:var(--ink);}

.tx{display:grid;grid-template-columns:172px minmax(0,66ch);gap:clamp(18px,3vw,44px);align-items:start;}
.tx__tools{display:grid;gap:6px;justify-items:start;position:sticky;top:76px;}
.tx__tools .stamp{opacity:0;transform:translateX(-6px);}
.tx__tools .stamp.is-in{opacity:1;transform:none;transition:opacity .4s ease,transform .4s ease;}
.tx__body{border-left:1px solid var(--rule);padding-left:clamp(18px,2.6vw,34px);}
.tx__q{font-family:"Instrument Serif",Georgia,serif;font-size:clamp(21px,2.2vw,27px);line-height:1.2;margin:0 0 18px;letter-spacing:-.01em;color:var(--ink);}
.tx__a p{margin:0 0 13px;font-size:16.5px;line-height:1.6;color:var(--ink);}
.tx__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:9px 20px;margin:18px 0;}
.tx__grid div{border-top:1px solid var(--rule-soft);padding-top:6px;font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--graphite);}
.tx__grid b{display:block;font-weight:400;color:var(--ink);font-size:16px;letter-spacing:0;font-variant-numeric:tabular-nums;margin-top:3px;}
.tx__foot{margin-top:20px;display:flex;flex-wrap:wrap;gap:7px;}
@media(max-width:880px){.tx{grid-template-columns:1fr;}
  .tx__tools{position:static;grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto;padding-bottom:6px;}
  .tx__body{border-left:0;padding-left:0;}}

.doc{display:grid;grid-template-columns:152px minmax(0,62ch);gap:clamp(18px,3vw,48px);align-items:start;}
.doc__meta{display:grid;gap:7px;justify-items:start;}
.doc__body{border-left:1px solid var(--rule);padding-left:clamp(18px,2.6vw,36px);}
.doc__body p{margin:0 0 15px;font-size:18px;line-height:1.66;color:var(--ink);}
.doc__body p:first-of-type::first-letter{font-family:"Instrument Serif",Georgia,serif;font-size:3.1em;line-height:.86;float:left;padding:4px 9px 0 0;}
@media(max-width:880px){.doc{grid-template-columns:1fr;}.doc__body{border-left:0;padding-left:0;}}

.index{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));
  gap:clamp(28px,3.4vw,46px) clamp(16px,2vw,26px);align-items:end;}
.cell{background:transparent;border:0;padding:0;font:inherit;color:var(--ink);text-align:left;display:block;text-decoration:none;}
.cell__rk{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9.5px;letter-spacing:.15em;color:var(--graphite);
  display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;font-variant-numeric:tabular-nums;}
.cell__img{position:relative;line-height:0;background:#221F1A;overflow:hidden;
  --ov:rgba(242,240,233,.94);--ov-faint:rgba(242,240,233,.30);}
.cell__img img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;}
.ov{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 0 2.5px rgba(0,0,0,.6));}
.ov *{vector-effect:non-scaling-stroke;}
.ov .s-main{stroke:var(--ov);fill:none;} .ov .s-faint{stroke:var(--ov-faint);fill:none;}
.ov .f-dot{fill:var(--ov);} .ov .f-peak{fill:var(--ochre);}
.ov .f-hollow{fill:none;stroke:var(--ov);}
.cell__ft{margin-top:9px;border-top:1px solid var(--rule-soft);padding-top:7px;}
.cell__nm{font-size:14.5px;line-height:1.18;display:block;color:var(--ink);}
.cell__wk{font-style:italic;font-size:12.5px;color:var(--graphite);display:block;margin-top:2px;line-height:1.25;min-height:1.25em;}
.cell__sc{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;color:var(--graphite);
  font-variant-numeric:tabular-nums;display:flex;justify-content:space-between;margin-top:5px;letter-spacing:.06em;}
.cell:hover .cell__nm{border-bottom:1px solid var(--ochre);}
.cell:focus-visible{outline:1px solid var(--ochre);outline-offset:6px;}


/* ---------- lede: a section's one-paragraph opening ---------- */
.lede{font-size:clamp(17px,1.5vw,20px);line-height:1.55;color:var(--ink);max-width:66ch;margin:0 0 clamp(24px,4vh,40px);}

/* ---------- io: the core loop — what goes in / what comes back ---------- */
.io{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4.5vw,72px);position:relative;}
.io::before{content:"";position:absolute;left:50%;top:4px;bottom:4px;width:1px;background:var(--rule-soft);}
.io__k{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.19em;text-transform:uppercase;color:var(--graphite);display:block;margin-bottom:13px;}
.io__item{border-top:1px solid var(--rule-soft);padding:11px 0 13px;}
.io__col--out .io__item{border-top-color:var(--rule);}
.io__h{font-family:"Instrument Serif",Georgia,serif;font-size:20px;line-height:1.15;margin:0 0 4px;color:var(--ink);}
.io__b{font-size:15px;color:var(--graphite);margin:0;line-height:1.5;max-width:42ch;}
@media(max-width:880px){.io{grid-template-columns:1fr;}.io::before{display:none;}}

/* ---------- thesis: a quoted collecting-thesis excerpt ---------- */
.thesis{margin:0;padding:18px 22px 14px;}
.thesis p{font-style:italic;font-size:17px;line-height:1.62;color:var(--ink);margin:0 0 6px;}



/* ---------- subpage hero head + cited stat strip ---------- */
.page-h1{font-size:clamp(32px,4.2vw,56px);line-height:1.04;letter-spacing:-.018em;max-width:24ch;}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,44px);margin-top:clamp(24px,3.6vh,36px);}
.stats>div{border-top:1px solid var(--ink);padding-top:10px;}
.stats b{font-family:"IBM Plex Mono",ui-monospace,monospace;font-weight:500;font-size:clamp(22px,2.4vw,30px);
  letter-spacing:-.01em;color:var(--ink);display:block;font-variant-numeric:tabular-nums;}
.stats span{font-size:14.5px;color:var(--graphite);display:block;margin-top:3px;line-height:1.45;}
@media(max-width:880px){.stats{grid-template-columns:1fr;}}

.lede--tight{font-size:17px;margin-bottom:clamp(20px,3vh,30px);}
.sec__note{font-size:15px;color:var(--graphite);margin:clamp(16px,2.4vh,24px) 0 0;max-width:72ch;}

/* ---------- flow: corpus → concepts → the card ---------- */
.flow{display:grid;grid-template-columns:118px 56px minmax(0,1fr) 56px minmax(280px,380px);
  gap:0 clamp(6px,1vw,14px);align-items:center;}
.flow__src{position:relative;height:220px;}
.flow__ring{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:96px;height:96px;
  border:1px solid var(--rule);border-radius:50%;}
.flow__plate{position:absolute;width:28px;height:28px;border:1px solid var(--ink);overflow:hidden;
  background:repeating-linear-gradient(45deg,transparent 0 3px,var(--rule) 3px 4px);}
.flow__plate svg{display:block;width:100%;height:100%;}
.flow__plate--a{left:22px;top:56px;}
.flow__plate--b{left:64px;top:88px;width:20px;height:20px;}
.flow__plate--c{left:38px;top:126px;width:16px;height:16px;}
.flow__srck{position:absolute;left:0;bottom:8px;font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--graphite);}
.flow__lines{display:block;width:100%;height:220px;}
.flow__lines path{fill:none;stroke:var(--ink);stroke-opacity:.32;stroke-width:1;vector-effect:non-scaling-stroke;}
.flow__in .io__item{padding:9px 0 11px;}
.flow__in .io__b{font-size:14px;max-width:none;}
.flow__in .io__h{font-size:19px;}
.flow__card{border:1px solid var(--ink);padding:16px 18px 14px;}
.flow__out{display:flex;flex-direction:column;}
.flow__you{border:1px dashed var(--rule);padding:12px 18px 10px;margin-top:11px;position:relative;}
.flow__you::before{content:"";position:absolute;top:-12px;left:26px;width:1px;height:11px;background:var(--rule);}
.flow__yk{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--graphite);display:block;margin-bottom:4px;}
.flow__you p{margin:0;font-size:14px;line-height:1.5;color:var(--ink);}

.flow__stamp{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;border-bottom:1px solid var(--rule);display:block;padding-bottom:8px;margin-bottom:10px;color:var(--ink);}
.flow__row{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:6px 0;font-size:14px;line-height:1.45;color:var(--ink);}
.flow__row + .flow__row{border-top:1px solid var(--rule-soft);}
.flow__key{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--graphite);padding-top:3px;}
@media(max-width:1000px){.flow{grid-template-columns:1fr;gap:18px;}
  .flow__src,.flow__lines{display:none;}
  .flow__out{max-width:480px;}}


/* ---------- ex: the specimen treatment — every example artifact shares it ---------- */
.ex{border:1px solid var(--rule);background:rgba(26,24,20,.026);}


.caps{display:grid;grid-template-columns:repeat(3,1fr);gap:0 clamp(20px,3vw,48px);margin-top:clamp(22px,3.4vh,34px);}
@media(max-width:880px){.caps{grid-template-columns:1fr;}}

/* ---------- convo: an onboarding fragment ---------- */
.convo{margin:0 0 clamp(20px,3vh,28px);padding:20px 24px 12px;}
.convo__turn{margin:0 0 14px;font-size:16.5px;line-height:1.55;color:var(--ink);}
.convo__turn--you{color:var(--graphite);font-style:italic;}
.convo__who{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--graphite);display:block;margin-bottom:2px;font-style:normal;}


.convo__up{display:flex;align-items:center;gap:12px;margin:0 0 14px;flex-wrap:wrap;}
.convo__up .convo__who{display:inline;margin:0 2px 0 0;}
.convo__plates{display:inline-flex;gap:8px;align-items:center;}
.convo__plates span{width:36px;height:36px;border:1px solid var(--ink);display:inline-block;overflow:hidden;
  background:repeating-linear-gradient(45deg,transparent 0 3px,var(--rule) 3px 4px);}
.convo__plates span svg{display:block;width:100%;height:100%;}
.convo__plates span:nth-child(1){transform:rotate(-2.5deg);}
.convo__plates span:nth-child(2){transform:rotate(1.5deg);width:32px;height:32px;}
.convo__plates span:nth-child(3){transform:rotate(-1deg);width:30px;height:30px;}
.convo__cap{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--graphite);}


.duo{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:start;}
.duo__copy .lede{margin-bottom:14px;}
.duo__cta{margin-top:18px;display:flex;gap:9px;flex-wrap:wrap;}
@media(max-width:1000px){.duo{grid-template-columns:1fr;}}

/* ---------- chat: the Ask Egon panel frame ---------- */
.chat{border:1px solid var(--rule);max-width:900px;}
.chat__bar{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:10px 18px;
  border-bottom:1px solid var(--rule-soft);font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--graphite);}
.chat__flow{padding:clamp(18px,2.6vw,32px);}
.chat__acts{display:flex;flex-direction:column;gap:4px;margin:0 0 16px;}
.chat__act{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--graphite);opacity:.8;}
.chat__cursor{display:inline-block;width:7px;height:15px;background:var(--ink);opacity:.7;vertical-align:-2px;margin-left:3px;}
.chat__input{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;
  border-top:1px solid var(--rule-soft);font-style:italic;font-size:14.5px;color:var(--graphite);}
.chat__send{font-family:"IBM Plex Mono",ui-monospace,monospace;font-style:normal;font-size:14px;color:var(--graphite);}
.chat__urow{display:flex;justify-content:flex-end;margin:0 0 18px;}
.chat .tx__q{background:var(--ink);color:var(--paper);border:0;padding:12px 18px;margin:0;max-width:72%;
  font-size:clamp(16px,1.6vw,18.5px);line-height:1.5;}



/* ---------- car: the Egon 100 marquee — drifts, pauses on hover ---------- */
.car{overflow:hidden;position:relative;}
.car__track{display:flex;gap:clamp(16px,2vw,26px);width:max-content;
  animation:carDrift 55s linear infinite;}
.car:hover .car__track,.car:focus-within .car__track{animation-play-state:paused;}
@keyframes carDrift{to{transform:translateX(-50%);}}
.car .cell{width:clamp(230px,20vw,286px);flex:0 0 auto;}
@media(prefers-reduced-motion:reduce){
  .car{overflow-x:auto;}
  .car__track{animation:none;width:max-content;}
}


.paper{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,60px);align-items:start;}
.paper__doc .doc__meta{display:flex;gap:7px;margin-bottom:14px;justify-items:start;}
.paper__log{border-top:1px solid var(--ink);}
.paper .sig{display:grid;grid-template-columns:92px 1fr;gap:clamp(12px,1.6vw,20px);padding:14px 0;border-bottom:1px solid var(--rule-soft);}
.paper .sig__b{font-size:15px;line-height:1.5;margin:0;}
.paper .stand::first-letter{font-family:"Instrument Serif",Georgia,serif;font-size:3.1em;line-height:.86;
  float:left;padding:5px 10px 0 0;}
@media(max-width:1000px){.paper{grid-template-columns:1fr;}}

/* ---------- signals: editorial standfirst ---------- */
.doc__body p.stand{font-family:"Instrument Serif",Georgia,serif;font-size:clamp(19px,1.9vw,23px);line-height:1.42;letter-spacing:-.008em;}
.doc__body p.stand::first-letter{font-size:inherit;float:none;padding:0;line-height:inherit;}

/* ---------- who: open editorial audience rows ---------- */
.who{border-top:0;}
.who__row{display:grid;grid-template-columns:126px minmax(0,1fr) auto;gap:clamp(14px,2.4vw,36px);
  padding:clamp(20px,3vh,28px) 0;border-bottom:1px solid var(--rule-soft);align-items:start;}
.who__k{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.19em;
  text-transform:uppercase;color:var(--graphite);padding-top:6px;}
.who__h{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(20px,2.2vw,27px);
  line-height:1.16;letter-spacing:-.012em;margin:0 0 7px;color:var(--ink);max-width:30ch;}
.who__b{font-size:15.5px;color:var(--graphite);margin:0;line-height:1.55;max-width:68ch;}
.who__b em{color:var(--ink);}

.who__fork{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,36px);margin-top:12px;position:relative;padding-top:12px;}
.who__fork::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--rule-soft);}
.who__fork::after{content:"";position:absolute;left:50%;top:-12px;height:12px;width:1px;background:var(--rule);}
.who__branch{position:relative;}
.who__bk{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--graphite);display:block;margin-bottom:6px;}
@media(max-width:880px){.who__fork{grid-template-columns:1fr;}.who__fork::after{display:none;}}

.who__cta{display:flex;flex-direction:column;gap:8px;justify-self:end;align-self:center;align-items:stretch;}
.who__cta .stamp{text-align:center;}
@media(max-width:880px){.who__row{grid-template-columns:1fr;gap:10px;}
  .who__cta{justify-self:start;}}

.log{border-top:1px solid var(--rule-soft);}
.sig{display:grid;grid-template-columns:112px 1fr 128px;gap:clamp(14px,2.4vw,32px);align-items:start;
  padding:18px 0;border-bottom:1px solid var(--rule-soft);}
.sig__b{font-size:16.5px;line-height:1.5;margin:0;max-width:66ch;color:var(--ink);}
.sig__d{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;text-align:right;letter-spacing:.09em;
  text-transform:uppercase;color:var(--graphite);font-variant-numeric:tabular-nums;padding-top:3px;}
@media(max-width:880px){.sig{grid-template-columns:1fr;gap:9px;}.sig__d{text-align:left;}}

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.4vw,32px);}
@media(max-width:880px){.steps{grid-template-columns:1fr;}}
.step{border-top:1px solid var(--ink);padding-top:11px;}
.step__k{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9.5px;letter-spacing:.19em;text-transform:uppercase;color:var(--graphite);display:block;margin-bottom:7px;}
.step__h{font-family:"Instrument Serif",Georgia,serif;font-size:20px;line-height:1.12;margin:0 0 6px;color:var(--ink);}
.step__b{font-size:14.5px;color:var(--graphite);margin:0;line-height:1.5;max-width:34ch;}

.doors{border-top:1px solid var(--ink);}
.door{border-bottom:1px solid var(--rule);}
.door__btn{width:100%;background:transparent;border:0;padding:clamp(20px,3vh,28px) 0;cursor:pointer;
  display:grid;grid-template-columns:126px 1fr 34px;gap:clamp(14px,2.4vw,32px);align-items:baseline;text-align:left;color:var(--ink);font:inherit;}
.door__k{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.19em;text-transform:uppercase;color:var(--graphite);transition:color .25s;}
.door__h{font-family:"Instrument Serif",Georgia,serif;font-size:clamp(21px,2.4vw,30px);line-height:1.14;letter-spacing:-.012em;max-width:27ch;color:var(--ink);}
.door__x{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:15px;color:var(--graphite);justify-self:end;
  transition:transform .35s cubic-bezier(.4,0,.2,1),color .25s;}
.door__btn[aria-expanded="true"] .door__x{transform:rotate(45deg);color:var(--ochre);}
.door__btn:hover .door__k{color:var(--ink);}
.door__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.4,0,.2,1);}
.door__panel[data-open="true"]{grid-template-rows:1fr;}
.door__inner{overflow:hidden;}
.door__cols{display:grid;grid-template-columns:126px 1fr 1fr;gap:clamp(14px,2.4vw,32px);padding:0 0 clamp(24px,4vh,36px);}
.door__body{font-size:16px;color:var(--graphite);margin:0 0 18px;max-width:44ch;}
.door__body strong{font-weight:400;color:var(--ink);}
.door__list{list-style:none;margin:0;padding:0;display:grid;gap:9px;}
.door__list li{display:grid;grid-template-columns:14px 1fr;gap:10px;font-size:15.5px;line-height:1.46;color:var(--ink);}
.door__list li::before{content:"";height:1px;background:var(--ink);margin-top:11px;}
.door__specs{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px;}
@media(max-width:880px){.door__btn{grid-template-columns:1fr 30px;}
  .door__k{grid-column:1/-1;margin-bottom:6px;}.door__cols{grid-template-columns:1fr;gap:20px;}.door__spacer{display:none;}}

.degrade{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:20px 0;margin-top:26px;
  display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;}
.degrade p{margin:0;color:var(--graphite);font-size:15.5px;max-width:56ch;}


/* ---------- signals archive (/signals) ---------- */
.arch{border-top:1px solid var(--ink);}
.arch__row{display:grid;grid-template-columns:118px minmax(0,1fr) auto;gap:clamp(12px,2vw,28px);
  align-items:baseline;padding:11px 0 12px;border-bottom:1px solid var(--rule-soft);
  color:var(--ink);text-decoration:none;transition:border-color .25s;}
.arch__row:hover{border-bottom-color:var(--ink);}
.arch__d{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--graphite);}
.arch__h{font-size:15.5px;line-height:1.5;}
.arch__n{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9.5px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--graphite);white-space:nowrap;}
@media(max-width:640px){.arch__row{grid-template-columns:1fr;gap:3px;}.arch__n{display:none;}}
.sig--day{grid-template-columns:92px 1fr;}
.sig__r{font-size:14.5px;line-height:1.55;color:var(--graphite);margin:6px 0 0;max-width:72ch;}
@media(max-width:880px){.sig--day{grid-template-columns:1fr;gap:8px;}}

/* ---------- essay: the manifesto, the one signed page ---------- */
.essay{padding:clamp(56px,9vh,110px) 0 clamp(60px,9vh,110px);}
.essay__head{max-width:62ch;margin:0 auto clamp(28px,4.5vh,44px);}
.essay__kicker{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--graphite);margin:0 0 14px;}
.essay__head h1{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(34px,4.4vw,58px);
  line-height:1.04;letter-spacing:-.02em;margin:0;color:var(--ink);}
.essay__body{max-width:62ch;margin:0 auto;}
.essay__body p{font-size:18px;line-height:1.7;color:var(--ink);margin:0 0 18px;}
.essay__body p:first-of-type::first-letter{font-family:"Instrument Serif",Georgia,serif;font-size:3.1em;line-height:.86;float:left;padding:4px 10px 0 0;}
.essay__sig{font-style:italic;color:var(--graphite);}
.essay__foot{max-width:62ch;margin:clamp(26px,4vh,40px) auto 0;display:flex;gap:9px;flex-wrap:wrap;}
/* The method coda (#method): /method's essence, absorbed 2026-08-08 —
   house voice, ruled off from the signed essay above it. */
.essay__coda{max-width:62ch;margin:clamp(34px,5.5vh,56px) auto 0;
  border-top:1px solid var(--ink);padding-top:clamp(18px,2.8vh,26px);}
.essay__coda p{font-size:16px;line-height:1.62;color:var(--ink);margin:0 0 14px;}
.essay__coda .essay__coda-note{font-size:14.5px;color:var(--graphite);}
.essay__coda .essay__foot{margin-left:0;margin-right:0;}

.close{padding:clamp(78px,13vh,160px) 0 clamp(50px,8vh,84px);text-align:center;}
.close h2{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(31px,5vw,64px);
  line-height:1.03;letter-spacing:-.02em;margin:0 auto clamp(18px,3vh,28px);max-width:18ch;color:var(--ink);}
.close p{color:var(--graphite);max-width:40ch;margin:0 auto clamp(22px,4vh,34px);}
.foot{border-top:1px solid var(--rule);padding:19px 0 40px;display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;}
.foot p{margin:0;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--graphite);}
.foot a{color:var(--graphite);text-decoration:none;} .foot a:hover{color:var(--ink);}

.draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);}
.draw.is-in{transition:stroke-dashoffset 1.3s cubic-bezier(.32,.72,.3,1);stroke-dashoffset:0;}
.rise{opacity:0;transform:translateY(11px);}
.rise.is-in{opacity:1;transform:none;transition:opacity .7s ease,transform .7s cubic-bezier(.3,.7,.3,1);}
@media(prefers-reduced-motion:reduce){
  .rail__live{animation:none;}
  .chat__input span:first-child::after{animation:none;}
  .draw,.draw.is-in{stroke-dashoffset:0;transition:none;}
  .rise,.rise.is-in{opacity:1;transform:none;transition:none;}
  .door__panel,.door__x,.tx__tools .stamp{transition:none;}
  .tx__tools .stamp{opacity:1;transform:none;}
}
:focus-visible{outline:1px solid var(--ochre);outline-offset:3px;}
