:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f0f2f5;--text:#1a1d21;--muted:#5b6573;--border:#d9dee4;--primary:#4f46e5;--primary-text:#fff;--primary-soft:color-mix(in srgb, var(--primary) 12%, var(--surface));--primary-soft-2:color-mix(in srgb, var(--primary) 22%, var(--surface));--primary-ink:color-mix(in srgb, var(--primary) 45%, var(--text));--correct-bg:#e6f6ec;--correct-border:#34a853;--correct-text:#11643a;--wrong-bg:#fdecec;--wrong-border:#e0463e;--wrong-text:#8a1c16;--warn-bg:#fdf3e3;--warn-border:#d97706;--warn-text:#7c4a03;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs:.72rem;--text-sm:.84rem;--text-md:.92rem;--text-lg:1.15rem;--text-xl:1.5rem;--text-display:2rem;--r-xs:5px;--r-sm:8px;--radius:10px;--r-lg:12px;--r-full:999px;--shadow-1:0 1px 3px #00000014;--shadow-2:0 4px 14px #0000001f;--shadow-3:0 10px 32px #0003;--shadow:var(--shadow-1);--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-6:1.5rem;color-scheme:light}html[data-theme=dark]{--bg:#0f1216;--surface:#181c22;--surface-2:#20262e;--text:#e7ebf0;--muted:#9aa6b2;--border:#2c343d;--correct-bg:#10301f;--correct-border:#2f8f57;--correct-text:#7fe0a6;--wrong-bg:#3a1714;--wrong-border:#c0473f;--wrong-text:#f0a9a3;--warn-bg:#33230d;--warn-border:#b45309;--warn-text:#f0c27f;--shadow-1:0 1px 3px #0006;--shadow-2:0 4px 14px #00000073;--shadow-3:0 10px 32px #00000080;--shadow:var(--shadow-1);color-scheme:dark}html[data-accent=indigo]{--primary:#4f46e5;--primary-text:#fff}html[data-accent=violet]{--primary:#7c3aed;--primary-text:#fff}html[data-accent=navy]{--primary:#232f3e;--primary-text:#fff}html[data-accent=amber]{--primary:#f59e0b;--primary-text:#3a2503}html[data-theme=dark][data-accent=navy]{--primary:#3e5170}*{box-sizing:border-box}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);margin:0;line-height:1.5}a{color:inherit}h1{font-size:var(--text-xl);margin:.2rem 0 1rem}h2{font-size:var(--text-lg);margin:0 0 .75rem}.muted{color:var(--muted)}.mono{font-family:var(--font-mono)}.section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:1.25rem 0 .6rem;font-size:.78rem;font-weight:700}.container{max-width:1100px;margin:0 auto;padding:1.25rem}.row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.grid-2{gap:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}@media (width<=640px){.grid-2{grid-template-columns:1fr}}.grid-2>.card{flex-direction:column;display:flex}.grid-2>.card>a:last-child,.grid-2>.card>button:last-child{margin-top:auto}.center{justify-content:center;align-items:center;min-height:60vh;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);margin-bottom:var(--sp-4);padding:1.25rem}.hero{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);margin-bottom:1.25rem;padding:1.25rem 1.4rem}.hero-title{margin-bottom:.9rem;font-weight:700}.hero-row{gap:var(--sp-6);flex-wrap:wrap;display:flex}.hero-item{min-width:110px}.hero-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.hero-value{font-size:var(--text-xl);font-variant-numeric:tabular-nums;font-weight:700}.hero-value.accent{color:var(--primary-ink)}.metrics{grid-template-columns:repeat(4,1fr);gap:.8rem;display:grid}@media (width<=720px){.metrics{grid-template-columns:1fr 1fr}}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem}.metric .v{font-size:var(--text-xl);font-variant-numeric:tabular-nums;font-weight:700}.metric .l{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.empty-state{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted);padding:2rem 1rem}.empty-state .t{color:var(--text);margin-bottom:.15rem;font-weight:600}.empty-state button{margin-top:.8rem}.banner{border-radius:var(--radius);margin:.75rem 0;padding:.7rem .9rem}.banner.ok{background:var(--correct-bg);border:1px solid var(--correct-border);color:var(--correct-text)}.banner.bad{background:var(--wrong-bg);border:1px solid var(--wrong-border);color:var(--wrong-text)}.banner.warn{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-text)}.banner.info{background:var(--surface-2);border:1px solid var(--border);color:var(--muted)}button{font:inherit;cursor:pointer;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);padding:.55rem .95rem}button:hover{background:var(--surface-2)}button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text);font-weight:600}button.primary:hover{filter:brightness(.96)}button.outline{border-color:var(--primary);color:var(--primary-ink);background:0 0;font-weight:500}button.outline:hover{background:var(--primary-soft)}button.ghost{color:var(--muted);background:0 0;border-color:#0000}button.ghost:hover{background:var(--surface-2);color:var(--text)}button.danger{border-color:var(--wrong-border);color:var(--wrong-text);background:0 0}button.danger:hover{background:var(--wrong-bg)}button.sm{font-size:var(--text-sm);padding:.3rem .7rem}button:disabled{opacity:.5;cursor:not-allowed}.link-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:.3rem 0;font-size:.9rem;text-decoration:underline}.link-btn:hover{filter:brightness(.9);background:0 0}.accent-link{color:var(--primary);font-weight:500;text-decoration:none}.accent-link:hover{text-decoration:underline}.chip{border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);color:var(--text);font-size:var(--text-md);cursor:pointer;padding:.45rem .8rem}.chip.active{background:var(--primary);border-color:var(--primary);color:var(--primary-text);font-weight:600}.badge{font-size:var(--text-xs);border-radius:var(--r-full);border:1px solid var(--border);color:var(--muted);background:var(--surface-2);white-space:nowrap;align-items:center;padding:.08rem .55rem;font-weight:600;display:inline-flex}.badge.accent{color:var(--primary-ink);border-color:var(--primary);background:var(--primary-soft)}.badge.ok{color:var(--correct-text);border-color:var(--correct-border);background:var(--correct-bg)}.badge.bad{color:var(--wrong-text);border-color:var(--wrong-border);background:var(--wrong-bg)}.badge.warn{color:var(--warn-text);border-color:var(--warn-border);background:var(--warn-bg)}.badge.mono{font-family:var(--font-mono);border-radius:var(--r-xs);letter-spacing:.02em}.code-badge{font-family:var(--font-mono);color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-xs);letter-spacing:.02em;white-space:nowrap;vertical-align:middle;user-select:all;padding:.02rem .4rem;font-size:.68rem;font-weight:600;display:inline-block}label{margin:.75rem 0 .3rem;font-size:.9rem;font-weight:600;display:block}input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--text);padding:.6rem .7rem;font-size:1rem}select{appearance:none;border-radius:var(--r-sm);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239aa6b2' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .7rem center;background-repeat:no-repeat;background-size:.7rem;padding-right:2rem}input:not([type=checkbox]):not([type=radio]):focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary)}.check{font-weight:500;font-size:var(--text-md);white-space:nowrap;cursor:pointer;align-items:center;gap:.4rem;margin:0;display:inline-flex}.check input[type=checkbox]{width:auto;accent-color:var(--primary);cursor:pointer}.tabs{border-bottom:1px solid var(--border);margin-bottom:var(--sp-4);flex-wrap:wrap;gap:.4rem;display:flex}.tab{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:.5rem .8rem}.tab.active{color:var(--text);border-bottom-color:var(--primary);font-weight:600}@media (width<=420px){.tab{font-size:var(--text-md);padding:.5rem .55rem}}.dd{display:inline-block;position:relative}.dd.block{display:block}.dd-trigger{justify-content:space-between;align-items:center;gap:var(--sp-2);text-align:left;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--text);cursor:pointer;padding:.55rem .7rem;font-size:1rem;display:flex}.dd-trigger:hover{background:var(--surface-2)}.dd-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dd-pop{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:max-content;min-width:100%;max-width:min(360px,92vw);max-height:60vh;box-shadow:var(--shadow-3);position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.dd-search{z-index:1;background:var(--surface);border-bottom:1px solid var(--border);padding:.55rem .7rem;position:sticky;top:0}.dd-search input{width:100%;color:var(--text);font-size:var(--text-md);background:0 0;border:none;outline:none;padding:0}.dd-list{outline:none;padding:.35rem .45rem .5rem}.dd-group{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:.55rem .4rem .2rem;font-size:.7rem;font-weight:600}.dd-row{border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:.55rem;padding:.42rem .55rem;font-size:.95rem;display:flex}.dd-row.active{background:var(--surface-2)}.dd-row.selected{background:var(--primary-soft-2)}.dd-row.selected .dd-label{color:var(--primary-ink)}.dd-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dd-meta{font-size:var(--text-sm);color:var(--muted);white-space:nowrap;margin-left:auto}.dd-empty{color:var(--muted);text-align:center;padding:.8rem .6rem;font-size:.9rem}.md-table{margin:.8rem 0;overflow-x:auto}.md-table table{border-collapse:collapse;width:100%;font-size:.9rem}.md-table th,.md-table td{text-align:left;border:1px solid var(--border);vertical-align:top;padding:.45rem .6rem}.md-table thead th{background:var(--surface-2)}@media (width<=767px){.md-table.stacked{overflow-x:visible}.md-table.stacked table,.md-table.stacked tbody,.md-table.stacked tr,.md-table.stacked td{width:100%;display:block}.md-table.stacked thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.md-table.stacked tr{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-wrap:anywhere;margin:0 0 .5rem}.md-table.stacked td{border:0;padding:.5rem .7rem}.md-table.stacked td:last-child{border-top:1px solid var(--border);padding-top:.45rem}.md-table.stacked td:last-child:before{content:"→ ";color:var(--primary-ink);font-weight:700}}table.rows{border-collapse:collapse;width:100%;font-size:.9rem}table.rows th,table.rows td{text-align:left;border-bottom:1px solid var(--border);padding:.45rem .5rem}table.rows tbody tr{cursor:pointer}table.rows tbody tr:hover td{background:var(--surface-2)}@media (width<=640px){table.rows thead{display:none}table.rows,table.rows tbody,table.rows tr,table.rows td{display:block}table.rows tr{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);margin-bottom:.5rem;padding:.35rem .65rem}table.rows td{border-bottom:none;justify-content:space-between;gap:.8rem;padding:.22rem 0;display:flex}table.rows td:before{content:attr(data-label);color:var(--muted);font-size:.78rem}}.bar-row{grid-template-columns:170px 1fr 52px;align-items:center;gap:.6rem;margin:.4rem 0;font-size:.9rem;display:grid}.bar-track{background:var(--surface-2);border-radius:var(--r-full);height:10px;overflow:hidden}.bar-fill{background:var(--primary);height:100%}.bar-fill.warn{background:var(--warn-border)}.bar-track.thin{border:1px solid var(--border);height:4px}.callout{border-left:4px solid var(--border);background:var(--surface-2);border-radius:6px;margin:.9rem 0;padding:.6rem .85rem}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.tip{border-left-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, var(--surface))}.callout.warn{border-left-color:var(--warn-border);background:color-mix(in srgb, var(--warn-border) 10%, var(--surface))}.prose h2,.prose h3{margin:1.3rem 0 .5rem;font-size:1.05rem}.prose p{margin:.6rem 0}.prose ul{margin:.5rem 0;padding-left:1.2rem}.prose code{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-xs);font-size:.88em;font-family:var(--font-mono);padding:.05rem .35rem}.prose pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem;overflow-x:auto}.prose pre code{background:0 0;border:none;padding:0}.lead{border-left:3px solid var(--primary);margin:1rem 0;padding-left:.8rem;font-size:1.05rem;line-height:1.5}.nav{align-items:center;gap:var(--sp-4);background:var(--surface);border-bottom:1px solid var(--border);z-index:10;flex-wrap:wrap;row-gap:.4rem;padding:.6rem 1.25rem;display:flex;position:sticky;top:0}.nav .brand{letter-spacing:-.01em;font-weight:700}.nav .spacer{flex:1}.nav a{color:var(--muted);border-radius:var(--r-sm);padding:.3rem .55rem;font-weight:500;text-decoration:none}.nav a.active,.nav a:hover{color:var(--text);background:var(--surface-2)}.nav-toggle{display:none}.nav-links{display:contents}@media (width<=1080px){.nav-toggle{margin-left:auto;font-size:1.15rem;display:inline-flex}.nav-links{flex-direction:column;flex-basis:100%;align-items:flex-start;gap:.15rem;padding-top:.3rem;display:none}.nav-links.open{display:flex}.nav-links .spacer{display:none}}.swatches{gap:var(--sp-6);flex-wrap:wrap;margin-top:.4rem;display:flex}.swatch{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:none;flex-direction:column;align-items:center;gap:.35rem;min-width:3.6rem;padding:0;font-size:.78rem;display:inline-flex}.swatch .dot{border-radius:var(--r-full);border:2px solid var(--border);width:2.1rem;height:2.1rem}.swatch.active{color:var(--text);font-weight:600}.swatch.active .dot{border-color:var(--text);box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--text)}@media print{.nav,.no-print,button{display:none!important}body{color:#000;background:#fff}.container{max-width:none;padding:0}.card{box-shadow:none;border:0;margin:0;padding:0}h1{margin:0 0 6pt;font-size:14pt}.md-table table{font-size:8.5pt}.md-table th,.md-table td{border:.5pt solid #999;padding:3pt 4pt}.md-table thead th{background:#eee!important}.md-table tr{break-inside:avoid;page-break-inside:avoid}.md-table thead{display:table-header-group}a{color:#000;text-decoration:none}}@media (prefers-color-scheme:dark){html:not([data-theme=light]){--bg:#0f1216;--surface:#181c22;--surface-2:#20262e;--text:#e7ebf0;--muted:#9aa6b2;--border:#2c343d;--correct-bg:#10301f;--correct-border:#2f8f57;--correct-text:#7fe0a6;--wrong-bg:#3a1714;--wrong-border:#c0473f;--wrong-text:#f0a9a3;--warn-bg:#33230d;--warn-border:#b45309;--warn-text:#f0c27f;--shadow-1:0 1px 3px #0006;--shadow-2:0 4px 14px #00000073;--shadow-3:0 10px 32px #00000080;color-scheme:dark}html:not([data-theme=light])[data-accent=navy]{--primary:#3e5170}}.shell{gap:var(--sp-6);max-width:1400px;padding:var(--sp-4) 1.25rem 4rem;grid-template-columns:250px minmax(0,1fr) 200px;align-items:start;margin:0 auto;display:grid}.shell.no-toc{grid-template-columns:250px minmax(0,1fr)}.wide{max-width:1400px;padding:var(--sp-4) 1.25rem 4rem;margin:0 auto}.narrow{max-width:820px;padding:var(--sp-4) 1.25rem 4rem;margin:0 auto}.rail,.toc{overscroll-behavior:contain;max-height:calc(100vh - 76px);position:sticky;top:60px;overflow-y:auto}.rail{font-size:var(--text-md)}.rail-toggle{width:100%;font-weight:600;font-size:var(--text-md);color:var(--text);background:0 0;border:none;justify-content:space-between;align-items:center;padding:.4rem;display:none}.tree-group{margin-bottom:.25rem}.tree-top{border-radius:var(--r-sm);width:100%;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:.45rem;padding:.35rem .5rem;font-weight:600;display:flex}.tree-top:hover{background:var(--surface-2)}.tree-top .caret{color:var(--muted);width:.7rem;font-size:.7rem}.tree-top .n{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.tree-kids{border-left:1px solid var(--border);flex-direction:column;gap:1px;margin:.1rem 0 .3rem .55rem;padding-left:.5rem;display:flex}.tree-group:not(.open)>.tree-kids{display:none}.tree-kids a{border-radius:var(--r-sm);color:var(--muted);font-size:var(--text-sm);align-items:center;gap:.4rem;padding:.28rem .5rem;text-decoration:none;display:flex}.tree-kids a:hover{background:var(--surface-2);color:var(--text)}.tree-kids a.active{background:var(--primary-soft-2);color:var(--primary-ink);font-weight:600}.tree-kids a .n{font-size:var(--text-xs);font-variant-numeric:tabular-nums;margin-left:auto}.tree-kids .done{color:var(--correct-border);font-size:.7rem}.toc-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.5rem;font-weight:700}.toc a{border-left:2px solid var(--border);color:var(--muted);font-size:var(--text-sm);padding:.22rem 0 .22rem .6rem;text-decoration:none;display:block}.toc a:hover{color:var(--text)}.toc a.active{border-left-color:var(--primary);color:var(--primary-ink);background:var(--primary-soft)}.toc a.lvl3{padding-left:1.2rem}.doc{min-width:0;max-width:76ch}.crumbs{font-size:var(--text-sm);color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.5rem;display:flex}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--text);text-decoration:underline}.crumbs .sep{opacity:.5}.doc-meta{flex-wrap:wrap;align-items:center;gap:.4rem;margin:-.5rem 0 1.25rem;display:flex}.doc-meta .badge.stamp{border-color:var(--border);color:var(--muted);font-variant-numeric:tabular-nums;background:0 0;gap:.3rem}.doc-meta .badge.stamp time{color:var(--text);font-weight:600}.prose>h1:first-child{display:none}.prose .angle,.angle{border:1px solid var(--primary);background:var(--primary-soft);border-radius:var(--radius);margin:1.75rem 0 1rem;padding:1rem 1.15rem}.angle-head{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.angle-head .t{color:var(--primary-ink);font-weight:700}.angle ul{margin:0;padding:0;list-style:none}.angle li{margin:.75rem 0}.angle .q{font-weight:600;display:block}.angle .a{color:var(--muted)}.pager{gap:var(--sp-3);flex-wrap:wrap;margin-top:2rem;display:flex}.pager a{color:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex:12rem;padding:.7rem .9rem;text-decoration:none;display:block}.pager a:hover{border-color:var(--primary)}.pager .d{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.pager .t{font-weight:600;font-size:var(--text-md)}.pager .next{text-align:right}.searchbox{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);min-width:200px;color:var(--muted);cursor:pointer;font:inherit;font-size:var(--text-md);align-items:center;gap:.5rem;padding:.35rem .6rem;display:flex}.searchbox:hover{border-color:var(--primary)}.searchbox kbd{font-family:var(--font-mono);font-size:var(--text-xs);border:1px solid var(--border);border-radius:var(--r-xs);background:var(--surface);margin-left:auto;padding:.05rem .3rem}.overlay{z-index:60;background:#00000073;padding:8vh 1rem 1rem;display:none;position:fixed;inset:0}.overlay.open{display:block}.palette{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);max-width:640px;box-shadow:var(--shadow-3);margin:0 auto;overflow:hidden}.palette-input{border-bottom:1px solid var(--border);align-items:center;gap:.6rem;padding:.8rem 1rem;display:flex}.palette-input input{color:var(--text);font:inherit;background:0 0;border:none;outline:none;flex:1;padding:0;font-size:1rem}.palette-list{max-height:58vh;padding:.4rem;overflow-y:auto}.palette-group{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:.6rem .55rem .25rem;font-size:.7rem;font-weight:700}.hit{border-radius:var(--r-sm);color:inherit;padding:.5rem .6rem;text-decoration:none;display:block}.hit:hover,.hit.active{background:var(--surface-2)}.hit .t{font-weight:600;font-size:var(--text-md)}.hit .p{font-size:var(--text-xs);color:var(--muted);font-family:var(--font-mono)}.hit .s{font-size:var(--text-sm);color:var(--muted);margin-top:.1rem}.hit mark{background:var(--primary-soft-2);color:var(--primary-ink);border-radius:3px;padding:0 .12rem}.home-head{max-width:62ch}.lead-plain{color:var(--muted);margin:-.4rem 0 1rem;font-size:1.05rem;line-height:1.55}.footnote{border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--muted);max-width:70ch;margin:2rem 0 0;padding-top:1rem}.jump{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.4rem;margin:1.25rem 0 2rem;padding-bottom:1rem;display:flex}.jump a{border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);color:var(--text);font-size:var(--text-md);padding:.35rem .7rem;text-decoration:none}.jump a:hover{border-color:var(--primary);color:var(--primary-ink)}.browse-domain{margin-bottom:2.5rem;scroll-margin-top:70px}.browse-head{align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.browse-head h2{margin:0}.browse-head h2 a{text-decoration:none}.browse-head h2 a:hover{color:var(--primary-ink);text-decoration:underline}.browse-list{columns:2;column-gap:var(--sp-6);margin:.3rem 0 .8rem;padding:0;list-style:none}@media (width<=720px){.browse-list{columns:1}}.browse-list li{break-inside:avoid;font-size:var(--text-md);padding:.2rem 0}.browse-list a{color:var(--text);text-decoration:none}.browse-list a:hover{color:var(--primary-ink);text-decoration:underline}.browse-sub{margin:.3rem 0}.browse-sub>summary{cursor:pointer;border-radius:var(--r-sm);align-items:center;gap:.5rem;padding:.4rem .6rem;list-style:none;display:flex}.browse-sub>summary::-webkit-details-marker{display:none}.browse-sub>summary:before{content:"▸";color:var(--muted);font-size:.75rem;transition:transform .12s}.browse-sub[open]>summary:before{transform:rotate(90deg)}.browse-sub>summary:hover{background:var(--surface-2)}.browse-sub .s-label{font-weight:600}.browse-sub .browse-list{margin-left:1.2rem}.kbd{font-family:var(--font-mono);font-size:var(--text-xs);border:1px solid var(--border);border-radius:var(--r-xs);background:var(--surface-2);padding:.05rem .3rem}@media (width<=860px){.nav{gap:var(--sp-2);padding:.5rem .9rem}.nav-toggle{order:1;margin-left:0!important}.nav .spacer{display:none}.searchbox{order:2;margin-left:auto}#themeBtn{order:3}.nav-links{order:9}.nav .brand{font-size:1rem}.searchbox{min-width:0;padding:.45rem .6rem}.searchbox span:nth-child(2),.searchbox kbd,.swatches{display:none}}@media (width<=640px){.shell,.shell.no-toc,.wide,.narrow{padding:var(--sp-3) .9rem 3rem}.doc{max-width:none}h1{font-size:1.35rem}.metrics{grid-template-columns:1fr 1fr;gap:.5rem}.metric{padding:.7rem}.metric .v{font-size:1.25rem}.nav a,.tab{align-items:center;min-height:44px;display:inline-flex}button:not(.swatch){min-height:44px}button.sm{min-height:40px;padding:.5rem .8rem}.tree-kids a{min-height:40px}.doc-meta .badge,.doc-meta a.badge{min-height:28px;padding:.25rem .6rem}.jump a{align-items:center;min-height:40px;display:inline-flex}.browse-list li{padding:.35rem 0}.browse-list a{min-height:24px;display:inline-block}.prose table{max-width:100%;display:block;overflow-x:auto}.prose pre{padding:.6rem;font-size:.82rem}.prose h2{margin-top:1.6rem}.crumbs{font-size:var(--text-xs)}.doc-meta{gap:.3rem}.pager a{flex-basis:100%}.pager .next{text-align:left}.footnote{margin-top:1.5rem}}.prose{overflow-wrap:break-word}.prose code{overflow-wrap:anywhere}.domain-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.domain{color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:1rem 1.1rem;text-decoration:none;display:block}.domain:hover{border-color:var(--primary);box-shadow:var(--shadow-2)}.domain .h{align-items:baseline;gap:.5rem;margin-bottom:.3rem;display:flex}.domain .h b{font-size:var(--text-lg)}.domain .h .n{font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.domain .d{font-size:var(--text-md);color:var(--muted)}.nav .swatches{gap:.4rem}.nav .swatch{min-width:0}.nav .swatch .dot{border-width:2px;width:1.15rem;height:1.15rem}.toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.25rem;display:flex}:where(a,button,input,[tabindex]):focus-visible{outline:2px solid var(--primary);outline-offset:1px}.skip{z-index:100;background:var(--surface);color:var(--text);border:1px solid var(--primary);border-radius:var(--r-sm);padding:.5rem .8rem;position:absolute;top:0;left:-9999px}.skip:focus{top:.5rem;left:.5rem}html[data-theme=dark] .astro-code,html[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .astro-code,html:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (width<=1080px){.shell,.shell.no-toc{grid-template-columns:1fr}.toc{display:none}.rail{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-height:none;margin-bottom:var(--sp-4);padding:.5rem .6rem;position:static;overflow:visible}.rail:not(.open) .rail-body{display:none}.rail-toggle{min-height:40px;display:flex}.rail .section-label{margin-top:.8rem}}.prose .callout{border-left-style:solid;border-left-width:3px}.prose .callout .callout-label{letter-spacing:.01em;font-weight:650;display:inline}.prose .callout-gotcha{border-left-color:var(--warn-border);background:var(--warn-bg)}.prose .callout-gotcha .callout-label{color:var(--warn-text)}.prose .callout-rule{border-left-color:var(--primary);background:var(--surface-2)}.prose .callout-rule .callout-label{color:var(--primary)}.prose .callout-practice{border-left-color:var(--muted);background:var(--surface-2)}.prose .callout-practice .callout-label{color:var(--muted)}.prose .callout-say{border-left-color:var(--correct-border);background:var(--correct-bg)}.prose .callout-say .callout-label{color:var(--correct-text)}.prose .callout-note{border-left-color:var(--border);background:var(--surface-2)}.prose .callout-note .callout-label{color:var(--text)}.prose .onward{align-items:baseline;gap:var(--sp-2);margin:var(--sp-4) 0 0;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:.7rem .9rem;font-size:.95rem;display:flex}.prose .onward:before{content:"→";color:var(--primary);flex:none;font-weight:700}.prose .onward .onward-link{font-weight:600}.prose .related-grid{gap:var(--sp-2);margin:var(--sp-3) 0;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));padding:0;list-style:none;display:grid}.prose .related-grid li{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);margin:0;padding:.65rem .8rem;font-size:.92rem;line-height:1.45}.prose .related-grid li::marker{content:none}.prose .related-grid a{font-weight:600}@media (width<=640px){.prose .related-grid{grid-template-columns:1fr}}.prose .verified{border-left:3px solid var(--border);background:var(--surface-2);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);margin:var(--sp-4) 0;color:var(--muted);font-size:.9rem}.prose .verified>:first-child{margin-top:0}.prose .verified>:last-child{margin-bottom:0}.verified-badge{margin-right:var(--sp-2);border-radius:var(--r-sm);font-variant-numeric:tabular-nums;white-space:nowrap;padding:.1em .5em;font-size:.78rem;font-weight:600;display:inline-block}.prose .verified-fresh{border-left-color:var(--correct-border)}.prose .verified-fresh .verified-badge{background:var(--correct-bg);color:var(--correct-text)}.prose .verified-aging{border-left-color:var(--warn-border)}.prose .verified-aging .verified-badge{background:var(--warn-bg);color:var(--warn-text)}.prose .verified-stale{border-left-color:var(--wrong-border)}.prose .verified-stale .verified-badge{background:var(--wrong-bg);color:var(--wrong-text)}.drill-head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-3);font-size:.85rem;display:flex}.drill-q{margin:var(--sp-3) 0;text-wrap:balance;font-size:1.25rem;font-weight:600;line-height:1.45}.drill-a{padding:var(--sp-3);border-left:3px solid var(--primary);background:var(--surface-2);border-radius:var(--r-sm);margin:0;line-height:1.6}@media (width<=640px){.drill-q{font-size:1.1rem}}.table-wrap{overscroll-behavior-x:contain;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:1rem 0;overflow-x:auto}.table-wrap:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.prose .table-wrap table{border-collapse:collapse;border:0;width:100%;margin:0;font-size:.9rem}.prose .table-wrap th,.prose .table-wrap td{text-align:left;border:0;border-bottom:1px solid var(--border);vertical-align:top;padding:.5rem .7rem}.prose .table-wrap thead th{background:var(--surface-2);white-space:nowrap;z-index:1;font-weight:700;position:sticky;top:0}.prose .table-wrap tbody tr:last-child td{border-bottom:0}.prose .table-wrap tbody tr:hover td{background:var(--surface-2)}@media (width<=700px){.table-wrap{background:0 0;border:0;border-radius:0;overflow-x:visible}.prose .table-wrap table,.prose .table-wrap tbody,.prose .table-wrap tr,.prose .table-wrap td{width:100%;display:block}.prose .table-wrap thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.prose .table-wrap tr{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-wrap:anywhere;margin:0 0 .6rem;padding:.15rem 0}.prose .table-wrap td{border:0;grid-template-columns:minmax(5.5rem,32%) 1fr;align-items:baseline;gap:.75rem;padding:.45rem .85rem;display:grid}.prose .table-wrap td>.cell{min-width:0}.prose .table-wrap td:before{content:attr(data-label);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}.prose .table-wrap td:not([data-label]){display:block}.prose .table-wrap td[data-first]{background:var(--surface-2);border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;padding:.5rem .85rem;font-weight:700;display:block}.prose .table-wrap td[data-first]:before{content:none}}.code-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);margin:1rem 0;overflow:hidden}.code-bar{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem .5rem .3rem .75rem;display:flex}.code-lang{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted);text-transform:lowercase;letter-spacing:.03em}.code-actions{gap:.25rem;display:flex}.code-btn{font-family:var(--font-sans);font-size:var(--text-xs);border-radius:var(--r-xs);min-height:28px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;padding:.25rem .55rem}.code-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--border)}.code-btn[aria-pressed=true]{background:var(--primary-soft);color:var(--primary-ink);border-color:var(--primary)}.code-btn[data-copied]{color:var(--correct-text);border-color:var(--correct-border)}.prose .code-block pre{overscroll-behavior-x:contain;background:0 0;border:0;border-radius:0;margin:0;padding:.75rem .85rem;overflow-x:auto}.code-block[data-wrapped] pre{overflow-x:visible}.code-block[data-wrapped] pre code{white-space:pre-wrap;overflow-wrap:anywhere}.code-block[data-wrapped] pre code .line{text-indent:-2ch;padding-left:2ch;display:inline-block}@media (width<=640px){.prose .code-block pre{padding:.6rem .7rem;font-size:.8rem}.code-bar{padding:.25rem .4rem .25rem .6rem}.code-btn{min-height:32px;padding:.3rem .6rem}}.prose section.angle{border:1px solid var(--primary);background:var(--primary-soft);border-radius:var(--radius);margin:2rem 0 1rem;padding:.4rem 1.15rem 1rem}.prose section.angle>h2{color:var(--primary-ink);align-items:center;gap:.5rem;margin-top:1rem;scroll-margin-top:70px;display:flex}.angle-count{font-size:var(--text-xs);background:var(--primary);color:var(--primary-text);border-radius:var(--r-full);font-variant-numeric:tabular-nums;padding:.05rem .5rem;font-weight:700}.prose section.angle>ul{margin:0;padding:0;list-style:none}.prose section.angle>ul>li{border-left:2px solid var(--primary);margin:.9rem 0;padding-left:.9rem}.prose section.angle strong{color:var(--text)}@media (width<=640px){.prose section.angle{margin-left:-.15rem;margin-right:-.15rem;padding:.3rem .85rem .85rem}}.toc-mobile{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:0 0 1.25rem;display:none}@media (width<=1080px){.toc-mobile{display:block}}.toc-mobile>summary{cursor:pointer;min-height:44px;font-weight:600;font-size:var(--text-md);align-items:center;gap:.5rem;padding:.6rem .85rem;list-style:none;display:flex}.toc-mobile>summary::-webkit-details-marker{display:none}.toc-mobile>summary:before{content:"▸";color:var(--muted);font-size:.75rem;transition:transform .12s}.toc-mobile[open]>summary:before{transform:rotate(90deg)}.toc-mobile .toc-n{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.toc-mobile ol{border-top:1px solid var(--border);margin:0;padding:.6rem .85rem .7rem 2rem}.toc-mobile li{margin:.1rem 0}.toc-mobile a{min-height:32px;color:var(--text);font-size:var(--text-md);padding:.3rem 0;text-decoration:none;display:block}.toc-mobile a:hover{color:var(--primary-ink);text-decoration:underline}.read-progress{background:var(--primary);z-index:50;width:0;height:2px;transition:width .1s linear;position:fixed;top:0;left:0}@media (prefers-reduced-motion:reduce){.read-progress{transition:none}}.prose{line-height:1.65}.prose h2,.prose h3{scroll-margin-top:70px}.prose li{margin:.35rem 0}.prose blockquote{border-left:3px solid var(--primary);background:var(--surface-2);border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--text);margin:1rem 0;padding:.6rem .9rem}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}@media (width<=640px){.prose{font-size:1.0625rem;line-height:1.6}.prose h2{margin-top:1.8rem;font-size:1.1rem}.prose h3{font-size:1rem}.prose ul,.prose ol{padding-left:1.1rem}}
