/* graphs.sgit.ai — shared stylesheet. Same design language as sgit.ai, nhi.sgit.ai and
   pki.sgit.ai (light theme), ported with its rules intact, plus the components this
   site needs: the altitude doors, the proof strip, the agent block that closes every
   concept page, and the semantic edge palette the Risk Graph Explorer already
   establishes — amber = exposure, green = assurance, ghosted = unanswered. */
:root{
  --bg:#faf9f5; --panel:#ffffff; --panel2:#f2f0e9; --line:#e5e1d5; --line2:#d5d0c2;
  --fg:#1c1d21; --dim:#5c5f66; --dim2:#8a8d94;
  --accent:#0f766e; --accent-dk:#115e59; --yellow:#a16207; --warm:#b45309; --red:#b91c1c;
  --term-bg:#0d1117; --term-green:#3fb950; --term-red:#f85149; --term-cyan:#58a6ff;
  --term-yellow:#d29922; --term-dim:#8b949e;
  --sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:ui-serif,Georgia,"Times New Roman",serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --measure:960px; --wide:1360px;
  --shadow:0 1px 2px rgba(28,29,33,.05),0 4px 14px rgba(28,29,33,.04);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.65}
a{color:var(--accent-dk);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.2;letter-spacing:-.015em}
code,pre,kbd{font-family:var(--mono)}
p code,li code,td code,.note code{overflow-wrap:anywhere;background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:.08em .35em;font-size:.84em;color:#24343f}
.inner{max-width:var(--measure);margin:0 auto;padding:0 1.1rem}
.dim{color:var(--dim)} .small{font-size:.85rem}

/* ---------- top nav ---------- */
nav.site{position:sticky;top:0;z-index:50;background:rgba(250,249,245,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
nav.site .row{max-width:var(--wide);margin:0 auto;display:flex;align-items:center;gap:1.1rem;padding:.7rem 1.1rem;flex-wrap:wrap}
nav.site .brand{font-weight:800;font-size:1.05rem;color:var(--fg);letter-spacing:-.02em;white-space:nowrap}
nav.site .brand span{color:var(--accent)}
nav.site a.nl{color:var(--dim);font-size:.85rem}
nav.site a.nl.here{color:var(--fg);font-weight:600}
nav.site a.nl:hover{color:var(--fg);text-decoration:none}
nav.site .parent{border:1px solid var(--accent);border-radius:6px;padding:.28rem .7rem;
  color:var(--accent-dk);font-size:.78rem;white-space:nowrap;background:var(--panel);font-weight:500}
nav.site .parent b{font-weight:800}
nav.site .parent:hover{background:var(--accent);color:#fff;border-color:var(--accent);text-decoration:none}
nav.site .gh{border:1px solid var(--line2);border-radius:6px;padding:.28rem .7rem;color:var(--fg);font-size:.78rem;white-space:nowrap;background:var(--panel)}
nav.site .gh:hover{border-color:var(--accent);text-decoration:none}
/* Two-level nav, the same component sgit.ai runs. The flat one here reached twelve
   items and wrapped to two rows on a laptop and four on a phone. Opening is :hover for
   a mouse and :focus-within for a keyboard — no JS needed for either — plus a click
   toggle (nav.js) for touch, where hover does not exist. Every group label is itself a
   link to that section's own page, so nothing is reachable only by opening a menu: the
   submenu is a shortcut, never the only door. */
nav.site .ni{position:relative}
nav.site .ni-has > .nl{display:inline-flex;align-items:center;gap:.25rem}
nav.site .caret{font-size:.55em;opacity:.55;transition:transform .15s ease}
nav.site .sub{position:absolute;left:-.7rem;top:100%;min-width:12rem;z-index:60;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  box-shadow:0 6px 24px rgba(28,29,33,.13);padding:.4rem;
  display:none;flex-direction:column;gap:.05rem}
nav.site .ni-has:hover > .sub,
nav.site .ni-has:focus-within > .sub,
nav.site .ni-has.open > .sub{display:flex}
nav.site .ni-has:hover .caret,
nav.site .ni-has.open .caret{transform:rotate(180deg)}
nav.site .sub a.sl{display:block;padding:.36rem .6rem;border-radius:6px;
  font-size:.83rem;color:var(--dim);white-space:nowrap}
nav.site .sub a.sl:hover{background:var(--panel2);color:var(--fg);text-decoration:none}
nav.site .sub a.sl.here{color:var(--accent-dk);font-weight:600}
/* Phone: the whole thing collapses behind one button, so the bar stays a single row and
   opening it gives a vertical list with each group's children indented under it. */
.nav-items{display:contents}
.nav-toggle{display:none}
@media (max-width:820px){
  nav.site .row{position:relative;gap:.6rem}
  .nav-toggle{display:block;margin-left:auto;order:3;background:var(--panel);
    border:1px solid var(--line2);border-radius:6px;padding:.3rem .7rem;
    font:600 .78rem/1 var(--sans);color:var(--fg);cursor:pointer}
  .nav-toggle:hover{border-color:var(--accent)}
  nav.site .parent{order:2}
  nav.site .gh{order:4;margin-left:0}
  .nav-items{display:none;order:5;width:100%;flex-direction:column;gap:.1rem;
    padding:.5rem 0 .3rem;border-top:1px solid var(--line);margin-top:.4rem}
  nav.site.open .nav-items{display:flex}
  nav.site .ni{width:100%}
  nav.site .ni > .nl{display:block;padding:.42rem .2rem;font-size:.95rem}
  nav.site .caret{display:none}
  nav.site .sub{position:static;display:flex;flex-direction:column;border:0;
    box-shadow:none;background:none;padding:0 0 .3rem .9rem;min-width:0;gap:0}
  nav.site .sub a.sl{padding:.3rem .2rem;font-size:.86rem}
}
.stage-pill{font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--warm);
  border:1px solid rgba(180,83,9,.35);background:rgba(180,83,9,.07);border-radius:99px;padding:.15rem .55rem;white-space:nowrap}
a.ver{font-family:var(--mono);font-size:.68rem;color:var(--dim2);border:1px solid var(--line);border-radius:99px;padding:.14rem .55rem;white-space:nowrap}
a.ver:hover{color:var(--accent-dk);border-color:var(--accent);text-decoration:none}

/* ---------- hero ---------- */
header.hero{text-align:center;padding:4.2rem 1.2rem 2.6rem;max-width:1000px;margin:0 auto}
.eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
header.hero h1{font-family:var(--serif);font-size:clamp(2rem,5vw,3.1rem);margin:.9rem 0;color:#101114}
header.hero .sub{color:var(--dim);font-size:1.05rem;max-width:680px;margin:0 auto 1.7rem;line-height:1.6}
.ctas{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;align-items:center}
.cta1{background:var(--accent-dk);color:#fff;border-radius:8px;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600}
.cta1:hover{background:var(--accent);text-decoration:none}
.cta2{color:var(--accent-dk);font-size:.9rem;font-weight:600}

/* ---------- sections ---------- */
section.band{padding:3rem 0;scroll-margin-top:64px}
section.band.alt{background:var(--panel2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
section.band h2{font-family:var(--serif);font-size:1.9rem;color:#101114;text-align:center;margin:0 0 .6rem}
section.band .blurb{color:var(--dim);text-align:center;max-width:660px;margin:0 auto 1.8rem;font-size:.95rem}

/* ---------- cards ---------- */
.cards{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));max-width:1160px;margin:0 auto;padding:0 1.1rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1.05rem 1.15rem;display:block;color:var(--fg);box-shadow:var(--shadow)}
a.card:hover{border-color:var(--accent);text-decoration:none}
.card .tag{font-size:.64rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--warm)}
.card h3,.card h4{margin:.25rem 0 .45rem;font-size:.95rem;color:#101114;font-family:var(--sans)}
.card p{margin:0;font-size:.8rem;color:var(--dim);line-height:1.55}
.card .go{display:inline-block;margin-top:.55rem;font-size:.75rem;color:var(--accent-dk);font-weight:600}

/* ---------- two-populations split table ---------- */
.split{max-width:1000px;margin:0 auto;padding:0 1.1rem}
.split table{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.split th{background:var(--panel2);text-align:left;padding:.6rem .9rem;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--dim)}
.split th.run{color:var(--accent-dk)} .split th.rent{color:var(--warm)}
.split td{padding:.6rem .9rem;border-top:1px solid var(--line);vertical-align:top;line-height:1.5;color:#34363c}
.split td b.no{color:var(--red)} .split td b.yes{color:var(--accent-dk)}
.split .cap{font-size:.78rem;color:var(--dim);text-align:center;margin-top:.9rem;line-height:1.6}

/* ---------- terminal-style figure ---------- */
pre.shell{background:var(--term-bg);border-radius:10px;padding:.9rem 1.1rem;
  font-size:.79rem;line-height:1.65;overflow-x:auto;margin:1.1rem 0;color:#c9d1d9;box-shadow:var(--shadow)}
pre.shell .g{color:var(--term-green)} pre.shell .r{color:var(--term-red)} pre.shell .cy{color:var(--term-cyan)}
pre.shell .y{color:var(--term-yellow)} pre.shell .d{color:var(--term-dim)}

/* ---------- docs & content pages ---------- */
main.doc{max-width:var(--measure);margin:0 auto;padding:2.4rem 1.4rem 3.5rem}
main.doc .crumb{font-size:.75rem;color:var(--dim2);margin-bottom:1rem}
main.doc .crumb a{color:var(--dim)}
main.doc h1{font-family:var(--serif);font-size:2.1rem;color:#101114;margin:.2rem 0 .9rem}
main.doc h2{font-family:var(--serif);font-size:1.4rem;color:#101114;margin:2.2rem 0 .7rem;scroll-margin-top:70px}
main.doc h3{font-size:1.02rem;color:#101114;margin:1.7rem 0 .5rem}
main.doc .lead{color:#34363c;font-size:1.12rem}
main.doc p, main.doc li{color:#34363c;font-size:.98rem}
main.doc ul,main.doc ol{padding-left:1.3rem}
main.doc li{margin:.3rem 0}
main.doc table{width:100%;border-collapse:collapse;font-size:.88rem;margin:1.1rem 0;background:var(--panel);
  border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}
main.doc th{background:var(--panel2);text-align:left;padding:.55rem .8rem;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--dim)}
main.doc td{padding:.55rem .8rem;border-top:1px solid var(--line);vertical-align:top;line-height:1.5;color:#34363c}
.tablewrap{overflow-x:auto}
.note{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--panel);border-radius:0 10px 10px 0;
  padding:.8rem 1rem;font-size:.85rem;color:#34363c;margin:1.2rem 0;box-shadow:var(--shadow)}
.warnbox{border:1px solid var(--line);border-left:3px solid var(--yellow);background:var(--panel);border-radius:0 10px 10px 0;
  padding:.8rem 1rem;font-size:.85rem;color:#34363c;margin:1.2rem 0;box-shadow:var(--shadow)}
.note b,.warnbox b{color:#101114}
blockquote.challenge{margin:1.6rem 0;padding:1.1rem 1.3rem;border-left:4px solid var(--warm);
  background:var(--panel);border-radius:0 10px 10px 0;font-size:1rem;font-style:italic;color:#34363c;
  box-shadow:var(--shadow);line-height:1.7}
.pagenav{display:flex;justify-content:space-between;gap:1rem;margin-top:2.8rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:.85rem}

/* evidence status boxes */
.evbox{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;
  background:var(--panel);padding:1rem 1.15rem;box-shadow:var(--shadow);margin:.9rem 0 1.4rem}
.evbox.ev-warn{border-left-color:var(--warm)}
.evbox p:first-of-type{margin-top:.5rem}
.evbox p:last-child{margin-bottom:0}
.evtag{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:#fff;background:var(--accent);border-radius:99px;padding:.16rem .6rem}
.evbox.ev-warn .evtag{background:var(--warm)}

/* option assessment pages */
.opt-verdict{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;
  border-radius:99px;padding:.14rem .6rem;white-space:nowrap;vertical-align:middle}
.opt-yes{color:#0f766e;border:1px solid rgba(15,118,110,.35);background:rgba(15,118,110,.08)}
.opt-no{color:#b91c1c;border:1px solid rgba(185,28,28,.35);background:rgba(185,28,28,.08)}
.opt-part{color:#b45309;border:1px solid rgba(180,83,9,.35);background:rgba(180,83,9,.08)}

/* task board */
.tstat{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;border-radius:99px;padding:.1rem .5rem;white-space:nowrap}
.t-done{color:#0f766e;border:1px solid rgba(15,118,110,.35);background:rgba(15,118,110,.08)}
.t-doing{color:#1d4ed8;border:1px solid rgba(29,78,216,.3);background:rgba(29,78,216,.07)}
.t-open{color:#b45309;border:1px solid rgba(180,83,9,.35);background:rgba(180,83,9,.08)}
.t-need{color:#b91c1c;border:1px solid rgba(185,28,28,.35);background:rgba(185,28,28,.08)}

/* versions table */
table.vers td.vnum{font-family:var(--mono);font-weight:700;color:var(--accent-dk);white-space:nowrap}

/* the hope ladder */
.hopeladder{display:flex;flex-direction:column;gap:.9rem;margin:1.4rem 0 2rem}
.hopeladder .cap{position:relative;background:var(--panel);border:1px solid var(--line);
  border-left:3px solid var(--accent);border-radius:10px;padding:1.1rem 1.3rem 1.1rem 3.4rem;box-shadow:var(--shadow)}
.hopeladder .capnum{position:absolute;left:1.15rem;top:1.15rem;font-family:var(--mono);font-size:.78rem;
  font-weight:700;color:var(--accent);letter-spacing:-.03em}
.hopeladder .cap h3{margin:0 0 .5rem;font-size:1.05rem;color:#101114;letter-spacing:-.015em}
.hopeladder .cap p{margin:.5rem 0;font-size:.92rem;line-height:1.65;color:#34363c}
@media (max-width:560px){.hopeladder .cap{padding:2.4rem 1rem 1rem}.hopeladder .capnum{top:.85rem;left:1rem}}

/* ---------- footer ---------- */
footer.site{border-top:1px solid var(--line);margin-top:3.5rem;padding:2.2rem 0 3rem;background:var(--panel2)}
footer.site .cols{max-width:var(--wide);margin:0 auto;padding:0 1.1rem;display:grid;gap:1.6rem;grid-template-columns:1.8fr 1fr 1fr 1fr 1fr}
@media (max-width:1080px){footer.site .cols{grid-template-columns:2fr 1fr 1fr 1fr}}
@media (max-width:940px){footer.site .cols{grid-template-columns:1fr 1fr}}
footer.site h4{font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--dim);margin:0 0 .6rem}
footer.site a{display:block;color:var(--dim);font-size:.82rem;padding:.15rem 0}
footer.site .brandline{font-weight:800;color:var(--fg)}
footer.site .brandline span{color:var(--accent)}
footer.site p{color:var(--dim);font-size:.76rem;line-height:1.65;max-width:420px}
footer.site .netline{color:var(--dim);font-size:.78rem;line-height:1.8;max-width:420px;
  border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);padding:.55rem 0;margin:.9rem 0}
footer.site .netline a{display:inline;padding:0;color:var(--accent-dk)}
footer.site .netline a b{font-weight:800}
footer.site .partnote{color:var(--warm);opacity:.95}
footer.site .verline{font-family:var(--mono);font-size:.72rem;color:var(--dim2);margin-top:.6rem}
footer.site .verline a{display:inline;color:var(--accent-dk);padding:0}
@media (max-width:700px){footer.site .cols{grid-template-columns:1fr}}

/* print */
@page{margin:14mm}
@media print{
  html{print-color-adjust:exact;-webkit-print-color-adjust:exact;background:#fff}
  body{background:#fff;font-size:10pt;line-height:1.5}
  nav.site{position:static;background:none;backdrop-filter:none}
  nav.site a.nl,nav.site .gh,nav.site .parent,.nav-items,.nav-toggle{display:none}
  .note,pre,table,blockquote{break-inside:avoid}
  h1,h2,h3,h4{break-after:avoid}
  p,li{orphans:3;widows:3}
}

/* ---------- in-page markdown reader (documents/*) ---------- */
.mdread-label{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;background:var(--panel2);
  border:1px solid var(--line2);border-bottom:1px dashed var(--line2);border-radius:10px 10px 0 0;
  padding:.5rem 1rem;margin:1.4rem 0 0;font-family:var(--mono);font-size:.7rem;color:var(--dim);letter-spacing:.03em}
.mdread-label a{color:var(--accent-dk)}
.mdread{border:1px solid var(--line2);border-top:none;border-radius:0 0 10px 10px;background:#fff;
  padding:2rem 2.4rem;margin:0 0 1.6rem;
  box-shadow:0 2px 6px rgba(28,29,33,.08),0 14px 32px rgba(28,29,33,.08)}
@media (max-width:560px){.mdread{padding:1.3rem 1rem}}
.mdread h1{font-family:var(--serif);font-size:1.7rem;color:#101114;margin:.2rem 0 .8rem}
.mdread h2{font-family:var(--serif);font-size:1.25rem;color:#101114;margin:1.8rem 0 .6rem}
.mdread h3{font-size:1rem;color:#101114;margin:1.4rem 0 .4rem}
.mdread p,.mdread li{color:#34363c;font-size:.94rem;line-height:1.65}
.mdread table{display:block;overflow-x:auto;border-collapse:collapse;font-size:.85rem;margin:1rem 0}
.mdread th{background:var(--panel2);text-align:left;padding:.5rem .7rem;font-size:.7rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--dim);border:1px solid var(--line)}
.mdread td{padding:.5rem .7rem;border:1px solid var(--line);color:#34363c;vertical-align:top}
.mdread blockquote{margin:1.2rem 0;padding:.8rem 1.1rem;border-left:4px solid var(--warm);
  background:var(--panel2);border-radius:0 8px 8px 0;color:#34363c}
.mdread pre{background:var(--term-bg);color:#c9d1d9;border-radius:8px;padding:.8rem 1rem;
  font-size:.78rem;overflow-x:auto;line-height:1.6}
.mdread hr{border:none;border-top:1px solid var(--line);margin:1.6rem 0}
.mdread a{overflow-wrap:anywhere}
.docmeta{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;background:var(--panel);
  border:1px solid var(--line);border-radius:10px;padding:.9rem 1.1rem;box-shadow:var(--shadow);
  font-size:.86rem;margin:1rem 0 1.4rem}
.docmeta .k{color:var(--dim);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;padding-top:.15rem}
.docmeta .v{color:#34363c}

/* mermaid diagrams (concept pages + rendered inside .mdread) */
pre.mermaid{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem;
  margin:1.2rem 0;box-shadow:var(--shadow);text-align:center;overflow-x:auto;font-size:.8rem}

/* ---------- graphs additions ---------- */
/* the rules ladder — same component as nhi.sgit.ai's .hopeladder, named for what
   it holds here. Both selectors are kept so the stylesheet stays portable. */
.ladder{display:flex;flex-direction:column;gap:.9rem;margin:1.4rem 0 2rem}
.ladder .cap{position:relative;background:var(--panel);border:1px solid var(--line);
  border-left:3px solid var(--accent);border-radius:10px;padding:1.1rem 1.3rem 1.1rem 3.4rem;box-shadow:var(--shadow)}
.ladder .capnum{position:absolute;left:1.15rem;top:1.15rem;font-family:var(--mono);font-size:.78rem;
  font-weight:700;color:var(--accent);letter-spacing:-.03em}
.ladder .cap h3{margin:0 0 .5rem;font-size:1.05rem;color:#101114;letter-spacing:-.015em}
.ladder .cap p{margin:.5rem 0;font-size:.92rem;line-height:1.65;color:#34363c}
.ladder .cap .from{display:block;margin-top:.6rem;font-size:.76rem;color:var(--dim);
  border-top:1px dashed var(--line);padding-top:.5rem}
.ladder .cap .from b{color:var(--warm)}
@media (max-width:560px){.ladder .cap{padding:2.4rem 1rem 1rem}.ladder .capnum{top:.85rem;left:1rem}}

/* the split table's two verdict columns, in this site's terms */
.split th.safe{color:var(--accent-dk)} .split th.fatal{color:var(--red)}

/* dated timeline — the 2019 failure, in order */
.timeline{list-style:none;margin:1.4rem 0 2rem;padding:0 0 0 1.1rem;border-left:2px solid var(--line2)}
.timeline li{position:relative;padding:0 0 1.1rem 1.2rem}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:-1.62rem;top:.42rem;width:.62rem;height:.62rem;
  border-radius:99px;background:var(--panel);border:2px solid var(--accent)}
.timeline li.bad::before{border-color:var(--red)}
.timeline .when{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--dim2)}
.timeline .what{color:#34363c;font-size:.95rem;line-height:1.6}

/* a stated rule, quoted as a claim the reader may check */
.claim{font-family:var(--serif);font-size:1.12rem;line-height:1.6;color:#101114;
  background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--accent);
  border-radius:0 10px 10px 0;padding:1rem 1.2rem;margin:1.3rem 0;box-shadow:var(--shadow)}

/* mermaid on hand-written concept pages (the reader styles pre.mermaid already) */
.mermaid{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem;
  margin:1.2rem 0;box-shadow:var(--shadow);text-align:center;overflow-x:auto}

/* the pack download — a real affordance rather than a link in a paragraph */
.dl{display:flex;gap:1.4rem;align-items:center;justify-content:space-between;flex-wrap:wrap;
  background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:12px;padding:1.1rem 1.3rem;margin:1.6rem 0;box-shadow:var(--shadow)}
.dl > div{flex:1 1 22rem}
.dl p{margin:.45rem 0 0;font-size:.88rem;color:#34363c;line-height:1.6}
.dlbtn{display:flex;flex-direction:column;align-items:center;gap:.15rem;white-space:nowrap;
  background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:10px;
  padding:.75rem 1.3rem;font-weight:700;font-size:.9rem}
.dlbtn span{font-family:var(--mono);font-size:.68rem;font-weight:400;opacity:.85;letter-spacing:.04em}
.dlbtn:hover{background:var(--accent-dk);border-color:var(--accent-dk);text-decoration:none}


/* ---------- the three altitudes: the front page's doors, and the site's spine ----------
   The IA is the thesis: "this is just a question of altitude — from a very high altitude
   you see the city walls, and as you zoom in, roads and buildings, and eventually people
   and cars." Each door states the altitude, not just the section name. */
.altitudes{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));
  max-width:1160px;margin:0 auto;padding:0 1.1rem}
.alt{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--accent);
  border-radius:12px;padding:1.15rem 1.25rem;display:block;color:var(--fg);box-shadow:var(--shadow)}
a.alt:hover{border-color:var(--accent);text-decoration:none}
.alt .num{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.alt h3{margin:.3rem 0 .5rem;font-size:1.05rem;color:#101114;font-family:var(--sans)}
.alt p{margin:0;font-size:.85rem;color:var(--dim);line-height:1.6}
.alt .go{display:inline-block;margin-top:.6rem;font-size:.75rem;color:var(--accent-dk);font-weight:600}
.alt.a2{border-top-color:var(--warm)} .alt.a2 .num{color:var(--warm)} .alt.a2 .go{color:var(--warm)}
.alt.a3{border-top-color:var(--yellow)} .alt.a3 .num{color:var(--yellow)} .alt.a3 .go{color:var(--yellow)}

/* ---------- proof strip: real numbers, each one sourced ---------- */
.proof{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  max-width:1100px;margin:1.6rem auto 0;padding:0 1.1rem}
.proof .n{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:.8rem .9rem;text-align:center;box-shadow:var(--shadow)}
.proof .n b{display:block;font-size:1.15rem;color:var(--accent-dk);letter-spacing:-.02em}
.proof .n span{display:block;font-size:.72rem;color:var(--dim);line-height:1.45;margin-top:.2rem}
.proof .n em{display:block;font-style:normal;font-family:var(--mono);font-size:.6rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--dim2);margin-top:.3rem}

/* ---------- the "for an agent" block ----------
   Every section serves three readers, and the third is the one everyone omits: an agent
   that will carry the rule into another session. One sentence, pasteable, no chrome. */
.agent{border:1px solid var(--line2);border-left:3px solid var(--fg);background:var(--panel2);
  border-radius:0 10px 10px 0;padding:.85rem 1.1rem;margin:1.6rem 0;box-shadow:var(--shadow)}
.agent h4{margin:0 0 .4rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim)}
.agent p{margin:0;font-size:.9rem;color:#101114;line-height:1.6}
.agent code{background:var(--panel);border:1px solid var(--line)}

/* ---------- a path rendered as a sentence ----------
   "If your path doesn't read as a sentence in the reader's own words, your edges are
   wrong." So the site renders paths as sentences, not as arrows in a box. */
.pathline{font-family:var(--mono);font-size:.82rem;line-height:2.1;color:#34363c;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:.9rem 1.1rem;margin:1.1rem 0;overflow-x:auto;box-shadow:var(--shadow)}
.pathline .nd{background:var(--panel2);border:1px solid var(--line2);border-radius:5px;
  padding:.1em .4em;color:#101114;font-weight:600;white-space:nowrap}
.pathline .ed{color:var(--accent-dk);padding:0 .25em;white-space:nowrap}
.pathline .ed::before{content:"—"} .pathline .ed::after{content:"→"}
.pathline .ed.back::before{content:"←"} .pathline .ed.back::after{content:"—"}
.pathline .say{display:block;font-family:var(--sans);font-size:.86rem;color:var(--dim);
  line-height:1.6;margin-top:.5rem;border-top:1px dashed var(--line);padding-top:.5rem}

/* ---------- semantic edge palette ----------
   From the live Risk Graph Explorer: amber = exposure, green = assurance,
   ghosted = unanswered. Ghosted-for-unanswered is a direct visual expression of
   "absence of evidence is evidence" — the same colour rule on every rendered graph. */
.epal{display:flex;gap:1.2rem;flex-wrap:wrap;align-items:center;font-size:.8rem;
  color:var(--dim);margin:1rem 0}
.epal span{display:inline-flex;align-items:center;gap:.4rem}
.epal i{width:1.6rem;height:0;border-top:3px solid var(--dim2);display:inline-block}
.epal i.exposure{border-color:var(--warm)}
.epal i.assurance{border-color:var(--accent)}
.epal i.unanswered{border-top-style:dashed;border-color:var(--dim2);opacity:.55}
.g-exposure{color:var(--warm);font-weight:600}
.g-assurance{color:var(--accent-dk);font-weight:600}
.g-unanswered{color:var(--dim2);font-style:italic}

/* ---------- glossary ---------- */
table.gloss td:first-child{white-space:nowrap;font-weight:600;color:#101114}
table.gloss td.plain{color:var(--accent-dk)}
.gloss-note{font-size:.8rem;color:var(--dim);margin-top:-.6rem}

/* ---------- status pills reused for maturity / publish state ---------- */
.pill{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;
  border-radius:99px;padding:.1rem .5rem;white-space:nowrap}
.p-ships{color:#0f766e;border:1px solid rgba(15,118,110,.35);background:rgba(15,118,110,.08)}
.p-argued{color:#b45309;border:1px solid rgba(180,83,9,.35);background:rgba(180,83,9,.08)}
.p-absent{color:#b91c1c;border:1px solid rgba(185,28,28,.35);background:rgba(185,28,28,.08)}
.p-live{color:#1d4ed8;border:1px solid rgba(29,78,216,.3);background:rgba(29,78,216,.07)}

/* ---------- the book ----------
   Three reading modes of one artefact: chapter pages with a persistent left TOC,
   a single page holding everything, and a PDF printed from that single page.
   The book is generated from the site's own pages (admin/build/gen_book.py) — a
   projection, in the site's own sense — so nothing here styles new content, only
   new arrangement. */
.bookwrap{max-width:1360px;margin:0 auto;padding:0 1.1rem;display:grid;
  grid-template-columns:280px minmax(0,1fr);gap:2.2rem;align-items:start}
aside.booktoc{position:sticky;top:74px;max-height:calc(100vh - 95px);overflow-y:auto;
  margin-top:1.7rem;padding:1.1rem 1rem;background:var(--panel);border:1px solid var(--line);
  border-radius:12px;box-shadow:var(--shadow);font-size:.82rem}
.booktoc .tocpart{font-size:.63rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--warm);margin:1rem 0 .25rem}
.booktoc .tocpart:first-child{margin-top:0}
.booktoc a{display:block;padding:.24rem .5rem;border-radius:6px;color:var(--dim);line-height:1.45}
.booktoc a:hover{background:var(--panel2);color:var(--fg);text-decoration:none}
.booktoc a.here{color:var(--accent-dk);font-weight:600;background:rgba(15,118,110,.07)}
.booktoc .tocmodes{border-top:1px dashed var(--line);margin-top:.9rem;padding-top:.7rem}
.booktoc .tocmodes a{color:var(--accent-dk);font-size:.76rem}
.bookmain{min-width:0}
.bookbar{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;font-size:.78rem;color:var(--dim2);
  border:1px solid var(--line);background:var(--panel2);border-radius:99px;padding:.35rem 1.05rem;
  margin:1.7rem 0 0;width:max-content;max-width:100%}
.bookbar a{color:var(--accent-dk);white-space:nowrap}
.chkick{font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--warm)}
.chnum{font-family:var(--serif);font-size:.95rem;color:var(--dim2);margin:.4rem 0 0}
main.doc.bookch{padding-top:1.5rem}
main.doc.bookch h1{margin-top:.25rem}
@media (max-width:960px){.bookwrap{display:block}aside.booktoc{display:none}}

/* cover, and the part divider pages */
.bookcover{text-align:center;max-width:780px;margin:0 auto;padding:4.6rem 1.2rem 2.6rem}
.bookcover .eyebrow{margin-bottom:.4rem}
.bookcover h1{font-family:var(--serif);font-size:clamp(2.4rem,6vw,3.7rem);letter-spacing:-.02em;
  margin:.7rem 0 .8rem;color:#101114}
.bookcover .bsub{color:var(--dim);font-size:1.06rem;line-height:1.65;max-width:600px;margin:0 auto 1.9rem}
.bookcover blockquote{margin:0 auto 1.9rem;max-width:560px;font-family:var(--serif);font-style:italic;
  font-size:1.02rem;line-height:1.7;color:#34363c;border:none;padding:0}
.bookcover .byline{font-size:1.02rem;color:#101114;font-weight:600;margin:0 0 .25rem}
.bookcover .ed{font-family:var(--mono);font-size:.72rem;color:var(--dim2);margin:0}
.parthead{text-align:center;max-width:720px;margin:0 auto;padding:4.2rem 1.2rem .6rem}
.parthead .pk{font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--warm)}
.parthead h2{font-family:var(--serif);font-size:2rem;color:#101114;margin:.7rem 0 .5rem}
.parthead p{color:var(--dim);font-size:.98rem;line-height:1.65;max-width:560px;margin:0 auto}

/* the single page's table of contents */
.singletoc{max-width:var(--measure);margin:0 auto;padding:0 1.4rem 1rem}
.singletoc .tocpart{font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--warm);margin:1.2rem 0 .25rem}
.singletoc a{display:block;padding:.14rem 0;color:var(--dim);font-size:.92rem}
.singletoc a:hover{color:var(--fg)}

/* print: the PDF is Chromium's print of single.html */
@media print{
  body.bookpage nav.site,body.bookpage footer.site,.bookbar,aside.booktoc,.singletoc,
  body.bookpage .noprint{display:none!important}
  .bookwrap{display:block}
  body.bookpage a{color:inherit;text-decoration:none}
  /* shadows rasterise to embedded JPEGs in Chromium's print pipeline and quintuple
     the PDF size for zero benefit on paper */
  body.bookpage *{box-shadow:none!important;backdrop-filter:none!important}
  .bookcover{padding-top:34vh;page-break-after:always}
  .parthead{padding-top:32vh;page-break-after:always}
  main.doc.chap{page-break-before:always;padding-top:0}
  .agent,.docmeta,.pathline{break-inside:avoid}
}

/* the book cover, shown on /book/ and reusable anywhere on the site */
img.coverimg{width:300px;max-width:86%;border-radius:8px;border:1px solid var(--line);
  box-shadow:0 16px 44px rgba(16,17,20,.28)}

/* ---------- the version diff (book/changes.html) ---------- */
.diffbar{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1rem;margin:1.2rem 0 .6rem;
  padding:.8rem 1rem;background:var(--panel,#fdfcf8);border:1px solid #e4e0d6;border-radius:12px}
.diffbar label{font-size:.92rem;display:inline-flex;align-items:center;gap:.4rem}
.diffbar select{font:inherit;font-size:.9rem;padding:.3rem .5rem;border:1px solid #cfcabc;
  border-radius:8px;background:#fff;max-width:15rem}
.diffbar .darrow{color:#8a8578}
.diffbar .dmodes{margin-left:auto;display:flex;gap:.9rem;flex-wrap:wrap}
.diffbar .dmodes input{accent-color:#0d5c50}
.diffunit{margin:1.9rem 0}
.diffunit h2{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}
.dcount{font-size:.78rem;font-weight:600;letter-spacing:.02em}
.dcount .ca{color:#1e6b3a}.dcount .cd{color:#a33a31}.dcount .cm{color:#a06a14}
.dcount.dun{color:#a09a8a;font-weight:500}
.dblk{padding:.45rem .75rem;border-radius:9px;margin:.4rem 0;line-height:1.6;font-size:.95rem}
.dsame{color:#7d786b}
.dadd{background:#e7f3ea;border-left:3px solid #2e7d4f}
.ddel{background:#fbebe9;border-left:3px solid #b3564d;text-decoration:line-through;
  text-decoration-color:rgba(179,86,77,.45)}
.dmod{background:#fff;border:1px solid #e8e4d9;border-left:3px solid #c98a2b}
ins.dw{background:#c9e9d2;color:#12401f;text-decoration:none;border-radius:4px;padding:0 .18em}
del.dw{background:#f6d3cf;color:#5c1f19;border-radius:4px;padding:0 .18em}
.dgap{margin:.4rem 0}
.dgap button{font:inherit;font-size:.8rem;color:#7d786b;background:none;border:1px dashed #cfcabc;
  border-radius:8px;padding:.25rem .8rem;cursor:pointer;width:100%;text-align:center}
.dgap button:hover{color:#0d5c50;border-color:#0d5c50}

/* ---------- the reviews (reviews/) ---------- */
.revhead{padding:.9rem 1.1rem;background:var(--panel,#fdfcf8);border:1px solid #e4e0d6;
  border-radius:12px;margin:1.2rem 0 1.6rem}
.revhead p{margin:.3rem 0}
.rstate{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;padding:.12rem .55rem;border-radius:999px;border:1px solid}
.rs-received,.rs-noted{color:#7d786b;border-color:#cfcabc;background:#f6f3ea}
.rs-commented,.rs-proposed{color:#a06a14;border-color:#dfc394;background:#faf3e3}
.rs-discussing{color:#0d5c50;border-color:#9cc5be;background:#e9f3f1}
.rs-agreed,.rs-applied{color:#1e6b3a;border-color:#a4cfb2;background:#e7f3ea}
.rs-declined{color:#a33a31;border-color:#dcaaa4;background:#fbebe9}
.revitem{margin:2.1rem 0;padding-top:.2rem}
.revitem h2{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}
.revlbl{display:block;font:700 .72rem/1 system-ui,sans-serif;letter-spacing:.09em;
  text-transform:uppercase;color:#8a8578;margin-bottom:.45rem}
.revq{margin:.9rem 0;padding:.8rem 1rem;border-left:3px solid #c98a2b;background:#fbf7ee;
  border-radius:0 10px 10px 0;font-style:italic}
.revq .revlbl{font-style:normal}
.revc,.revp,.revn{margin:.9rem 0;padding:.8rem 1rem;border:1px solid #e4e0d6;
  border-radius:10px;background:#fff}
.revp{border-left:3px solid #0d5c50}
.revn{border-left:3px solid #a06a14}
.revc p,.revp p{margin:0}
.revn ul{margin:0;padding-left:1.2rem}
.revth{margin:.9rem 0;padding:.8rem 1rem;border:1px solid #e4e0d6;border-left:3px solid #0d5c50;
  border-radius:10px;background:#f4f8f7}
.revte{margin:.4rem 0 0}
.revte .revwho{margin:0 0 .3rem;font-size:.8rem;font-weight:700;color:#0d5c50}
.revte p{margin:.3rem 0}
.revte ul{margin:.4rem 0 0;padding-left:1.2rem}
.rs-open{color:#a06a14;border-color:#dfc394;background:#faf3e3}
.rs-answered{color:#1e6b3a;border-color:#a4cfb2;background:#e7f3ea}
.revds{margin:1.4rem 0 1.8rem;padding:1rem 1.2rem;border:1px solid #dfc394;
  border-left:3px solid #a06a14;background:#fffdf6;border-radius:10px}
.revds>h2{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;margin-top:0}
.revd{margin:.9rem 0 0;padding:.7rem .9rem;border:1px solid #eee5d0;background:#fff;
  border-radius:8px}
.revd .revdq{margin:0 0 .4rem;font-size:.85rem}
.revd p{margin:.3rem 0 0}
.revd ul{margin:.4rem 0 0;padding-left:1.2rem}
.revda{padding-top:.4rem}
/* the altitude ladder (/altitudes/) — an experiment from review r004 */
/* Columns, not pages: opening a unit adds a column beside the current one, so the
   tree stays visible. Columns are resizable; the container scrolls, the page does not. */
.altbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem;margin:1.2rem 0 .8rem}
.altlv{display:block;text-align:left;padding:.55rem .7rem;border:1px solid #e4e0d6;border-radius:9px;
  background:#fff;cursor:pointer;font:inherit;color:inherit}
.altlv:hover:not([disabled]){border-color:#9cc5be;background:#f4f8f7}
.altlv[disabled]{opacity:.55;cursor:default}
.altlv.on{border-color:#0d5c50;background:#e9f3f1;box-shadow:inset 0 0 0 1px #0d5c50}
.altlv b{display:block;font-size:.95rem;color:#0d5c50}
.altlv span{display:block;font-size:.82rem;font-weight:600}
.altlv em{display:block;font-size:.72rem;font-style:normal;color:#8a8578;margin-top:.15rem}
.altmode{margin:0 0 1rem;padding:.7rem .9rem;border:1px solid #e4e0d6;border-radius:10px;background:#faf9f5}
.altmode .revlbl{margin-bottom:.4rem}
.altmb{font:inherit;font-size:.82rem;padding:.25rem .7rem;margin:0 .35rem .35rem 0;border:1px solid #e4e0d6;
  border-radius:999px;background:#fff;cursor:pointer;color:#5c5f66}
.altmb:hover{border-color:#9cc5be}
.altmb.on{background:#0d5c50;border-color:#0d5c50;color:#fff;font-weight:600}
.altmode p{margin:.35rem 0 .5rem}
.altkey{display:flex;flex-wrap:wrap;gap:.3rem}
.altk{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.04em;padding:.1rem .5rem;
  border-radius:999px;border:1px solid #cfcabc;background:#f6f3ea;color:#5c5f66}
.altk em{font-style:normal;opacity:.6;font-weight:600}
.altk.t-type{border-style:dashed;background:#fff}
/* mode: evidence */
.altk.t-evidenced,.altseg.tone-evidenced{--tn:#1e6b3a;--tnbg:#e7f3ea}
.altk.t-argued,.altseg.tone-argued{--tn:#a06a14;--tnbg:#faf3e3}
.altk.t-unevidenced,.altseg.tone-unevidenced{--tn:#a33a31;--tnbg:#fbebe9}
.altk.t-unlifted,.altseg.tone-unlifted,.altseg.tone-none{--tn:#8a8578;--tnbg:#f2f0e9}
/* mode: depth */
.altk.t-descends,.altseg.tone-descends{--tn:#0d5c50;--tnbg:#e9f3f1}
.altk.t-leaf,.altseg.tone-leaf{--tn:#4a5b6a;--tnbg:#eef1f4}
/* mode: taxonomy class — one hue per class, stable across levels */
.altk.t-c-work,.altseg.tone-c-work{--tn:#5b4d8f;--tnbg:#efecf8}
.altk.t-c-argument,.altseg.tone-c-argument{--tn:#0d5c50;--tnbg:#e9f3f1}
.altk.t-c-prescription,.altseg.tone-c-prescription{--tn:#1e6b3a;--tnbg:#e7f3ea}
.altk.t-c-evidence,.altseg.tone-c-evidence{--tn:#a06a14;--tnbg:#faf3e3}
.altk.t-c-record,.altseg.tone-c-record{--tn:#8a5a2b;--tnbg:#f7efe4}
.altk.t-c-disclosure,.altseg.tone-c-disclosure{--tn:#a33a31;--tnbg:#fbebe9}
.altk.t-c-apparatus,.altseg.tone-c-apparatus{--tn:#4a5b6a;--tnbg:#eef1f4}
.altk.t-c-definition,.altseg.tone-c-definition{--tn:#5b4d8f;--tnbg:#efecf8}
.altk.t-c-demonstration,.altseg.tone-c-demonstration{--tn:#0d5c50;--tnbg:#e9f3f1}
.altk.t-c-rule,.altseg.tone-c-rule{--tn:#1e6b3a;--tnbg:#e7f3ea}
.altk.t-c-correction,.altseg.tone-c-correction{--tn:#a33a31;--tnbg:#fbebe9}
.altk.t-c-signpost,.altseg.tone-c-signpost{--tn:#8a5a2b;--tnbg:#f7efe4}
.altk[class*="t-c-"],.altk.t-evidenced,.altk.t-argued,.altk.t-unevidenced,.altk.t-unlifted,
.altk.t-descends,.altk.t-leaf{color:var(--tn);background:var(--tnbg);border-color:var(--tn)}
/* the columns */
.altcols{display:flex;align-items:stretch;gap:0;overflow-x:auto;overflow-y:visible;
  padding-bottom:.4rem;scroll-snap-type:x proximity}
.altcol{flex:0 0 380px;min-width:240px;border:1px solid #e4e0d6;border-radius:12px;background:#fff;
  display:flex;flex-direction:column;scroll-snap-align:end;overflow:hidden}
.altch{display:flex;align-items:center;gap:.5rem;padding:.5rem .8rem;border-bottom:1px solid #eee9dd;
  background:#faf9f5;border-radius:12px 12px 0 0}
.altch b{color:#0d5c50;font-size:.88rem}
.altch span{font-size:.8rem;color:#5c5f66;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.altib,.altob{font:inherit;font-size:.72rem;padding:.15rem .55rem;border:1px solid #e4e0d6;border-radius:999px;
  background:#fff;cursor:pointer;color:#5c5f66;white-space:nowrap}
.altib:hover,.altob:hover{border-color:#0d5c50;color:#0d5c50}
.altib.on,.altob.on{background:#0d5c50;border-color:#0d5c50;color:#fff}
.altcb{padding:.9rem 1rem 1.1rem;overflow-y:auto;max-height:min(72vh,780px)}
.altnode h3{margin:0 0 .35rem;font-size:1.02rem}
.altmeta{margin:0 0 .7rem;display:flex;gap:.35rem;align-items:center;flex-wrap:wrap}
.altproj{margin:.2rem 0 .9rem;line-height:1.7}
a.altseg{color:inherit;text-decoration:none;border-bottom:2px solid var(--tn,#cfe3df);
  background:linear-gradient(transparent 82%,var(--tnbg,#e9f3f1) 82%);padding-bottom:1px;cursor:pointer}
a.altseg:hover{background:var(--tnbg,#e9f3f1);border-bottom-color:var(--tn,#0d5c50)}
.altdrag{flex:0 0 11px;cursor:col-resize;position:relative}
.altdrag::before{content:"";position:absolute;inset:0 4px;border-radius:3px;background:#e4e0d6}
.altdrag:hover::before{background:#0d5c50}
body.altdragging{cursor:col-resize;user-select:none}
/* the level index */
.altidx>p{margin:0 0 .7rem}
.altigrp{margin:0 0 .9rem}
.altigrp h4{margin:0 0 .2rem;font-size:.85rem;display:flex;gap:.4rem;align-items:center}
.altigrp p{margin:0 0 .35rem}
.altigrp ul{margin:0;padding-left:1.1rem}
.altigrp li{margin:.15rem 0;font-size:.9rem}
.altigrp a.cur{font-weight:700;color:#0d5c50}
/* the per-level ontology and taxonomy */
.altont{margin:.6rem 0 0;padding:.8rem .9rem;border:1px solid #e4e0d6;border-left:3px solid #5b4d8f;
  border-radius:10px;background:#fbfaff}
.altont h4{margin:.7rem 0 .3rem;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:#5b4d8f}
.altont ul{margin:0;padding-left:1.1rem;font-size:.9rem}
.altont table{font-size:.82rem}
.alttax{list-style:none;padding-left:0}
.alttax ul{list-style:none;padding-left:.9rem;border-left:2px solid #e4e0d6}
.alttax li{margin:.3rem 0}
.altfoot{margin:.8rem 0 0}
/* the graph panel that sits beside every projection */
.altgraph{margin:.9rem 0 .4rem;padding:.75rem .9rem;border:1px solid #e4e0d6;border-left:3px solid #a06a14;
  border-radius:10px;background:#fffdf6}
.altgraph>ul{margin:0;padding-left:0;list-style:none;font-size:.92rem}
.altgraph>ul>li{margin:.45rem 0}
.acst{display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:.06rem .42rem;border-radius:999px;border:1px solid;margin-right:.35rem}
.ac-evidenced .acst{color:#1e6b3a;border-color:#a4cfb2;background:#e7f3ea}
.ac-argued .acst{color:#a06a14;border-color:#dfc394;background:#faf3e3}
.ac-unevidenced{opacity:.62}
.ac-unevidenced .acst{color:#7d786b;border-color:#cfcabc;background:#f6f3ea}
.acev{margin:.25rem 0 0 1.2rem;padding:0;font-size:.84rem;color:#6f6a5e}
.altbook{margin:.7rem 0 .2rem;font-weight:600;font-size:.92rem}
.altnolift{border-left:3px solid #cfcabc;padding-left:.8rem;margin:.9rem 0}
@media (max-width:700px){.altcol{flex:0 0 86vw}.altcb{max-height:none}}
.altfind{border:1px solid #e4e0d6;border-radius:10px;padding:.9rem 1.1rem;margin:.9rem 0;background:#fff}
.altfind h3{margin:0 0 .4rem;font-size:1.02rem;display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap}
.altfind .rstate{color:#7d786b;border-color:#cfcabc;background:#f6f3ea}
.af-contradiction{border-left:3px solid #a33a31}
.af-contradiction .rstate{color:#a33a31;border-color:#dcaaa4;background:#fbebe9}
.af-repeat{border-left:3px solid #a06a14}
.af-compression-loss{border-left:3px solid #c98a2b}
.af-weight{border-left:3px solid #0d5c50}
.af-weight .rstate{color:#0d5c50;border-color:#9cc5be;background:#e9f3f1}
.af-control{border-left:3px solid #cfcabc}
.altverdict{margin:.5rem 0 .2rem;padding:.5rem .7rem;background:#f9f7f1;border-radius:8px}
.af-cross-estate{border-left:3px solid #b45309}
.af-cross-estate .rstate{color:#a06a14;border-color:#dfc394;background:#faf3e3}
/* a column that just changed: feedback without moving the screen */
@keyframes altpulse{from{box-shadow:0 0 0 2px #0d5c50 inset;background:#f4f8f7}
  to{box-shadow:0 0 0 0 transparent inset;background:#fff}}
.altcol.altnew{animation:altpulse .7s ease-out}
@media (prefers-reduced-motion:reduce){.altcol.altnew{animation:none}}
/* the ladder as one graph (/altitudes/graph.html) */
main.doc.wide{max-width:var(--wide)}
.gwrap{display:grid;grid-template-columns:230px minmax(0,1fr) 300px;gap:.8rem;margin:1.2rem 0 .8rem;
  align-items:start}
.gcfg{margin:0;display:flex;flex-direction:column;gap:.6rem}
.gcfg fieldset{margin:0;border:1px solid #e4e0d6;border-radius:10px;padding:.5rem .7rem .6rem;background:#fff}
.gcfg legend{font:700 .68rem/1 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:#8a8578;padding:0 .3rem}
.gcfg label{display:block;font-size:.82rem;margin:.18rem 0;cursor:pointer}
.gcfg input{margin-right:.35rem}
.gcfg button{font:inherit;font-size:.8rem;padding:.25rem .6rem;margin:.15rem .3rem .15rem 0;
  border:1px solid #e4e0d6;border-radius:7px;background:#fff;cursor:pointer}
.gcfg button:hover{border-color:#0d5c50;color:#0d5c50}
#cy{height:min(76vh,740px);border:1px solid #e4e0d6;border-radius:12px;background:#fdfcf9}
.gdetail{border:1px solid #e4e0d6;border-radius:12px;padding:.8rem .95rem;background:#fff;
  max-height:min(76vh,740px);overflow-y:auto}
.gdetail h3{margin:.1rem 0 .3rem;font-size:.98rem}
.gdetail p{margin:.35rem 0;font-size:.88rem}
.gkey{display:flex;flex-wrap:wrap;gap:.9rem;font-size:.8rem;color:#5c5f66;margin:0 0 1.4rem}
.gkey i{display:inline-block;width:26px;height:0;vertical-align:middle;margin-right:.3rem}
.gkey em{font-style:normal;color:#8a8578}
.ge-tree{border-top:2px solid #9cc5be}
.ge-cites{border-top:2px dashed #c98a2b}
.ge-flags{border-top:2px dotted #a33a31}
.gn-find{width:10px;height:10px;background:#a33a31;transform:rotate(45deg);border-radius:2px}
@media (max-width:1100px){.gwrap{grid-template-columns:1fr}#cy{height:60vh}.gdetail{max-height:none}}
/* the vault analyses (/vaults/) */
.vshot{margin:1.2rem 0;padding:0}
.vshot img{width:100%;height:auto;display:block;border:1px solid #e4e0d6;border-radius:10px;background:#fff}
.vshot figcaption{margin:.45rem 0 0;font-size:.85rem;color:#5c5f66}
.vfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.6rem;margin:1.1rem 0 .5rem}
.vfacts>div{border:1px solid #e4e0d6;border-radius:10px;padding:.6rem .7rem;background:#fff;text-align:center}
.vfacts b{display:block;font-size:1.15rem;color:#0d5c50;font-family:var(--serif)}
.vfacts span{display:block;font-size:.72rem;color:#8a8578;margin-top:.15rem}
.vfacts .vf-big{grid-column:span 2;border-color:#9cc5be;background:#f4f8f7}
.vcite{margin:1.6rem 0 .6rem;padding:.9rem 1.1rem;border:1px solid #dfc394;border-left:3px solid #a06a14;
  border-radius:10px;background:#fffdf6}
.vcite ul{margin:.3rem 0 0;padding-left:1.2rem}
.vcite li{margin:.3rem 0}
blockquote.pull{margin:1rem 0;padding:.8rem 1.1rem;border-left:3px solid #0d5c50;background:#f4f8f7;
  border-radius:0 10px 10px 0;font-size:1.02rem}
blockquote.pull p{margin:0}
/* graph explorer: resizable panes, fullscreen, wide mode */
.gwrap{--gdw:300px;grid-template-columns:236px minmax(0,1fr) 11px var(--gdw)}
.gwrap.gwide{grid-template-columns:minmax(0,1fr)}
.gwrap.gwide .gcfg,.gwrap.gwide .gdetail,.gwrap.gwide .gresize-h{display:none}
.gwrap:fullscreen{background:var(--bg);padding:.6rem;gap:.6rem;align-content:start}
.gwrap:fullscreen #cy{height:calc(100vh - 90px)}
.gmid{display:flex;flex-direction:column;min-width:0}
.gresize-v{height:9px;cursor:row-resize;position:relative}
.gresize-v::before{content:"";position:absolute;left:36%;right:36%;top:3px;height:3px;
  border-radius:3px;background:#e4e0d6}
.gresize-v:hover::before{background:#0d5c50}
.gresize-h{cursor:col-resize;position:relative}
.gresize-h::before{content:"";position:absolute;inset:0 4px;border-radius:3px;background:#e4e0d6}
.gresize-h:hover::before{background:#0d5c50}
.gcfg .grange{display:block;font-size:.78rem;color:#5c5f66;margin:.3rem 0}
.gcfg .grange input[type=range]{width:100%;margin-top:.1rem}
.gcfg output{font-weight:700;color:#0d5c50}
.gcfg fieldset p{margin:.35rem 0 0}
.gpath{margin:.4rem 0 0;padding-left:1.2rem;font-size:.88rem}
.gpath li{margin:.3rem 0}
.gpath code{background:#e9f3f1;border-color:#9cc5be}
#gnote:not(:empty){padding:.4rem .7rem;border:1px solid #dfc394;background:#faf3e3;
  border-radius:8px;margin:.2rem 0 .6rem;color:#7a5a12}
#ginventory:not(:empty){padding:.5rem .8rem;border:1px solid #e4e0d6;border-radius:8px;background:#fff}
@media (max-width:1100px){.gwrap,.gwrap.gwide{grid-template-columns:1fr}
  .gresize-h{display:none}}
/* the concept map */
.cpeaks{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem;margin:.8rem 0 1.4rem}
.cpeak{display:flex;align-items:center;gap:.5rem;padding:.55rem .7rem;border:1px solid #e4e0d6;
  border-left:3px solid #c9a227;border-radius:9px;background:#fff;color:inherit}
.cpeak:hover{border-color:#0d5c50;text-decoration:none}
.cpeak b{font-family:var(--serif);font-size:1.1rem;color:#c9a227}
.cpeak span{flex:1;font-size:.86rem;font-weight:600}
.cpeak em{font-style:normal;font-size:.75rem;color:#8a8578}
.cwrap{display:grid;grid-template-columns:270px minmax(0,1fr);gap:1rem;align-items:start}
.clist{border:1px solid #e4e0d6;border-radius:12px;background:#fff;overflow:hidden;
  max-height:min(74vh,820px);overflow-y:auto}
.clhead{display:flex;justify-content:space-between;align-items:center;gap:.4rem;padding:.5rem .7rem;
  border-bottom:1px solid #eee9dd;background:#faf9f5;position:sticky;top:0}
.clhead b{font-size:.82rem}
.citem{display:block;position:relative;padding:.42rem .7rem;border-bottom:1px solid #f4f1e8;
  color:inherit;font-size:.85rem}
.citem:hover{background:#f4f8f7;text-decoration:none}
.citem.cur{background:#e9f3f1;box-shadow:inset 3px 0 0 #0d5c50}
.citem.peak b{color:#8a6d10}
.citem b{position:relative;font-weight:600}
.citem em{position:relative;float:right;font-style:normal;font-size:.72rem;color:#8a8578}
.cbar{position:absolute;left:0;top:0;bottom:0;background:#f2f0e9}
.citem.peak .cbar{background:#faf3e3}
.cmain{min-width:0}
.cpanel{border:1px solid #e4e0d6;border-radius:12px;background:#fff;padding:1.1rem 1.3rem}
.cpanel h2{margin:0 0 .5rem;display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap}
.cdef{font-size:1.05rem;margin:0 0 .8rem}
.cthes{border:1px solid #eee9dd;border-radius:10px;padding:.6rem .8rem;background:#faf9f5;margin:0 0 .9rem}
.cthes p{margin:.3rem 0;font-size:.9rem}
.cnear{display:inline-block;border:1px dashed #dcaaa4;border-radius:999px;padding:.05rem .55rem;
  margin:0 .3rem .2rem 0;font-size:.82rem;color:#8a3a31;background:#fdf5f4}
.ccols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.7rem;margin:0 0 .9rem}
.cedge{border:1px solid #e4e0d6;border-left:3px solid #5b4d8f;border-radius:10px;padding:.6rem .8rem;background:#fbfaff}
.cedge ul{margin:0;padding-left:1.1rem;font-size:.88rem}
.cedge li{margin:.2rem 0}
.cwhere{border:1px solid #e4e0d6;border-left:3px solid #0d5c50;border-radius:10px;padding:.6rem .8rem;
  background:#f4f8f7;margin:0 0 .8rem}
.cwhere ul{margin:0;padding-left:0;list-style:none;font-size:.9rem}
.cwhere li{margin:.2rem 0}
.clv{display:inline-block;font-size:.68rem;font-weight:700;color:#0d5c50;border:1px solid #9cc5be;
  border-radius:999px;padding:0 .4rem;margin-right:.35rem}
.cshown{border:1px solid #dfc394;border-left:3px solid #a06a14;border-radius:10px;padding:.6rem .8rem;
  background:#fffdf6;margin:0 0 .8rem}
.cshown ul{margin:0;padding-left:1.1rem;font-size:.9rem}
@media (max-width:900px){.cwrap{grid-template-columns:1fr}.clist{max-height:340px}}
.af-concept{border-left:3px solid #5b4d8f}
.af-concept .rstate{color:#5b4d8f;border-color:#c4bbe0;background:#efecf8}
main.doc.bleed{max-width:min(1900px,97vw)}
/* the path query builder */
.gq{margin:.8rem 0;padding:.8rem 1rem;border:1px solid #e4e0d6;border-left:3px solid #5b4d8f;
  border-radius:10px;background:#fbfaff}
.gqrow{display:flex;align-items:center;gap:.45rem;margin:.35rem 0;flex-wrap:wrap}
.gqrow label{font-size:.85rem;display:flex;align-items:center;gap:.4rem}
.gqn{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;
  border-radius:999px;background:#efecf8;color:#5b4d8f;font-size:.72rem;font-weight:700}
.gq select{font:inherit;font-size:.83rem;padding:.2rem .4rem;border:1px solid #e4e0d6;
  border-radius:7px;background:#fff}
.gq button{font:inherit;font-size:.85rem;padding:.3rem .9rem;border:1px solid #0d5c50;
  border-radius:8px;background:#0d5c50;color:#fff;cursor:pointer;font-weight:600}
.gq button:hover{background:#0a4a40}
.gqpresets{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.3rem}
.gqpresets a{font-size:.78rem;border:1px solid #cfcabc;border-radius:999px;padding:.15rem .6rem;
  background:#fff;color:#5c5f66}
.gqpresets a:hover{border-color:#5b4d8f;color:#5b4d8f;text-decoration:none}
.gqout{margin:.4rem 0 1.4rem;padding:.7rem .9rem;border:1px solid #e4e0d6;border-radius:10px;background:#fff;
  max-height:420px;overflow-y:auto}
.gqout .gpath a{color:inherit}
.gqout .gpath a:hover{text-decoration:none;background:#f4f8f7}
/* finding states and computed checks */
.altbecause{margin:.4rem 0 .2rem;padding:.5rem .7rem;background:#f4f8f7;border-radius:8px;font-size:.9rem}
.altfind.fs-accepted{opacity:.92}
.altfind.fs-accepted h3 .rs-agreed{margin-left:auto}
.altchk{border:1px solid #e4e0d6;border-radius:10px;padding:.85rem 1.05rem;margin:.8rem 0;background:#fff}
.altchk.sv-watch{border-left:3px solid #a06a14}
.altchk.sv-note{border-left:3px solid #4a5b6a}
.altchk h3{margin:0 0 .4rem;font-size:1rem;display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap}
.altchk .rstate{color:#5c5f66;border-color:#cfcabc;background:#f6f3ea}
.chkrule{margin:.2rem 0 .5rem}
.chkrule code{font-size:.82rem;background:#f2f0e9;border:1px solid #e4e0d6;border-radius:5px;padding:.1em .4em}
.altchk ul{margin:.3rem 0 .5rem;padding-left:1.2rem;font-size:.9rem}
.altchk li{margin:.2rem 0}
/* the decisions register: peaks with their options, costs and blocked work */
.dwrap{display:grid;grid-template-columns:214px minmax(0,1fr) minmax(360px,.8fr);gap:.9rem;margin:1.2rem 0 1rem;align-items:start}
.dwrap.dwide{grid-template-columns:minmax(0,1fr)}
.dwrap.dwide .dlist,.dwrap.dwide .dmain{display:none}
.dwrap.dwide #dcy{height:min(82vh,880px)}
.dlist{border:1px solid #e4e0d6;border-radius:12px;background:#fff;overflow:hidden;
  max-height:min(78vh,760px);overflow-y:auto;position:sticky;top:.6rem}
.dlhead{display:flex;justify-content:space-between;align-items:baseline;gap:.4rem;padding:.5rem .7rem;
  background:#f6f3ea;border-bottom:1px solid #e4e0d6;font-size:.78rem;color:#8a8578}
.dlhead2{border-top:1px solid #e4e0d6}
.dlhead b{font-size:.82rem;color:#3a3b40}
.ditem{display:block;padding:.45rem .7rem;border-bottom:1px solid #f4f1e8;color:inherit;font-size:.84rem}
.ditem:hover{background:#f4f8f7;text-decoration:none}
.ditem.cur{background:#efecf8;box-shadow:inset 3px 0 0 #5b4d8f}
.ditem b{font-weight:700;font-size:.78rem;color:#5b4d8f}
.ditem span{display:block;color:#3a3b40;margin-top:.1rem}
.dst{display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  font-style:normal;border:1px solid;border-radius:999px;padding:.02rem .4rem;float:right}
.dst-open{color:#a06a14;border-color:#dfc394;background:#faf3e3}
.dst-drafted{color:#5b4d8f;border-color:#c4bbe0;background:#efecf8}
.dst-answered{color:#1e6b3a;border-color:#a4cfb2;background:#e7f3ea}
.dpanel{border:1px solid #e4e0d6;border-radius:12px;background:#fff;padding:1.1rem 1.3rem}
.dph h2{margin:.1rem 0 .2rem;font-size:1.24rem}
.dpid{font:700 .72rem/1 var(--sans);letter-spacing:.08em;color:#5b4d8f}
.dq{margin:.7rem 0;padding:.7rem .9rem;background:#f6f3ea;border-left:3px solid #5b4d8f;border-radius:0 8px 8px 0;font-size:.94rem}
.dwhy{font-size:.92rem;margin:.6rem 0 1rem}
.dpanel h3{margin:1.1rem 0 .5rem;font-size:1rem}
.dopts{display:flex;flex-direction:column;gap:.5rem}
.dopt{display:grid;grid-template-columns:auto 1fr;gap:.1rem .5rem;border:1px solid #e4e0d6;border-radius:10px;
  padding:.55rem .75rem;cursor:pointer;background:#fff}
.dopt:hover{border-color:#9cc5be}
.dopt.on{border-color:#0d5c50;background:#f4f8f7;box-shadow:inset 2px 0 0 #0d5c50}
.dopt.rec{border-left:3px solid #c9a227}
.dopt input{grid-row:1/4;align-self:start;margin-top:.25rem}
.dol{font-size:.94rem}
.drec{font-style:normal;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:#8a6d10;border:1px solid #dfc394;background:#faf3e3;border-radius:999px;padding:.02rem .4rem}
.dodoes{font-size:.87rem;color:#3a3b40}
.docost{font-size:.83rem;color:#8a6d10;margin-top:.15rem}
.docost i{font-style:normal;font-weight:700;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;margin-right:.3rem}
.dalt{border-style:dashed}
.dform{margin-top:.9rem}
.dnote{display:block;font-size:.9rem}
.dnote textarea{display:block;width:100%;margin-top:.3rem;font:inherit;font-size:.88rem;padding:.5rem .6rem;
  border:1px solid #e4e0d6;border-radius:8px;background:#fdfcf9;resize:vertical}
.dbtns{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.6rem}
.dbtns button,.dexport button{font:inherit;font-size:.85rem;padding:.3rem .9rem;border:1px solid #0d5c50;
  background:#0d5c50;color:#fff;border-radius:999px;cursor:pointer}
.dbtns button:hover,.dexport button:hover{background:#0a4a40}
.dclear{background:#fff!important;color:#a33a31!important;border-color:#dcaaa4!important}
.dclear:hover{background:#fbebe9!important}
.dans{padding:.7rem .9rem;background:#e7f3ea;border-left:3px solid #1e6b3a;border-radius:0 8px 8px 0;font-size:.93rem}
.dans p{margin:.4rem 0 0}
.dlinks{font-size:.88rem;margin:.7rem 0 0}
.dlinks code{font-size:.82rem;background:#f2f0e9;border:1px solid #e4e0d6;border-radius:5px;padding:.1em .4em}
.dgraph{border:1px solid #e4e0d6;border-radius:12px;background:#fff;padding:.6rem .7rem .7rem;position:sticky;top:.6rem}
.dgh{display:flex;justify-content:space-between;align-items:center;gap:.4rem;margin-bottom:.4rem;font-size:.82rem}
#dcy{height:min(66vh,620px);border:1px solid #e4e0d6;border-radius:10px;background:#fdfcf9}
.dexport{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;border:1px solid #e4e0d6;border-radius:12px;
  padding:.8rem 1rem;background:#fff;margin:1rem 0}
.doutwrap{flex-basis:100%}
.doutwrap textarea{width:100%;font:inherit;font-family:var(--mono,ui-monospace,monospace);font-size:.8rem;
  padding:.6rem .7rem;border:1px solid #e4e0d6;border-radius:8px;background:#fdfcf9}
@media (max-width:1100px){.dwrap{grid-template-columns:200px minmax(0,1fr)}.dgraph{grid-column:1/-1;position:static}}
@media (max-width:820px){.dwrap{grid-template-columns:1fr}.dlist{max-height:300px;position:static}}
.dshare{font-size:.78rem;color:#8a6d10;background:#faf3e3;border:1px solid #dfc394;border-radius:999px;padding:.02rem .5rem}
.dshared{border:1px solid #e4e0d6;border-left:3px solid #c9a227;border-radius:0 12px 12px 0;padding:.9rem 1.1rem;background:#fff;margin:1rem 0}
.dshared h3{margin:0 0 .4rem;font-size:1rem}
.dshared p{margin:.3rem 0;font-size:.92rem}
.dshared ul{margin:.5rem 0 0;padding-left:1.2rem;font-size:.9rem}
.dshared li{margin:.28rem 0}
/* the source documents: provenance, measured concepts, authored places */
.srcprov{display:grid;grid-template-columns:auto 1fr;gap:.25rem .9rem;margin:1rem 0 1.4rem;padding:.85rem 1.1rem;
  border:1px solid #e4e0d6;border-left:3px solid #5b4d8f;border-radius:0 10px 10px 0;background:#fff;font-size:.86rem}
.srcprov .k{font-weight:700;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#8a8578;padding-top:.1rem}
.srcprov .v code{font-size:.8rem;background:#f2f0e9;border:1px solid #e4e0d6;border-radius:4px;padding:.05em .35em;word-break:break-all}
.srcsum{margin:.4rem 0 .8rem;padding-left:1.2rem}
.srcsum li{margin:.32rem 0}
.srcreread{padding:.6rem .85rem;background:#faf3e3;border-left:3px solid #c9a227;border-radius:0 8px 8px 0;font-size:.92rem}
.dgwrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:.9rem;margin:1rem 0;align-items:start}
.dgpane{border:1px solid #e4e0d6;border-radius:12px;background:#fff;padding:.6rem .7rem .7rem}
.dgh{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;font-size:.82rem;flex-wrap:wrap}
#dgcy{height:min(62vh,540px);border:1px solid #e4e0d6;border-radius:10px;background:#fdfcf9}
#dacy{height:min(72vh,700px);border:1px solid #e4e0d6;border-radius:10px;background:#fdfcf9}
.dgfull{margin:1rem 0}
.dgside{border:1px solid #e4e0d6;border-radius:12px;background:#fff;padding:.8rem 1rem;max-height:min(78vh,760px);overflow-y:auto}
.dgside h3{margin:.9rem 0 .2rem;font-size:.94rem}
.dgside h3:first-of-type{margin-top:.4rem}
.dginf{padding:.5rem .7rem;background:#efecf8;border-radius:8px;display:flex;justify-content:space-between;
  align-items:baseline;flex-wrap:wrap;gap:.4rem}
.dginf p{flex-basis:100%;margin:.25rem 0 0;color:#3a3b40}
.dgclist,.dgplist{list-style:none;margin:.3rem 0;padding:0;font-size:.86rem}
.dgclist li{display:flex;align-items:baseline;gap:.4rem;padding:.2rem 0;border-bottom:1px solid #f4f1e8}
.dgclist .dgn{margin-left:auto;font-weight:700;color:#0d5c50;font-size:.8rem}
.dgpeak{font-style:normal;font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:#8a6d10;border:1px solid #dfc394;background:#faf3e3;border-radius:999px;padding:.02rem .35rem}
.dgplist li{padding:.3rem 0;border-bottom:1px solid #f4f1e8}
.dgk{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  border-radius:999px;padding:.02rem .4rem;color:#fff;background:#8a8578}
.dgk-book{background:#a06a14}.dgk-page{background:#4a5b6a}.dgk-vault{background:#a33a31}
.dgk-layer{background:#c98a2b}.dgk-concept{background:#0d5c50}.dgk-decision{background:#5b4d8f}
.dtabh{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.8rem 0 .4rem}
.dtab td,.dtab th{vertical-align:top}
.dtab td:first-child{min-width:15rem}
.dscore{position:relative;min-width:5rem}
.dscore .dbar{position:absolute;left:0;top:.15rem;bottom:.15rem;background:#efecf8;border-radius:4px;z-index:0}
.dscore b{position:relative;z-index:1}
@media (max-width:980px){.dgwrap{grid-template-columns:1fr}.dgside{max-height:none}}
.dcorr{margin:.7rem 0;padding:.7rem .9rem;background:#fbebe9;border-left:3px solid #a33a31;border-radius:0 8px 8px 0;font-size:.9rem}
/* the dev pack */
.dpnum{font:700 .78rem/1 var(--sans);letter-spacing:.06em;color:#5b4d8f;white-space:nowrap}
.dpfigs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.9rem;margin:1rem 0}
.dpfig{margin:0;border:1px solid #e4e0d6;border-radius:10px;overflow:hidden;background:#fff}
.dpfig img{display:block;width:100%;height:auto;border-bottom:1px solid #f4f1e8}
.dpfig figcaption{padding:.4rem .6rem;font-size:.78rem;color:#8a8578}
/* the front page: the release turns, and the first-edition index */
.frontrel .vnum{white-space:nowrap;font:700 .82rem/1 var(--sans)}
.frontidxs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.7rem;margin:.8rem 0}
.frontidx{border:1px solid #e4e0d6;border-radius:10px;padding:.6rem .8rem;background:#fff}
.frontidx h4{margin:0 0 .3rem;font-size:.86rem;letter-spacing:.04em;text-transform:uppercase;color:#8a8578}
.frontidx p{margin:0;font-size:.82rem;line-height:1.7}
.damend{margin:.7rem 0;padding:.7rem .9rem;background:#efecf8;border-left:3px solid #5b4d8f;border-radius:0 8px 8px 0;font-size:.9rem}
.damend > div{margin-top:.3rem}
