@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-ext-500-normal.DakdToA3.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-500-normal.D0aIdm-b.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-latin-700-normal.Bxkt5Cjx.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-700-normal.Bth3BMcD.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-latin-ext-700-normal.aMgXseD4.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-700-normal.DZH6Xh-4.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-ext-400-normal.Bc8Ftmh3.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-ext-400-normal.fXTG6kC5.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-ext-500-normal.Cut-4mMH.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-ext-500-normal.ckzbgY84.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/jetbrains-mono-latin-700-normal.BYuf6tUa.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-700-normal.D3wTyLJW.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/jetbrains-mono-latin-ext-700-normal.CZipNAKV.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-ext-700-normal.CxPITLHs.woff)format("woff")}:root{color-scheme:dark;--bg:#0b0d10;--bg-raised:#0e1115;--surface:#12161c;--border:#232a33;--border-strong:#3a4552;--text:#e6edf3;--muted:#9aa7b4;--accent:#f05138;--accent-hover:#ff7a5c;--green:#7ee787;--amber:#e3b341;--syn-keyword:#fc5fa3;--syn-type:#5dd8ff;--syn-string:#fc8a7d;--syn-func:#67b7a4;--syn-comment:#7f8c98;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius:14px;--radius-sm:10px;--container:1200px;--gutter:clamp(16px, 4vw, 32px)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}img{max-width:100%;height:auto;display:block}a{color:var(--accent)}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,h3{letter-spacing:-.03em;margin:0;font-weight:700;line-height:1.1}p{margin:0}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.mono{font-family:var(--font-mono)}.muted{color:var(--muted)}.accent{color:var(--accent)}.eyebrow{font-family:var(--font-mono);color:var(--green);font-size:13px}.section{padding-block:clamp(64px,9vw,96px)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:32px;display:flex}.section-head h2{margin-top:10px;font-size:clamp(32px,4vw,42px)}.band{background:var(--bg-raised);border-block:1px solid var(--border)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.btn{border-radius:var(--radius-sm);min-height:48px;font-family:var(--font-sans);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-size:16px;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--accent);color:var(--bg)}.btn-primary:hover{background:var(--accent-hover);color:var(--bg)}.btn-light{background:var(--text);color:var(--bg)}.btn-light:hover{color:var(--bg);background:#fff}.btn-ghost{border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover{border-color:var(--muted);color:var(--text)}.btn-row{flex-wrap:wrap;gap:12px;display:flex}.link-arrow{font-family:var(--font-mono);font-size:14px;text-decoration:none}.tag{font-family:var(--font-mono);border:1px solid var(--border-strong);color:var(--muted);overflow-wrap:anywhere;border-radius:6px;max-width:100%;padding:5px 10px;font-size:12px;line-height:1.35;display:inline-block}.tag-green{color:var(--green);border-color:#2f5a36}.tag-amber{color:var(--amber);border-color:#5a4a2f}.tag-accent{color:var(--accent);border-color:#6b2c22}.arrow-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.arrow-list li{gap:10px;display:flex}.arrow-list li:before{content:"→";font-family:var(--font-mono);color:var(--green);flex-shrink:0}.prose{max-width:720px}.prose h2{margin:48px 0 16px;font-size:28px}.prose h3{letter-spacing:-.01em;margin:32px 0 12px;font-size:21px}.prose p,.prose ul,.prose ol{color:#c9d3dc;margin:0 0 18px}.prose ul,.prose ol{padding-left:22px}.prose li{margin-bottom:8px}.prose strong{color:var(--text)}.prose code{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:.9em}.photo{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);overflow:hidden}.photo img{object-fit:cover;object-position:center 30%;width:100%;height:100%}.skip-link{z-index:10;background:var(--accent);color:var(--bg);border-radius:var(--radius-sm);padding:10px 16px;font-weight:600;text-decoration:none;position:absolute;top:-60px;left:16px}.skip-link:focus{top:16px}.diagram{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);margin:28px 0 36px;padding:clamp(18px,4cqi,28px);container-type:inline-size}.diagram figcaption{font-family:var(--font-mono);color:var(--muted);margin-top:20px;font-size:12px}.site-header[data-astro-cid-wpvy4v7s]{border-bottom:1px solid var(--border)}.nav[data-astro-cid-wpvy4v7s]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding-block:18px;display:flex}.brand[data-astro-cid-wpvy4v7s]{color:var(--text);font-size:16px;font-weight:700;text-decoration:none}.cursor[data-astro-cid-wpvy4v7s]{animation:1.1s step-end infinite blink}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor[data-astro-cid-wpvy4v7s]{animation:none}}.links[data-astro-cid-wpvy4v7s]{flex-wrap:wrap;align-items:center;gap:4px 20px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{color:var(--muted);padding-block:10px;text-decoration:none;display:inline-block}.links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:hover,.links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s][aria-current=page]{color:var(--text)}.links[data-astro-cid-wpvy4v7s] .cta[data-astro-cid-wpvy4v7s]{border:1px solid var(--accent);color:var(--accent);border-radius:8px;padding:10px 16px}.links[data-astro-cid-wpvy4v7s] .cta[data-astro-cid-wpvy4v7s]:hover{color:var(--accent-hover);border-color:var(--accent-hover)}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--border)}.inner[data-astro-cid-jo6i4kqk]{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;padding-block:32px;font-size:13px;display:flex}ul[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;gap:8px 20px;margin:0;padding:0;list-style:none;display:flex}a[data-astro-cid-jo6i4kqk]{color:var(--muted)}a[data-astro-cid-jo6i4kqk]:hover{color:var(--text)}.scroll-top[data-astro-cid-dzirtioc]{right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));z-index:20;border:1px solid var(--border-strong);-webkit-backdrop-filter:blur(8px);width:48px;height:48px;color:var(--text);cursor:pointer;opacity:0;visibility:hidden;background:#12161cd9;border-radius:12px;place-items:center;transition:opacity .2s,transform .2s,visibility 0s linear .2s,border-color .15s,color .15s;display:grid;position:fixed;transform:translateY(12px);box-shadow:0 10px 30px #0006}.scroll-top[data-astro-cid-dzirtioc].visible{opacity:1;visibility:visible;transition-delay:0s;transform:none}.scroll-top[data-astro-cid-dzirtioc]:hover{border-color:var(--accent);color:var(--accent)}.scroll-top[data-astro-cid-dzirtioc]:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:-1px}.scroll-top[data-astro-cid-dzirtioc].visible:after{animation:2.4s ease-out infinite scroll-top-pulse}.scroll-top[data-astro-cid-dzirtioc]:hover:after,.scroll-top[data-astro-cid-dzirtioc]:focus-visible:after{animation:none}@keyframes scroll-top-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 60%, transparent)}70%,to{box-shadow:0 0 0 12px color-mix(in srgb, var(--accent) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.scroll-top[data-astro-cid-dzirtioc]{transition:none}.scroll-top[data-astro-cid-dzirtioc].visible:after{animation:none}}
