@font-face{font-family:Inter;src:url('../vendor/InterVariable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:Inter;src:url('../vendor/InterVariable-Italic.woff2') format('woff2');font-style:italic;font-weight:100 900;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('../vendor/JetBrainsMono-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('../vendor/JetBrainsMono-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
:root{
 color-scheme:light;
 --bg:#F7F5F0;--surface:#FFFFFF;--elev:#F1EEE7;--border:#E4DFD5;--text:#1F2430;--muted:#5C6672;--faint:#8B939D;
 --accent:#6A5AD1;--accent-soft:#EEEBFA;--accent-ink:#4E40B0;
 --green:#1E8A5A;--green-soft:#E7F5EC;--rose:#C2455A;--rose-soft:#FBEAEC;
 --amber:#A8700F;--amber-soft:#FFF3DA;--blue:#2E6BD0;--blue-soft:#E8F0FC;
 /* Darker inks keep small text legible on the tinted surfaces. */
 --green-ink:#176B46;--rose-ink:#A33246;--amber-ink:#80530B;--blue-ink:#245AB4;
 font:16px/1.65 Inter,system-ui,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);overflow-wrap:break-word}
a{color:var(--accent-ink);text-underline-offset:3px}
a:hover{color:var(--text)}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:3px}
[hidden]{display:none!important}
.skip-link{position:fixed;top:8px;left:12px;z-index:50;padding:8px 14px;background:var(--surface);transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
.part-0,.part-1{--part-ink:var(--accent-ink);--part-soft:var(--accent-soft)}
.part-2{--part-ink:var(--blue-ink);--part-soft:var(--blue-soft)}
.part-3{--part-ink:var(--amber-ink);--part-soft:var(--amber-soft)}
.part-4{--part-ink:var(--green-ink);--part-soft:var(--green-soft)}
.part-5{--part-ink:var(--muted);--part-soft:var(--elev)}

/* Navigation */
.sidebar{position:fixed;inset:0 auto 0 0;width:250px;overflow-y:auto;overscroll-behavior:contain;background:var(--elev);border-right:1px solid var(--border);padding:22px 14px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.brand-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.brand{display:flex;align-items:center;gap:7px;color:var(--text);font-size:14px;font-weight:650;text-decoration:none;line-height:1.35}
.brand small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:4px}
.nav-group{margin-bottom:18px}
.nav-label{margin:0 8px 7px;color:var(--part-ink);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.nav-group ul{list-style:none;padding:0;margin:0}
.nav-group a{display:flex;align-items:baseline;gap:9px;padding:6px 8px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:13px;line-height:1.4}
.nav-group a:hover{background:var(--surface);color:var(--text)}
.nav-group a[aria-current]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.nav-number{min-width:17px;font-family:'JetBrains Mono',monospace;font-size:11px;font-variant-numeric:tabular-nums}
.sister-links{border-top:1px solid var(--border);padding:16px 8px 0;display:grid;gap:9px;font-size:11px}
.sister-links a{color:var(--muted);text-decoration:none}
.sister-links a:hover{color:var(--accent-ink)}

/* Reading column */
main{margin:0 0 0 250px;padding:44px 64px 56px;max-width:840px;min-width:0;background:var(--surface);border-right:1px solid var(--border);min-height:100vh}
article,.page-nav,.site-footer{max-width:680px}
main:focus{outline:none}
.eyebrow{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 7px}
.home .eyebrow{display:none}
h1{font-size:1.75rem;line-height:1.25;letter-spacing:-.02em;margin:0 0 16px;font-weight:700}
h2{font-size:1.1rem;line-height:1.4;margin:2.2rem 0 .8rem;font-weight:700;letter-spacing:-.01em}
h2::after{content:'';display:block;width:28px;height:2px;background:var(--accent);margin-top:8px}
h3{font-size:1rem;margin:1.3rem 0 .6rem}
p,ul,ol,blockquote,pre{margin:0 0 .9rem}
ul,ol{padding-left:1.35rem}
li+li{margin-top:.45rem}
li>p{margin-bottom:.4rem}
strong{font-weight:650}
code,pre{font-family:'JetBrains Mono',monospace;font-size:.85em}
code{background:var(--elev);border-radius:4px;padding:1px 4px;overflow-wrap:anywhere}
pre{overflow:auto;background:var(--surface);padding:14px;border:1px solid var(--border);border-radius:8px}
pre code{padding:0;background:transparent;overflow-wrap:normal}
blockquote{border-left:2px solid var(--border);padding:0 14px;color:var(--muted)}
hr{border:0;border-top:1px solid var(--border);margin:1.6rem 0}
.page-header{margin-bottom:2rem}
.home .page-header{display:grid;grid-template-columns:minmax(0,1fr) 224px;gap:28px;align-items:center}
.home-art{display:block;width:100%;height:auto;border-radius:16px;background:var(--elev)}
@media(max-width:899px){.home .page-header{grid-template-columns:1fr}.home-art{max-width:260px;margin:4px auto 0}}
.page-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 12px;margin-top:16px;font-size:11px;color:var(--muted)}
.chip{background:var(--elev);border-radius:20px;padding:3px 9px;white-space:nowrap}
.verified{flex:1;min-width:230px}
.lede{font-size:1.15rem;line-height:1.5;color:var(--muted);border-left:3px solid var(--accent);padding-left:16px;margin:0}
.lede>:last-child{margin-bottom:0}

/* The shape, not a repeated border, distinguishes each kind of advice. */
.callout{font-size:15px;border:0;border-radius:12px;padding:18px 20px;margin:2rem 0}
.callout>:last-child{margin-bottom:0}
.callout-label{font-size:11px;line-height:1.4;font-weight:750;letter-spacing:.075em;text-transform:uppercase;color:var(--muted);margin:0 0 9px}
.callout-glyph{font-size:16px;vertical-align:-1px;margin-right:3px}
.callout-why{padding:0;border-radius:0;font-size:1rem}
.callout-why .callout-label{color:var(--muted)}
.callout-do{background:var(--green-soft)}
.callout-do .callout-label{color:var(--green-ink)}
.callout-do .callout-glyph{color:var(--green)}
.callout-dont{background:var(--rose-soft)}
.callout-dont .callout-label{color:var(--rose-ink)}
.callout-dont .callout-glyph{color:var(--rose)}
.callout-myth{background:var(--amber-soft)}
.callout-myth .callout-label{color:var(--amber-ink)}
.callout-myth>p:not(.callout-label)>strong:first-child{font-style:italic}
.callout-rule{background:var(--accent-soft);font-weight:550}
.callout-rule .callout-label{color:var(--accent-ink)}
.callout-takeaway{border-radius:0;border-left:3px solid var(--green);padding:2px 0 2px 16px;font-size:1.05rem;font-weight:650;margin-top:2.2rem}
.callout-takeaway .callout-label{color:var(--green-ink)}
.callout-note{border-radius:0;border-left:1px solid var(--border);padding:2px 0 2px 16px;font-size:14px;color:var(--muted)}
.do-dont{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:2rem 0}
.do-dont .callout{margin:0;min-width:0}

/* Tables and figures */
.table-scroll{max-width:100%;overflow-x:auto;margin:1.5rem 0 2rem;scrollbar-width:thin;border-radius:12px;background:var(--surface);border:1px solid var(--border)}
table{border-collapse:collapse;width:100%;font-size:14.5px;line-height:1.55}
th,td{text-align:left;vertical-align:top;padding:11px 14px;border-bottom:1px solid var(--border);min-width:125px}
th{font-size:11.5px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;background:var(--elev);color:var(--muted)}
td:first-child{font-weight:600}
.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}
tr:last-child td{border-bottom:0}
.diagram{margin:1.5rem 0 2rem;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}
.logo{width:1.05em;height:1.05em;vertical-align:-0.18em;margin-right:.4em;fill:currentColor}
.diagram svg{display:block;width:100%;max-width:640px;height:auto;margin:8px auto}
figcaption{font-size:13px;line-height:1.5;color:var(--muted);border-top:1px solid var(--border);padding:12px 16px}
.c-violet{color:var(--accent-ink);--diagram-soft:var(--accent-soft);fill:currentColor}
.c-mint,.c-green{color:var(--green-ink);--diagram-soft:var(--green-soft);fill:currentColor}
.c-amber{color:var(--amber-ink);--diagram-soft:var(--amber-soft);fill:currentColor}
.c-red,.c-rose{color:var(--rose-ink);--diagram-soft:var(--rose-soft);fill:currentColor}
.c-blue{color:var(--blue-ink);--diagram-soft:var(--blue-soft);fill:currentColor}
.c-muted{color:var(--muted);--diagram-soft:var(--elev);fill:currentColor}
.c-border{color:var(--border);fill:currentColor}
.c-text,.c-ink{color:var(--text);fill:currentColor}
.diagram .box{fill:var(--elev);stroke:currentColor;stroke-width:2}
.diagram .line{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.diagram .soft{fill:var(--diagram-soft,var(--elev));stroke:currentColor;stroke-width:2}

/* Home: habits, then one short card per topic. */
.habits{margin:2rem 0 2.4rem}
.habits>p{font-size:14px;color:var(--muted)}
.habits ol{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;list-style:none;counter-reset:habit;padding:0;margin:0}
.habits li{counter-increment:habit;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 14px;margin:0;font-size:14px;line-height:1.5}
.habits li::before{content:counter(habit,decimal-leading-zero);display:block;color:var(--accent);font-size:25px;line-height:1.2;font-weight:700;margin-bottom:10px}
.home-grid{margin-top:1.6rem}
.topic-section{margin:0 0 2.4rem}
.topic-section h2{display:flex;align-items:center;gap:10px;margin:0 0 6px}
.part-icon{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--part-soft);color:var(--part-ink)}
.part-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.topic-section h2::after{display:none}
.part-number{display:none}
.part-description{font-size:14px;color:var(--muted);margin:0 0 14px}
.topic-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.topic-card{display:block;padding:16px 18px;text-decoration:none;background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--text);min-width:0;transition:border-color .15s,box-shadow .15s}
.topic-card:hover{color:var(--part-ink);border-color:var(--part-ink);box-shadow:0 4px 14px #1F24300F}
.topic-card strong{font-size:15px;line-height:1.45;display:block}
.topic-icon{display:inline-block;width:20px;height:20px;vertical-align:middle;margin-right:8px;color:var(--part-ink,var(--accent-ink))}
.topic-icon svg{display:block;width:100%;height:100%}
.eyebrow .topic-icon{color:var(--muted)}
.topic-hook{display:block;font-size:14px;line-height:1.5;color:var(--muted);margin-top:6px}
.page-nav{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--border);margin-top:2.4rem;padding-top:20px}
.page-nav a{text-decoration:none;min-width:0}
.page-nav span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}
.page-nav strong{font-size:13px;font-weight:550;display:block}
.page-nav .next{grid-column:2;text-align:right}
.site-footer{margin-top:24px;padding-top:18px;border-top:1px solid var(--border);font-size:11px;line-height:1.6;color:var(--muted)}
.site-footer p:last-child{margin-bottom:0}
.topbar,#menu-close,.backdrop{display:none}

@media(max-width:1023px){
 .topbar{height:52px;display:flex;align-items:center;gap:10px;padding:0 16px;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--border);background:var(--surface)}
 .topbar a{display:flex;gap:6px;align-items:center;color:var(--text);font-size:14px;font-weight:600;text-decoration:none}
 .topbar button,#menu-close{border:1px solid var(--border);border-radius:8px;background:var(--surface);width:36px;height:36px;font-size:20px;line-height:1}
 .sidebar{width:290px;max-width:calc(100vw - 46px);z-index:40;transform:translateX(-100%);visibility:hidden;transition:transform .18s ease,visibility .18s}
 #menu-close{display:block;flex-shrink:0}
 .drawer-open .sidebar{transform:translateX(0);visibility:visible}
 .backdrop{display:block;position:fixed;inset:0;background:#1F243066;border:0;z-index:30}
 .drawer-open{overflow:hidden}
 main{margin:0;padding:28px 22px 40px;max-width:none;border-right:0;min-height:0}
 article,.page-nav,.site-footer{max-width:680px;margin-left:auto;margin-right:auto}
 :target{scroll-margin-top:68px}
}
@media(max-width:599px){
 main{padding:22px 16px 36px}
 .do-dont,.topic-grid,.habits ol{grid-template-columns:1fr}
 .habits li{display:grid;grid-template-columns:32px 1fr;align-items:baseline;gap:10px;padding:12px 14px}
 .habits li::before{margin:0;font-size:23px}
 .page-nav{gap:14px}
 th,td{padding:10px}
 th,td{min-width:0}
 table:has(th:nth-child(3)){min-width:0}
 table:has(th:nth-child(4)){min-width:600px}
 .table-scroll:has(th:nth-child(4))::before{content:"Swipe sideways to see every column \2192";display:block;font-size:12px;color:var(--muted);padding:8px 12px 0}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{
 @page{size:letter;margin:12mm}
 :root{color-scheme:light;--bg:#fff;--surface:#fff;--elev:#f3f3f3;--border:#bbb;--text:#000;--muted:#333;--accent:#333;--accent-ink:#000;--green:#333;--green-ink:#000;--rose:#333;--rose-ink:#000;--amber-ink:#000;--blue-ink:#000;--accent-soft:#f3f3f3;--green-soft:#f3f3f3;--rose-soft:#f3f3f3;--amber-soft:#f3f3f3;--blue-soft:#f3f3f3;font-size:11px;line-height:1.35}
 .sidebar,.topbar,.backdrop,.page-nav,.skip-link{display:none!important}
 main{width:auto;max-width:none;margin:0;padding:0}
 h1{font-size:20px;margin-bottom:10px}h2{font-size:13px;margin:10px 0 5px}
 h2::after{margin-top:4px}
 p,ul,ol{margin-bottom:.6rem}
 .callout{font-size:11px;padding:7px 9px;margin:8px 0;break-inside:avoid}
 .lede{font-size:12px}
 .callout-label{font-size:9px;margin-bottom:3px}
 .callout-glyph{font-size:11px}
 .do-dont{margin:8px 0;gap:10px}
 table{font-size:10px}th{font-size:10px}th,td{padding:5px 7px;min-width:0}
 .table-scroll{overflow:visible}tr{break-inside:avoid}
 a{color:#000;text-decoration:none}
 .diagram{break-inside:avoid;max-width:480px;margin:10px auto}
 .diagram-verification-gate{max-width:260px}
 .diagram-verification-gate figcaption{font-size:10px;padding:6px 9px}
 .topic-card{box-shadow:none;border:1px solid var(--border);break-inside:avoid}
 .habits li,.topic-hook{font-size:11px}
 .site-footer{font-size:8px;margin-top:12px;padding-top:8px}
 .page-header{margin-bottom:10px}.page-meta{font-size:9px}
}

/* ---- diagram kit (tools/diagram_kit.py) — hue classes own the colours ---- */
:root{--teal:#0E9488;--teal-ink:#0B7A70;--teal-soft:#E4F5F3;--ink-3:#7B8794;--line:#E6E2DA}
.diagram svg{display:block;width:100%;height:auto}
.dg-shape{stroke-width:1.5;stroke-linejoin:round}
.dg-shape.focus{stroke-width:2.5}
.dg-shape.violet{fill:var(--accent-soft);stroke:var(--accent)}
.dg-shape.blue{fill:var(--blue-soft);stroke:var(--blue-ink)}
.dg-shape.teal{fill:var(--teal-soft);stroke:var(--teal)}
.dg-shape.green{fill:var(--green-soft);stroke:var(--green-ink)}
.dg-shape.amber{fill:var(--amber-soft);stroke:var(--amber-ink)}
.dg-shape.rose{fill:var(--rose-soft);stroke:var(--rose-ink)}
.dg-shape.ink{fill:#fff;stroke:var(--ink-3)}
.dg-region{stroke:none}
.dg-stop.green{stop-color:var(--green-soft)}.dg-stop.amber{stop-color:var(--amber-soft)}
.dg-region.violet{fill:var(--accent-soft)}.dg-region.blue{fill:var(--blue-soft)}.dg-region.teal{fill:var(--teal-soft)}
.dg-region.green{fill:var(--green-soft)}.dg-region.amber{fill:var(--amber-soft)}.dg-region.rose{fill:var(--rose-soft)}.dg-region.ink{fill:var(--elev)}
.dg-solid.violet{fill:var(--accent)}.dg-solid.blue{fill:var(--blue-ink)}.dg-solid.teal{fill:var(--teal)}
.dg-solid.green{fill:var(--green-ink)}.dg-solid.amber{fill:var(--amber-ink)}.dg-solid.rose{fill:var(--rose-ink)}.dg-solid.ink{fill:var(--ink-3)}
.dg-oncolor{fill:#fff}
.dg-text{fill:var(--text)}.dg-caps{fill:var(--muted)}
.dg-text.violet,.dg-caps.violet{fill:var(--accent-ink)}.dg-text.blue,.dg-caps.blue{fill:var(--blue-ink)}
.dg-text.teal,.dg-caps.teal{fill:var(--teal-ink)}.dg-text.green,.dg-caps.green{fill:var(--green-ink)}
.dg-text.amber,.dg-caps.amber{fill:var(--amber-ink)}.dg-text.rose,.dg-caps.rose{fill:var(--rose-ink)}
.dg-link{fill:none;stroke:var(--ink-3);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.dg-head{fill:var(--ink-3);stroke:var(--ink-3);stroke-width:1.5;stroke-linejoin:round}
.dg-link.violet,.dg-head.violet{stroke:var(--accent)}.dg-head.violet{fill:var(--accent)}
.dg-link.green,.dg-head.green{stroke:var(--green-ink)}.dg-head.green{fill:var(--green-ink)}
.dg-link.rose,.dg-head.rose{stroke:var(--rose-ink)}.dg-head.rose{fill:var(--rose-ink)}
.dg-link.amber,.dg-head.amber{stroke:var(--amber-ink)}.dg-head.amber{fill:var(--amber-ink)}
.dg-link.blue,.dg-head.blue{stroke:var(--blue-ink)}.dg-head.blue{fill:var(--blue-ink)}
.dg-link.teal,.dg-head.teal{stroke:var(--teal)}.dg-head.teal{fill:var(--teal)}
.dg-line{fill:none;stroke-width:1.5;stroke-linecap:round}
.dg-line.violet{stroke:var(--accent)}.dg-line.blue{stroke:var(--blue-ink)}.dg-line.teal{stroke:var(--teal)}
.dg-line.green{stroke:var(--green-ink)}.dg-line.amber{stroke:var(--amber-ink)}.dg-line.rose{stroke:var(--rose-ink)}.dg-line.ink{stroke:var(--ink-3)}
