@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/bricolage-grotesque.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/dm-sans.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-heading: "Bricolage Grotesque", sans-serif;--font-body: "DM Sans", sans-serif;--max: 720px;--bg: #fafaf9;--surface: #fff;--text: #2c292d;--muted: #736e73;--rule: #e5e5e5;--border: #e5e5e5;--accent: #006e8a;--accent-hover: #005570;--on-accent: #fff;--danger: #b01040;--primary: var(--accent);--primary-hover: var(--accent-hover);--on-primary: var(--on-accent);--badge-cloud: #006e8a;--badge-cloud-bg: rgba(0, 110, 138, .1);--badge-ai: #4a7a00;--badge-ai-bg: rgba(74, 122, 0, .1);--badge-lang: #b05200;--badge-lang-bg: rgba(176, 82, 0, .1);--badge-arch: #5a3d9c;--badge-arch-bg: rgba(90, 61, 156, .1);--badge-lead: #7a5a00;--badge-lead-bg: rgba(122, 90, 0, .1);--badge-ux: #b01040;--badge-ux-bg: rgba(176, 16, 64, .1)}@media(prefers-color-scheme:dark){:root{--bg: #19181a;--surface: #2d2a2e;--text: #fcfcfa;--muted: #848085;--rule: #403e41;--border: #403e41;--accent: #78dce8;--accent-hover: #60cfe2;--on-accent: #19181a;--danger: #ff6188;--badge-cloud: #78dce8;--badge-cloud-bg: rgba(120, 220, 232, .12);--badge-ai: #a9dc76;--badge-ai-bg: rgba(169, 220, 118, .12);--badge-lang: #fc9867;--badge-lang-bg: rgba(252, 152, 103, .12);--badge-arch: #ab9df2;--badge-arch-bg: rgba(171, 157, 242, .12);--badge-lead: #ffd866;--badge-lead-bg: rgba(255, 216, 102, .12);--badge-ux: #ff6188;--badge-ux-bg: rgba(255, 97, 136, .12)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:17px;scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-weight:400;line-height:1.75;padding:0 1.5rem 5rem;opacity:0;animation:fadein .8s ease forwards}@keyframes fadein{to{opacity:1}}.wrap{max-width:var(--max);margin:0 auto}a{color:var(--accent);text-decoration:none}.skip-link{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--on-accent);padding:.5rem 1rem;border-radius:0 0 .3rem;z-index:200}.skip-link:focus{left:0}.label{font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:1.5rem}.prose{font-size:1.05rem;line-height:1.8}.prose h2,.prose h3,.prose h4{font-family:var(--font-heading);line-height:1.2;letter-spacing:-.02em;color:var(--text)}.prose h2{font-size:1.7rem;font-weight:700;margin:2.75rem 0 1rem}.prose h3{font-size:1.3rem;font-weight:600;margin:2.25rem 0 .75rem}.prose h4{font-size:1.1rem;font-weight:600;margin:1.75rem 0 .5rem}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table{margin:0 0 1.25rem}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin-bottom:.4rem}.prose a{color:var(--accent);border-bottom:1px solid var(--rule);transition:color .2s,border-color .2s}.prose a:hover{border-color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent);padding-left:1.1rem;color:var(--muted);font-style:italic}.prose img{max-width:100%;height:auto;border-radius:.5rem;display:block}.prose hr{border:none;border-top:1px solid var(--rule);margin:2.5rem 0}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:color-mix(in srgb,var(--muted) 14%,transparent);padding:.15em .4em;border-radius:.3rem}.prose pre{background:var(--surface);border:1px solid var(--rule);border-radius:.6rem;padding:1rem 1.1rem;overflow-x:auto}.prose pre code{background:none;padding:0;font-size:.85rem}.prose pre.mermaid{background:none;border:none;padding:0;margin:1.75rem 0;text-align:center;line-height:normal;overflow-x:auto}.prose pre.mermaid:not([data-processed]){visibility:hidden}.prose pre.mermaid svg{max-width:100%;height:auto}.site-header[data-astro-cid-3ef6ksr2]{border-bottom:1px solid var(--rule)}.header-inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem 2rem;flex-wrap:wrap;padding:2rem 0 1.5rem}.brand[data-astro-cid-3ef6ksr2]{font-family:var(--font-heading);font-weight:800;font-size:1.5rem;letter-spacing:-.03em;color:var(--text)}.brand-slash[data-astro-cid-3ef6ksr2]{color:var(--accent);margin:0 .1em}nav[data-astro-cid-3ef6ksr2]{display:flex;gap:1.4rem;flex-wrap:wrap}.nav-link[data-astro-cid-3ef6ksr2]{font-size:.8rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);transition:color .2s}.nav-link[data-astro-cid-3ef6ksr2]:hover,.nav-link[data-astro-cid-3ef6ksr2].active{color:var(--accent)}footer[data-astro-cid-sz7xmlte]{padding:3rem 0;margin-top:2rem;border-top:1px solid var(--rule);font-size:.78rem;color:var(--muted);display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.35rem}footer[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--muted);transition:color .2s}footer[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}.sep[data-astro-cid-sz7xmlte]{opacity:.6}.footer-signature[data-astro-cid-sz7xmlte]{width:1.15rem;height:1.4rem;color:var(--muted);fill:currentColor;flex-shrink:0;opacity:.6;margin-right:.5rem}
