:root {
  color-scheme: light;
  --background: #ffffff;
  --text: #202124;
  --muted: #5f6368;
  --border: #dadce0;
  --soft: #f6f8fa;
  --link: #0969da;
  --code: #eff1f3;
  --notice: #fff8c5;
  --notice-border: #d4a72c;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.6;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--background);
  color: var(--text);
}

/* Dossier hub */
.hub-page{--background:#edf4f6;--text:#17303d;--muted:#536d79;--border:#6f8994;--soft:#d6e6eb;--link:#0d5874;--code:#dfecef;--slide:#173c4d;--slide-text:#f4fbfd;background-image:radial-gradient(rgb(23 48 61 / 18%) .7px,transparent .7px);background-size:46px 46px;background-position:-11px -11px}
.hub-page .site-header{background:rgb(237 244 246 / 92%);backdrop-filter:blur(12px)}
.hub-main{width:min(100% - 2rem,1100px);padding-top:5rem}.hub-hero{padding-bottom:4.5rem;border-bottom:0}.hub-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(5rem,15vw,10rem);font-weight:500;line-height:.75;letter-spacing:-.075em}.hub-thesis{max-width:820px;margin:2.4rem 0 0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.45rem,3.2vw,2.45rem);line-height:1.15;letter-spacing:-.025em}.hub-facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:3.4rem;border:1px solid var(--border);background:rgb(255 255 255 / 55%)}.hub-facts div{min-height:116px;padding:1rem}.hub-facts div+div{border-left:1px solid var(--border)}.hub-facts strong,.hub-facts span{display:block}.hub-facts strong{font-family:Georgia,"Times New Roman",serif;font-size:2.1rem}.hub-facts span{margin-top:1.15rem;color:var(--muted);font:600 .7rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase}
.system-slide,.records-slide{margin-top:3.4rem;padding:1rem;border:1px solid #0b2734;box-shadow:8px 8px 0 #0b2734;background:var(--slide);color:var(--slide-text)}.system-slide>header,.records-slide>header{display:flex;justify-content:space-between;gap:2rem;align-items:baseline;padding:.15rem .15rem 1rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase}.system-slide>header span,.records-slide>header span{font-size:.65rem}.system-slide>header h2,.records-slide>header h2{margin:0;font-size:.75rem;letter-spacing:.05em}.system-flow{display:grid;grid-template-columns:repeat(6,1fr);margin:0;padding:0;border:1px solid var(--slide-text);list-style:none}.system-flow li{position:relative;min-width:0;min-height:185px;display:flex;flex-direction:column;padding:1rem}.system-flow li+li{border-left:1px solid var(--slide-text)}.system-flow li:not(:last-child)::after{position:absolute;z-index:1;top:50%;right:-6px;width:10px;height:10px;border-top:1px solid var(--slide-text);border-right:1px solid var(--slide-text);background:var(--slide);content:"";transform:translateY(-50%) rotate(45deg)}.system-flow span,.system-flow small{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.system-flow span{font-size:.65rem}.system-flow strong{margin:auto 0 .8rem;font:500 1.05rem/1.1 Georgia,"Times New Roman",serif}.system-flow small{font-size:.64rem;line-height:1.45}.slide-note{margin:.9rem .1rem 0;font-size:.75rem}
.dossier-section{padding:6.5rem 0 2rem}.dossier-section>header{display:flex;justify-content:space-between;align-items:end;padding-bottom:1rem;border-bottom:1px solid var(--border)}.dossier-section>header p,.dossier-section>header h2{margin:0}.dossier-section>header h2{font:500 2.1rem Georgia,"Times New Roman",serif}.dossier-grid{display:grid;grid-template-columns:1fr 1fr}.dossier-grid>a{min-height:330px;display:flex;flex-direction:column;padding:2rem;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none}.dossier-grid>a:nth-child(odd){border-right:1px solid var(--border)}.dossier-grid>a:hover{background:rgb(255 255 255 / 58%)}.dossier-grid span{font:700 .67rem ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase}.dossier-grid h3{margin:auto 0 1rem;font:500 clamp(2rem,4vw,3.3rem)/.95 Georgia,"Times New Roman",serif;letter-spacing:-.04em}.dossier-grid p{margin:0;color:var(--muted);font-size:.9rem}.dossier-grid strong{margin-top:2rem;color:var(--link);font-size:.78rem}
.records-slide>div{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--slide-text)}.records-slide article{min-height:270px;padding:1.25rem}.records-slide article+article{border-left:1px solid var(--slide-text)}.records-slide article>strong{font:500 2.8rem Georgia,"Times New Roman",serif}.records-slide h3{margin:4rem 0 .7rem;font:500 1.25rem Georgia,"Times New Roman",serif}.records-slide p{margin:0;font-size:.75rem;line-height:1.55}.hub-scope{display:grid;grid-template-columns:.8fr 1.3fr .8fr;gap:2rem;align-items:start;padding:6rem 0 2rem}.hub-scope h2{margin:.4rem 0 0;font:500 2rem Georgia,"Times New Roman",serif}.hub-scope>p{margin:0;color:var(--muted)}.hub-scope nav{display:grid;gap:.8rem}.hub-scope nav a{font-size:.8rem}.hub-page footer{display:flex;justify-content:space-between;margin-top:3rem;padding-block:1.2rem 3rem;border-top:1px solid var(--border);font-size:.78rem}.hub-page footer p{margin:0}
@media(max-width:800px){.hub-main{padding-top:3.5rem}.hub-facts{grid-template-columns:1fr 1fr}.hub-facts div:nth-child(3){border-left:0}.hub-facts div:nth-child(n+3){border-top:1px solid var(--border)}.system-flow{grid-template-columns:1fr 1fr}.system-flow li{min-height:140px}.system-flow li+li{border-left:0}.system-flow li:nth-child(even){border-left:1px solid var(--slide-text)}.system-flow li:nth-child(n+3){border-top:1px solid var(--slide-text)}.system-flow li::after{display:none}.records-slide>div{grid-template-columns:1fr}.records-slide article+article{border-top:1px solid var(--slide-text);border-left:0}.records-slide article{min-height:220px}.records-slide h3{margin-top:2.8rem}.hub-scope{grid-template-columns:1fr}.hub-page footer{display:block}.hub-page footer a{display:inline-block;margin-top:.7rem}}
@media(max-width:560px){.hub-main{width:min(100% - 1.2rem,1100px)}.hub-hero h1{font-size:5rem}.hub-facts,.dossier-grid,.system-flow{grid-template-columns:1fr}.hub-facts div+div,.dossier-grid>a:nth-child(odd),.system-flow li:nth-child(even){border-left:0}.hub-facts div+div,.system-flow li:nth-child(n+2){border-top:1px solid var(--border)}.system-flow li:nth-child(n+2){border-color:var(--slide-text)}.dossier-grid>a{min-height:280px;padding:1.5rem}.system-slide,.records-slide{padding:.7rem;box-shadow:5px 5px 0 #0b2734}.system-slide>header,.records-slide>header{display:block}.system-slide>header h2,.records-slide>header h2{margin-top:.4rem}.hub-page .header-inner{align-items:flex-start;flex-direction:column;padding-block:.8rem}.hub-page nav{gap:.7rem 1rem}}

a {
  color: var(--link);
}

a:hover {
  text-decoration-thickness: 2px;
}

.site-header {
  border-bottom: 1px solid var(--border);
  background: var(--soft);
}

.header-inner,
main,
footer {
  width: min(100% - 2rem, 960px);
  margin-inline: auto;
}

.header-inner {
  display: flex;
  min-height: 56px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.site-name {
  color: var(--text);
  font-size: 1.1rem;
  font-weight: 650;
  text-decoration: none;
}

nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  font-size: 0.92rem;
}

nav a {
  color: var(--muted);
  text-decoration: none;
}

nav a[aria-current="page"] {
  color: var(--text);
  font-weight: 600;
}

main {
  padding: 3.5rem 0 2rem;
}

.document-header {
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--border);
}

.document-type {
  margin: 0 0 0.4rem;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

h1,
h2,
h3 {
  line-height: 1.25;
}

h1 {
  margin: 0;
  font-size: clamp(2.2rem, 6vw, 3.5rem);
  letter-spacing: -0.035em;
}

.summary {
  max-width: 760px;
  margin: 1rem 0 0;
  color: #3c4043;
  font-size: 1.15rem;
}

.metadata {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 2rem 0 0;
  border: 1px solid var(--border);
  border-bottom: 0;
}

.metadata div {
  display: grid;
  grid-template-columns: minmax(130px, 0.8fr) minmax(0, 1.2fr);
  gap: 0.75rem;
  padding: 0.65rem 0.8rem;
  border-bottom: 1px solid var(--border);
}

.metadata div:nth-child(odd) {
  border-right: 1px solid var(--border);
}

dt {
  font-weight: 600;
}

dd {
  margin: 0;
}

.metadata dt {
  color: var(--muted);
  font-size: 0.86rem;
}

.metadata dd {
  font-size: 0.9rem;
}

.notice {
  margin: 2rem 0;
  padding: 0.8rem 1rem;
  border-left: 4px solid var(--notice-border);
  background: var(--notice);
}

section {
  max-width: 840px;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--border);
}

section:last-child {
  border-bottom: 0;
}

h2 {
  margin: 0 0 0.8rem;
  font-size: 1.55rem;
  letter-spacing: -0.015em;
}

h3 {
  margin: 1.5rem 0 0.5rem;
  font-size: 1.05rem;
}

p,
ul,
ol {
  margin-top: 0.7rem;
  margin-bottom: 0.7rem;
}

li + li {
  margin-top: 0.3rem;
}

code,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

code {
  padding: 0.12em 0.3em;
  border-radius: 3px;
  background: var(--code);
  font-size: 0.88em;
}

pre code {
  padding: 0;
  background: none;
  font-size: inherit;
}

.diagram,
.contract {
  overflow-x: auto;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--soft);
  color: #24292f;
  font-size: 0.87rem;
  line-height: 1.45;
}

.table-wrap {
  overflow-x: auto;
  margin: 1rem 0;
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}

th,
td {
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
}

th {
  background: var(--soft);
  font-weight: 600;
}

.toc {
  display: block;
  margin: 2rem 0 0.5rem;
  padding: 1rem 1.2rem;
  border: 1px solid var(--border);
  background: var(--soft);
}

.toc ol {
  columns: 2;
  margin-bottom: 0;
  padding-left: 1.4rem;
}

.toc li {
  break-inside: avoid;
}

.status {
  display: inline-block;
  padding: 0.08rem 0.38rem;
  border: 1px solid;
  border-radius: 999px;
  font-size: 0.75rem;
  white-space: nowrap;
}

.status-aligned {
  border-color: #1a7f37;
  color: #116329;
  background: #dafbe1;
}

.status-progress {
  border-color: #bf8700;
  color: #633c01;
  background: #fff8c5;
}

.status-legacy {
  border-color: #8250df;
  color: #6639ba;
  background: #fbefff;
}

.definition-list {
  border-top: 1px solid var(--border);
}

.definition-list div {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border);
}

.document-list {
  padding-left: 1.25rem;
}

footer {
  padding: 1.5rem 0 3rem;
  border-top: 1px solid var(--border);
  color: var(--muted);
  font-size: 0.85rem;
}

@media (max-width: 720px) {
  .header-inner {
    align-items: flex-start;
    flex-direction: column;
    padding: 0.8rem 0;
  }

  main {
    padding-top: 2rem;
  }

  .metadata {
    grid-template-columns: 1fr;
  }

  .metadata div:nth-child(odd) {
    border-right: 0;
  }

  .metadata div {
    grid-template-columns: 120px minmax(0, 1fr);
  }

  .toc ol {
    columns: 1;
  }

  .definition-list div {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
}

@media print {
  .site-header {
    display: none;
  }

  main,
  footer {
    width: 100%;
  }

  a {
    color: inherit;
  }
}

/* Shared portfolio treatment ------------------------------------------------ */
:root {
  --paper:#f0eee7;--paper-light:#fbfaf5;--ochre:#e4d4b0;--sage:#c9d9d8;--steel:#b9d2dc;--clay:#dcc1b9;
  --accent:#9d3f2f;--accent-dark:#6f281e;--ink:#1b3038;--muted:#5d6c70;--nav:#183943;--nav-text:#f7f3e8;
  --line-color:#52676e;--texture:repeating-linear-gradient(0deg,transparent 0 31px,rgb(27 48 56 / 7%) 32px);--texture-size:auto;--texture-position:0 0;
  --display:"Iowan Old Style","Palatino Linotype",Georgia,serif;--sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"SFMono-Regular",Consolas,monospace;
  --radius:4px;--shadow:5px 5px 0 #1b3038;
  --background:var(--paper);--text:var(--ink);--border:var(--line-color);--soft:var(--paper-light);--link:var(--accent);--code:color-mix(in srgb,var(--paper-light) 72%,var(--steel));--notice:var(--ochre);--notice-border:var(--accent);--slide:var(--nav);--slide-text:var(--nav-text);
  font-family:var(--sans);
}
:root[data-theme="personal"]{--paper:#f6c978;--paper-light:#ffe0a5;--ochre:#f3a35c;--sage:#efb482;--steel:#e9a0aa;--clay:#f6c2b9;--accent:#74244a;--accent-dark:#48112c;--ink:#211d1b;--muted:#66564d;--nav:#74244a;--nav-text:#ffe9bd;--line-color:#5d463b;--texture:radial-gradient(var(--ink) 1px,transparent 1px);--texture-size:40px 40px;--texture-position:-14px -14px;--radius:24px 5px 24px 5px;--shadow:7px 7px 0 var(--ink)}
:root[data-theme="dossier"]{--paper:#edf4f6;--paper-light:#fff;--ochre:#d6e6eb;--sage:#dfeaed;--steel:#bed4dc;--clay:#d8e1e8;--accent:#0d5874;--accent-dark:#083c50;--ink:#17303d;--muted:#536d79;--nav:#173c4d;--nav-text:#f4fbfd;--line-color:#6f8994;--texture:radial-gradient(rgb(23 48 61 / 18%) .7px,transparent .7px);--texture-size:46px 46px;--texture-position:-11px -11px;--radius:0;--shadow:8px 8px 0 #0b2734}
:root[data-theme="hybrid"]{--paper:#f0eee7;--paper-light:#fbfaf5;--ochre:#e4d4b0;--sage:#c9d9d8;--steel:#b9d2dc;--clay:#dcc1b9;--accent:#9d3f2f;--accent-dark:#6f281e;--ink:#1b3038;--muted:#5d6c70;--nav:#183943;--nav-text:#f7f3e8;--line-color:#52676e;--texture:repeating-linear-gradient(0deg,transparent 0 31px,rgb(27 48 56 / 7%) 32px);--texture-size:auto;--texture-position:0 0;--radius:4px;--shadow:5px 5px 0 #1b3038}

body,.hub-page{background-color:var(--paper);background-image:var(--texture);background-size:var(--texture-size);background-position:var(--texture-position);color:var(--ink);font-family:var(--sans)}
a{color:var(--accent);font-weight:750}a:hover,a:focus-visible{color:var(--accent-dark);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.skip-link{position:fixed;z-index:100;left:12px;top:10px;transform:translateY(-180%);padding:8px 11px;background:var(--nav);color:var(--nav-text)}.skip-link:focus{transform:none;color:var(--nav-text)}
.site-header,.hub-page .site-header{border-bottom:0;background:transparent;backdrop-filter:none}
.header-inner{width:min(calc(100% - 44px),1100px);min-height:78px;display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;padding:0;border-bottom:1px solid var(--border)}
.site-name{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none}.site-name span{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--ink);border-radius:var(--radius);background:var(--steel);box-shadow:2px 2px 0 color-mix(in srgb,var(--ink) 65%,transparent);font:850 18px/1 var(--mono)}.site-name strong{font:700 21px var(--display)}
.global-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:7px 16px}.global-nav a,.github-link{color:var(--muted);font:750 10px/1.2 var(--mono);letter-spacing:.035em;text-transform:lowercase}.global-nav a[aria-current="page"]{color:var(--accent);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.github-link{justify-self:end;text-decoration:none}
.project-nav{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:28px;padding-top:13px;border-top:1px solid var(--border);font:750 10px var(--mono);text-transform:lowercase}.project-nav a{color:var(--muted)}.project-nav a[aria-current="page"]{color:var(--accent)}
main,.hub-main{width:min(calc(100% - 44px),1100px)}
.hub-page .hub-main{padding-top:5rem}.hub-page .hub-hero h1,.hub-page .hub-thesis,.dossier-section>header h2,.dossier-grid h3,.records-slide article>strong,.records-slide h3,.hub-scope h2,h1,h2{font-family:var(--display)}
.hub-page .hub-facts{border-color:var(--border);background:color-mix(in srgb,var(--paper-light) 62%,transparent)}.hub-page .hub-facts div+div{border-color:var(--border)}
.system-slide,.records-slide{border-color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--nav);color:var(--nav-text)}
.system-flow li:not(:last-child)::after{background:var(--nav)}
.dossier-grid>a:hover{background:color-mix(in srgb,var(--paper-light) 65%,transparent)}
.metadata,.toc,.diagram,.contract{border-radius:var(--radius);background:var(--paper-light)}.diagram,.contract{color:var(--ink)}.summary{color:var(--muted)}.document-header h1{font:500 clamp(3.5rem,8vw,6.5rem)/.9 var(--display);letter-spacing:-.055em}.document-type{font-family:var(--mono)}.toc strong,.metadata dt,th{font-family:var(--mono)}
.status-aligned{border-color:#216b3a;color:#174d2b;background:#d9efdf}.status-progress{border-color:#876316;color:#5b430f;background:#f3e3aa}.status-legacy{border-color:#654c83;color:#513a6b;background:#e8ddf1}
.hub-page footer,footer{width:min(calc(100% - 44px),1100px);font-family:var(--mono)}

[hidden]{display:none!important}.theme-picker{position:fixed;z-index:40;right:16px;bottom:16px}.theme-trigger{width:42px;height:42px;display:grid;place-items:center;padding:0;border:1px solid var(--ink);border-radius:50%;background:var(--paper-light);box-shadow:2px 2px 0 color-mix(in srgb,var(--ink) 58%,transparent);cursor:pointer}.theme-trigger>span{width:20px;height:20px;border:1px solid var(--ink);border-radius:50%;background:linear-gradient(135deg,var(--steel) 0 50%,var(--accent) 50%)}.theme-popover{position:absolute;right:0;bottom:52px;width:205px;padding:12px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--paper-light);box-shadow:var(--shadow)}.theme-popover p{margin:0 0 9px;color:var(--muted);font:750 9px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase}.theme-popover button{width:100%;min-height:36px;display:flex;gap:8px;align-items:center;padding:6px 7px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--ink);cursor:pointer;font-size:10px;text-align:left}.theme-popover button:hover,.theme-popover button[aria-pressed="true"]{border-color:var(--border);background:var(--paper)}.theme-popover i{width:13px;height:13px;flex:0 0 auto;border:1px solid var(--ink);border-radius:50%}.theme-popover button[data-theme-option="personal"] i{background:linear-gradient(135deg,#f6c978 0 50%,#74244a 50%)}.theme-popover button[data-theme-option="dossier"] i{background:linear-gradient(135deg,#edf4f6 0 50%,#173c4d 50%)}.theme-popover button[data-theme-option="hybrid"] i{background:linear-gradient(135deg,#f0eee7 0 50%,#9d3f2f 50%)}.theme-trigger:focus-visible,.theme-popover button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

:root[data-theme="personal"] .site-name span{transform:rotate(-4deg)}:root[data-theme="personal"] .system-slide,:root[data-theme="personal"] .records-slide{border-radius:22px 4px 22px 4px}:root[data-theme="dossier"] .site-name span{display:none}:root[data-theme="dossier"] .header-inner{min-height:62px}

@media(max-width:780px){.header-inner{grid-template-columns:auto 1fr;padding:12px 0}.global-nav{grid-column:1/-1;grid-row:2;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding:4px 0}.github-link{justify-self:end}.hub-page .header-inner{align-items:center;flex-direction:initial;padding-block:12px}.project-nav{overflow-x:auto;flex-wrap:nowrap}.theme-picker{right:10px;bottom:10px}}
@media(max-width:560px){main,.hub-main,.hub-page .hub-main,.header-inner,.hub-page footer,footer{width:min(calc(100% - 28px),1100px)}.hub-page .header-inner{align-items:center;flex-direction:initial}.theme-popover{width:min(205px,calc(100vw - 20px))}}
@media print{.theme-picker,.project-nav{display:none}}

/* End-to-end overview and interactive system index ------------------------- */
.one-pass{max-width:none;margin:5.5rem 0 0;padding:0;border:0}.one-pass>header{display:grid;grid-template-columns:.55fr 1fr 1.15fr;gap:2rem;align-items:end;padding-bottom:1.2rem;border-bottom:1px solid var(--border)}.one-pass>header p,.one-pass>header h2{margin:0}.one-pass>header h2{font:500 clamp(2rem,4vw,3.4rem)/.95 var(--display);letter-spacing:-.035em}.one-pass>header>p:last-child{color:var(--muted);font-size:.9rem}.one-pass ol{margin:0;padding:0;border-left:1px solid var(--border);border-right:1px solid var(--border);list-style:none}.one-pass li{display:grid;grid-template-columns:55px 1fr minmax(150px,.38fr);gap:1.25rem;align-items:center;min-height:108px;padding:1rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--paper-light) 62%,transparent)}.one-pass li>span{align-self:start;color:var(--accent);font:800 .67rem var(--mono)}.one-pass li strong{font:500 1.5rem var(--display)}.one-pass li p{max-width:680px;margin:.35rem 0 0;color:var(--muted);font-size:.82rem}.one-pass li small{justify-self:end;color:var(--accent);font:800 .65rem/1.35 var(--mono);text-align:right;text-transform:uppercase}
.system-explorer{max-width:none;margin:5.5rem 0 0;padding:1rem;border:1px solid var(--ink);border-radius:var(--radius);background:var(--nav);box-shadow:var(--shadow);color:var(--nav-text)}.system-explorer>header{display:grid;grid-template-columns:.45fr 1.55fr;gap:2rem;align-items:end;padding:.2rem .15rem 1rem;font-family:var(--mono);text-transform:uppercase}.system-explorer>header>span{font-size:.65rem}.system-explorer>header h2{margin:0;color:var(--nav-text);font:800 .78rem var(--mono);letter-spacing:.045em}.system-explorer>header p{max-width:680px;margin:.35rem 0 0;color:color-mix(in srgb,var(--nav-text) 74%,transparent);font:.66rem/1.5 var(--mono);text-transform:none}.stage-rail{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border:1px solid var(--nav-text)}.stage-rail a{position:relative;min-width:0;min-height:148px;display:flex;flex-direction:column;padding:.9rem;color:var(--nav-text);text-decoration:none}.stage-rail a+a{border-left:1px solid var(--nav-text)}.stage-rail a:not(:last-child)::after{position:absolute;z-index:1;top:50%;right:-6px;width:10px;height:10px;border-top:1px solid var(--nav-text);border-right:1px solid var(--nav-text);background:var(--nav);content:"";transform:translateY(-50%) rotate(45deg)}.stage-rail span,.stage-rail small{font-family:var(--mono)}.stage-rail span{font-size:.62rem}.stage-rail strong{margin:auto 0 .6rem;font:500 .98rem/1.05 var(--display)}.stage-rail small{font-size:.57rem;line-height:1.4;text-transform:uppercase}.stage-rail a:hover,.stage-rail a:focus-visible{background:color-mix(in srgb,var(--nav-text) 10%,transparent);color:var(--nav-text);text-decoration:none}.stage-rail a[aria-current="step"]{background:var(--nav-text);color:var(--nav)}.stage-rail a[aria-current="step"]::after{background:var(--nav-text);border-color:var(--nav)}
.stage-records{border:1px solid var(--nav-text);border-top:0;background:var(--paper-light);color:var(--ink)}.stage-records article{scroll-margin-top:1rem;padding:1.45rem}.stage-records article+article{border-top:1px solid var(--border)}.stage-records article:target{outline:3px solid var(--accent);outline-offset:-3px}.stage-records article>header{display:grid;grid-template-columns:.45fr 1.55fr;gap:2rem;align-items:baseline;padding-bottom:1rem;border-bottom:1px solid var(--border)}.stage-records article>header span{color:var(--accent);font:800 .66rem var(--mono);text-transform:uppercase}.stage-records h3{margin:0;font:500 clamp(1.65rem,3vw,2.5rem)/1 var(--display);letter-spacing:-.03em}.stage-records dl{display:grid;grid-template-columns:1fr 1fr;margin:0}.stage-records dl>div{min-height:140px;padding:1rem 1rem 1rem 0;border-bottom:1px solid var(--border)}.stage-records dl>div:nth-child(odd){padding-right:1.5rem;border-right:1px solid var(--border)}.stage-records dl>div:nth-child(even){padding-left:1.5rem}.stage-records dt{color:var(--accent);font:800 .62rem var(--mono);text-transform:uppercase}.stage-records dd{margin:.75rem 0 0;color:var(--muted);font-size:.82rem;line-height:1.55}.stage-records article>a,.record-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;font-size:.72rem}.record-links{justify-content:space-between}.explorer-note{margin:.9rem .15rem 0;color:color-mix(in srgb,var(--nav-text) 72%,transparent);font:.65rem/1.5 var(--mono)}
:root[data-theme="personal"] .one-pass li:nth-child(even){background:color-mix(in srgb,var(--steel) 35%,var(--paper-light))}:root[data-theme="personal"] .system-explorer{transform:rotate(-.08deg)}:root[data-theme="dossier"] .one-pass li{background:color-mix(in srgb,var(--paper-light) 55%,transparent)}:root[data-theme="dossier"] .system-explorer{border-radius:0}
@media(max-width:860px){.one-pass>header{grid-template-columns:1fr 1.5fr}.one-pass>header>p:last-child{grid-column:1/-1}.stage-rail{grid-template-columns:repeat(3,1fr)}.stage-rail a:nth-child(4){border-left:0}.stage-rail a:nth-child(n+4){border-top:1px solid var(--nav-text)}.stage-rail a::after{display:none}.system-explorer>header,.stage-records article>header{grid-template-columns:1fr}.stage-records dl>div{min-height:165px}}
@media(max-width:620px){.one-pass>header{grid-template-columns:1fr}.one-pass>header>p:last-child{grid-column:auto}.one-pass li{grid-template-columns:34px 1fr;gap:.8rem;min-height:125px}.one-pass li small{grid-column:2;justify-self:start;text-align:left}.system-explorer{width:calc(100vw - 20px);margin-left:calc((100% - 100vw + 20px)/2);padding:.65rem}.stage-rail{grid-template-columns:1fr 1fr}.stage-rail a{min-height:128px}.stage-rail a:nth-child(4){border-left:1px solid var(--nav-text)}.stage-rail a:nth-child(odd){border-left:0}.stage-rail a:nth-child(n+3){border-top:1px solid var(--nav-text)}.stage-records article{padding:1rem}.stage-records dl{grid-template-columns:1fr}.stage-records dl>div{min-height:auto;padding:1rem 0!important;border-right:0!important}.record-links{display:grid}}
@media print{.stage-rail{grid-template-columns:repeat(3,1fr)}.system-explorer{box-shadow:none}.stage-records article[hidden]{display:block!important}}

/* Quiet portfolio layout --------------------------------------------------- */
:root {
  color-scheme: light;
  --paper: #fdfdfd;
  --paper-light: #f7f7f7;
  --ink: #282728;
  --muted: #686868;
  --accent: #006cac;
  --accent-dark: #004f80;
  --border: #e2e2e2;
  --nav: #2b303b;
  --nav-text: #ffffff;
  --background: var(--paper);
  --text: var(--ink);
  --soft: var(--paper-light);
  --link: var(--accent);
  --code: #f1f1f1;
  --sans: Verdana, Geneva, sans-serif;
  --display: Arial, Helvetica, sans-serif;
  --mono: Consolas, Menlo, Monaco, "Liberation Mono", monospace;
  --shadow: none;
  font: 15px/1.65 var(--sans);
}

body,
body.hub-page {
  min-height: 100vh;
  margin: 0;
  padding-left: 19rem;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
}

a { color: var(--accent); font-weight: 400; text-decoration: none; }
a:hover,
a:focus-visible { color: var(--accent-dark); text-decoration: underline; text-decoration-thickness: auto; text-underline-offset: 2px; }

.site-header,
.hub-page .site-header {
  position: fixed;
  z-index: 20;
  inset: 0 auto 0 0;
  width: 16rem;
  border: 0;
  background: var(--nav);
}

.header-inner,
.hub-page .header-inner {
  width: auto;
  min-height: 0;
  display: block;
  padding: 2rem 1.5rem;
  border: 0;
}

.site-name,
.hub-page .site-name { display: block; color: #fff; text-decoration: none; }
.site-name span { display: none; }
.site-name strong,
.hub-page .site-name strong { font: 700 2rem/1.15 Arial, Helvetica, sans-serif; }
.site-tagline { margin: .15rem 0 1.75rem; color: #d7d9de; font-size: 1.1rem; }
.global-nav,
.hub-page .global-nav { display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; }
.global-nav a,
.global-nav a[aria-current="page"],
.hub-page .global-nav a { color: #fff; font: 400 1rem/1.4 Arial, Helvetica, sans-serif; text-transform: none; }
.global-nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 2px; }
.github-link { display: none; }

main,
.hub-main,
.hub-page .hub-main,
footer,
.hub-page footer {
  width: min(calc(100% - 4rem), 50rem);
  margin-inline: auto;
}

main,
.hub-page .hub-main { padding: 2rem 0 3rem; }
footer,
.hub-page footer { font-family: var(--sans); }

.hub-hero { padding: 0 0 1rem; }
.hub-page .hub-hero h1,
.document-header h1 {
  margin: 0;
  font: 700 2.2rem/1.2 Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}
.hub-page .hub-thesis,
.summary { max-width: 48rem; margin: .9rem 0 0; color: var(--ink); font: 1rem/1.65 var(--sans); letter-spacing: 0; }
.project-nav { gap: .6rem 1.25rem; margin-top: 1.25rem; padding: 0; border: 0; font: .9rem/1.5 var(--sans); text-transform: none; }
.project-nav a,
.project-nav a[aria-current="page"] { color: var(--accent); }
.project-nav a[aria-current="page"] { font-weight: 700; }
.hub-facts { display: none; }

.document-type { color: var(--muted); font: .78rem/1.4 var(--sans); letter-spacing: 0; text-transform: none; }
h1,
h2,
h3,
.hub-page .hub-main h1,
.hub-page .hub-main h2,
.hub-page .hub-main h3 { font-family: Arial, Helvetica, sans-serif; letter-spacing: 0; }

.one-pass,
.system-explorer,
.dossier-section,
.records-slide,
.hub-scope { max-width: none; margin: 2.25rem 0 0; padding: 0; border: 0; background: transparent; box-shadow: none; color: var(--ink); }

.one-pass > header,
.system-explorer > header,
.dossier-section > header,
.records-slide > header { display: block; padding: 0; border: 0; }
.one-pass > header h2,
.dossier-section > header h2,
.hub-scope h2 { margin: 0 0 .6rem; font: 700 1.45rem/1.3 Arial, Helvetica, sans-serif; }
.one-pass > header > p:last-child { color: var(--ink); font-size: .92rem; }
.one-pass ol { margin: 1rem 0 0; padding-left: 1.5rem; border: 0; list-style: decimal; }
.one-pass li { min-height: 0; display: list-item; padding: .35rem 0 .7rem .2rem; border: 0; background: transparent; }
.one-pass li > span,
.one-pass li small { display: none; }
.one-pass li strong { font: 700 .95rem/1.4 Arial, Helvetica, sans-serif; }
.one-pass li p { max-width: none; margin: .15rem 0 0; color: var(--ink); font-size: .88rem; }

.system-explorer > header { font-family: var(--sans); text-transform: none; }
.system-explorer > header > span { display: none; }
.system-explorer > header h2 { color: var(--ink); font: 700 1.45rem/1.3 Arial, Helvetica, sans-serif; letter-spacing: 0; }
.system-explorer > header p { max-width: 48rem; color: var(--ink); font: .9rem/1.6 var(--sans); }
.stage-rail { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-top: 1rem; padding-bottom: .8rem; border: 0; border-bottom: 1px solid var(--border); }
.stage-rail a { min-height: 0; display: inline; padding: 0; color: var(--accent); }
.stage-rail a + a { border: 0; }
.stage-rail a::after,
.stage-rail span,
.stage-rail small { display: none !important; }
.stage-rail strong { margin: 0; font: 400 .85rem/1.5 var(--sans); }
.stage-rail a[aria-current="step"] { background: transparent; color: var(--accent-dark); text-decoration: underline; }
.stage-records { border: 0; background: transparent; color: var(--ink); }
.stage-records article { padding: 1.25rem 0 0; }
.stage-records article + article { border: 0; }
.stage-records article > header { display: block; padding: 0; border: 0; }
.stage-records article > header span { color: var(--muted); font: .75rem/1.4 var(--sans); text-transform: none; }
.stage-records h3 { margin: .35rem 0 0; font: 700 1.15rem/1.35 Arial, Helvetica, sans-serif; letter-spacing: 0; }
.stage-records dl { display: block; margin-top: .8rem; }
.stage-records dl > div { min-height: 0; padding: .45rem 0 !important; border: 0 !important; }
.stage-records dt { color: var(--ink); font: 700 .82rem/1.4 var(--sans); text-transform: none; }
.stage-records dd { margin: .1rem 0 0; color: var(--ink); font-size: .84rem; }
.explorer-note { color: var(--muted); font: .75rem/1.5 var(--sans); }

.dossier-grid { display: block; margin-top: .5rem; }
.dossier-grid > a { min-height: 0; display: block; padding: .8rem 0; border: 0 !important; color: var(--accent); }
.dossier-grid > a:hover { background: transparent; }
.dossier-grid span,
.dossier-grid strong { display: none; }
.dossier-grid h3 { margin: 0; font: 700 1rem/1.4 Arial, Helvetica, sans-serif; letter-spacing: 0; }
.dossier-grid p { margin: .15rem 0 0; color: var(--ink); font-size: .85rem; }

.records-slide > header span { display: none; }
.records-slide > header h2 { margin: 0 0 .7rem; color: var(--ink); font: 700 1.45rem/1.3 Arial, Helvetica, sans-serif; text-transform: none; }
.records-slide > div { display: block; border: 0; }
.records-slide article { min-height: 0; padding: .6rem 0; border: 0 !important; }
.records-slide article > strong { font: 700 .8rem var(--sans); }
.records-slide h3 { display: inline; margin: 0 0 0 .4rem; font: 700 .95rem Arial, Helvetica, sans-serif; }
.records-slide p { margin: .2rem 0 0; font-size: .82rem; }
.hub-scope { display: block; }
.hub-scope > p { margin-top: .5rem; }
.hub-scope nav { margin-top: .75rem; }

.metadata { margin-top: 1.5rem; border-color: var(--border); background: transparent; }
.metadata div,
.metadata div:nth-child(odd) { border-color: var(--border); }
.toc,
.diagram,
.contract { background: var(--paper-light); border-color: var(--border); }
.theme-picker { display: none !important; }

@media (max-width: 55rem) {
  body,
  body.hub-page { padding: 5.75rem 1.5rem 0; }
  .site-header,
  .hub-page .site-header { inset: 0 0 auto; width: auto; min-height: 4.5rem; }
  .header-inner,
  .hub-page .header-inner { display: flex; align-items: center; gap: 1rem; padding: .8rem 1.5rem; }
  .site-name strong,
  .hub-page .site-name strong { font-size: 1.5rem; }
  .site-tagline { display: none; }
  .global-nav,
  .hub-page .global-nav { flex: 1; flex-direction: row; justify-content: flex-end; gap: .35rem 1rem; }
  .global-nav a,
  .global-nav a[aria-current="page"],
  .hub-page .global-nav a { font-size: .9rem; }
  .global-nav a:nth-last-child(-n+2) { display: none; }
  main,
  .hub-main,
  .hub-page .hub-main,
  footer,
  .hub-page footer { width: min(100%, 50rem); }
}

@media (max-width: 36rem) {
  body,
  body.hub-page { padding: 7.5rem 1rem 0; }
  .header-inner,
  .hub-page .header-inner { flex-wrap: wrap; padding-inline: 1rem; }
  .global-nav,
  .hub-page .global-nav { width: 100%; justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; white-space: nowrap; }
  .metadata { display: block; }
  .metadata div { grid-template-columns: 1fr; }
}
