@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{font:16px/1.65 Inter,system-ui,sans-serif}
/* palette-light */
:root,.theme-light{color-scheme:light;
 --navy-900:#0F1F3D;--navy-800:#16284A;--navy-700:#1F3A66;--navy-600:#2C4F86;
 --steel-700:#264D7A;--steel-600:#2F5F94;--steel-400:#5B8BC0;--sky-100:#E6EEF7;
 --paper:#F4F6F9;--page:#FFFFFF;--ink:#1A2333;--ink-2:#46526A;--ink-3:#62718A;--line:#DCE3EC;
 --sea-700:#176A5E;--sea-soft:#E3F3F0;--brick-700:#A63D38;--brick-soft:#FBEBE9;
 --slate-600:#4E5D78;--sand-soft:#F1EDE4;
 --ground:var(--paper);--surface:var(--page);--surface-2:var(--paper);
 --text:var(--ink);--text-2:var(--ink-2);--text-3:var(--ink-3);
 --accent:var(--steel-600);--accent-soft:var(--sky-100);--sea:var(--sea-700);--brick:var(--brick-700);--slate:var(--slate-600);
 --heading:var(--navy-700);--link-hover:var(--steel-700);--oncolor:#FFFFFF;
 --sidebar-text:#C9D6E8;--mark-soft:#9FC3EC;
 --nav-part-1:#E6EEF7;--nav-part-2:#E6EEF7;--nav-part-3:#FBEBE9;--nav-part-4:#E3F3F0;--nav-part-5:#F1EDE4;
 --bg:var(--ground);--elev:var(--surface-2);--border:var(--line);--muted:var(--text-2);--faint:var(--text-3);
 --accent-ink:var(--accent);--green:var(--sea);--green-ink:var(--sea);--green-soft:var(--sea-soft);
 --rose:var(--brick);--rose-ink:var(--brick);--rose-soft:var(--brick-soft);
 --amber:var(--slate);--amber-ink:var(--slate);--amber-soft:var(--sand-soft);
 --blue:var(--accent);--blue-ink:var(--accent);--blue-soft:var(--accent-soft);
 --teal:var(--sea);--teal-ink:var(--sea);--teal-soft:var(--sea-soft);
}
/* palette-dark */
/* opt-in only via .theme-dark: the site is light by design (auto-dark made it navy-on-navy) */
.theme-dark{color-scheme:dark;
 --ground:#0E1A2F;--surface:#14233D;--surface-2:#1B2D4B;--line:#2A3B58;
 --text:#E4EAF3;--text-2:#AAB7CB;--text-3:#8391A8;
 --accent:#8FB8E8;--accent-soft:#1E3357;--sea:#5FC3B1;--brick:#F09A93;--slate:#B9C4D6;--sand-soft:#2A2F3A;
 --sea-soft:#173932;--brick-soft:#412A32;--heading:var(--text);--link-hover:#B9D5F5;--oncolor:#0E1A2F;
 --bg:var(--ground);--elev:var(--surface-2);--border:var(--line);--muted:var(--text-2);--faint:var(--text-3);
 --accent-ink:var(--accent);--green:var(--sea);--green-ink:var(--sea);--green-soft:var(--sea-soft);
 --rose:var(--brick);--rose-ink:var(--brick);--rose-soft:var(--brick-soft);
 --amber:var(--slate);--amber-ink:var(--slate);--amber-soft:var(--sand-soft);
 --blue:var(--accent);--blue-ink:var(--accent);--blue-soft:var(--accent-soft);
 --teal:var(--sea);--teal-ink:var(--sea);--teal-soft:var(--sea-soft);
}
/* palette-end */
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);overflow-wrap:break-word}
a{color:var(--accent);text-decoration:none;text-underline-offset:3px}
a:hover{color:var(--link-hover);text-decoration:underline}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--link-hover);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(--heading);--part-soft:var(--accent-soft)}
.part-2{--part-ink:var(--blue-ink);--part-soft:var(--blue-soft)}
.part-3{--part-ink:var(--slate);--part-soft:var(--sand-soft)}
.part-4{--part-ink:var(--green-ink);--part-soft:var(--green-soft)}
.part-5{--part-ink:var(--amber-ink);--part-soft:var(--amber-soft)}

/* 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,.site-disclaimer{max-width:680px}
.site-disclaimer{font-size:12px;line-height:1.4;color:var(--text-2);margin:0 0 4px;text-align:right}.site-disclaimer a{color:inherit;text-decoration:none;opacity:.75}.site-disclaimer a:hover,.site-disclaimer a:focus-visible{text-decoration:underline;opacity:1}
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:1fr;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{margin-bottom:12px;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}

/* The landing's depth table is three long columns; below 600px it reads as cards,
   one per depth, instead of a 1,500px horizontal strip. Data cells carry their
   column name from the header via data-label, set in build.py. */
@media(max-width:599px){
  .home .table-scroll{overflow-x:visible}
  .home .table-scroll table,.home .table-scroll tbody,.home .table-scroll tr,.home .table-scroll td{display:block;width:auto}
  .home .table-scroll thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .home .table-scroll tr{border:1px solid var(--border);border-radius:12px;margin:0 0 .75rem;padding:.25rem .25rem .5rem;background:var(--surface)}
  .home .table-scroll td{border-bottom:0;min-width:0;padding:.5rem .75rem}
  .home .table-scroll td:first-child{font-size:1rem;padding-bottom:.25rem}
  .home .table-scroll td[data-label]:not(:first-child)::before{content:attr(data-label);display:block;font-size:11px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.15rem}
}
/* 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:1rem 0;background:var(--surface);border:0;border-radius:0;overflow:hidden}
/* Portal screenshots. An empty slot is a marked frame, never a broken image. */
.shot{margin:1rem 0}
.shot img{display:block;width:100%;height:auto;max-width:520px;max-height:38vh;object-fit:contain;object-position:left top;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.shot-frame{max-width:520px;border:1px dashed var(--line);border-radius:8px;background:var(--elev);padding:1.1rem 1rem;text-align:center}
.shot-note{margin:0;font-size:11.5px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.shot-credit{margin:.25rem 0 0;font-size:11px;line-height:16px;color:var(--faint,var(--muted))}
.shot-what{margin:.4rem 0 0;font-size:13px;line-height:1.5;color:var(--text-2,var(--muted))}
.mark-genai{color:var(--heading);font-weight:600;letter-spacing:.02em;white-space:nowrap}
.download-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.download-card{min-width:0;border-top:1px solid var(--line);padding-top:.75rem}
.download-card h3{margin:.5rem 0;font-size:1rem}
.download-card p{margin:.4rem 0}
.download-card img{display:block;width:100%;height:auto;border:1px solid var(--line)}
.download-links{margin:.5rem 0;font-size:.875rem}
.download-pending{color:var(--text-2)}
@media(max-width:599px){.download-grid{grid-template-columns:1fr}}
.logo{width:1.05em;height:1.05em;vertical-align:-0.18em;margin-right:.4em;fill:currentColor}
.diagram svg{display:block;width:100%;max-width:390px;height:auto;margin:0}
figcaption{font-size:12px;line-height:18px;color:var(--muted);border:0;padding:4px 0}
.c-steel{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: three paths first, then habits and every topic. */
.home .page-header{margin-bottom:16px;gap:0}
.home .lede{font-size:15px;line-height:1.4}
.home .lede p{margin-bottom:6px}
.home .lede p:last-child{margin-bottom:0}
.doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.door{display:flex;flex-direction:column;min-width:0;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:var(--text)}
.door:hover,.door:focus-visible{border-color:var(--part-ink);color:var(--text);text-decoration:none}
.door h2{font-size:1.15rem;font-weight:700;line-height:1.3;color:var(--heading);margin:0 0 8px}
.door h2::after{display:none}
.door p{font-size:14px;line-height:1.4;color:var(--muted);margin:0 0 12px}
.door-pages{font-size:13px;line-height:1.4;padding-left:1.2rem;margin:0 0 16px}
.door-pages li+li{margin-top:6px}
.door-summary{font-size:12px;line-height:1.5;margin-top:auto}
.door-count{display:none}
.path-next{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;background:var(--accent-soft);border-radius:12px;padding:12px 16px;margin-top:24px;font-size:14px}
.path-name{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--heading)}
@media(min-width:720px) and (max-width:1023px){.doors{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:719px){
 /* Save 40px vertically for all three V1c doors at 390x660, with fold headroom.
    Keep text widths and leading stable so lede wrapping does not change. */
 .home main{padding-top:8px}
 .home h1{margin-bottom:6px}
 .home .lede{font-size:15px;line-height:1.4}
 .home .page-header{margin-bottom:8px}
 .doors{grid-template-columns:1fr;gap:6px}
 .door{padding:6px 12px}
 .door h2{font-size:16px;line-height:1.3;margin-bottom:4px}
 .door p{margin-bottom:4px}
 /* Visually hidden only: the ordered page titles remain available to assistive technology. */
 .door-pages{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .door-count{display:inline}
}
.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 ---- */
.diagram svg{display:block;width:100%;height:auto}
.dg-shape{stroke-width:1.5;stroke-linejoin:round}
.dg-shape.focus{stroke-width:1.5}
.dg-shape.steel{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:var(--surface);stroke:var(--text-3)}
.dg-shape.token-alt{fill:var(--elev)}
.dg-region{stroke:none}

.dg-region.steel{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.steel{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(--text-3)}
.dg-oncolor{fill:var(--oncolor)}
.dg-text{fill:var(--text)}.dg-caps{fill:var(--muted)}
.dg-text.steel,.dg-caps.steel{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(--text-3);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.dg-head{fill:var(--text-3);stroke:var(--text-3);stroke-width:1.5;stroke-linejoin:round}
.dg-link.steel,.dg-head.steel{stroke:var(--accent)}.dg-head.steel{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.steel{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(--text-3)}

/* Navy structure and palette previews. */
h1,h2{color:var(--heading)}
.sidebar,.topbar,.swatch-sidebar{background:var(--navy-900);color:var(--sidebar-text)}
.sidebar a{color:var(--sidebar-text)}
.sidebar .brand,.topbar a{color:#FFFFFF}
.sidebar .brand small,.sidebar .nav-group a{color:var(--sidebar-text)}
.sidebar .nav-label{color:var(--part-soft)}
.sidebar .nav-group a:hover,.sidebar .nav-group a[aria-current]{background:var(--navy-800);color:#FFFFFF}
.sidebar .sister-links a,.swatch-sidebar a{color:var(--steel-400)}
.sidebar :focus-visible,.topbar :focus-visible{outline-color:var(--mark-soft)}
.topbar button,#menu-close{background:var(--navy-800);color:#FFFFFF}
.chip,th{background:var(--accent-soft);color:var(--heading)}
td:first-child,.callout-rule .callout-label{color:var(--heading)}
code,pre{background:var(--bg);color:var(--heading)}
.callout-note{border-left-width:2px}
.callout-do li::marker{color:var(--green)}.callout-dont li::marker{color:var(--rose)}
.steps{display:grid;grid-template-columns:repeat(var(--step-count),minmax(0,1fr));list-style:none;gap:8px;padding:0;margin:1.5rem 0 2rem;counter-reset:step}
.steps-3{--step-count:3}.steps-4{--step-count:4}.steps-5{--step-count:5}.steps-6{--step-count:6}
.steps li{counter-increment:step;margin:0;padding:10px;background:var(--accent-soft);border-radius:12px;font-size:14.5px;min-width:0}
.steps li::before{content:counter(step);display:grid;place-items:center;width:24px;height:24px;background:var(--navy-700);color:#FFFFFF;border-radius:50%;font-size:12px;margin-bottom:6px}
.steps-continue{counter-reset:step 5}
.step-caption{margin-top:-1rem;font-size:13px;color:var(--muted)}
@media(max-width:719px){.steps{grid-template-columns:repeat(3,minmax(0,1fr))}.steps-4{grid-template-columns:repeat(2,minmax(0,1fr))}.do-dont{grid-template-columns:1fr}}
.swatches main{max-width:1400px}.swatches article{max-width:none}
.swatch-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.swatch-column{background:var(--surface);color:var(--text);padding:16px;min-width:0}
.swatch-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.swatch-tile{margin:0;font-size:12px;overflow-wrap:anywhere}
.swatch-chip{height:32px;border:1px solid var(--border);border-radius:8px}
.swatch-sidebar{padding:16px;border-radius:12px}.swatch-sidebar strong{color:#FFFFFF}.swatch-sidebar a{display:block}
@media(max-width:719px){.swatch-columns{grid-template-columns:1fr}}
@media print{h1,h2,td:first-child,code,pre{color:#000}.topbar{display:none}}
.swatch-navy-900{background:var(--navy-900)}
.swatch-navy-800{background:var(--navy-800)}
.swatch-navy-700{background:var(--navy-700)}
.swatch-navy-600{background:var(--navy-600)}
.swatch-steel-700{background:var(--steel-700)}
.swatch-steel-600{background:var(--steel-600)}
.swatch-steel-400{background:var(--steel-400)}
.swatch-sky-100{background:var(--sky-100)}
.swatch-paper{background:var(--paper)}
.swatch-page{background:var(--page)}
.swatch-ink{background:var(--ink)}
.swatch-ink-2{background:var(--ink-2)}
.swatch-ink-3{background:var(--ink-3)}
.swatch-line{background:var(--line)}
.swatch-sea-700{background:var(--sea-700)}
.swatch-sea-soft{background:var(--sea-soft)}
.swatch-brick-700{background:var(--brick-700)}
.swatch-brick-soft{background:var(--brick-soft)}
.swatch-slate-600{background:var(--slate-600)}
.swatch-sand-soft{background:var(--sand-soft)}
.swatch-ground{background:var(--ground)}
.swatch-surface{background:var(--surface)}
.swatch-surface-2{background:var(--surface-2)}
.swatch-text{background:var(--text)}
.swatch-text-2{background:var(--text-2)}
.swatch-text-3{background:var(--text-3)}
.swatch-accent{background:var(--accent)}
.swatch-accent-soft{background:var(--accent-soft)}
.swatch-sea{background:var(--sea)}
.swatch-brick{background:var(--brick)}
.swatch-slate{background:var(--slate)}
.swatch-heading{background:var(--heading)}
.swatch-link-hover{background:var(--link-hover)}
.swatch-oncolor{background:var(--oncolor)}
.swatch-sidebar-text{background:var(--sidebar-text)}
.swatch-mark-soft{background:var(--mark-soft)}
.swatch-bg{background:var(--bg)}
.swatch-elev{background:var(--elev)}
.swatch-border{background:var(--border)}
.swatch-muted{background:var(--muted)}
.swatch-faint{background:var(--faint)}
.swatch-accent-ink{background:var(--accent-ink)}
.swatch-green{background:var(--green)}
.swatch-green-ink{background:var(--green-ink)}
.swatch-green-soft{background:var(--green-soft)}
.swatch-rose{background:var(--rose)}
.swatch-rose-ink{background:var(--rose-ink)}
.swatch-rose-soft{background:var(--rose-soft)}
.swatch-amber{background:var(--amber)}
.swatch-amber-ink{background:var(--amber-ink)}
.swatch-amber-soft{background:var(--amber-soft)}
.swatch-blue{background:var(--blue)}
.swatch-blue-ink{background:var(--blue-ink)}
.swatch-blue-soft{background:var(--blue-soft)}
.swatch-teal{background:var(--teal)}
.swatch-teal-ink{background:var(--teal-ink)}
.swatch-teal-soft{background:var(--teal-soft)}

.sidebar .part-0 .nav-label{color:var(--nav-part-1)}
.sidebar .part-1 .nav-label{color:var(--nav-part-1)}
.sidebar .part-2 .nav-label{color:var(--nav-part-2)}
.sidebar .part-3 .nav-label{color:var(--nav-part-3)}
.sidebar .part-4 .nav-label{color:var(--nav-part-4)}
.sidebar .part-5 .nav-label{color:var(--nav-part-5)}
.swatch-nav-part-1{background:var(--nav-part-1)}
.swatch-nav-part-2{background:var(--nav-part-2)}
.swatch-nav-part-3{background:var(--nav-part-3)}
.swatch-nav-part-4{background:var(--nav-part-4)}
.swatch-nav-part-5{background:var(--nav-part-5)}

/* V1f: drawn geometry fits these V1e caps before CSS.
   29-unit type renders at 14.4px on phones and 15.7px at normal width.
   The figure gate measures captions too; 44px reserves two caption lines. */
.diagram svg{max-width:390px;max-height:calc(38vh - 44px);object-fit:contain;object-position:left center}
.diagram svg[data-elements="1"],.diagram svg[data-elements="2"],
.diagram svg[data-elements="3"],.diagram svg[data-elements="4"]{max-height:132px}
@media(max-width:599px){.diagram svg{max-height:calc(45vh - 44px)}}
@media print{.diagram svg{max-height:none}}

/* One habit strip, paired prompts, and phone source footnotes. */
.habits ol{display:block;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.habits li{display:flex;align-items:baseline;gap:10px;padding:6px 0;border:0;border-radius:0;background:transparent}
.habits li::before{display:inline;min-width:24px;margin:0;font-size:15px}
.before-after td[rowspan]{vertical-align:top;width:34%}
.source-label{display:none}
@media(max-width:480px){
 .dated-sources,.dated-sources thead,.dated-sources tbody{display:block;min-width:0}
 .dated-sources tr{display:grid;grid-template-columns:1fr 1fr}
 .dated-sources .dated-source-heading{display:none}
 .dated-sources .dated-source-cell{grid-column:1 / -1;font-size:12px;font-weight:400;color:var(--ink-2);padding-top:0}
 .dated-sources .tool-row td:not(.dated-source-cell){border-bottom:0}
 .dated-sources .source-label{display:inline;font-weight:600}
}
