:root{--dgm-paper: #f3ece2;--dgm-paper-2: #fbf7f0;--dgm-paper-line: #e2d8c8;--dgm-ink: #2b2722;--dgm-muted: #675e4f;--dgm-navy: #1d3557;--dgm-navy-soft: #2c4a78;--dgm-amber: #e9b96a;--dgm-step: #e8dfce;--dgm-step-bd: #d8ccb6;--dgm-step-ink: #4a443b;--dgm-warm: #f5e2d3;--dgm-warm-bd: #e35a2c;--dgm-warm-ink: #a8431a;--dgm-good: #dcebd4;--dgm-good-bd: #4f7a45;--dgm-good-ink: #356030;--dgm-gate: #1f2632;--dgm-gate-ink: #f3ece2;--dgm-gate-acc: #e9b96a}.dgm-figure{margin:var(--s-6) 0}.dgm-card{background:radial-gradient(140% 120% at 50% 0%,var(--dgm-paper-2) 0%,var(--dgm-paper) 60%);border-radius:var(--r-3);box-shadow:0 14px 40px #3e290f24,0 2px 4px #3e290f14;padding:clamp(var(--s-5),3vw,var(--s-7));overflow-x:auto}.dgm-eyebrow{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;color:var(--dgm-muted);text-transform:lowercase;text-align:center;margin-bottom:var(--s-4)}.dgm-eyebrow b{color:var(--dgm-navy);font-weight:600}.dgm-card svg.dgm{display:block;width:100%;height:auto;max-width:1080px;margin-inline:auto}.dgm-caption{margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--dgm-paper-line);font-family:var(--font-body);font-style:italic;font-size:var(--fs-sm);color:var(--dgm-ink);text-align:center;line-height:1.55;max-width:70ch;margin-inline:auto}.dgm-caption b{font-style:normal;color:var(--dgm-navy)}.dgm-card .dgm text{font-family:var(--font-mono)}:where(.dgm-card .dgm text){fill:var(--dgm-ink)}.dgm-card .dgm-box{fill:var(--dgm-paper-2);stroke:var(--dgm-navy);stroke-width:1.4}.dgm-card .dgm-box-soft{fill:var(--dgm-step);stroke:var(--dgm-step-bd);stroke-width:1.2}.dgm-card .dgm-gatebox{fill:var(--dgm-gate);stroke:none}.dgm-card .dgm-title{font-size:14px;font-weight:700;fill:var(--dgm-navy);letter-spacing:.02em}.dgm-card .dgm-sub{font-size:11px;fill:var(--dgm-muted)}.dgm-card .dgm-line{font-size:12.5px;fill:var(--dgm-step-ink)}.dgm-card .dgm-note{font-size:11px;fill:var(--dgm-muted);font-style:italic}.dgm-card .dgm-cap{font-size:13px;fill:var(--dgm-muted);letter-spacing:.02em}.dgm-card .dgm-kbd{font-size:10.5px;font-weight:700;letter-spacing:.12em}.dgm-card .dgm-gtitle{font-size:13px;font-weight:700;fill:var(--dgm-gate-acc);letter-spacing:.06em}.dgm-card .dgm-gsub{font-size:11px;fill:#c8c0b2}.dgm-card .dgm-gline{font-size:12px;fill:var(--dgm-gate-ink)}.dgm-card .dgm-n-step{fill:var(--dgm-step);stroke:var(--dgm-step-bd);stroke-width:1.2}.dgm-card .dgm-n-good{fill:var(--dgm-good);stroke:var(--dgm-good-bd);stroke-width:1.4}.dgm-card .dgm-n-warm{fill:var(--dgm-warm);stroke:var(--dgm-warm-bd);stroke-width:1.4}.dgm-card .dgm-n-amber{fill:var(--dgm-amber);stroke:#cf9a44;stroke-width:1.2}.dgm-card .dgm-ink-good{fill:var(--dgm-good-ink)}.dgm-card .dgm-ink-warm{fill:var(--dgm-warm-ink)}.dgm-card .dgm-arrow{stroke:var(--dgm-navy);stroke-width:1.6;fill:none;opacity:.75}.dgm-card .dgm-arrow-warm{stroke:var(--dgm-warm-bd);stroke-width:1.6;fill:none;opacity:.8}.dgm-card .dgm-loop{stroke:var(--dgm-warm-bd);stroke-width:1.6;stroke-dasharray:5 4;fill:none;opacity:.7}.dgm-card .dgm-div{stroke:var(--dgm-paper-line);stroke-width:1}.dgm-card .dgm-gdiv{stroke:var(--dgm-gate-acc);stroke-width:1;opacity:.4}.dgm-card .dgm-ahfill{fill:var(--dgm-navy)}.dgm-card .dgm-ahfill-warm{fill:var(--dgm-warm-bd)}.dgm-node[data-path]{cursor:help}.dgm-node[data-path] rect{transition:filter var(--t-fast) var(--ease)}.dgm-node[data-path]:hover rect,.dgm-node[data-path]:focus-visible rect{filter:brightness(.97) drop-shadow(0 1px 2px rgba(40,30,10,.18))}.dgm-node[data-path]:focus-visible{outline:2px solid var(--dgm-navy);outline-offset:2px;border-radius:4px}.dgm-callout{position:fixed;z-index:60;max-width:360px;padding:7px 11px;background:var(--dgm-gate);color:var(--dgm-gate-ink);border-radius:var(--r-2);box-shadow:0 8px 24px #14141e47;font-family:var(--font-mono);font-size:var(--fs-xs);line-height:1.4;pointer-events:none;opacity:0;transform:translateY(3px)}.dgm-callout.is-on{opacity:1;transform:translateY(0)}.dgm-callout .dgm-callout-label{color:var(--dgm-gate-acc);display:block;font-size:10px;letter-spacing:.08em;margin-bottom:2px}@media(prefers-reduced-motion:reduce){.dgm-callout{transition:none;transform:none}.dgm-node[data-path] rect{transition:none}}
