.line-clamp-1[data-astro-cid-otpdt6jm]{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-2[data-astro-cid-otpdt6jm]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}:root{--mermaid-node-bg: #f8fafc;--mermaid-node-border: #475569;--mermaid-node-text: #0f172a;--mermaid-primary-bg: #0d9488;--mermaid-secondary-bg: #14b8a6;--mermaid-tertiary-bg: #2dd4bf;--mermaid-warning-bg: #0f766e;--mermaid-danger-bg: #115e59;--mermaid-neutral-bg: #475569;--mermaid-dark-bg: #1e293b;--mermaid-cluster-bg: #fefefe;--mermaid-cluster-border: #64748b;--mermaid-edge-color: #334155}:root.dark{--mermaid-node-bg: #1e293b;--mermaid-node-border: #64748b;--mermaid-node-text: #f1f5f9;--mermaid-primary-bg: #2dd4bf;--mermaid-secondary-bg: #5eead4;--mermaid-tertiary-bg: #99f6e4;--mermaid-warning-bg: #14b8a6;--mermaid-danger-bg: #0d9488;--mermaid-neutral-bg: #64748b;--mermaid-dark-bg: #94a3b8;--mermaid-cluster-bg: #334155;--mermaid-cluster-border: #64748b;--mermaid-edge-color: #cbd5e1}.mermaid svg,svg[id^=mermaid-],svg.mermaid{color-scheme:light dark}.mermaid rect,svg[id^=mermaid-] rect,.mermaid polygon,svg[id^=mermaid-] polygon{fill:var(--mermaid-node-bg)!important;stroke:var(--mermaid-node-border)!important;stroke-width:2px!important}svg[id^=mermaid-] g.node:nth-child(1) rect,svg[id^=mermaid-] g.node:nth-child(1) polygon{fill:var(--mermaid-primary-bg)!important}svg[id^=mermaid-] g.node:nth-child(2) rect,svg[id^=mermaid-] g.node:nth-child(2) polygon{fill:var(--mermaid-secondary-bg)!important}svg[id^=mermaid-] g.node:nth-child(3) rect,svg[id^=mermaid-] g.node:nth-child(3) polygon{fill:var(--mermaid-tertiary-bg)!important}svg[id^=mermaid-] g.node:nth-child(4) rect,svg[id^=mermaid-] g.node:nth-child(4) polygon{fill:var(--mermaid-warning-bg)!important}svg[id^=mermaid-] g.node:nth-child(5) rect,svg[id^=mermaid-] g.node:nth-child(5) polygon{fill:var(--mermaid-danger-bg)!important}svg[id^=mermaid-] g.node:nth-child(6) rect,svg[id^=mermaid-] g.node:nth-child(6) polygon{fill:var(--mermaid-neutral-bg)!important}svg[id^=mermaid-] g.node:nth-child(7) rect,svg[id^=mermaid-] g.node:nth-child(7) polygon{fill:var(--mermaid-primary-bg)!important}svg[id^=mermaid-] g.node:nth-child(8) rect,svg[id^=mermaid-] g.node:nth-child(8) polygon{fill:var(--mermaid-secondary-bg)!important}svg[id^=mermaid-] g.node:nth-child(1) text{fill:#fff!important;color:#fff!important}svg[id^=mermaid-] g.node:nth-child(2) text{fill:#fff!important;color:#fff!important}svg[id^=mermaid-] g.node:nth-child(3) text{fill:var(--mermaid-node-text)!important;color:var(--mermaid-node-text)!important}svg[id^=mermaid-] g.node:nth-child(4) text{fill:#fff!important;color:#fff!important}svg[id^=mermaid-] g.node:nth-child(5) text{fill:#fff!important;color:#fff!important}svg[id^=mermaid-] g.node:nth-child(6) text{fill:#fff!important;color:#fff!important}svg[id^=mermaid-] g.node:nth-child(7) text{fill:#fff!important;color:#fff!important}svg[id^=mermaid-] g.node:nth-child(8) text{fill:#fff!important;color:#fff!important}.mermaid text,svg[id^=mermaid-] text,.mermaid .nodeLabel,svg[id^=mermaid-] .nodeLabel{fill:var(--mermaid-node-text)!important;color:var(--mermaid-node-text)!important}.mermaid .node.val1 rect,.mermaid .node.bluebox rect,svg[id^=mermaid-] .node.val1 rect,svg[id^=mermaid-] .node.bluebox rect,svg[id^=mermaid-] rect.val1,svg[id^=mermaid-] rect.bluebox{fill:var(--mermaid-primary-bg)!important;stroke:var(--mermaid-node-border)!important}.mermaid .node.val1 text,.mermaid .node.bluebox text,svg[id^=mermaid-] .node.val1 text,svg[id^=mermaid-] .node.bluebox text{fill:#fff!important;color:#fff!important}.mermaid .node.val2 rect,.mermaid .node.orangebox rect,svg[id^=mermaid-] .node.val2 rect,svg[id^=mermaid-] .node.orangebox rect,svg[id^=mermaid-] rect.val2,svg[id^=mermaid-] rect.orangebox{fill:var(--mermaid-secondary-bg)!important;stroke:var(--mermaid-node-border)!important}.mermaid .node.val2 text,.mermaid .node.orangebox text,svg[id^=mermaid-] .node.val2 text,svg[id^=mermaid-] .node.orangebox text{fill:#fff!important;color:#fff!important}.mermaid .node.val3 rect,svg[id^=mermaid-] .node.val3 rect,svg[id^=mermaid-] rect.val3{fill:var(--mermaid-tertiary-bg)!important;stroke:var(--mermaid-node-border)!important}.mermaid .node.val3 text,svg[id^=mermaid-] .node.val3 text{fill:var(--mermaid-node-text)!important;color:var(--mermaid-node-text)!important}.mermaid .node.pill1 rect,svg[id^=mermaid-] .node.pill1 rect,svg[id^=mermaid-] rect.pill1{fill:var(--mermaid-secondary-bg)!important;stroke:var(--mermaid-node-border)!important}.mermaid .node.pill2 rect,svg[id^=mermaid-] .node.pill2 rect,svg[id^=mermaid-] rect.pill2{fill:var(--mermaid-tertiary-bg)!important;stroke:var(--mermaid-node-border)!important}.mermaid .node.pill3 rect,svg[id^=mermaid-] .node.pill3 rect,svg[id^=mermaid-] rect.pill3{fill:var(--mermaid-danger-bg)!important;stroke:var(--mermaid-node-border)!important}.mermaid .cluster rect,svg[id^=mermaid-] .cluster rect,.mermaid g.cluster rect,svg[id^=mermaid-] g.cluster rect{fill:var(--mermaid-cluster-bg)!important;stroke:var(--mermaid-cluster-border)!important;stroke-width:2px!important}.mermaid .edgePath path,.mermaid .flowchart-link,svg[id^=mermaid-] .edgePath path,svg[id^=mermaid-] .flowchart-link,svg[id^=mermaid-] path.relation{stroke:var(--mermaid-edge-color)!important;stroke-width:2px!important}.mermaid .edgeLabel,svg[id^=mermaid-] .edgeLabel{background-color:var(--mermaid-node-bg)!important;color:var(--mermaid-node-text)!important}.mermaid .edgeLabel rect,svg[id^=mermaid-] .edgeLabel rect{fill:var(--mermaid-node-bg)!important;stroke:var(--mermaid-node-border)!important}.mermaid defs marker path,svg[id^=mermaid-] defs marker path{fill:var(--mermaid-edge-color)!important;stroke:var(--mermaid-edge-color)!important}@media(prefers-color-scheme:dark){:root:not(.light){--mermaid-node-bg: #1e293b;--mermaid-node-border: #64748b;--mermaid-node-text: #f1f5f9;--mermaid-primary-bg: #2dd4bf;--mermaid-secondary-bg: #5eead4;--mermaid-tertiary-bg: #99f6e4;--mermaid-warning-bg: #14b8a6;--mermaid-danger-bg: #0d9488;--mermaid-neutral-bg: #64748b;--mermaid-dark-bg: #94a3b8;--mermaid-cluster-bg: #334155;--mermaid-cluster-border: #64748b;--mermaid-edge-color: #cbd5e1}}:root{--accent: #0d9488;--accent-light: #2dd4bf;--accent-dark: #0f766e}*{margin:0;padding:0;box-sizing:border-box}html{font-family:Inter,system-ui,sans-serif;scroll-behavior:smooth}body{line-height:1.5}img{max-width:100%;height:auto}.fade-in{animation:fadeIn .5s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.slide-up{animation:slideUp .3s ease-in-out}@keyframes slideUp{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}
