/* swarmalignment.com — site base style.
   Lifted from the hand-authored front page (the ring) so every article inherits
   the same skin: dual parchment/ink theme, EB Garamond · Cinzel · JetBrains Mono.
   Worms pages load /assets/worms.css AFTER this for a ~20% organic override. */

:root{
  --bg:#000;
  --line:rgba(176,170,154,.16);
  --caret:rgba(208,202,184,.55);
  --ink:#d3ccb8;
  --ink-dim:#9c906f;
  --ink-bright:#f1ead6;
  --rule:rgba(176,170,154,.15);
  --hue:#ff5a52;                 /* the "minds" colour, dark */
  --measure:38rem;
}
body.light{
  --bg:#f4efe3;
  --line:rgba(58,50,36,.20);
  --caret:rgba(58,50,36,.55);
  --ink:#2c2718;
  --ink-dim:#6b5f47;
  --ink-bright:#0c0a05;
  --rule:rgba(58,50,36,.16);
  --hue:#1c39a8;                 /* the "minds" colour, light */
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  background:var(--bg); color:var(--ink);
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(1.05rem,1rem + .35vw,1.22rem);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  transition:background-color .4s ease, color .4s ease;
  min-height:100vh;
}
.wrap{ max-width:var(--measure); margin:0 auto; padding:0 1.6rem; }

/* ---- shared label register: mono, faint, letterspaced ---- */
.eyebrow,.byline,.breadcrumb,.chapter-nav,.site-foot,.site-title{
  font-family:'JetBrains Mono',monospace;
}

/* ---- site head / foot ---- */
.site-head{ border-bottom:1px solid var(--rule); }
.site-head .wrap{ display:flex; align-items:baseline; justify-content:space-between;
  gap:1rem; padding-top:1.1rem; padding-bottom:1.1rem; }
.site-title{ font-size:.82rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink); text-decoration:none; }
.site-title b{ font-weight:400; color:var(--ink-dim); }
.breadcrumb{ font-size:.72rem; letter-spacing:.04em; color:var(--ink-dim); }
.breadcrumb .sep{ opacity:.5; margin:0 .35em; }
.breadcrumb a{ color:var(--ink-dim); text-decoration:none; }
.breadcrumb a:hover{ color:var(--ink); }

.site-foot{ border-top:1px solid var(--rule); margin-top:6rem; }
.site-foot .wrap{ display:flex; justify-content:space-between; gap:1rem;
  padding-top:1.4rem; padding-bottom:4rem; font-size:10px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ink-dim); }
.site-foot a{ color:var(--ink-dim); text-decoration:none; }
.site-foot a:hover{ color:var(--ink); }

/* ---- article ---- */
main{ padding-top:3.5rem; }
article > header{ margin-bottom:2.6rem; }
.eyebrow{ font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-dim); margin-bottom:1rem; }
.eyebrow .chapter{ opacity:.7; }
article h1{
  font-family:'Cinzel',serif; font-weight:500;
  text-transform:uppercase; letter-spacing:.14em;
  font-size:clamp(1.5rem,1.2rem + 1.7vw,2.35rem);
  line-height:1.18; color:var(--ink-bright);
}
.byline{ margin-top:1.1rem; font-size:.74rem; letter-spacing:.06em; color:var(--ink-dim); }
.byline .dot{ margin:0 .5em; opacity:.5; }

/* ---- prose ---- */
article h2,article h3{ font-family:'EB Garamond',serif; color:var(--ink-bright);
  line-height:1.25; margin:2.6rem 0 .9rem; }
article h2{ font-size:1.5rem; font-weight:500; font-style:italic; letter-spacing:.005em; }
article h3{ font-size:1.18rem; font-weight:600; }
article p{ margin:0 0 1.2rem; }
article a{ color:var(--ink-bright); text-decoration:none;
  border-bottom:1px solid var(--rule); transition:border-color .2s ease; }
article a:hover{ border-color:var(--caret); }
article strong{ font-weight:600; color:var(--ink-bright); }
article em{ font-style:italic; }
article blockquote{ margin:1.8rem 0; padding:.2rem 0 .2rem 1.3rem;
  border-left:2px solid var(--rule); color:var(--ink); font-style:italic; }
/* attribution line inside a sourced quote — apparatus, not prose */
article blockquote p.cite{ font-style:normal;
  font-family:'JetBrains Mono',monospace; font-size:.72rem; letter-spacing:.03em;
  color:var(--ink-dim); margin:.7rem 0 0; }
/* page machinery (related: / source:) — reads as apparatus, set off from the argument */
article p.apparatus{ font-family:'JetBrains Mono',monospace; font-size:.76rem;
  letter-spacing:.01em; line-height:1.6; color:var(--ink-dim); margin:.5rem 0; }
article p.apparatus .app-key{ text-transform:uppercase; font-size:.66rem;
  letter-spacing:.14em; color:var(--ink-dim); opacity:.7; margin-right:.7em; }
article p.apparatus code{ font-size:.9em; }
article p.apparatus a{ color:var(--ink-dim); border-bottom-color:transparent; }
article p.apparatus a:hover{ color:var(--ink); border-bottom-color:var(--rule); }
article ul,article ol{ margin:0 0 1.2rem 1.4rem; }
article li{ margin:.35rem 0; }
article hr{ border:0; border-top:1px solid var(--rule); margin:2.8rem auto; width:42%; }
article code{ font-family:'JetBrains Mono',monospace; font-size:.85em;
  background:color-mix(in srgb,var(--ink) 8%,transparent); padding:.1em .35em; border-radius:3px; }
article pre{ font-family:'JetBrains Mono',monospace; font-size:.8rem; line-height:1.5;
  overflow-x:auto; padding:1rem 1.2rem; margin:1.6rem 0; border:1px solid var(--rule); border-radius:4px; }
article pre code{ background:none; padding:0; }
article figure{ margin:2rem 0; text-align:center; }
article figure img{ max-width:100%; height:auto; border-radius:2px; }
article figcaption{ font-family:'JetBrains Mono',monospace; font-size:.72rem;
  letter-spacing:.04em; color:var(--ink-dim); margin-top:.7rem; }

/* ---- chapter nav ---- */
.chapter-nav{ display:flex; justify-content:space-between; gap:1rem; margin-top:3.5rem;
  padding-top:1.4rem; border-top:1px solid var(--rule); }
.chapter-nav a{ text-decoration:none; color:var(--ink); display:flex; flex-direction:column; }
.chapter-nav .next{ text-align:right; margin-left:auto; }
.chapter-nav .dir{ font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-dim); }
.chapter-nav .ttl{ font-family:'EB Garamond',serif; font-size:1.05rem; margin-top:.2rem; }
.chapter-nav a:hover .ttl{ color:var(--ink-bright); }

/* ---- theme toggle (shared with the front page) ---- */
#toggle{ position:fixed; top:22px; right:22px; width:24px; height:24px; border-radius:50%;
  border:1px solid var(--line); background:transparent; padding:0; cursor:pointer; z-index:50;
  display:grid; place-items:center; transition:transform .2s ease, border-color .2s ease; }
#toggle:hover,#toggle:focus-visible{ transform:scale(1.12); border-color:var(--caret); outline:none; }
#toggle span{ width:14px; height:14px; border-radius:50%; display:block;
  background:linear-gradient(90deg,#0a0a0a 0 50%,#f4efe3 50% 100%);
  box-shadow:inset 0 0 0 1px rgba(128,128,128,.3); }
