.prose{max-width:72ch;margin-inline:auto;color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);line-height:1.6;overflow-wrap:break-word}.prose>*+*{margin-top:var(--s-4)}.prose h2,.prose h3,.prose h4{color:var(--ink);font-family:var(--font-display);scroll-margin-top:var(--anchor-offset)}.prose h2{margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid var(--line);font-size:var(--fs-h2);line-height:1.15}.prose h2:before{content:"";display:block;width:40px;height:3px;margin-bottom:var(--s-3);border-radius:2px;background:var(--chapter-dash, var(--chapter-ink, var(--ink)))}.prose h3{margin-top:var(--s-6);margin-bottom:var(--s-3);font-size:var(--fs-h3)}.prose h4{margin-top:var(--s-5);margin-bottom:var(--s-2);font-size:var(--fs-body)}.prose :is(h2,h3,h4)>a{color:inherit;text-decoration:none}.prose :is(h2,h3,h4)>a:after{content:" §";color:var(--line);font-family:var(--font-mono);font-weight:400;transition:color var(--dur) var(--ease)}.prose :is(h2,h3,h4)>a:hover:after,.prose :is(h2,h3,h4)>a:focus-visible:after{color:var(--muted)}.prose p{color:var(--ink-2)}.prose strong{color:var(--ink);font-weight:600}.prose em{font-style:italic}.prose a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--muted)}.prose a:hover{text-decoration-thickness:2px;text-decoration-color:currentColor}.prose ul,.prose ol{padding-left:var(--s-5);color:var(--ink-2)}.prose li+li{margin-top:var(--s-2)}.prose li>ul,.prose li>ol{margin-top:var(--s-2)}.prose li::marker{color:var(--muted)}.prose .callout{--callout-ink: var(--ink-2);--callout-glyph: "•";position:relative;margin-top:var(--s-5);padding:var(--s-4) var(--s-4) var(--s-4) var(--s-6);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-1)}.prose .callout:before{content:var(--callout-glyph);position:absolute;left:var(--s-3);top:var(--s-4);font-family:var(--font-mono);font-size:.9rem;line-height:1.2;color:var(--callout-ink);pointer-events:none}.prose .callout>*+*{margin-top:var(--s-3)}.prose .callout p{color:var(--ink-2)}.prose .callout-title{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.prose .callout[data-kind=practice]{--callout-ink: var(--l2-ink);--callout-glyph: "✓";background:color-mix(in srgb,var(--l2) 45%,var(--bg))}.prose .callout[data-kind=example]{--callout-ink: var(--l1-ink);--callout-glyph: "→";background:color-mix(in srgb,var(--l1) 45%,var(--bg))}.prose .callout[data-kind=anti]{--callout-ink: var(--l3-ink);--callout-glyph: "✕";background:color-mix(in srgb,var(--l3) 45%,var(--bg))}.prose .callout[data-kind=note]{--callout-ink: var(--ink-2);--callout-glyph: "§";background:var(--surface)}.prose .callout[data-kind=summary]{--callout-ink: var(--l4-ink);--callout-glyph: "¶";background:var(--surface)}.prose .callout[data-kind=summary] p{color:var(--ink)}.prose .callout[data-kind=practice] .callout-title{color:var(--l2-ink)}.prose .callout[data-kind=example] .callout-title{color:var(--l1-ink)}.prose .callout[data-kind=anti] .callout-title{color:var(--l3-ink)}.prose>.callout[data-kind]{border:1px solid transparent;border-radius:var(--r-lg);box-shadow:none;background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(var(--bg),var(--bg)) padding-box,var(--grad-ring) border-box}.prose>.callout:is([data-kind=practice],[data-kind=example],[data-kind=anti]){--co-tint: var(--l2);--co-glow: var(--glow-2);--co-extra: 0px;margin-block:var(--s-6);padding-block:var(--s-5);padding-inline:calc(var(--co-extra) + var(--s-6)) calc(var(--co-extra) + var(--s-5));background:radial-gradient(60% 120% at 100% 0%,var(--co-glow),transparent 70%) padding-box,linear-gradient(color-mix(in srgb,var(--co-tint) 62%,var(--bg)),color-mix(in srgb,var(--co-tint) 62%,var(--bg))) padding-box,var(--grad-ring) border-box}:is(.doc-main,.pillar-main) .prose>.callout:is([data-kind=practice],[data-kind=example],[data-kind=anti]){--co-extra: calc(50cqw - 50%) ;width:100cqw;margin-inline:calc(50% - 50cqw)}.prose>.callout:is([data-kind=practice],[data-kind=example],[data-kind=anti]):before{left:calc(var(--co-extra) + var(--s-3));top:var(--s-5)}.prose>.callout[data-kind=example]{--co-tint: var(--l1);--co-glow: var(--glow-1)}.prose>.callout[data-kind=anti]{--co-tint: var(--l3);--co-glow: var(--glow-3)}.prose>.table-scroll{margin-block:var(--s-6);border:1px solid transparent;border-radius:var(--r-lg);background:linear-gradient(var(--bg),var(--bg)) padding-box,var(--grad-ring) border-box}:is(.doc-main,.pillar-main) .prose>.table-scroll{width:100cqw;margin-inline:calc(50% - 50cqw)}.prose>.table-scroll :is(th,td):first-child{border-left:0}.prose>.table-scroll :is(th,td):last-child{border-right:0}.prose>.table-scroll table>:first-child>tr:first-child>:is(th,td){border-top:0}.prose>.table-scroll table>:last-child>tr:last-child>td{border-bottom:0}.prose .maps-to{margin-top:var(--s-5);padding-top:var(--s-3);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--fs-small);line-height:1.5;color:var(--muted)}.prose .maps-to strong{color:var(--ink-2);font-weight:600}.prose sup:has(>.cite){vertical-align:baseline;line-height:0;font-size:inherit}.prose .cite{display:inline-block;padding:2px;border:1px solid color-mix(in srgb,var(--l1-ink) 30%,transparent);border-radius:var(--r-sm);background:color-mix(in srgb,var(--l1) 55%,var(--bg));color:var(--l1-ink);font-family:var(--font-mono);font-size:var(--fs-label);font-weight:600;line-height:1;text-decoration:none;vertical-align:super}.prose .cite+.cite,.prose sup:has(>.cite)+sup:has(>.cite){margin-left:2px}.prose .cite:hover,.prose .cite:focus-visible{background:var(--l1);text-decoration:none}.prose .sources{list-style:none;margin-top:var(--s-5);padding-left:0;font-size:var(--fs-small)}.prose .sources li{padding:var(--s-2) 0;border-top:1px solid var(--line);color:var(--ink-2);scroll-margin-top:var(--anchor-offset)}.prose .sources li:target{background:color-mix(in srgb,var(--l4) 45%,var(--bg));border-radius:var(--r-sm);padding-inline:var(--s-3);margin-inline:calc(var(--s-3) * -1)}.prose .src-num{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:600;color:var(--muted)}.prose .verified{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--muted)}.prose blockquote{position:relative;margin-top:var(--s-5);padding-left:var(--s-6);border-left:3px solid var(--l3-ink);font-family:var(--font-display);font-size:var(--fs-h3);line-height:1.4;color:var(--ink)}.prose blockquote:before{content:"“";position:absolute;left:var(--s-3);top:.05em;font-family:var(--font-display);font-size:2.75rem;line-height:1;color:var(--l3);pointer-events:none}.prose blockquote p{color:var(--ink)}.prose code{font-family:var(--font-mono);font-size:.875em;padding:.15em .4em;border:1px solid color-mix(in srgb,var(--l1-ink) 18%,transparent);border-radius:var(--r-sm);background:color-mix(in srgb,var(--l1) 40%,var(--bg));color:var(--ink)}.prose pre{position:relative;padding:var(--s-4);overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}.prose pre[data-language]:before{content:attr(data-language);position:absolute;top:0;right:0;padding:2px var(--s-2);border-bottom-left-radius:var(--r-sm);background:#7f7f7f40;color:inherit;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.04em;text-transform:uppercase}.prose pre[data-language=plaintext]:before,.prose pre[data-language=text]:before,.prose pre[data-language=txt]:before{content:none}.prose pre code{padding:0;border:0;background:none;color:inherit}.prose hr{border:0;border-top:1px solid var(--line);margin-block:var(--s-6)}.prose .table-scroll{margin-top:var(--s-5);max-height:70dvh;overflow-x:auto;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-sm)}.prose .table-scroll:focus-visible{outline:2px solid var(--l1-ink);outline-offset:2px}.prose table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.prose th,.prose td{padding:var(--s-2) var(--s-3);border:1px solid var(--line);text-align:left;vertical-align:top}.prose thead th{position:sticky;top:0;z-index:1;font-family:var(--font-body);font-size:inherit;font-weight:600;color:var(--ink);background:color-mix(in srgb,var(--ink) 4%,var(--bg))}.prose tbody tr:nth-child(2n){background:color-mix(in srgb,var(--ink) 3%,transparent)}.prose td{color:var(--ink-2)}.prose a.term{color:inherit;text-decoration:none;border-bottom:1px dotted var(--muted)}.prose a.term:hover,.prose a.term:focus-visible{border-bottom-color:var(--ink)}.term-card{position:absolute;z-index:60;max-width:22rem;width:max-content;padding:var(--s-3) var(--s-4);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-2);font-family:var(--font-body);font-size:var(--fs-small);line-height:1.5;opacity:0;visibility:hidden;pointer-events:none}@media(prefers-reduced-motion:no-preference){.term-card{transition:opacity .16s var(--ease)}}.term-card.is-open{opacity:1;visibility:visible;pointer-events:auto}.term-card .tc-term{margin:0 0 var(--s-1);font-family:var(--font-display);font-weight:600;font-size:var(--fs-body);color:var(--ink)}.term-card .tc-def{margin:0}.term-card .tc-link{display:inline-block;margin-top:var(--s-2);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);text-decoration:none}.term-card .tc-link:hover{text-decoration:underline}.figure--infographic{margin:var(--s-6) 0;display:flex;flex-direction:column;gap:var(--s-4)}.prose>.figure--infographic{width:100cqw;margin-inline:calc(50% - 50cqw)}.figure--infographic .figure-canvas{padding:var(--s-3);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow:hidden}.figure--infographic .figure-canvas>svg{display:block;width:100%;height:auto;max-width:560px;margin-inline:auto}.figure--infographic .figure-canvas--dual>svg+svg{display:none}@media(min-width:834px){.figure--infographic .figure-canvas--dual>svg:first-child{display:none}.figure--infographic .figure-canvas--dual>svg+svg{display:block;max-width:760px}}.figure--poster .figure-canvas.figure-canvas--poster{overflow-x:auto;overscroll-behavior-x:contain}.figure--poster .figure-canvas.figure-canvas--poster>svg{max-width:1000px;min-width:760px}.figure-canvas--poster:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.figure-poster-link{font-size:var(--fs-small);color:var(--ink-2)}.figure-figcaption{display:flex;flex-direction:column;gap:var(--s-2)}.figure-fig-title{font-weight:600;color:var(--ink)}.figure-fig-desc{max-width:72ch;font-size:var(--fs-small);color:var(--muted);text-wrap:pretty}.figure-permalink{align-self:flex-start;font-size:var(--fs-small);color:var(--ink-2);text-decoration:underline;text-underline-offset:.2em}.figure-permalink:hover{color:var(--ink)}.figure-permalink:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.figure--infographic[id]{scroll-margin-top:var(--anchor-offset, 96px)}.figure-alt{border-top:1px solid var(--line);padding-top:var(--s-3)}.figure-alt-summary{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);cursor:pointer}.figure-alt-summary:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.figure-alt>p{margin:var(--s-3) 0 0;max-width:72ch;font-size:var(--fs-small);line-height:1.55;color:var(--ink-2);text-wrap:pretty}.figc{color:var(--ink)}.figc text{fill:var(--ink);font-family:var(--font-body)}.figc .disp{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em}.figc .mono{font-family:var(--font-mono);letter-spacing:normal;text-transform:none}.figc .muted{fill:var(--muted)}.figc .ink2{fill:var(--ink-2)}.figc .panel{fill:color-mix(in srgb,var(--ink) 3%,var(--bg));stroke:var(--line);stroke-width:1}.figc .rule{stroke:var(--line);stroke-width:1}.figc .axis{stroke:var(--ink);stroke-width:1.5;fill:none}.figc .arrow{fill:var(--muted)}.figc .stroke-arrow{stroke:var(--muted);stroke-width:1.5;fill:none}.figc .glyph{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.figc .glyph-fill{fill:currentColor;stroke:none}.figc .glyph-check{fill:none;stroke:var(--l5-ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.figc .l1-bg{fill:var(--l1)}.figc .l2-bg{fill:var(--l2)}.figc .l3-bg{fill:var(--l3)}.figc .l4-bg{fill:var(--l4)}.figc .l5-bg{fill:var(--l5)}.figc .l1-tx{fill:var(--l1-ink)}.figc .l2-tx{fill:var(--l2-ink)}.figc .l3-tx{fill:var(--l3-ink)}.figc .l4-tx{fill:var(--l4-ink)}.figc .l5-tx{fill:var(--l5-ink)}.figc .l1-st{stroke:var(--l1-ink)}.figc .l2-st{stroke:var(--l2-ink)}.figc .l3-st{stroke:var(--l3-ink)}.figc .l4-st{stroke:var(--l4-ink)}.figc .l5-st{stroke:var(--l5-ink)}.figc .l1-band{fill:color-mix(in srgb,var(--l1) 34%,var(--bg));stroke:var(--l1-ink)}.figc .l2-band{fill:color-mix(in srgb,var(--l2) 34%,var(--bg));stroke:var(--l2-ink)}.figc .l3-band{fill:color-mix(in srgb,var(--l3) 34%,var(--bg));stroke:var(--l3-ink)}.figc .l4-band{fill:color-mix(in srgb,var(--l4) 34%,var(--bg));stroke:var(--l4-ink)}.figc .l5-band{fill:color-mix(in srgb,var(--l5) 34%,var(--bg));stroke:var(--l5-ink)}.figc .chip-bg{rx:5}.figc .cell{stroke:var(--line);stroke-width:1}.figc .cell-empty{fill:color-mix(in srgb,var(--ink) 4%,var(--bg))}.figc .on-ink{fill:var(--bg)}.figc .dot-on{fill:var(--ink);stroke:var(--bg);stroke-width:3}.figc .dot-off{fill:var(--bg);stroke:var(--ink);stroke-width:2.5}.figc .dot-mask,.figc .inv-tx{fill:var(--bg)}.figc a text{fill:var(--ink);text-decoration:none}.figc a:hover text,.figc a:focus-visible text{text-decoration:underline}.figc a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.map-svg a:focus-visible>rect{stroke:var(--ink);stroke-width:2}.reading-paths .figure-canvas{padding:var(--s-4)}.rp-cols{display:grid;grid-template-columns:1fr;gap:var(--s-5)}@media(min-width:720px){.rp-cols{grid-template-columns:repeat(3,1fr)}}.rp-col{display:flex;flex-direction:column;gap:var(--s-3)}.rp-persona{margin:0;font-family:var(--font-display);font-weight:700;font-size:var(--fs-h3);line-height:1.2;color:var(--ink)}.rp-sub{margin:0;font-size:var(--fs-body);color:var(--muted);text-wrap:pretty}.rp-list{list-style:none;margin:var(--s-1) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.rp-list a{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);text-decoration:none;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.rp-list a:hover{border-color:var(--ink-2);transform:translate(2px)}.rp-list a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.rp-num{flex:none;min-width:2.1em;padding:2px var(--s-2);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-label);font-weight:600;text-align:center;background:var(--tint-bg);color:var(--ink-2)}.rp-node-title{font-size:var(--fs-body);font-weight:600;line-height:1.3}.rp-list a.rp-path .rp-num{background:var(--ink);color:var(--bg)}.figc .tile-h{fill:var(--ink);stroke:var(--ink);stroke-width:1.5}.figc .tile-h-tx{fill:var(--bg)}.figc .tile-t{fill:color-mix(in srgb,var(--ink) 22%,var(--bg));stroke:var(--ink);stroke-width:1.5}.figc .tile-v{fill:var(--bg);stroke:var(--ink-2);stroke-width:1}.figc .tile-b{fill:var(--bg);stroke:var(--ink-2);stroke-width:1.5;stroke-dasharray:4 3}.diagram{margin:var(--s-6) 0;display:flex;flex-direction:column;gap:var(--s-4)}.prose>.diagram{width:100cqw;margin-inline:calc(50% - 50cqw)}.diagram-canvas{position:relative;padding:var(--s-4);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.prose .diagram:not(.diagram--bare) .diagram-canvas{box-shadow:var(--shadow-1)}.diagram-canvas svg{width:100%;height:auto;display:block}.diagram:not(.diagram--bare) .diagram-canvas svg{max-width:calc(var(--vb-w, 100000) * 1px);margin-inline:auto}.diagram--bare{margin:0}.diagram--bare .diagram-canvas{padding:0;border:0;background:transparent;border-radius:0}.diagram-note{display:flex;flex-direction:column;gap:2px;padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}.diagram-note[hidden]{display:none}.diagram-note .dn-label{font-weight:600;color:var(--ink)}.diagram-note .dn-sub{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.01em;color:var(--muted)}.diagram-note .dn-note{font-size:var(--fs-small);color:var(--ink-2);text-wrap:pretty}.diagram-figcaption{display:flex;flex-direction:column;gap:var(--s-2)}.diagram-fig-title{font-weight:600;color:var(--ink)}.diagram-fig-desc{max-width:70ch;font-size:var(--fs-small);color:var(--muted);text-wrap:pretty}.diagram-open{align-self:flex-start;padding:var(--s-2) var(--s-4);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-family:var(--font-mono);font-size:.8125rem;text-decoration:none}.diagram-open:hover{border-color:var(--ink-2)}.diagram-open:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.diagram-open-hint{color:var(--muted)}.diagram svg text{font-family:var(--font-body)}.diagram svg .c-grid{stroke:var(--line);fill:none;opacity:.5}.diagram svg .c-mask{fill:var(--bg);stroke:none}.diagram svg .c-frontend{fill:var(--l1);stroke:var(--l1-ink)}.diagram svg .c-backend{fill:var(--l2);stroke:var(--l2-ink)}.diagram svg .c-database{fill:var(--l3);stroke:var(--l3-ink)}.diagram svg .c-security{fill:var(--l4);stroke:var(--l4-ink)}.diagram svg .c-cloud,.diagram svg .c-messagebus{fill:var(--l5);stroke:var(--l5-ink)}.diagram svg .c-external{fill:var(--bg);stroke:var(--muted)}.diagram svg .c-region{fill:color-mix(in srgb,var(--l5) 20%,transparent);stroke:var(--muted);stroke-dasharray:9 4}.diagram svg .c-security-group{fill:color-mix(in srgb,var(--l4) 16%,transparent);stroke:var(--l4-ink);stroke-dasharray:4 4}.diagram svg .c-lane{fill:color-mix(in srgb,var(--ink) 3%,transparent);stroke:var(--line);stroke-dasharray:7 3}.diagram svg .t-primary{fill:var(--ink)}.diagram svg .t-muted{fill:var(--muted)}.diagram svg .t-dim{fill:color-mix(in srgb,var(--muted) 70%,var(--bg))}.diagram svg .t-frontend{fill:var(--l1-ink)}.diagram svg .t-backend{fill:var(--l2-ink)}.diagram svg .t-database{fill:var(--l3-ink)}.diagram svg .t-security{fill:var(--l4-ink)}.diagram svg .t-cloud{fill:var(--l5-ink)}.diagram svg .t-messagebus{fill:var(--l5-ink)}.diagram svg .t-external{fill:var(--muted)}.diagram svg .a-default{stroke:var(--muted);fill:none}.diagram svg .a-emphasis{stroke:var(--ink);fill:none}.diagram svg .a-security{stroke:var(--l4-ink);fill:none;stroke-dasharray:5 5}.diagram svg .a-dashed{stroke:var(--muted);fill:none;stroke-dasharray:4 4}.diagram svg .m-default{fill:var(--muted)}.diagram svg .m-emphasis{fill:var(--ink)}.diagram svg .m-security{fill:var(--l4-ink)}.diagram svg .m-dashed{fill:var(--muted)}.diagram svg .m-default,.diagram svg .m-emphasis,.diagram svg .m-security,.diagram svg .m-dashed{fill:context-stroke}.diagram svg .semantic-sigil{fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;opacity:.76;pointer-events:none}.diagram svg .semantic-sigil>*{vector-effect:non-scaling-stroke}.diagram svg .semantic-sigil .sigil-fill{fill:currentColor;stroke:none}.diagram svg .s-frontend{color:var(--l1-ink)}.diagram svg .s-backend{color:var(--l2-ink)}.diagram svg .s-database{color:var(--l3-ink)}.diagram svg .s-security{color:var(--l4-ink)}.diagram svg .s-cloud{color:var(--l5-ink)}.diagram svg .s-messagebus{color:var(--l5-ink)}.diagram svg .s-external{color:var(--muted)}.diagram [data-node-id]{cursor:pointer}.diagram [data-node-id]:focus{outline:none}.diagram [data-node-id]:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.diagram.has-active [data-node-id].is-dim,.diagram.has-active [data-edge-id].is-dim{opacity:.4}.diagram [data-node-id].is-lit rect:not(.c-mask){stroke:var(--ink);stroke-width:2}.diagram [data-edge-id].is-lit :is(path,polyline,line){stroke:var(--ink);stroke-width:2}.diagram [data-edge-id].is-lit text{fill:var(--ink);stroke:none}@media(prefers-reduced-motion:no-preference){.diagram.diagram-js [data-node-id],.diagram.diagram-js [data-node-id] rect,.diagram.diagram-js [data-edge-id]{transition:opacity var(--dur) var(--ease),stroke var(--dur) var(--ease),stroke-width var(--dur) var(--ease)}}.diagram-enlarge{position:absolute;top:var(--s-3);right:var(--s-3);z-index:2;display:inline-flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-family:var(--font-mono);font-size:.8125rem;cursor:pointer}.diagram-enlarge[hidden]{display:none}.diagram-enlarge:hover{border-color:var(--ink-2)}.diagram-enlarge:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.diagram-enlarge-icon{font-size:1.05em;line-height:1}.diagram-dialog .diagram-enlarge{display:none}.diagram-dialog{width:min(96vw,1600px);max-width:96vw;height:92vh;max-height:92vh;padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg);color:var(--ink);overflow:hidden}.diagram-dialog[open]{display:flex;flex-direction:column}.diagram-dialog::backdrop{background:color-mix(in srgb,#000 62%,transparent)}.diagram-dialog-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line);background:var(--surface)}.diagram-dialog-title{font-weight:600;color:var(--ink)}.diagram-dialog-close{flex:0 0 auto;padding:var(--s-2) var(--s-4);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);font-family:var(--font-mono);font-size:.8125rem;cursor:pointer}.diagram-dialog-close:hover{border-color:var(--ink-2)}.diagram-dialog-close:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.diagram-dialog .diagram-canvas{flex:1 1 auto;min-height:0;border:0;border-radius:0;overflow:auto}.diagram-dialog .diagram-canvas svg{width:max(100%,calc(var(--vb-w, 0) * 1px));max-width:none;height:auto}.diagram-dialog .diagram-note{flex:0 0 auto;margin:var(--s-3) var(--s-4)}@media(prefers-reduced-motion:no-preference){.diagram-dialog[open]{animation:diagram-dialog-in .16s var(--ease)}}@keyframes diagram-dialog-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
