/* Patrick Roch: Measured folio homepage. Copyright 2026. See /LICENSE. */
:root {
  --draft-paper:        #f5f6f2;
  --draft-ink:          #383845;
  --draft-muted:        #7e8490;
  --draft-faint:        #d9ddd7;
  --draft-line:         #c7ccc5;
  --draft-dash:         #bbc1ba;
  --draft-accent:       #45e89a;
  --draft-accent-dark:  #28b873;
  --draft-accent-darker:#1d9960;
}
body {
  background-image:
    radial-gradient(circle at 1px 1px, rgba(56,56,69,.14) 1px, transparent 1.5px),
    linear-gradient(90deg, rgba(56,56,69,.065) 1px, transparent 1px),
    linear-gradient(rgba(56,56,69,.065) 1px, transparent 1px);
  background-size: 18px 18px, 120px 120px, 120px 120px;
  background-position: 0 0, 0 0, 0 0;
}
/* Construction SVG wrapper */
.draft-construction {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: .55;
}
.draft-construction svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Animated flow-lines SVG */
.draft-flow-lines {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  width: 100%;
  height: 100%;
}

@keyframes draftFlowRight { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -56; } }
@keyframes draftFlowDown  { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -56; } }
@keyframes draftFlowLeft  { from { stroke-dashoffset: 0; } to { stroke-dashoffset:  56; } }

.mfh  { animation: draftFlowRight linear infinite; }
.mfv  { animation: draftFlowDown  linear infinite; }
.mfhr { animation: draftFlowLeft  linear infinite; }
.mf1  { animation-duration:  8s; }
.mf2  { animation-duration: 14s; animation-delay:  -3s; }
.mf3  { animation-duration: 10s; animation-delay:  -6s; }
.mf4  { animation-duration: 18s; animation-delay:  -2s; }
.mf5  { animation-duration: 12s; animation-delay:  -8s; }
.mf6  { animation-duration: 22s; animation-delay:  -4s; }

@media (prefers-reduced-motion: reduce) {
  .draft-flow-lines,
  .draft-construction { display: none; }
}


.draft-draft-board {
  position: relative;
  border: 1px solid var(--draft-line);
  background:
    radial-gradient(circle at 1px 1px, rgba(56,56,69,.13) 1px, transparent 1.5px) 0 0 / 18px 18px,
    rgba(248,249,246,.82);
  box-shadow: 0 28px 80px rgba(40,45,38,.09);
  margin: 0;
}

.draft-draft-board::before {
  content: "";
  position: absolute;
  inset: -34px;
  border: 1px dashed rgba(56,56,69,.22);
  pointer-events: none;
}

.draft-draft-board::after {
  content: "";
  position: absolute;
  left: -26px;
  right: -26px;
  bottom: -28px;
  height: 72px;
  border-top: 1px solid rgba(56,56,69,.18);
  border-bottom: 1px dashed rgba(56,56,69,.2);
  background: repeating-linear-gradient(115deg, rgba(56,56,69,.08) 0 1px, transparent 1px 7px);
  pointer-events: none;
}

.draft-draft-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 1px solid var(--draft-line);
}

.draft-draft-cell {
  min-height: 130px;
  padding: 24px 26px;
  border-right: 1px solid var(--draft-line);
  position: relative;
}

.draft-draft-cell:last-child { border-right: 0; }

.draft-draft-cell::before,
.draft-draft-cell::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--draft-line);
}

.draft-draft-cell::before { left: -5px; top: -5px; }
.draft-draft-cell::after  { right: -5px; bottom: -5px; }

.draft-cell-num {
  color: #b0b5bc;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 12px;
  letter-spacing: .14em;
  margin-bottom: 8px;
}

.draft-draft-cell h2 {
  margin: 0 0 10px;
  color: #3d3d49;
  font-size: 22px;
  line-height: 1;
  letter-spacing: 0;
}

.draft-draft-cell p {
  margin: 0;
  color: #7b818c;
  font-size: 13px;
  line-height: 1.45;
}



/* Shared adaptations of the drafting system for the homepage. */
:root { --muted:#59616c; --accent:#245846; --frame:#879486; }
body { min-width:0; background-color:var(--draft-paper); }
.draft-construction { opacity:.8; }
.draft-flow-lines { opacity:.85; }
.folio-edge { position:fixed; inset:18px; border:1px solid #b5bdb2; pointer-events:none; z-index:0; }
.folio-edge::before { content:""; position:absolute; inset:7px; border:1px dashed #bac2b7; }
.site-header { position:relative; z-index:2; background:rgba(245,246,242,.94); border-bottom:1px solid #9fa99d; }
.header-inner { max-width:1360px; padding:1.25rem 3rem; min-height:86px; }
.site-name { font-size:14px; }
.site-mark { position:relative; border:1px solid #899587; background:transparent; }
.site-mark::after { content:""; position:absolute; inset:-6px; border:1px dashed #b1baac; }
.site-header nav { font-size:12px; gap:1.8rem; }
.page-shell { position:relative; z-index:1; width:calc(100% - 96px); max-width:1328px; padding:0 48px; border-color:#a7b1a2; }
.main-content { min-width:0; }
.eyebrow { color:#535e55; font-size:11px; letter-spacing:.1em; }
.home-page .article-meta { color:#414b43; max-width:62ch; font:12px/1.7 var(--mono); margin:1.5rem 0 1rem; }
.home-page .hero-copy .lede { color:#4a544d; font-size:16px; line-height:1.7; max-width:60ch; }
.hero-copy { position:relative; min-width:0; }
.hero-links a { min-height:46px; font-size:11px; padding:.7rem 1.1rem; }
.hero-links .primary-link { color:var(--paper); background:#383845; border-color:#383845; }
.hero-links .primary-link:hover { color:#28352b; background:#45e89a; border-color:#28b873; }
.home-page .hero-copy p { position:relative; z-index:2; }
.hero-cross { position:absolute; height:16px; width:16px; left:-56px; top:48px; background:linear-gradient(90deg,transparent calc(50% - .5px),#788675 0 calc(50% + .5px),transparent 0),linear-gradient(transparent calc(50% - .5px),#788675 0 calc(50% + .5px),transparent 0); }
.home-section { position:relative; padding:3.5rem 0; border-top:1px dashed #9fa99c; }
.home-section::before,.home-section::after { content:""; position:absolute; width:13px; height:13px; top:-7px; background:linear-gradient(90deg,transparent 6px,#86947f 6px 7px,transparent 7px),linear-gradient(transparent 6px,#86947f 6px 7px,transparent 7px); }
.home-section::before { left:-55px; } .home-section::after { right:-55px; }
.home-principle { padding:1.3rem 0; border:0; border-top:1px solid #a9b4a3; border-bottom:1px solid #a9b4a3; background:rgba(235,240,231,.82); text-align:center; }
.home-principle strong { font-size:17px; font-weight:640; color:#384c3b; }
.home-section h2 { letter-spacing:-.025em; color:#343c35; }
.prose p { max-width:72ch; }
.prose table { background:rgba(245,246,242,.92); }
.prose td { border-left:0; border-right:0; padding:1.35rem 1rem; vertical-align:top; font-size:15px; }
.prose th { background:rgba(231,237,226,.9); color:#4b5a4a; padding:.9rem 1rem; border:0; border-block:1px solid #aeb9a8; font-size:10px; }
.prose code { font-size:.68rem; background:transparent; }
.theses-section ol { column-gap:3.2rem; }
.theses-section li { break-inside:avoid; margin-bottom:1.2rem; font-size:16px; }
.site-footer { padding:2rem 0; border-top:1px solid #99a68f; font-size:12px; position:relative; }
:where(a,button,summary,.table-scroll):focus-visible { outline:3px solid #245846; outline-offset:5px; }
::selection { background:#d1eacb; color:#223d27; }
@media(min-width:901px) { .home-page .runbook-section { grid-template-columns:.9fr 1.3fr; gap:0 4rem; } }
@media(max-width:1100px) { .page-shell { width:calc(100% - 64px); padding:0 32px; } .home-section::before {left:-39px;} .home-section::after {right:-39px;} .hero-cross {left:-40px;} }
@media(max-width:900px) { .header-inner {padding:1.3rem 2rem;} .page-shell {width:calc(100% - 40px); padding:0 26px;} .folio-edge {inset:8px;} .folio-edge::before {inset:4px;} .home-section::before {left:-33px;} .home-section::after {right:-33px;} .hero-cross {left:-34px;} .home-page .article-header {padding-block:3rem;} .home-principle {padding-inline:1rem; text-align:left;} }
@media(max-width:600px) { .header-inner {padding:1.2rem 1.4rem;gap:1.1rem;} .site-header nav {gap:.5rem 1.15rem; font-size:11px;} .page-shell {width:calc(100% - 28px);padding-inline:18px;} .folio-edge {inset:5px;} .folio-edge::before {display:none;} .home-page .article-meta {font-size:12px;} .home-page .hero-copy .lede {font-size:15px;} .eyebrow {font-size:10px;line-height:1.7;} .hero-cross {left:-25px;top:32px;} .home-section {padding-block:2.5rem;} .home-section::before {left:-25px;} .home-section::after {right:-25px;} .home-principle strong {font-size:15px;line-height:1.6;} .hero-links {gap:.65rem;} .hero-links a {font-size:10px;min-height:44px;} .prose td {padding:1rem .7rem;} .draft-construction {opacity:.5;} .site-footer {gap:1rem;} }
@media(prefers-reduced-motion:reduce) { .draft-construction,.draft-flow-lines {display:block;} .mfh,.mfv,.mfhr {animation:none;} }
@media print { .draft-construction,.draft-flow-lines,.folio-edge,.hero-cross,.home-section::before,.home-section::after,.copy-cross {display:none!important;} }


/* Measured folio: drawing details aligned to the homepage content. */
.home-page .article-header { position:relative; display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:6rem; padding:5.5rem 0 6rem; margin:0; }
.home-page .article-header::before { content:""; position:absolute; left:-26px; right:-26px; top:34px; border-top:1px dashed #9faa99; }
.home-page .hero-copy::before { content:""; position:absolute; top:-14px; bottom:-20px; left:-25px; border-left:1px dashed rgba(56,56,69,.38); }
.home-page h1 { font-size:clamp(3rem,5.1vw,4.6rem); line-height:1.01; letter-spacing:-.035em; font-weight:790; margin:0; }
.home-page .hero-copy .eyebrow { margin-bottom:1.5rem; }
.home-page .article-meta { max-width:43ch; }
.home-page .practice-panel { margin:0 0 0 0; background:rgba(245,246,242,.7); box-shadow:none; }
.home-page .practice-panel::before { inset:-26px; border-color:#9faa98; background:none; width:auto; height:auto; }
.home-page .practice-panel::after { left:-26px; right:-26px; bottom:-42px; top:auto; height:20px; width:auto; border:0; border-block:1px solid #b5bdaf; background:repeating-linear-gradient(115deg,rgba(56,56,69,.15) 0 1px,transparent 1px 7px); }
.home-page .panel-caption { padding:1rem 1.25rem; font-size:10px; letter-spacing:.1em; border-bottom:1px solid #a6b09f; color:#52604f; background:#edf1e8; position:relative; z-index:2; }
.home-page .practice-grid { position:relative; z-index:2; gap:0; }
.home-page .practice-cell { display:block; position:relative; padding:1.6rem 1.3rem 1.8rem; min-height:168px; background:rgba(245,246,242,.89); border-color:#aeb9a7; }
.home-page .practice-cell:nth-child(odd) { border-right:1px solid #aeb9a7; }
.home-page .practice-cell:nth-child(-n+2) { border-bottom:1px solid #aeb9a7; }
.home-page .practice-cell::before,.home-page .practice-cell::after { width:8px; height:8px; border:1px solid #9ea993; background:#e7ece2; z-index:3; }
.home-page .practice-cell::before { left:-4px; top:-4px; } .home-page .practice-cell::after {right:-4px;bottom:-4px;}
.home-page .practice-number { font-size:10px; color:#55654e; }
.home-page .practice-cell h2 { font-size:clamp(1.35rem,1.8vw,1.6rem); margin:1rem 0 .7rem; line-height:1.12; color:#354031; font-weight:730; letter-spacing:-.025em; }
.home-page .practice-cell p { font-size:12px; line-height:1.6; color:#53604e; }
.home-page .practice-cell:hover { background:#e4eedf; }
.home-page .board-construction {position:absolute; inset:-52px; width:calc(100% + 104px); height:calc(100% + 104px); overflow:visible; pointer-events:none;}
.home-page .copy-cross {position:absolute; width:12px;height:12px;right:0;top:-26px;border-radius:50%;border:1px solid #839476;background:#f5f6f2;}
.home-page .home-principle { margin:0 0 3rem; position:relative; }
.home-page .home-principle::before,.home-page .home-principle::after { content:""; width:9px;height:9px;position:absolute;top:-5px;border:1px solid #89967d;border-radius:50%;background:#f5f6f2; }
.home-page .home-principle::before {left:-5px;} .home-page .home-principle::after {right:-5px;}
.home-page .runbook-section { margin-bottom:1rem; }
.home-page .runbook-section h2 { font-size:clamp(2rem,3vw,2.75rem);line-height:1.1;max-width:13ch; }
.home-page .runbook-section p { font-size:16px; }
.home-page .systems-section h2,.home-page .theses-section h2 { text-transform:uppercase;font-size:2.4rem;line-height:1.1;letter-spacing:.05em; }
.home-page .systems-section { background:rgba(239,243,234,.5); }
.home-page .systems-section::before,.home-page .systems-section::after {height:19px;width:19px;top:-10px;background:linear-gradient(90deg,transparent 9px,#7e8d75 9px 10px,transparent 10px),linear-gradient(transparent 9px,#7e8d75 9px 10px,transparent 10px);}
.home-page .about-section { max-width:100%; }
.home-page .about-section p { max-width:68ch; }
@media(max-width:1100px) { .home-page .article-header {gap:3.4rem;} .home-page h1 {font-size:3.35rem;} .home-page .practice-cell {padding:1.25rem 1rem;} .home-page .practice-panel::before {inset:-18px;} .home-page .practice-panel::after {left:-18px;right:-18px;} }
@media(max-width:900px) { .home-page .article-header {grid-template-columns:1fr;padding:3.5rem 0 5rem;gap:3.8rem;} .home-page h1 {font-size:clamp(2.3rem,8vw,4.4rem);max-width:15ch;} .home-page .hero-copy .lede {max-width:60ch;} .home-page .article-meta {max-width:60ch;} .home-page .practice-panel {width:calc(100% - 28px);margin-inline:14px;max-width:none;} .home-page .practice-cell {min-height:160px;} .home-page .board-construction {inset:-27px;width:calc(100% + 54px);height:calc(100% + 54px);} .home-page .article-header::before {left:-14px;right:-14px;top:22px;} }
@media(max-width:600px) { .home-page .article-header {gap:3rem;padding:3rem 0 4.5rem;} .home-page h1 {font-size:clamp(2rem,9.1vw,3rem);line-height:1.02;} .home-page .hero-copy::before {left:-12px;top:-10px;bottom:-12px;} .home-page .practice-panel {width:calc(100% - 16px);margin-inline:8px;} .home-page .practice-panel::before {inset:-12px;} .home-page .practice-panel::after {left:-12px;right:-12px;bottom:-32px;height:16px;} .home-page .board-construction {inset:-19px;width:calc(100% + 38px);height:calc(100% + 38px);} .home-page .practice-cell {padding:1rem .8rem;min-height:152px;} .home-page .practice-cell h2 {font-size:1.14rem;line-height:1.2;} .home-page .practice-cell p {font-size:11px;} .home-page .panel-caption {padding:.8rem;font-size:9px;} .home-page .hero-copy .eyebrow {margin-bottom:1.1rem;} .home-page .copy-cross {right:0;top:-15px;width:8px;height:8px;} .home-page .home-principle {margin-bottom:2rem;} .home-page .runbook-section h2 {font-size:2rem;} .home-page .systems-section h2,.home-page .theses-section h2 {font-size:2rem;} }

/* Background refinement: soften the ambient grid while retaining registration marks. */
body.home-page { background-image:radial-gradient(circle at 1px 1px,rgba(56,56,69,.105) 1px,transparent 1.5px),linear-gradient(90deg,rgba(56,56,69,.04875) 1px,transparent 1px),linear-gradient(rgba(56,56,69,.04875) 1px,transparent 1px); }
.home-page .draft-construction path,.home-page .draft-flow-lines line { stroke-opacity:.75; }
.home-page .theses-section li { font-weight:450; }
.home-page .systems-section th:first-child,.home-page .systems-section th:last-child,
.home-page .systems-section td:first-child code,.home-page .systems-section td:last-child code { font-weight:500;text-transform:uppercase; }

/* Sticky navigation and the supplied PR mark. */
.home-page { --anchor-clearance:7rem; }
.home-page .site-header { position:sticky;top:0;z-index:20;background:#f5f6f2; }
.home-page .site-header nav a { min-height:44px;display:inline-flex;align-items:center; }
.home-page .skip-link { z-index:21; }
.home-page [id] { scroll-margin-top:var(--anchor-clearance); }
.home-page .site-mark { background:#191c1f;border-color:#191c1f; }
.home-page .site-mark img { display:block;width:100%;height:100%;object-fit:contain; }

/* Adapted from the drafting footer's offset drawing planes and logo construction. */
.home-page .site-footer { display:grid;grid-template-columns:300px 1fr;align-items:center;gap:3rem;padding:2.75rem 0;background:transparent; }
.home-page .footer-brand { display:block;position:relative;min-width:0;min-height:244px;border-right:1px solid #a7b1a2; }
.home-page .footer-brand::before,.home-page .footer-brand::after { content:"";position:absolute;width:min(220px,calc(100% - 48px));height:160px;pointer-events:none;transform:skewY(-7deg); }
.home-page .footer-brand::before { left:0;top:32px;border:1px dashed rgba(56,56,69,.24);background:linear-gradient(90deg,rgba(56,56,69,.12) 1px,transparent 1px) 0 0/37px 100%,linear-gradient(rgba(56,56,69,.12) 1px,transparent 1px) 0 0/100% 31px; }
.home-page .footer-brand::after { left:48px;top:18px;border:1px solid rgba(56,56,69,.14); }
.home-page .pr-logo-draft { display:block;position:relative;width:min(268px,100%);height:212px; }
.home-page .pr-logo-ink { position:absolute;left:8px;top:52px;width:168px;height:144px;overflow:hidden;z-index:3; }
.home-page .pr-logo-ink img { display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.7);filter:url(#pr-footer-ink); }
.home-page .pr-logo-shadow { left:38px;top:24px;z-index:1;opacity:.1;transform:skewY(-7deg); }
.home-page .pr-logo-line { position:absolute;z-index:2;height:1px;background:rgba(56,56,69,.22);transform-origin:left center; }
.home-page .pr-ll-one { left:2px;top:66px;width:88px;transform:rotate(-28deg); }
.home-page .pr-ll-two { left:170px;top:54px;width:min(80px,calc(100% - 170px));transform:rotate(-18deg); }
.home-page .pr-ll-three { left:2px;top:176px;width:100px;transform:rotate(18deg); }
.home-page .pr-logo-node { position:absolute;z-index:4;width:7px;height:7px;border-radius:50%;background:#c2c8c0; }
.home-page .pr-ln-a { left:-3px;top:51px; }.home-page .pr-ln-b { right:17px;top:24px; }.home-page .pr-ln-c { left:218px;top:183px; }
.home-page .footer-brand-name { display:block;color:#414b43;font:600 11px/1.6 var(--mono);letter-spacing:.16em;text-transform:uppercase;margin-top:12px; }

@media(max-width:760px) { .home-page {--anchor-clearance:11rem;} .home-page .site-footer {grid-template-columns:minmax(0,1fr);gap:1.5rem;} .home-page .footer-brand {border-right:0;border-bottom:1px solid #a7b1a2;padding-bottom:1.5rem;} }
@media(max-width:360px) { .home-page {--anchor-clearance:14rem;} }
@media print { .home-page .site-header,.home-page .site-footer {display:none;} }

/* About uses an inset drawing frame and hatched lower edge. */
.home-page .about-panel { position:relative;margin:0 18px;padding:2.25rem 2.25rem 0;border:1px solid #a7b1a2;background:rgba(245,246,242,.78); }
.home-page .about-panel::before { content:"";position:absolute;inset:-18px;border:1px dashed #b5bdaf;pointer-events:none; }
.home-page .about-panel::after { content:"";position:absolute;left:-18px;right:-18px;bottom:-18px;height:18px;border-block:1px solid #b5bdaf;background:repeating-linear-gradient(115deg,rgba(56,56,69,.15) 0 1px,transparent 1px 7px);pointer-events:none; }
.home-page .about-panel h2 { margin-top:0; }
.home-page .about-panel .about-contact { max-width:none;margin:2rem -2.25rem 0;padding:1rem 2.25rem;border-top:1px solid #bcc4b6; }
@media(max-width:600px) { .home-page .about-panel {margin-inline:12px;padding:1.4rem 1.1rem 0;} .home-page .about-panel::before {inset:-12px;} .home-page .about-panel::after {left:-12px;right:-12px;bottom:-12px;height:12px;} .home-page .about-panel .about-contact {margin:1.5rem -1.1rem 0;padding:1rem 1.1rem;} }

/* Final line-weight and title-block refinement. */
.home-page .board-construction circle {fill:#e7ece2;stroke:#9ea993;}
.home-page :is(.practice-section,.systems-section) th {border-color:#b8c0b1;}
.home-page :is(.practice-section,.systems-section) td {border-color:#cdd1ca;}
.home-page :is(.practice-section,.systems-section) code {border-color:#e2e5df;}
.home-page .footer-title-block {width:min(100%,30rem);min-width:0;justify-self:end;border:1px solid #a7b1a2;color:#414b43;font:500 .75rem/1.6 var(--mono);letter-spacing:.05em;}
.home-page .footer-document-title {margin:0;padding:1rem 1.25rem;border-bottom:1px solid #b8c0b1;font-size:.85rem;font-weight:600;text-transform:uppercase;}
.home-page .footer-spec {display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);margin:0;}
.home-page .footer-spec > div {min-width:0;padding:.75rem 1.25rem;}
.home-page .footer-spec > div:nth-child(2) {border-left:1px solid #b8c0b1;}
.home-page .footer-spec dt {font-size:.625rem;color:#596553;text-transform:uppercase;}
.home-page .footer-spec dd {margin:.2rem 0 0;font-weight:600;text-transform:uppercase;}
.home-page .footer-spec .footer-location {grid-column:1/-1;border-top:1px solid #b8c0b1;}
.home-page .footer-meta {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.35rem 1rem;padding:.55rem 1.25rem;border-top:1px solid #b8c0b1;}
.home-page .footer-top {display:inline-flex;align-items:center;gap:.4rem;min-height:44px;}
.home-page .footer-publishing {font:.75rem/1.6 var(--mono);letter-spacing:.05em;}
.home-page .footer-publishing a {display:inline-block;white-space:nowrap;text-decoration:underline;}
@media(max-width:760px) {.home-page .footer-title-block {width:100%;justify-self:stretch;}}
@media(max-width:600px) {.home-page .footer-document-title,.home-page .footer-spec > div {padding-inline:1rem;} .home-page .footer-meta {padding:.55rem 1rem;}}
@media print {
  body.home-page {background:#fff;}
  .home-page .page-shell {width:100%;max-width:none;padding:0;border:0;}
  .home-page .article-header {display:block;}
  .home-page .practice-panel {margin-top:2rem;}
}
