/* ============================================================
   TRANSHUMAN SINGULARITY — BROADSHEET
   Shared stylesheet for webmac.com
   Used by index.html, /posts/*.html, /novella/, /vhos/
   ------------------------------------------------------------
   White magazine. Fraunces for display, Inter for interface,
   Source Serif 4 for long-form reading.
   ============================================================ */

:root{
  /* --- core palette --- */
  --ink:#151513;
  --ink-2:#54524d;
  --ink-3:#706d67;
  --rule:#e4e1db;
  --rule-hair:#f1efeb;
  --bg:#ffffff;
  --bg-soft:#faf9f7;
  --bg-tint:#f4f7f8;
  --accent:#14556b;
  --accent-2:#0f7d9b;

  /* --- category colours (all AA on white) --- */
  --cat-1:#14556b;   /* essay / default        */
  --cat-2:#a1500c;   /* fiction / science fic. */
  --cat-3:#5c4595;   /* poetry / virtual human */
  --cat-4:#1a6b4a;   /* speculative science    */

  /* --- reading --- */
  --measure:70ch;

  /* ------------------------------------------------------------
     Legacy aliases. The old dark theme's variable names are still
     referenced by a few page-scoped <style> blocks; remapping them
     here keeps those blocks legible instead of invisible.
     ------------------------------------------------------------ */
  --void:#ffffff;
  --void-2:#faf9f7;
  --void-3:#f4f2ee;
  --line:#eae7e1;
  --line-strong:#d9d5cd;
  --cyan:#14556b;
  --gold:#8a5a00;
  --magenta:#8a3a6b;
  --text:#2b2a27;
  --white:#151513;
  --dim:#54524d;
  --dimmer:#706d67;
  --glow:0 1px 2px rgba(0,0,0,.06);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
::selection{background:#d8ecf2;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px;}

.wrap{max-width:1240px;margin:0 auto;padding:0 30px;}
.display{font-family:'Fraunces',Georgia,serif;font-optical-sizing:auto;}

/* Old dark-theme atmosphere layers, neutralised in case any page
   still ships the markup. */
#stars,.aurora,.grid-overlay,.scanlines,.grain{display:none !important;}

/* ============================================================
   HEADER
   ============================================================ */
header.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(180%) blur(12px);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--rule);
}
.hud{display:flex;align-items:center;justify-content:space-between;gap:24px;height:64px;}
.brand{display:block;line-height:1.1;}
.brand b{
  display:block;
  font-family:'Fraunces',Georgia,serif;font-weight:600;
  font-size:1.2rem;letter-spacing:-.012em;color:var(--ink);
}
.brand span{
  display:block;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-3);margin-top:3px;font-weight:500;
}
header.site-header nav{display:flex;gap:24px;align-items:center;}
header.site-header nav a{
  font-size:.73rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-2);transition:color .18s;white-space:nowrap;
}
header.site-header nav a:hover,header.site-header nav a[aria-current="page"]{color:var(--accent);}
header.site-header nav a[aria-current="page"]{border-bottom:2px solid var(--accent);padding-bottom:2px;}

/* ---------- mobile menu button (hidden until the breakpoint) ---------- */
.nav-toggle{
  display:none;position:relative;z-index:2;
  width:44px;height:44px;margin-right:-10px;padding:0;
  background:none;border:0;cursor:pointer;color:var(--ink);
  align-items:center;justify-content:center;
}
.nav-toggle .bars{display:block;position:relative;width:22px;height:14px;}
.nav-toggle .bars i{
  position:absolute;left:0;right:0;height:2px;border-radius:2px;background:currentColor;
  transition:transform .26s cubic-bezier(.3,.7,.3,1),opacity .18s ease,top .26s cubic-bezier(.3,.7,.3,1);
}
.nav-toggle .bars i:nth-child(1){top:0;}
.nav-toggle .bars i:nth-child(2){top:6px;}
.nav-toggle .bars i:nth-child(3){top:12px;}
.nav-toggle[aria-expanded="true"] .bars i:nth-child(1){top:6px;transform:rotate(45deg);}
.nav-toggle[aria-expanded="true"] .bars i:nth-child(2){opacity:0;transform:scaleX(.4);}
.nav-toggle[aria-expanded="true"] .bars i:nth-child(3){top:6px;transform:rotate(-45deg);}

.nav-scrim{
  display:none;position:fixed;inset:0;z-index:44;
  background:rgba(21,21,19,.28);
  /* opacity alone does NOT stop hit-testing — without these the scrim stays
     a full-screen invisible sheet over the page and swallows every tap. */
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .22s ease,visibility .22s;
}
.nav-scrim.on{opacity:1;visibility:visible;pointer-events:auto;}

/* reading progress — article pages only */
.progress{
  position:fixed;top:0;left:0;height:2px;width:0;z-index:60;
  background:var(--accent);transition:width .1s linear;
  pointer-events:none;
}

/* skip link */
.skip{
  position:absolute;left:-9999px;top:0;z-index:100;background:var(--ink);color:#fff;
  padding:10px 16px;font-size:.8rem;font-weight:600;
}
.skip:focus{left:12px;top:12px;}

/* ============================================================
   CATEGORY LABELS  (shared by home + articles)
   ============================================================ */
.cat{
  font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--cat-1);display:inline-block;
}
.cat.c2{color:var(--cat-2);}
.cat.c3{color:var(--cat-3);}
.cat.c4{color:var(--cat-4);}

.dot{width:3px;height:3px;border-radius:50%;background:#cbc8c2;display:inline-block;}

/* ============================================================
   HOMEPAGE — NAMEPLATE
   ============================================================ */
.nameplate{
  text-align:center;padding:60px 0 40px;border-bottom:3px double var(--ink);
}
.nameplate .eyebrow{
  font-size:.66rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;
  color:var(--accent);display:block;margin-bottom:22px;
}
.nameplate h1{
  font-family:'Fraunces',Georgia,serif;font-weight:600;
  font-size:clamp(2.6rem,7.2vw,5rem);line-height:1;letter-spacing:-.028em;
}
.nameplate .lead{
  font-size:1.1rem;line-height:1.6;color:var(--ink-2);
  max-width:58ch;margin:22px auto 0;
}
.nameplate .byline{
  margin-top:22px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
}

/* ============================================================
   HOMEPAGE — SECTION RULES
   ============================================================ */
.sec-head{display:flex;align-items:center;gap:18px;margin:52px 0 26px;}
.sec-head h2{
  font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;white-space:nowrap;
}
.sec-head::after{content:"";flex:1;height:1px;background:var(--ink);}

/* ============================================================
   HOMEPAGE — LEAD STORY
   ============================================================ */
.lead-story{
  display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center;
  padding-bottom:44px;border-bottom:1px solid var(--rule);
}
.lead-story .art{aspect-ratio:16/10;overflow:hidden;background:#eee;}
.lead-story .art img{width:100%;height:100%;object-fit:cover;transition:transform .6s;}
.lead-story:hover .art img{transform:scale(1.03);}
.lead-story h3{
  font-family:'Fraunces',Georgia,serif;font-weight:600;
  font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.1;letter-spacing:-.024em;
  margin:12px 0 14px;transition:color .18s;
}
.lead-story:hover h3{color:var(--accent);}
.lead-story p{font-size:1.06rem;line-height:1.64;color:var(--ink-2);max-width:52ch;}
.lead-story .more{
  display:inline-block;margin-top:20px;font-size:.73rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent);
  border-bottom:2px solid var(--accent);padding-bottom:3px;
}

/* ============================================================
   HOMEPAGE — CARD GRID
   ============================================================ */
.grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:38px;row-gap:0;}
.card{display:block;padding:34px 0;border-bottom:1px solid var(--rule-hair);}
.card .art{aspect-ratio:3/2;overflow:hidden;background:#eee;margin-bottom:16px;}
.card .art img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.card:hover .art img{transform:scale(1.04);}
.card h3{
  font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.42rem;
  line-height:1.16;letter-spacing:-.018em;margin:10px 0 9px;transition:color .18s;
}
.card:hover h3{color:var(--accent);}
.card p{font-size:.95rem;line-height:1.6;color:var(--ink-2);}
.card .meta,.lead-story .meta{
  margin-top:13px;font-size:.72rem;letter-spacing:.06em;color:var(--ink-3);
  display:flex;gap:8px;align-items:center;flex-wrap:wrap;
}
.card .meta b,.lead-story .meta b{font-weight:600;color:var(--ink-2);}

.card .art.video{position:relative;}
.card .art.video::after{
  content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:52px;height:52px;border-radius:50%;background:rgba(0,0,0,.6);
}
.card .art.video::before{
  content:"";position:absolute;z-index:2;left:50%;top:50%;transform:translate(-38%,-50%);
  width:0;height:0;border-left:16px solid #fff;
  border-top:10px solid transparent;border-bottom:10px solid transparent;
}

/* the talk closes the list: full-width card, art beside the text */
.card.video-wide{
  grid-column:1/-1;display:grid;grid-template-columns:1.05fr .95fr;gap:38px;
  align-items:center;padding-top:38px;border-top:1px solid var(--rule);
}
.card.video-wide .art{aspect-ratio:16/9;margin-bottom:0;}
.card.video-wide h3{font-size:1.66rem;margin-top:10px;}
.card.video-wide p{font-size:1rem;max-width:52ch;}

.card.text .art{display:none;}
.card.text{
  background:var(--bg-soft);border:1px solid var(--rule);padding:26px;
  align-self:start;margin:34px 0;
}

/* ============================================================
   HOMEPAGE — ARCHIVE BAND  (always last in the article list)
   ============================================================ */
.archive-band{
  display:grid;grid-template-columns:260px 1fr;gap:44px;align-items:start;
  margin-top:14px;padding:36px 0 40px;border-top:1px solid var(--ink);
}
.archive-band .ab-head h2{
  font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.6rem;
  letter-spacing:-.018em;line-height:1.15;margin-top:10px;
}
.archive-band .ab-body p{font-size:1rem;line-height:1.62;color:var(--ink-2);max-width:60ch;}
.years{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.years a{
  font-size:.8rem;font-weight:600;color:var(--ink);background:#fff;
  border:1px solid var(--rule);border-radius:3px;padding:9px 16px;
  transition:all .18s;display:inline-flex;align-items:baseline;gap:8px;
}
.years a span{font-weight:400;font-size:.72rem;color:var(--ink-3);letter-spacing:.02em;}
.years a:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-tint);}
.years a:hover span{color:var(--accent);}

/* ============================================================
   HOMEPAGE — ABOUT
   ============================================================ */
.about{
  display:grid;grid-template-columns:110px 1fr;gap:30px;align-items:start;
  margin:56px 0 0;padding:42px 0;border-top:3px double var(--ink);
}
.about .avatar{width:110px;height:110px;overflow:hidden;background:#eee;border-radius:50%;}
.about .avatar img{width:100%;height:100%;object-fit:cover;}
.about .label{
  font-size:.66rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-3);display:block;margin-bottom:10px;
}
.about h3{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.6rem;letter-spacing:-.018em;}
.about h3 span{font-weight:400;font-size:.92rem;color:var(--ink-3);font-family:'Inter',sans-serif;}
.about p{font-size:1.06rem;line-height:1.64;color:var(--ink-2);max-width:66ch;margin-top:12px;}
.about .social{display:flex;gap:20px;margin-top:20px;flex-wrap:wrap;}
.about .social a{
  font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--accent);border-bottom:2px solid var(--accent);padding-bottom:2px;
}
.about .social a:hover{color:var(--ink);border-bottom-color:var(--ink);}

/* ============================================================
   ARTICLE PAGES
   ============================================================ */
.article-wrap{max-width:840px;margin:0 auto;padding:0 30px;}

.back{
  display:inline-flex;align-items:center;gap:9px;margin-top:40px;
  font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-3);transition:gap .22s,color .22s;
}
.back:hover{color:var(--accent);gap:14px;}

.post-head{
  padding:30px 0 6px;
  /* guard: the site-header rules must never reach an article's own <header> */
  position:static;z-index:auto;background:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:0;
}
.post-head .tags{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.post-head h1{
  font-family:'Fraunces',Georgia,serif;font-weight:600;
  font-size:clamp(2rem,4.6vw,3.2rem);line-height:1.08;letter-spacing:-.026em;
  color:var(--ink);margin-bottom:20px;
}
.post-head .meta{
  font-size:.8rem;letter-spacing:.03em;color:var(--ink-3);line-height:1.8;
}
.post-head .meta b{color:var(--ink-2);font-weight:600;}

.post-hero{
  margin:34px 0 8px;aspect-ratio:16/8;width:100%;position:relative;overflow:hidden;
  background:var(--bg-soft) center/cover no-repeat;border:1px solid var(--rule);
}
.post-hero .caption{
  position:absolute;left:0;right:0;bottom:0;z-index:2;padding:26px 20px 13px;
  font-size:.7rem;letter-spacing:.04em;color:rgba(255,255,255,.92);
  background:linear-gradient(0deg,rgba(0,0,0,.72),transparent);
}

/* ---------- article body typography ---------- */
.post-body{
  padding:40px 0 16px;
  font-family:'Source Serif 4',Georgia,'Times New Roman',serif;
  font-size:1.16rem;line-height:1.76;color:#2b2a27;
  font-optical-sizing:auto;
}
.post-body > *{max-width:var(--measure);}
.post-body .standfirst{
  font-size:1.34rem;line-height:1.58;color:var(--ink);font-weight:600;
  margin-bottom:34px;padding-bottom:26px;border-bottom:1px solid var(--rule);
}
.post-body h2{
  font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.78rem;
  line-height:1.18;letter-spacing:-.018em;color:var(--ink);margin:52px 0 16px;
}
.post-body h3{
  font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.34rem;
  line-height:1.22;letter-spacing:-.012em;color:var(--ink);margin:42px 0 12px;
}
.post-body h3 .kicker{
  display:block;font-family:'Inter',sans-serif;font-size:.64rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;
}
.post-body p{margin-bottom:24px;}
.post-body a{
  color:var(--accent);border-bottom:1px solid rgba(20,85,107,.32);transition:border-color .18s,color .18s;
}
.post-body a:hover{border-bottom-color:var(--accent);color:var(--accent-2);}
.post-body strong,.post-body b{color:var(--ink);font-weight:600;}
.post-body em,.post-body i{font-style:italic;}
.post-body ul,.post-body ol{margin:0 0 24px 1.25em;}
.post-body li{margin-bottom:10px;}
.post-body dl{margin:0 0 24px;}
.post-body dt{font-weight:600;color:var(--ink);margin-top:14px;}
.post-body dd{margin:4px 0 0 1.25em;color:var(--ink-2);}
.post-body blockquote{
  margin:34px 0;padding:4px 0 4px 26px;border-left:3px solid var(--accent);
  font-family:'Fraunces',Georgia,serif;font-size:1.3rem;line-height:1.46;
  color:var(--ink);font-style:italic;
}
.post-body blockquote p:last-child{margin-bottom:0;}
.post-body figure{margin:38px 0;max-width:100%;}
.post-body figure img{width:100%;border:1px solid var(--rule);display:block;}
.post-body figcaption{
  margin-top:11px;font-family:'Inter',sans-serif;font-size:.76rem;
  letter-spacing:.02em;color:var(--ink-3);line-height:1.55;
}
.post-body hr{border:none;border-top:1px solid var(--rule);margin:46px auto;max-width:180px;}
.post-body img{max-width:100%;height:auto;}
.post-body pre{
  background:var(--bg-soft);border:1px solid var(--rule);border-radius:4px;
  padding:18px 20px;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.86rem;line-height:1.65;margin:0 0 24px;max-width:100%;
}
.post-body table{
  width:100%;max-width:100%;border-collapse:collapse;margin:0 0 26px;
  font-family:'Inter',sans-serif;font-size:.9rem;
}
.post-body th{
  text-align:left;padding:0 14px 10px 0;border-bottom:2px solid var(--ink);
  font-size:.64rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);
}
.post-body td{padding:12px 14px 12px 0;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--ink-2);}
.post-body iframe{max-width:100%;}
.video-embed{
  position:relative;width:100%;aspect-ratio:16/9;background:#000;margin:34px 0;
  border:1px solid var(--rule);
}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}

/* poem / verse block */
.post-body .verse{
  white-space:pre-wrap;line-height:1.95;font-size:1.14rem;color:var(--ink);
  border-left:3px solid var(--cat-3);padding:6px 0 6px 26px;margin:30px 0;
}
.post-body .signoff{
  margin-top:40px;font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
}

/* editor placeholder note */
.editor-note{
  max-width:var(--measure);border:1px dashed var(--rule);background:var(--bg-tint);
  border-radius:3px;padding:18px 20px;margin:0 0 30px;
  font-family:'Inter',sans-serif;font-size:.84rem;line-height:1.7;color:var(--ink-2);
}
.editor-note b{color:var(--accent);}
.placeholder-line{color:var(--ink-3);font-style:italic;}

/* ---------- prev / next ---------- */
.post-nav{
  display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;
  margin:56px 0 10px;padding-top:28px;border-top:1px solid var(--rule);
}
.post-nav a{
  font-family:'Fraunces',Georgia,serif;font-size:1.02rem;font-weight:600;
  line-height:1.25;letter-spacing:-.012em;color:var(--ink);max-width:46%;transition:color .18s;
}
.post-nav a:hover{color:var(--accent);}
.post-nav .lbl{
  display:block;font-family:'Inter',sans-serif;font-size:.64rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);margin-bottom:7px;
}
.post-nav .nxt{text-align:right;margin-left:auto;}

/* ---------- article footer author card ---------- */
.author-card{
  display:grid;grid-template-columns:76px 1fr;gap:22px;align-items:start;
  margin:48px 0 10px;padding:28px;background:var(--bg-soft);border:1px solid var(--rule);
}
.author-card .avatar{width:76px;height:76px;border-radius:50%;overflow:hidden;background:#eee;}
.author-card .avatar img{width:100%;height:100%;object-fit:cover;}
.author-card .label{
  font-size:.64rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-3);display:block;margin-bottom:7px;
}
.author-card h4{font-family:'Fraunces',Georgia,serif;font-size:1.24rem;font-weight:600;letter-spacing:-.014em;}
.author-card p{font-size:.94rem;line-height:1.62;color:var(--ink-2);margin-top:9px;}
.author-card .social{display:flex;gap:16px;margin-top:14px;flex-wrap:wrap;}
.author-card .social a{
  font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);
}
.author-card .social a:hover{text-decoration:underline;}

/* ============================================================
   FOOTER  (shared)
   ============================================================ */
footer{border-top:1px solid var(--rule);margin-top:70px;}

/* --- elsewhere / cross-site network --- */
.network{padding:46px 0 8px;}
.network h2{
  font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  margin-bottom:22px;display:flex;align-items:center;gap:18px;
}
.network h2::after{content:"";flex:1;height:1px;background:var(--rule);}
.net-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);}
.net{display:block;background:#fff;padding:22px 24px;transition:background .18s;}
.net:hover{background:var(--bg-soft);}
.net .kind{
  font-size:.62rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-3);display:block;margin-bottom:9px;
}
.net h3{
  font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.16rem;
  letter-spacing:-.014em;line-height:1.2;margin-bottom:7px;transition:color .18s;
}
.net:hover h3{color:var(--accent);}
.net p{font-size:.88rem;line-height:1.55;color:var(--ink-2);}
.net .url{
  display:block;margin-top:11px;font-size:.7rem;letter-spacing:.05em;color:var(--ink-3);
}

/* --- footer link columns --- */
.foot-grid{display:grid;grid-template-columns:1.4fr 2fr;gap:48px;padding:44px 0 0;}
.foot-brand b{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.16rem;display:block;}
.foot-brand .tagline{font-size:.88rem;color:var(--ink-3);margin-top:10px;max-width:36ch;line-height:1.6;}
.foot-links{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.foot-col h5{
  font-size:.66rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  margin-bottom:12px;color:var(--ink);
}
.foot-col a{display:block;font-size:.86rem;color:var(--ink-2);padding:5px 0;transition:color .18s;}
.foot-col a:hover{color:var(--accent);}
.copy{
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-top:40px;padding:20px 0 40px;border-top:1px solid var(--rule-hair);
  font-size:.78rem;color:var(--ink-3);
}

/* ============================================================
   PAGE-SCOPED COMPONENTS, RESTYLED FOR LIGHT
   (transcript panel — /posts/i-conversed-with-alan-turing.html)
   ============================================================ */
.post-body .runtime{
  margin:38px 0;border:1px solid var(--rule);border-radius:6px;
  background:var(--bg-soft);overflow:hidden;max-width:100%;
}
.post-body .runtime .bar{
  display:flex;align-items:center;gap:9px;padding:11px 18px;
  border-bottom:1px solid var(--rule);background:#fff;
  font-family:'Inter',sans-serif;font-size:.62rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-3);
}
.post-body .runtime .bar i{
  width:8px;height:8px;border-radius:50%;background:var(--accent);display:inline-block;flex:none;
}
.post-body .runtime .boot{
  padding:16px 20px;border-bottom:1px solid var(--rule);background:#fff;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;
  line-height:1.75;color:var(--ink-2);white-space:pre-wrap;
}
.post-body .runtime .boot b{color:var(--accent);font-weight:600;}
.post-body .turns{padding:6px 22px 20px;}
.post-body .turn{padding:20px 0;border-bottom:1px solid var(--rule);}
.post-body .turn:last-child{border-bottom:0;}
.post-body .turn .who{
  display:block;margin-bottom:9px;font-family:'Inter',sans-serif;font-size:.64rem;
  font-weight:700;letter-spacing:.22em;text-transform:uppercase;
}
.post-body .turn.me .who{color:var(--cat-2);}
.post-body .turn.at .who{color:var(--accent);}
.post-body .turn p{margin:0 0 13px;font-size:1.06rem;line-height:1.7;}
.post-body .turn p:last-child{margin-bottom:0;}
.post-body .turn.at{padding-left:18px;border-left:3px solid rgba(20,85,107,.28);}
.post-body .soma{
  margin:0;padding:11px 0 0;font-family:'Inter',sans-serif;font-size:.7rem;
  letter-spacing:.03em;color:var(--ink-3);word-spacing:.1em;
}
.post-body .sysprompt{
  margin:30px 0;padding:22px 24px;border:1px solid var(--rule);
  border-left:3px solid var(--cat-3);border-radius:4px;background:var(--bg-soft);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;
  line-height:1.8;color:var(--ink-2);white-space:pre-wrap;overflow-x:auto;max-width:100%;
}
.post-body .rt-note{
  margin:0;padding:15px 22px;border-top:1px solid var(--rule);background:#fdf8ef;
  font-family:'Inter',sans-serif;font-size:.76rem;letter-spacing:.02em;color:#7a4f06;
}
.post-body .spec-list{list-style:none;padding:0;margin-left:0;}
.post-body .spec-list li{
  padding:10px 0;border-bottom:1px solid var(--rule);margin:0;
  font-family:'Inter',sans-serif;font-size:.88rem;color:var(--ink-2);
}
.post-body .spec-list li b{color:var(--ink);font-weight:600;}

/* ============================================================
   SCORECARD TABLE  (/posts/the-test-of-time.html)
   ============================================================ */
.scorecard{
  width:100%;max-width:100%;border-collapse:collapse;margin:18px 0 4px;
  font-family:'Inter',sans-serif;font-size:.88rem;line-height:1.6;
}
.scorecard th{
  text-align:left;padding:0 14px 10px 0;border-bottom:2px solid var(--ink);
  color:var(--ink);font-weight:700;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;
}
.scorecard td{padding:13px 14px 13px 0;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--ink-2);}
.scorecard tr:last-child td{border-bottom:none;}
.scorecard td.p{color:var(--ink);font-weight:600;width:30%;}
.scorecard td.a{width:48%;}
.scorecard td.v{
  padding-right:0;text-align:right;white-space:nowrap;font-weight:700;
  font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;
}
.scorecard .hit{color:var(--cat-4);}
.scorecard .part{color:var(--cat-2);}
.scorecard .miss{color:#a32b52;}
.scorecard .sup{color:var(--ink-3);}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1000px){
  .lead-story{grid-template-columns:1fr;gap:24px;}
  .grid{grid-template-columns:repeat(2,1fr);column-gap:32px;}
  .net-grid{grid-template-columns:repeat(2,1fr);}
  .archive-band{grid-template-columns:1fr;gap:20px;}
}

@media (max-width:760px){
  .wrap{padding:0 20px;}
  .hud{height:56px;gap:12px;}
  .brand b{font-size:1.02rem;white-space:nowrap;}
  .brand span{display:none;}

  /* ---------- dropdown menu ---------- */
  .nav-toggle{display:flex;}
  .nav-scrim{display:block;}

  header.site-header nav{
    position:absolute;top:calc(100% + 8px);right:20px;z-index:46;
    display:block;width:min(248px,calc(100vw - 40px));
    background:#fff;border:1px solid var(--rule);border-radius:5px;
    box-shadow:0 14px 34px rgba(21,21,19,.14),0 2px 6px rgba(21,21,19,.06);
    padding:6px 0;overflow:hidden;

    opacity:0;visibility:hidden;pointer-events:none;
    transform:translateY(-8px) scale(.97);transform-origin:top right;
    transition:opacity .2s ease,transform .22s cubic-bezier(.3,.7,.3,1),visibility .22s;
  }
  header.site-header nav.open{
    opacity:1;visibility:visible;pointer-events:auto;
    transform:translateY(0) scale(1);
  }
  header.site-header nav a{
    display:flex;align-items:center;justify-content:space-between;
    padding:13px 18px;font-size:.74rem;font-weight:600;letter-spacing:.14em;
    text-transform:uppercase;color:var(--ink-2);
    border-bottom:1px solid var(--rule-hair);
  }
  header.site-header nav a:last-child{border-bottom:0;}
  header.site-header nav a:active{background:var(--bg-soft);}
  header.site-header nav a[aria-current="page"]{
    color:var(--accent);border-bottom:1px solid var(--rule-hair);padding-bottom:13px;
    background:var(--bg-tint);
  }
  header.site-header nav a[aria-current="page"]::after{
    content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);
  }
  body.nav-open{overflow:hidden;}

  .nameplate{padding:38px 0 28px;}
  .nameplate .lead{font-size:1rem;}
  .lead-story{padding-bottom:32px;}
  .lead-story p{font-size:1rem;}
  .grid{grid-template-columns:1fr;column-gap:0;}
  .card{padding:26px 0;}
  .card h3{font-size:1.32rem;}
  .card.video-wide{grid-template-columns:1fr;gap:16px;padding-top:26px;}
  .card.video-wide h3{font-size:1.32rem;}
  .card.video-wide p{font-size:.95rem;}
  .card.text{margin:26px 0;padding:22px;}
  .archive-band{padding:28px 0 32px;}
  .archive-band .ab-head h2{font-size:1.4rem;}
  .about{grid-template-columns:1fr;gap:18px;padding:32px 0;}
  .about .avatar{width:84px;height:84px;}

  .article-wrap{padding:0 20px;}
  .post-head{padding:24px 0 4px;}
  .post-hero{aspect-ratio:16/10;}
  .post-body{font-size:1.08rem;line-height:1.72;padding:30px 0 12px;}
  .post-body .standfirst{font-size:1.18rem;}
  .post-body h2{font-size:1.48rem;margin:40px 0 14px;}
  .post-body h3{font-size:1.2rem;margin:34px 0 10px;}
  .post-body blockquote{font-size:1.14rem;padding-left:18px;}
  .post-body .turns{padding:4px 16px 16px;}
  .post-nav{gap:18px;}
  .post-nav a{max-width:100%;font-size:.96rem;}
  .post-nav .nxt{text-align:left;margin-left:0;}
  .author-card{grid-template-columns:1fr;gap:16px;padding:22px;}

  .net-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;gap:32px;}
  .foot-links{grid-template-columns:1fr 1fr;}
}

@media (max-width:620px){
  .scorecard thead{display:none;}
  .scorecard tr{display:block;padding:14px 0;border-bottom:1px solid var(--rule);}
  .scorecard tr:last-child{border-bottom:none;}
  .scorecard td,.scorecard td.p,.scorecard td.a{display:block;width:auto;border:none;padding:0 0 5px;}
  .scorecard td.v{text-align:left;padding:7px 0 0;}
}

.reveal{opacity:0;transform:translateY(18px);
  transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  *{scroll-behavior:auto !important;}
}

@media print{
  header.site-header,footer,.post-nav,.back,.author-card{display:none;}
  body{font-size:11pt;}
  .post-body a{color:inherit;border:none;}
}
