:root{color-scheme:light;--brand-blue:#004f8f;--brand-blue-deep:#002d5d;--brand-lavender:#a59fce;--brand-gray:#939597;--brand-gray-light:#d1d2d4;--brand-teal:#00796b;--bg:#fcfcfc;--bg-sunken:#f3f5f8;--surface:#fff;--surface-raised:#fff;--surface-tint:#eef4fa;--band:var(--brand-blue);--band-ink:#fff;--band-ink-muted:#c9dcf0;--band-line:#ffffff38;--ink:#0f1c2e;--ink-2:#445570;--ink-3:#5f6f88;--ink-on-tint:#1d3557;--line:#e3e8ef;--line-strong:#c9d2de;--rule:#0f1c2e;--accent:var(--brand-blue);--accent-hover:#00437a;--accent-active:#003762;--accent-ink:#fff;--accent-soft:#e4eef8;--link:var(--brand-blue);--link-hover:var(--brand-blue-deep);--focus:#1d7ad8;--selection:#cfe2f5;--lavender-ink:#5f579b;--ok:#00796b;--ok-soft:#e1f2ef;--ok-ink:#075e53;--err:#b42318;--err-soft:#fbe9e7;--err-ink:#8f1d14;--warn:#8a5a00;--warn-soft:#fbf1dc;--info:var(--brand-blue);--info-soft:var(--surface-tint);--xp:#b8860b;--xp-soft:#f7efd6;--xp-ink:#7a5600;--level:var(--lavender-ink);--badge-fill:var(--brand-lavender);--badge-ink:var(--brand-blue-deep);--badge-off:#e6e9ee;--font:"Open Sans", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--wdth-display:88%;--wdth-text:100%;--text-xs:.8125rem;--text-sm:.9375rem;--text-md:1.0625rem;--text-read:1.125rem;--text-lg:1.3125rem;--text-xl:1.75rem;--text-2xl:2.5rem;--text-3xl:3.5rem;--text-4xl:4.5rem;--leading-tight:1.1;--leading-snug:1.3;--leading-normal:1.5;--leading-read:1.65;--tracking-display:-.022em;--tracking-title:-.012em;--tracking-caps:.06em;--measure:68ch;--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4rem;--s-9:6rem;--s-10:8rem;--gutter:clamp(1rem, 4vw, 2.5rem);--container:76rem;--container-read:46rem;--r-1:.375rem;--r-2:.625rem;--r-3:1rem;--r-pill:999px;--shadow-1:0 1px 2px #002d5d0f, 0 1px 1px #002d5d0a;--shadow-2:0 1px 2px #002d5d0f, 0 8px 24px -12px #002d5d38;--shadow-3:0 2px 4px #002d5d14, 0 24px 48px -24px #002d5d59;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--dur-1:.14s;--dur-2:.26s;--dur-3:.48s;--z-sticky:20;--z-popover:40;--z-toast:60}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0b1424;--bg-sunken:#08101d;--surface:#121d31;--surface-raised:#182540;--surface-tint:#16274a;--band:#0f2a52;--band-ink:#f2f6fb;--band-ink-muted:#a9bfdc;--band-line:#ffffff29;--ink:#e9eef6;--ink-2:#b3c0d4;--ink-3:#8b9bb3;--ink-on-tint:#dbe7f7;--line:#22314c;--line-strong:#33466a;--rule:#dbe4f0;--accent:#3f8fd9;--accent-hover:#5aa2e4;--accent-active:#2f7cc4;--accent-ink:#061225;--accent-soft:#16304f;--link:#79b4ec;--link-hover:#a5cdf5;--focus:#79b4ec;--selection:#244a78;--lavender-ink:#c4bfe6;--ok:#3fb9a6;--ok-soft:#10302c;--ok-ink:#8fe0d1;--err:#ef6b5d;--err-soft:#3a1b18;--err-ink:#ffb1a7;--warn:#e0b45b;--warn-soft:#34290f;--xp:#e2b85c;--xp-soft:#2d2510;--xp-ink:#f0cd7a;--level:#c4bfe6;--badge-fill:#a59fce;--badge-ink:#0b1424;--badge-off:#22314c;--shadow-1:0 1px 2px #0006;--shadow-2:0 1px 2px #0006, 0 10px 28px -12px #000000b3;--shadow-3:0 2px 4px #00000080, 0 28px 56px -24px #000c}}:root[data-theme=dark]{color-scheme:dark;--bg:#0b1424;--bg-sunken:#08101d;--surface:#121d31;--surface-raised:#182540;--surface-tint:#16274a;--band:#0f2a52;--band-ink:#f2f6fb;--band-ink-muted:#a9bfdc;--band-line:#ffffff29;--ink:#e9eef6;--ink-2:#b3c0d4;--ink-3:#8b9bb3;--ink-on-tint:#dbe7f7;--line:#22314c;--line-strong:#33466a;--rule:#dbe4f0;--accent:#3f8fd9;--accent-hover:#5aa2e4;--accent-active:#2f7cc4;--accent-ink:#061225;--accent-soft:#16304f;--link:#79b4ec;--link-hover:#a5cdf5;--focus:#79b4ec;--selection:#244a78;--lavender-ink:#c4bfe6;--ok:#3fb9a6;--ok-soft:#10302c;--ok-ink:#8fe0d1;--err:#ef6b5d;--err-soft:#3a1b18;--err-ink:#ffb1a7;--warn:#e0b45b;--warn-soft:#34290f;--xp:#e2b85c;--xp-soft:#2d2510;--xp-ink:#f0cd7a;--level:#c4bfe6;--badge-fill:#a59fce;--badge-ink:#0b1424;--badge-off:#22314c;--shadow-1:0 1px 2px #0006;--shadow-2:0 1px 2px #0006, 0 10px 28px -12px #000000b3;--shadow-3:0 2px 4px #00000080, 0 28px 56px -24px #000c}@media (prefers-reduced-motion:reduce){:root{--dur-1:0s;--dur-2:0s;--dur-3:0s}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--text-md);line-height:var(--leading-normal);font-variation-settings:"wdth" 100;font-feature-settings:"kern", "liga", "calt";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100dvh;accent-color:var(--accent);caret-color:var(--accent);flex-direction:column;margin:0;display:flex}::selection{background:var(--selection);color:var(--ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:var(--r-1)}a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb, var(--link) 45%, transparent);transition:color var(--dur-1) var(--ease-out), text-decoration-color var(--dur-1) var(--ease-out)}a:hover{color:var(--link-hover);text-decoration-color:currentColor}img,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{margin:0}ul,ol{padding-left:0;list-style:none}strong,b{font-weight:650}small{font-size:var(--text-sm)}code,kbd,samp{font-family:var(--font-mono);font-size:.92em}.num,.tabular{font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip{left:var(--s-4);padding:var(--s-2) var(--s-4);background:var(--surface);color:var(--ink);border-radius:var(--r-1);box-shadow:var(--shadow-2);z-index:100;position:absolute;top:-4rem}.skip:focus{top:var(--s-3)}@supports (scrollbar-color:auto){html{scrollbar-color:var(--line-strong) transparent}}.display{font-size:clamp(2.5rem, 1.5rem + 3.4vw, var(--text-3xl));font-variation-settings:"wdth" 88;font-weight:700;line-height:var(--leading-tight);letter-spacing:var(--tracking-display);text-wrap:balance}.h1{font-size:clamp(2rem, 1.4rem + 1.8vw, var(--text-2xl));font-variation-settings:"wdth" 90;letter-spacing:var(--tracking-title);text-wrap:balance;font-weight:700;line-height:1.12}.h2{font-size:var(--text-xl);font-variation-settings:"wdth" 92;letter-spacing:var(--tracking-title);text-wrap:balance;font-weight:650;line-height:1.2}.h3{font-size:var(--text-lg);text-wrap:balance;font-weight:650;line-height:1.3}.h4{font-size:var(--text-md);font-weight:650;line-height:1.35}.lede{font-size:var(--text-lg);color:var(--ink-2);text-wrap:pretty;max-width:44ch;line-height:1.45}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.caps{font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;font-weight:650}.small{font-size:var(--text-sm)}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--s-8)}.section+.section{padding-top:0}.section-head{justify-content:space-between;align-items:baseline;gap:var(--s-4);margin-bottom:var(--s-6);flex-wrap:wrap;display:flex}.section-head .muted{font-size:var(--text-sm);text-wrap:pretty;max-width:60ch}.stack>*+*{margin-top:var(--s-4)}main{flex:1}.icon{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.25rem;height:1.25rem}.icon-sm{width:1rem;height:1rem}.icon-lg{stroke-width:1.5px;width:1.75rem;height:1.75rem}.btn{justify-content:center;align-items:center;gap:var(--s-2);border-radius:var(--r-1);min-height:2.75rem;font-weight:600;font-size:var(--text-sm);white-space:nowrap;transition:background var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out);border:1px solid #0000;padding:.55rem 1.1rem;line-height:1.2;text-decoration:none;display:inline-flex}.btns .btn{white-space:normal;text-align:center;max-width:100%}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-hover);color:var(--accent-ink)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn-secondary:hover{border-color:var(--ink-3);background:var(--surface);color:var(--ink)}.btn-ghost{color:var(--link);background:0 0}.btn-ghost:hover{background:var(--accent-soft);color:var(--link-hover)}.btn-lg{min-height:3.25rem;font-size:var(--text-md);padding:.8rem 1.5rem}.btn-sm{min-height:2.25rem;font-size:var(--text-xs);padding:.3rem .75rem}.btn[disabled],.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}.band .btn-primary{color:var(--brand-blue);background:#fff}.band .btn-primary:hover{color:var(--brand-blue-deep);background:#eaf2fb}.band .btn-secondary{color:var(--band-ink);border-color:var(--band-line);background:0 0}.band .btn-secondary:hover{background:#ffffff14;border-color:#ffffff80}.band .btn-ghost{color:var(--band-ink)}.band .btn-ghost:hover{color:var(--band-ink);background:#ffffff1a}.band{background:var(--band);color:var(--band-ink);position:relative;overflow:hidden}.band a{color:var(--band-ink)}.band .muted,.band .faint{color:var(--band-ink-muted)}.band :focus-visible{outline-color:#fff}.orbits{pointer-events:none;color:var(--brand-lavender);opacity:.55;position:absolute}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);box-shadow:var(--shadow-1)}.card-pad{padding:var(--s-5)}.rule{border:0;border-top:1px solid var(--line);margin:0}.rule-strong{border-top:1px solid var(--rule)}.kv{gap:var(--s-1) var(--s-4);font-size:var(--text-sm);grid-template-columns:auto 1fr;display:grid}.kv dt{color:var(--ink-3)}.kv dd{margin:0}.chip{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);min-height:1.75rem;font-size:var(--text-xs);color:var(--ink-2);white-space:nowrap;align-items:center;gap:.35rem;padding:.15rem .6rem;font-weight:500;display:inline-flex}.chip-tint{background:var(--surface-tint);color:var(--ink-on-tint);border-color:#0000}.chip-ok{background:var(--ok-soft);color:var(--ok-ink);border-color:#0000}.chip-xp{background:var(--xp-soft);color:var(--xp-ink);font-variant-numeric:tabular-nums;border-color:#0000;font-weight:650}.chip-prn{background:var(--surface-tint);color:var(--ink-on-tint);font-variant-numeric:tabular-nums;border-color:#0000;font-weight:600}.chip-level{color:var(--level);border-color:color-mix(in srgb, var(--level) 45%, transparent);background:0 0}.chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.mark{border-radius:50%;flex:none;place-items:center;width:1.25rem;height:1.25rem;display:inline-grid}.mark-done{background:var(--ok);color:#fff}.mark-doing{border:2px solid var(--accent);color:var(--accent)}.mark-todo{border:1.5px solid var(--line-strong)}.mark-lock{color:var(--ink-3)}.mark svg{stroke-width:2.5px;width:.8rem;height:.8rem}.agenda{gap:var(--s-5);grid-template-columns:repeat(4,1fr);display:grid}.module{padding-top:var(--s-4);border-top:1px solid var(--rule)}.module-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-3);display:flex}.module-name{font-weight:650;font-size:var(--text-md);letter-spacing:var(--tracking-title);text-wrap:balance}.module-name a{color:inherit;text-decoration:none}.module-name a:hover{text-decoration:underline;text-decoration-color:var(--line-strong)}.module-name .n{color:var(--ink-3);font-variant-numeric:tabular-nums;margin-right:.35rem;font-weight:500}.module-meta{color:var(--ink-3);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.topic{gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--line);color:inherit;transition:background var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out);border-radius:0;grid-template-columns:1.25rem 1fr;text-decoration:none;display:grid}.topic:hover{background:var(--bg-sunken);box-shadow:0 0 0 var(--s-3) var(--bg-sunken);color:inherit}.topic-title{font-size:var(--text-sm);font-weight:500;line-height:1.35;display:block}.topic-title .n{color:var(--ink-3);font-variant-numeric:tabular-nums;margin-right:.3rem}.topic-meta{gap:var(--s-3);color:var(--ink-3);font-size:var(--text-xs);font-variant-numeric:tabular-nums;flex-wrap:wrap;margin-top:.2rem;display:flex}.topic[data-state=doing] .topic-title{font-weight:650}@media (width<=1024px){.agenda{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.agenda{grid-template-columns:1fr}}.route{grid-template-columns:repeat(12,1fr);gap:4px;display:grid}.route i{background:var(--band-line);border-radius:2px;height:.5rem;display:block}.route i[data-state=done]{background:#fff}.route i[data-state=doing]{background:repeating-linear-gradient(90deg,#fff 0 3px,#0000 3px 6px)}.route-label{justify-content:space-between;gap:var(--s-3);font-size:var(--text-sm);margin-top:var(--s-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.hex{width:3rem;height:3rem}.hex.is-off{color:var(--badge-off)}.hex .g{stroke:var(--badge-ink);fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.hex.is-off .g{stroke:var(--ink-3)}.meter{background:var(--line);border-radius:3px;height:.5rem;overflow:hidden}.meter>i{background:var(--accent);transform-origin:0;border-radius:3px;height:100%;display:block}.meter-xp>i{background:var(--xp)}.field{flex-direction:column;gap:.3rem;display:flex}.field label{font-size:var(--text-xs);color:var(--ink-2);font-weight:600}.input,.select{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-1);min-height:2.5rem;color:var(--ink);font-size:var(--text-sm);transition:border-color var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out);padding:.4rem .7rem}.input:hover,.select:hover{border-color:var(--ink-3)}.input:focus,.select:focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 25%, transparent);outline:none}.input::placeholder{color:var(--ink-3)}.q-stem{font-size:var(--text-lg);letter-spacing:var(--tracking-title);text-wrap:pretty;font-weight:600;line-height:1.4}.options{gap:var(--s-3);margin-top:var(--s-5);display:grid}.opt{align-items:start;gap:var(--s-3);text-align:left;width:100%;padding:var(--s-4);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-2);color:var(--ink);transition:border-color var(--dur-1) var(--ease-out), background var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out), opacity var(--dur-2) var(--ease-out);grid-template-columns:2rem 1fr auto;display:grid}.opt:hover{border-color:var(--ink-3);background:var(--surface-raised)}.opt-key{border:1.5px solid var(--line-strong);width:2rem;height:2rem;font-weight:650;font-size:var(--text-sm);color:var(--ink-2);border-radius:50%;place-items:center;display:grid}.opt-text{padding-top:.2rem;line-height:1.45}.opt-mark{align-self:center;display:none}.opt-why{margin-top:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--line);color:var(--ink-2);font-size:var(--text-sm);grid-column:2/-1;line-height:1.5;display:none}.options[data-answered] .opt{cursor:default}.options[data-answered] .opt-why{animation:reveal var(--dur-3) var(--ease-out);display:block}.options[data-answered] .opt-mark{display:block}.options[data-answered] .opt:hover{border-color:var(--line-strong);background:var(--surface)}.options[data-answered] .opt[data-correct]{border-color:var(--ok);background:var(--ok-soft)}.options[data-answered] .opt[data-correct] .opt-key{background:var(--ok);border-color:var(--ok);color:#fff}.options[data-answered] .opt[data-correct] .opt-mark{color:var(--ok)}.opt[data-chosen]:not([data-correct]){border-color:var(--err);background:var(--err-soft)}.opt[data-chosen]:not([data-correct]) .opt-key{background:var(--err);border-color:var(--err);color:#fff}.opt[data-chosen]:not([data-correct]) .opt-mark{color:var(--err)}.options[data-answered] .opt:not([data-correct]):not([data-chosen]){opacity:.72}.verdict{align-items:flex-start;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-radius:var(--r-2);margin-top:var(--s-5);display:none}.verdict[data-show]{display:flex}.verdict.is-ok{background:var(--ok-soft);color:var(--ok-ink)}.verdict.is-err{background:var(--err-soft);color:var(--err-ink)}.verdict strong{display:block}@keyframes reveal{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}.term{color:inherit;font:inherit;text-decoration:underline dotted;text-decoration-color:var(--accent);text-underline-offset:.2em;cursor:help;text-align:left;background:0 0;border:0;border-radius:2px;margin:0;padding:0;text-decoration-thickness:1.5px}.term:hover{background:var(--accent-soft)}.term-missing{text-decoration:underline dotted;text-decoration-color:var(--ink-3);text-underline-offset:.2em;cursor:help}.pop{width:min(22rem,100vw - 2rem);padding:var(--s-4) var(--s-5);background:var(--surface-raised);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-2);box-shadow:var(--shadow-3);font-size:var(--text-sm);z-index:var(--z-popover);margin:0;line-height:1.5;position:fixed;inset:auto}.pop::backdrop{background:0 0}.pop h4{font-size:var(--text-md);margin-bottom:var(--s-1)}.pop p{margin:0}.pop .pop-src{justify-content:space-between;gap:var(--s-3);margin-top:var(--s-3);color:var(--ink-3);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.pop:popover-open{animation:pop-in var(--dur-2) var(--ease-out)}@keyframes pop-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.toast{left:50%;bottom:var(--s-6);align-items:center;gap:var(--s-3);max-width:calc(100vw - 2rem);padding:var(--s-3) var(--s-5);background:var(--ink);color:var(--bg);border-radius:var(--r-pill);box-shadow:var(--shadow-3);font-size:var(--text-sm);z-index:var(--z-toast);opacity:0;pointer-events:none;transition:opacity var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out);font-weight:600;display:flex;position:fixed;transform:translate(-50%)}.toast[data-show]{opacity:1;transform:translate(-50%,-4px)}.toast .xp{color:var(--xp);font-variant-numeric:tabular-nums}.soon{color:var(--ink-3);font-size:var(--text-xs);align-items:center;gap:.35rem;font-weight:500;display:inline-flex}.soon:before{content:"";border:1.5px dashed;border-radius:50%;width:.4rem;height:.4rem}.ladder{border-top:1px solid var(--rule);gap:0;display:grid}.rung{gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--line);font-size:var(--text-sm);grid-template-columns:2.25rem 1fr auto;align-items:center;display:grid}.rung .hex{width:2rem;height:2rem}.rung b{font-weight:600}.rung .num{color:var(--ink-3)}.rung[data-now] b{color:var(--level)}.rung[data-now]{background:var(--bg-sunken);box-shadow:0 0 0 var(--s-3) var(--bg-sunken)}.topbar{z-index:var(--z-sticky);background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:saturate(160%)blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0}.topbar-in{align-items:center;gap:var(--s-5);max-width:94rem;min-height:4rem;display:flex}.brand{align-items:center;gap:var(--s-3);color:var(--ink);flex:none;text-decoration:none;display:flex}.brand:hover{color:var(--ink)}.brand-logo{object-fit:contain;flex:none;width:4.25rem;height:2.56rem}.brand-logo.is-dark,[data-theme=dark] .brand-logo.is-light{display:none}[data-theme=dark] .brand-logo.is-dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .brand-logo.is-light{display:none}:root:not([data-theme=light]) .brand-logo.is-dark{display:block}}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-title{font-weight:700;font-size:var(--text-sm);letter-spacing:var(--tracking-title);white-space:nowrap}.brand-sub{font-size:var(--text-xs);color:var(--ink-3);white-space:nowrap}.nav{gap:var(--s-1);margin-left:var(--s-2);flex-wrap:nowrap;align-items:center;min-width:0;display:flex}.nav a,.nav .nav-soon{color:var(--ink-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-1);font-size:var(--text-sm);white-space:nowrap;font-weight:500;text-decoration:none;position:relative}.nav a:hover{color:var(--ink);background:var(--bg-sunken)}.nav a[aria-current=page]{color:var(--ink);font-weight:650}.nav a[aria-current=page]:after{content:"";left:var(--s-3);right:var(--s-3);background:var(--accent);border-radius:1px;height:2px;position:absolute;bottom:0}.nav .nav-soon{color:var(--ink-3);cursor:default;align-items:center;gap:.4rem;display:inline-flex}.nav .nav-soon small{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.nav .nav-soon:after{content:"";border:1.5px dashed;border-radius:50%;width:.4rem;height:.4rem}.topbar-actions{align-items:center;gap:var(--s-2);margin-left:auto;display:flex}.iconbtn{width:2.75rem;height:2.75rem;color:var(--ink-2);border-radius:var(--r-1);transition:background var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.iconbtn:hover{background:var(--bg-sunken);color:var(--ink)}.iconbtn .moon,[data-theme=dark] .iconbtn .sun{display:none}[data-theme=dark] .iconbtn .moon{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .iconbtn .sun{display:none}:root:not([data-theme=light]) .iconbtn .moon{display:block}}.menu-btn{display:none}.me{align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-3) var(--s-1) var(--s-1);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font-size:var(--text-sm);white-space:nowrap;text-decoration:none;display:inline-flex}a.me:hover{border-color:var(--line-strong);color:var(--ink)}.me-hex{width:1.75rem;height:1.75rem;color:var(--badge-fill)}.me-level{font-weight:600}.me-xp{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}.seg{background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--r-pill);padding:3px;display:inline-flex}.seg a,.seg button{color:var(--ink-2);border-radius:var(--r-pill);font-size:var(--text-sm);transition:background var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out);background:0 0;border:0;padding:.3rem .8rem;font-weight:500;line-height:1.4;text-decoration:none}.seg a:hover,.seg button:hover{color:var(--ink)}.seg [aria-current=true],.seg [aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1);font-weight:650}.menu{border:0;border-left:1px solid var(--line);background:var(--surface);width:min(22rem,100vw);max-width:100vw;height:100dvh;max-height:none;color:var(--ink);box-shadow:var(--shadow-3);margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow:auto}.menu::backdrop{background:color-mix(in srgb, var(--brand-blue-deep) 45%, transparent)}.menu[open]{animation:menu-in var(--dur-2) var(--ease-out);flex-direction:column;display:flex}@keyframes menu-in{0%{opacity:0;transform:translate(1.5rem)}to{opacity:1;transform:none}}.menu-head{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-3) var(--s-3) var(--s-5);border-bottom:1px solid var(--line);min-height:4rem;display:flex}.menu-head h2{font-size:var(--text-md);font-weight:650}.menu-nav{padding:var(--s-3) var(--s-3);display:grid}.menu-nav a,.menu-nav .nav-soon{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-3);border-radius:var(--r-1);min-height:2.75rem;color:var(--ink);font-size:var(--text-md);font-weight:500;text-decoration:none;display:flex}.menu-nav a:hover{background:var(--bg-sunken)}.menu-nav a[aria-current=page]{box-shadow:inset 3px 0 0 var(--accent);font-weight:650}.menu-nav .nav-soon{color:var(--ink-3)}.menu-nav .nav-soon small{font-size:var(--text-xs)}.menu-section{padding:var(--s-4) var(--s-5);border-top:1px solid var(--line);gap:var(--s-3);display:grid}.menu-section h3{font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-3);font-weight:650}.menu-section .seg,.menu-section .menu-profile{justify-self:start}.menu-foot{padding:var(--s-4) var(--s-5);border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--text-xs);margin-top:auto}.footer{border-top:1px solid var(--line);padding-block:var(--s-7) var(--s-6);margin-top:var(--s-8);color:var(--ink-2);font-size:var(--text-sm)}.footer-in{gap:var(--s-6);grid-template-columns:1.4fr 1fr 1fr;display:grid}.footer .brand-logo{width:5.5rem;height:3.3rem}.footer-about{margin-top:var(--s-4);text-wrap:pretty;max-width:38ch}.footer-col h3{font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--s-3);font-weight:650}.footer-col li+li{margin-top:var(--s-2)}.footer a{color:var(--ink-2)}.footer a:hover{color:var(--ink)}.footer .soon{font-size:var(--text-sm)}.footer-note{margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--text-xs);justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;display:flex}@media (width<=760px){.footer-in{grid-template-columns:1fr}}@media (width<=94em){.brand-sub{display:none}}@media (width<=86em){.nav{display:none}.menu-btn{display:inline-grid}}@media (width<=64em){.topbar-actions>.seg{display:none}}@media (width<=46em){.topbar-actions>.me{padding:.2rem}.topbar-actions>.me .me-level,.topbar-actions>.me .me-xp{display:none}}@media (width<=35em){.topbar-in{gap:var(--s-3);min-height:3.5rem}.brand-text{display:none}.brand-logo{width:3.5rem;height:2.1rem}.topbar-actions .search-btn{display:none}}@media print{@page{margin:18mm 16mm}:root{--bg:#fff;--surface:#fff;--surface-tint:#f3f5f8;--ink:#000;--ink-2:#222;--ink-3:#444;--line:#bbb;--rule:#000;--link:#000}html{scroll-behavior:auto}body{color:#000;background:#fff;font-size:11pt;display:block}.topbar,.footer,.toast,.skip,.menu,.btn,.side,.crumbs,.pager,.cta-test,.reading-progress,.chip-xp,[data-topic-xp-chip],[data-topic-xp-note],.no-print{display:none!important}main{flex:none}.read{max-width:none;font-size:11pt;line-height:1.5}.read h2,.read h3{break-after:avoid;page-break-after:avoid}h1,h2,h3,figure,.norm,.callout{break-inside:avoid;page-break-inside:avoid}p,li{orphans:3;widows:3}a{color:#000;text-decoration:underline}.read a[href^=http]:after,.sources a[href^=http]:after{content:" (" attr(href) ")";color:#444;word-break:break-all;font-size:.85em}.term{text-decoration:none}.pop{display:none!important}details{break-inside:avoid}details>summary{display:none!important}.options .opt-why{display:block}.options .opt-mark{display:none}.card,.case{box-shadow:none;border-color:#bbb}.print-only{display:block!important}}.print-only{display:none}
