.diagram-figure{display:block;margin:0 0 24px;padding:20px 20px 16px;border:1px solid var(--color-border,var(--border));border-radius:8px;background:oklch(.14 .008 60);box-shadow:inset 0 0 0 1px oklch(.93 .008 80/.02),0 24px 48px -36px oklch(0 0 0/.6)}.diagram-svg{width:100%;height:auto;display:block;font-family:var(--font-sans);color:var(--text-muted)}.diagram-caption{margin-top:10px;font-family:var(--font-serif);font-style:italic;font-size:13.5px;color:var(--text-dim);text-align:center;letter-spacing:-.01em}.diagram-node{transition:opacity .18s var(--ease)}.diagram-node-shape{stroke-width:1;transition:fill .2s var(--ease),stroke .2s var(--ease),filter .2s var(--ease)}.diagram-node-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:-.005em;fill:var(--text);pointer-events:none}.diagram-node-sublabel{font-family:var(--font-mono);font-size:10px;letter-spacing:.02em;fill:var(--text-dim);pointer-events:none}.diagram-node-default .diagram-node-shape{fill:var(--surface);stroke:var(--border)}.diagram-node-accent .diagram-node-shape{fill:var(--accent-soft);stroke:oklch(.68 .17 300/.5)}.diagram-node-accent .diagram-node-label{fill:var(--accent-hover)}.diagram-node-danger .diagram-node-shape{fill:oklch(.66 .17 25/.12);stroke:oklch(.66 .17 25/.45)}.diagram-node-danger .diagram-node-label{fill:oklch(.82 .14 25)}.diagram-node-warning .diagram-node-shape{fill:oklch(.76 .12 75/.1);stroke:oklch(.76 .12 75/.4)}.diagram-node-warning .diagram-node-label{fill:oklch(.86 .12 75)}.diagram-node-ghost .diagram-node-shape{fill:transparent;stroke:var(--border-soft);stroke-dasharray:3 3}.diagram-node-ghost .diagram-node-label{fill:var(--text-dim)}.diagram-node-link{cursor:pointer;outline:none}.diagram-node-link:focus-visible .diagram-node-shape{stroke:var(--accent);stroke-width:1.5;filter:drop-shadow(0 0 10px oklch(.68 .17 300/.35))}.diagram-node-link:hover .diagram-node-shape,.diagram-node:hover .diagram-node-shape{filter:brightness(1.15);stroke:var(--accent)}.diagram-edge{color:var(--border)}.diagram-edge-path{stroke:var(--border);stroke-width:1.25;transition:stroke .18s var(--ease),stroke-width .18s var(--ease),opacity .18s var(--ease)}.diagram-edge-dashed .diagram-edge-path{stroke-dasharray:5 4}.diagram-edge-accent{color:var(--accent)}.diagram-edge-accent .diagram-edge-path{stroke:var(--accent)}.diagram-edge-danger{color:oklch(.66 .17 25/.75)}.diagram-edge-danger .diagram-edge-path{stroke:oklch(.66 .17 25/.75)}.diagram-edge-muted .diagram-edge-path{stroke:var(--border-soft);opacity:.75}.diagram-edge-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.01em;fill:var(--text-muted);pointer-events:none}.diagram-edge-label-bg{fill:oklch(.14 .008 60);stroke:var(--border-soft);stroke-width:.75}.diagram-svg:has(.diagram-node-link:hover) .diagram-edge,.diagram-svg:has(.diagram-node-link:hover) .diagram-edge:not([data-from]):not([data-to]){opacity:.35}.diagram-svg:has(.diagram-node:hover) .diagram-edge{opacity:.3}.diagram-svg:has(.diagram-node[data-node-id]:hover) .diagram-edge{opacity:.3}.diagram-group-shape{fill:oklch(.93 .008 80/.015);stroke:var(--border-soft);stroke-width:1;stroke-dasharray:4 4}.diagram-group-title{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;fill:var(--text-dim)}.diagram-annotation{pointer-events:none}.diagram-annotation-note{font-family:var(--font-serif);font-style:italic;font-size:13px;fill:var(--text-dim)}.diagram-annotation-caption{font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;fill:var(--text-faint);text-transform:uppercase}.diagram-annotation-rule{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.02em;fill:var(--accent)}.mermaid-diagram-wrapper{margin:0 0 24px;padding:20px;border:1px solid var(--color-border,var(--border));border-radius:8px;background:oklch(.14 .008 60);overflow-x:auto}.mermaid-diagram-wrapper svg{max-width:100%;height:auto;display:block;margin:0 auto}.mermaid-diagram-empty{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);text-align:center;padding:40px}.diagram-frame{position:relative}.diagram-frame.diagram-frame-open{visibility:hidden}.diagram-frame-trigger{position:absolute;top:10px;right:10px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:6px;border:1px solid var(--border-soft);background:oklch(.18 .008 60/.6);color:var(--text-muted);cursor:pointer;opacity:.45;transition:opacity .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease),background .18s var(--ease),transform .18s var(--ease);z-index:2;-webkit-tap-highlight-color:transparent}@media (hover:none){.diagram-frame-trigger{opacity:.7}}.diagram-frame:focus-within .diagram-frame-trigger,.diagram-frame:hover .diagram-frame-trigger{opacity:1}.diagram-frame-trigger:hover{color:var(--text);border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.diagram-frame-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px;opacity:1}.diagram-frame-scrim{position:fixed;inset:0;z-index:1000;background:oklch(.08 .005 60/.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:max(clamp(12px,3vw,32px),env(safe-area-inset-top)) clamp(12px,3vw,32px) max(clamp(12px,3vw,32px),env(safe-area-inset-bottom))}.diagram-frame-stage-wrap{width:min(92vw,1400px);height:min(88vh,920px);height:min(88dvh,920px);display:flex;flex-direction:column;background:oklch(.14 .008 60);border:1px solid var(--border);border-radius:12px;box-shadow:inset 0 0 0 1px oklch(.93 .008 80/.03),0 40px 80px -36px oklch(0 0 0/.7);overflow:hidden}.diagram-frame-stage-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--border-soft);background:oklch(.13 .008 60)}.diagram-frame-stage-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.diagram-frame-close{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:6px;border:1px solid var(--border-soft);background:transparent;color:var(--text-muted);cursor:pointer;transition:color .18s var(--ease),border-color .18s var(--ease),background .18s var(--ease)}.diagram-frame-close:hover{color:var(--text);border-color:var(--border);background:oklch(.18 .008 60/.6)}.diagram-frame-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.diagram-frame-stage{flex:1 1 auto;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;padding:clamp(16px,2.5vw,40px);overflow:hidden;background:radial-gradient(ellipse at center,oklch(.155 .008 60) 0,oklch(.13 .008 60) 70%)}.diagram-frame-stage-pannable{cursor:grab;touch-action:none}.diagram-frame-stage-pannable:active{cursor:grabbing}.diagram-frame-stage-drag{display:flex;align-items:center;justify-content:center}.diagram-frame-stage .diagram-svg{width:100%;height:100%;max-width:100%;max-height:100%}.diagram-frame-stage-mermaid{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.diagram-frame-stage-mermaid>div>svg,.diagram-frame-stage-mermaid>svg{max-width:100%;max-height:100%;display:block}.diagram-frame-stage-caption{padding:12px 20px 16px;border-top:1px solid var(--border-soft);text-align:center;font-family:var(--font-serif);font-style:italic;font-size:14px;color:var(--text-dim);background:oklch(.13 .008 60)}@media (prefers-reduced-motion:reduce){.diagram-frame-trigger{transition:opacity .08s linear}.diagram-frame-trigger:hover{transform:none}.diagram-frame-scrim{backdrop-filter:blur(4px)}}.diagram-preview-shell{max-width:1080px;margin:0 auto;padding:48px 32px 120px;font-family:var(--font-sans)}.diagram-preview-kicker{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.diagram-preview-title{font-family:var(--font-serif);font-weight:300;font-style:italic;font-size:clamp(2rem,3vw + 1rem,3rem);letter-spacing:-.025em;line-height:1.05;margin:0 0 12px}.diagram-preview-lead{font-size:15px;color:var(--text-muted);max-width:64ch;line-height:1.65;margin:0 0 48px}.diagram-preview-section{margin-bottom:56px}.diagram-preview-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--border-soft)}.diagram-preview-section-title{font-family:var(--font-serif);font-size:1.25rem;font-weight:400;color:var(--text)}.diagram-preview-section-meta{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);letter-spacing:.04em}.diagram-preview-placeholder{display:flex;flex-direction:column;gap:6px;padding:28px;border:1px dashed var(--border-soft);border-radius:8px;background:oklch(.14 .008 60/.4);color:var(--text-dim);font-size:13px;font-family:var(--font-mono);min-height:120px;justify-content:center;align-items:flex-start}.diagram-preview-placeholder strong{font-family:var(--font-sans);color:var(--text-muted);font-size:14px;font-weight:500}