:root{color-scheme:dark;--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--bg: #0a0a0a;--bg-subtle: #0d1117;--bg-elevated: #161b22;--glass: rgba(13, 17, 23, 0.85);--ink: #e6edf3;--ink-body: #c9d1d9;--ink-soft: #a9b4bf;--ink-muted: #8b949e;--rule: #30363d;--rule-subtle: #21262d;--rule-tag: #1f3d2a;--rule-strong: #484f58;--brand: #1cb900;--term: #22c55e;--glow: #4ade80;--info: #58a6ff;--warn: #f5c46b;--accent: var(--term);--accent-hover: #86efac;--accent-soft: rgba(34, 197, 94, 0.12);--accent-ink: #0a0a0a;--selection: #15803d;--focus: #4ade80;--code-bg: #0d1117;--code-border: #30363d;--shadow: 0 16px 40px rgba(0, 0, 0, 0.6);--ground: #0f2e18;--ground-rule: #15803d;--glow-sm: 0 0 4px rgb(74 222 128 / 0.5);--glow-md: 0 0 8px rgb(74 222 128 / 0.55), 0 0 28px rgb(28 185 0 / 0.35);--glow-cta: 0 0 24px rgb(28 185 0 / 0.4);--glow-panel: 0 0 40px rgb(34 197 94 / 0.12);--glow-mark: 0 0 6px rgb(74 222 128 / 0.6);--glow-mark-box: 0 0 14px rgb(34 197 94 / 0.18);--ease-term: cubic-bezier(0.2, 0.8, 0.2, 1);--dur-fast: 120ms;--dur-base: 240ms;--container: 1200px;--measure: 860px;--gutter: clamp(16px, 4vw, 40px);--dg-bg: transparent;--dg-node-bg: #0d1117;--dg-node-border: #30363d;--dg-text: #e6edf3;--dg-muted: #8b949e;--dg-edge: #8b949e;--dg-label-halo: #0a0a0a;--dg-group-bg: #0d1117;--dg-group-border: #30363d;--dg-neutral: #8b949e;--dg-blue: #58a6ff;--dg-violet: #b7a1ff;--dg-green: #22c55e;--dg-amber: #f5c46b;--dg-red: #f85149;--dg-cyan: #7fe0e0;--dg-pink: #f3a0c8}*,*::before,*::after{box-sizing:border-box}html{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul,ol{margin:0;padding:0}ul{list-style:none}img,svg{max-width:100%}button,input{font:inherit}button{cursor:pointer}a,button{touch-action:manipulation}a{color:inherit}::selection{background:var(--selection);color:var(--ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms !important;scroll-behavior:auto !important}}html{background:var(--bg)}body{position:relative;display:flex;flex-direction:column;min-height:100vh;min-height:100svh;overflow-x:clip;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-sans);overflow-wrap:break-word;text-wrap:balance}h1,h2{font-weight:700}h3,h4{font-weight:600}h4{line-height:1.3}p{text-wrap:pretty}a{text-decoration-thickness:1px;text-underline-offset:.2em}main{flex:1;animation:page-fade var(--dur-base) var(--ease-term)}@keyframes page-fade{from{opacity:0}}@keyframes caret-blink{50%{opacity:0}}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-right:max(var(--gutter),env(safe-area-inset-right));padding-left:max(var(--gutter),env(safe-area-inset-left))}.skip-link{position:fixed;top:12px;left:12px;z-index:100;padding:10px 14px;border:1px solid var(--brand);background:var(--brand);color:var(--accent-ink);font-family:var(--font-mono);font-size:12px;text-decoration:none;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.eyebrow{color:var(--term);font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;line-height:1.4;text-transform:uppercase}.highlight{color:var(--glow);text-shadow:var(--glow-md)}.caret{color:var(--glow);font-weight:400;animation:caret-blink 1.06s steps(1) infinite}.prompt{color:var(--ink-muted);font-family:var(--font-mono);font-size:13px}.prompt__host{color:var(--term)}.mark{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--term);color:var(--glow);font-family:var(--font-mono);font-size:15px;font-weight:700;text-shadow:var(--glow-mark);box-shadow:var(--glow-mark-box)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:15px 22px;border:1px solid rgba(0,0,0,0);background:var(--brand);color:var(--accent-ink);font-family:var(--font-mono);font-size:14px;font-weight:700;line-height:1.2;text-decoration:none;box-shadow:var(--glow-cta);transition:background-color var(--dur-fast) var(--ease-term),border-color var(--dur-fast) var(--ease-term),color var(--dur-fast) var(--ease-term)}.button:hover{background:var(--term)}.button--ghost{border-color:var(--rule);background:rgba(10,10,10,.8);color:var(--ink);font-weight:400;box-shadow:none}.button--ghost:hover{border-color:var(--term);background:rgba(10,10,10,.8);color:var(--glow)}.button--small{padding:12px 16px;font-size:13px;box-shadow:none}.button-row{display:flex;flex-wrap:wrap;gap:12px}::selection{background:var(--selection);color:var(--ink)}.text-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding-block:12px;color:var(--glow);font-family:var(--font-mono);font-size:14px;line-height:1.4;text-decoration:none;transition:color var(--dur-fast) var(--ease-term)}.text-link:hover{color:var(--accent-hover)}.text-link--quiet{color:var(--ink-body)}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag{position:relative;border:1px solid var(--rule-tag);padding:3px 8px;color:var(--glow);font-family:var(--font-mono);font-size:12px;line-height:1.6;text-decoration:none;transition:border-color var(--dur-fast) var(--ease-term)}a.tag::before{content:"";position:absolute;inset:-9px 0}a.tag:hover{border-color:var(--term)}.tag-cloud{display:flex;flex-wrap:wrap;gap:8px;padding-block:20px 28px}.tag-cloud li{display:flex;align-items:center;gap:10px;min-height:44px;border:1px solid var(--rule);background:var(--glass);padding:8px 14px;transition:border-color var(--dur-fast) var(--ease-term)}.tag-cloud li:hover{border-color:var(--term)}.tag-cloud a{color:var(--ink-body);font-family:var(--font-mono);font-size:13px;text-decoration:none}.tag-cloud a:hover{color:var(--glow)}.tag-cloud span{color:var(--ink-muted);font-family:var(--font-mono);font-size:12px}.not-found{min-height:62vh;padding-block:clamp(64px,10vw,120px);display:flex;flex-direction:column;align-items:flex-start;gap:22px}.not-found h1{max-width:16ch;font-size:clamp(44px,6vw,72px);line-height:1.04;letter-spacing:-.03em}.not-found p:not(.eyebrow){max-width:560px;color:var(--ink-soft);font-size:18px;line-height:30px}@media (prefers-reduced-motion: reduce){main,.caret{animation:none}}.sky{position:absolute;inset:0;z-index:0;background-image:radial-gradient(ellipse 70% 40% at 50% 0%, rgba(28,185,0,.07), rgba(0,0,0,0) 70%);background-size:100% min(100%,1600px);background-repeat:no-repeat;pointer-events:none}.sky__canvas{position:sticky;top:0;display:block;width:100%;height:100vh;max-height:100%}.site-header,main,.site-footer{position:relative;z-index:1}.site-header{padding-top:env(safe-area-inset-top);border-bottom:1px solid var(--rule-subtle);background:rgba(10,10,10,.72)}.site-header__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-block:16px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.brand__text{display:flex;flex-direction:column;gap:2px;line-height:1.3}.brand__text strong{font-size:15px;font-weight:600}.brand__text span{color:var(--ink-muted);font-family:var(--font-mono);font-size:11px;letter-spacing:.04em}.site-nav{display:flex;flex-wrap:wrap;gap:4px}.site-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border:1px solid rgba(0,0,0,0);color:var(--ink-body);font-family:var(--font-mono);font-size:13px;text-decoration:none;transition:color var(--dur-fast) var(--ease-term)}.site-nav a:hover{color:var(--glow)}.site-nav a[aria-current=page]{border-color:var(--term);color:var(--glow);text-shadow:var(--glow-sm)}.site-footer{margin-top:120px}.site-footer__art{position:relative}.site-footer__art img{display:block;width:100%;height:max(320px,41.667vw);margin-bottom:-1px;object-fit:cover;object-position:49% 100%}.site-footer__art::after{content:"";position:absolute;top:0;right:0;left:0;height:30%;background:linear-gradient(180deg, var(--bg), rgba(10,10,10,0));pointer-events:none}.site-footer__ground{padding-bottom:env(safe-area-inset-bottom);background:var(--ground)}.site-footer__inner{display:flex;flex-direction:column;gap:40px;padding-top:8px}.site-footer__grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%,280px), 1fr));gap:40px 48px}.site-footer__identity{display:flex;flex-direction:column;gap:18px}.site-footer__identity .mark{width:44px;height:44px;font-size:16px}.site-footer__identity .brand__text strong{font-size:16px}.site-footer__identity .brand__text span{color:var(--ink-soft);font-size:12px;letter-spacing:0}.site-footer__blurb{color:var(--ink-body);font-size:15px;line-height:24px}.site-footer .button--ghost{border-color:var(--ground-rule);background:rgba(0,0,0,0)}.site-map{display:flex;flex-direction:column;gap:14px}.site-map h2{color:var(--ink);font-size:15px;font-weight:600}.site-map>ul{display:flex;flex-direction:column;gap:2px;font-size:15px;line-height:22px}.site-map a{display:inline-block;padding-block:5px;color:var(--ink-body);text-decoration:none;transition:color var(--dur-fast) var(--ease-term)}.site-map a:hover{color:var(--glow)}.socials{display:flex;flex-direction:column;gap:12px}.socials h2{font-family:var(--font-mono);font-size:13px;font-weight:500;color:var(--ink-muted)}.socials ul{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:8px}.socials a{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:1px solid var(--ground-rule);background:rgba(10,10,10,.35);color:var(--ink);font-family:var(--font-mono);font-size:13px;text-decoration:none;transition:border-color var(--dur-fast) var(--ease-term)}.socials a:hover{border-color:var(--glow)}.brand-icon{flex-shrink:0;width:18px;height:18px;color:var(--glow)}.site-footer__legal{display:flex;flex-direction:column;gap:8px;padding-block:22px 32px;border-top:1px solid var(--ground-rule);color:var(--ink-muted);font-family:var(--font-mono);font-size:12px;line-height:19px}.site-footer__legal-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px}.stack{display:flex;flex-direction:column}.stack--home{gap:clamp(88px,11vw,140px)}.stack--about{gap:clamp(80px,10vw,120px)}.stack--index{gap:56px}.section{display:flex;flex-direction:column;gap:32px}.section__head{display:flex;flex-direction:column;gap:10px}.section__head h2{font-size:clamp(28px,3.4vw,40px);line-height:1.15;letter-spacing:-.02em}.section__head--row{flex-direction:row;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.section__head--row>div{display:flex;flex-direction:column;gap:10px}.section--split{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%,320px), 1fr));gap:48px;align-items:start}.card-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%,var(--card-min, 260px)), 1fr));gap:16px}.card{display:flex;flex-direction:column;gap:14px;border:1px solid var(--rule);background:var(--glass);padding:26px}.card__index{color:var(--glow);font-family:var(--font-mono);font-size:12px}.card h3{font-size:20px;line-height:1.3}.card p{color:var(--ink-soft);font-size:14px;line-height:22px}.panel{border:1px solid var(--rule);background:rgba(13,17,23,.86);font-family:var(--font-mono);font-size:13px}.panel__bar{display:flex;justify-content:space-between;gap:16px;padding:12px 18px;border-bottom:1px solid var(--rule);color:var(--ink-muted);font-size:12px}.panel__led{color:var(--term)}.callout{display:flex;flex-direction:column;align-items:flex-start;gap:24px;border:1px solid var(--term);background:rgba(13,17,23,.9);padding:clamp(32px,6vw,72px);box-shadow:var(--glow-panel)}.callout h2{max-width:820px;font-size:clamp(30px,4.4vw,52px);line-height:1.1;letter-spacing:-.02em}.callout--row{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:clamp(28px,5vw,56px)}.callout--row h2{font-size:clamp(24px,3vw,34px);line-height:1.2}.callout__text{display:flex;flex-direction:column;gap:10px;max-width:620px}.callout__text p:not(.eyebrow){color:var(--ink-soft);font-size:15px;line-height:24px}.breadcrumb{color:var(--ink-muted);font-family:var(--font-mono);font-size:13px;overflow-wrap:anywhere}.breadcrumb a{color:var(--ink-muted);text-decoration:none}.breadcrumb a:hover{color:var(--glow)}.breadcrumb [aria-current]{color:var(--ink)}.page-head{display:flex;flex-direction:column;gap:22px;max-width:820px;padding-top:clamp(64px,8vw,112px)}.page-head h1{font-size:clamp(44px,6vw,72px);line-height:1.04;letter-spacing:-.03em}.page-head__lede{color:var(--ink-soft);font-size:19px;line-height:30px}.hero{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%,320px), 1fr));gap:56px;align-items:end;padding-top:clamp(72px,10vw,140px)}.hero__main{display:flex;flex-direction:column;gap:28px;min-width:0}.hero__title{font-size:clamp(40px,6vw,76px);line-height:1.04;letter-spacing:-.03em}.hero__lede{max-width:560px;color:var(--ink-soft);font-size:18px;line-height:30px}.hero__panel{justify-self:end;width:100%;max-width:460px}.fact-list{display:grid;grid-template-columns:72px minmax(0, 1fr);gap:16px;padding:20px 18px;line-height:21px}.fact-list dt{color:var(--ink-muted)}.fact-list dd{color:var(--ink)}.fact-list dd.fact-list__value--glow{color:var(--glow)}.principle{display:flex;flex-direction:column;gap:14px;border-top:2px solid var(--term);background:rgba(13,17,23,.78);padding:26px}.principle__index{color:var(--glow);font-family:var(--font-mono);font-size:40px;font-weight:700;line-height:1.6;text-shadow:0 0 10px rgba(74,222,128,.4)}.principle h3{font-size:20px;line-height:1.3}.principle p{color:var(--ink-soft);font-size:14px;line-height:22px}.principles__title{max-width:720px}.about-intro{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%,340px), 1fr));gap:56px;align-items:start;padding-top:clamp(64px,8vw,112px)}.about-intro__text{display:flex;flex-direction:column;gap:22px;min-width:0}.about-intro h1{font-size:clamp(44px,6vw,72px);line-height:1.04;letter-spacing:-.03em}.about-intro__lede{font-size:21px;line-height:32px}.about-copy{display:flex;flex-direction:column;gap:22px;color:var(--ink-soft);font-size:17px;line-height:29px}.neofetch{line-height:22px}.neofetch__body{display:flex;flex-direction:column;gap:14px;padding:20px 18px}.neofetch__command{color:var(--ink)}.neofetch__info{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}.neofetch .mark{width:96px;height:96px;font-size:32px;box-shadow:0 0 18px rgba(34,197,94,.2)}.neofetch dl{display:grid;flex:1 1 220px;grid-template-columns:72px minmax(0, 1fr);gap:4px 14px}.neofetch dt{color:var(--glow)}.neofetch__palette{display:flex}.neofetch__palette span{width:24px;height:12px}.experience-card{display:flex;flex-direction:column;gap:20px;border:1px solid var(--rule);background:var(--glass);padding:28px}.experience-card__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px}.experience-card h3{font-size:20px;line-height:1.3}.experience-card ul{display:flex;flex-direction:column;gap:14px;color:var(--ink-body);font-size:15px;line-height:24px}.experience-card li{position:relative;padding-left:22px}.experience-card li::before{content:">";position:absolute;left:0;color:var(--term);font-family:var(--font-mono)}.experience-period{color:var(--ink-muted);font-family:var(--font-mono);font-size:14px}.cert{display:flex;gap:18px;align-items:flex-start;border:1px solid var(--rule);background:var(--glass);padding:24px}.cert__badge{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:52px;height:52px;border:1px solid var(--term);color:var(--glow)}.cert__text{display:flex;flex-direction:column;gap:6px;min-width:0;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.cert__text h3{color:var(--ink);font-family:var(--font-sans);font-size:18px;line-height:1.3}.cert__text a{color:var(--glow);text-decoration:none}.approach{display:flex;flex-direction:column;align-items:flex-start;gap:24px}.approach blockquote{align-self:stretch;border:1px solid var(--term);background:rgba(13,17,23,.9);padding:28px 32px;box-shadow:0 0 32px rgba(34,197,94,.12);font-size:clamp(24px,2.6vw,32px);font-weight:600;letter-spacing:-.01em;line-height:1.25}.elsewhere{display:flex;flex-direction:column;gap:24px;border:1px solid var(--rule);background:rgba(13,17,23,.88);padding:clamp(28px,5vw,56px)}.elsewhere h2{font-size:clamp(26px,3vw,36px);line-height:1.2;letter-spacing:-.02em}.elsewhere__links{--card-min: 240px;gap:12px}.elsewhere__links .button{justify-content:space-between;padding:18px 20px}.elsewhere__note{color:var(--ink-muted)}.post-list{display:flex;flex-direction:column;border-top:1px solid var(--rule)}.post-row{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:baseline;padding:28px 4px;border-bottom:1px solid var(--rule);background:rgba(10,10,10,.55);color:var(--ink);text-decoration:none;transition:background-color var(--dur-fast) var(--ease-term)}.post-row:hover{background:var(--accent-soft)}.post-row__meta{flex:0 0 170px;color:var(--ink-muted);font-family:var(--font-mono);font-size:13px}.post-row h3{flex:1 1 360px;min-width:0;font-size:22px;line-height:1.3}.post-card{display:flex;flex-wrap:wrap;gap:14px 40px;padding:32px 4px;border-bottom:1px solid var(--rule);background:rgba(10,10,10,.55)}.post-card[hidden]{display:none}.post-card__meta{display:flex;flex:0 0 160px;flex-direction:column;gap:6px;color:var(--ink-muted);font-family:var(--font-mono);font-size:13px}.post-card__body{display:flex;flex:1 1 420px;flex-direction:column;gap:12px;min-width:0}.post-card__title{font-size:24px;font-weight:600;line-height:1.3}.post-card__title a{color:var(--ink);text-decoration:none;transition:color var(--dur-fast) var(--ease-term)}.post-card__title a:hover{color:var(--glow)}.post-card__description{max-width:680px;color:var(--ink-soft);font-size:16px;line-height:26px}.post-card__open{align-self:flex-start;font-size:13px;overflow-wrap:anywhere}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border:1px solid var(--rule);background:rgba(13,17,23,.82)}.filter-chips{display:flex;flex-wrap:wrap;gap:8px}.filter-chips[hidden]{display:none}.filter-chip{min-height:44px;padding:10px 14px;border:1px solid var(--rule);background:rgba(13,17,23,.82);color:var(--ink-body);font-family:var(--font-mono);font-size:13px;transition:border-color var(--dur-fast) var(--ease-term),color var(--dur-fast) var(--ease-term)}.filter-chip:hover{border-color:var(--term)}.filter-chip[aria-pressed=true]{border-color:var(--term);background:var(--accent-soft);color:var(--glow);text-shadow:var(--glow-sm)}.post__header{display:flex;flex-direction:column;gap:22px;max-width:860px;padding-block:clamp(56px,7vw,96px) 48px}.post__title{font-size:clamp(38px,5.4vw,64px);line-height:1.06;letter-spacing:-.03em}.post__lede{color:var(--ink-soft);font-size:20px;line-height:31px}.post__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;color:var(--ink-muted);font-family:var(--font-mono);font-size:13px}.post__layout{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start;border-top:1px solid var(--rule);padding-top:48px}.post__aside{display:flex;flex:1 1 240px;flex-direction:column;gap:24px;min-width:0;font-family:var(--font-mono);font-size:13px}@media (min-width: 960px){.post__aside{position:sticky;top:24px;z-index:2;flex:0 0 240px}.toc__list{max-height:calc(100vh - 180px);overflow-y:auto}}.back-to-top{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:20;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 14px;border:1px solid var(--term);background:var(--bg-subtle);color:var(--glow);font-family:var(--font-mono);font-size:13px;text-decoration:none;transition:background-color var(--dur-fast) var(--ease-term)}.back-to-top:hover{background:var(--bg-elevated)}.back-to-top[hidden]{display:none}.post__article{display:flex;flex:999 1 560px;flex-direction:column;gap:22px;min-width:0;max-width:var(--measure)}.post__body{min-width:0}.demo-banner{border:1px solid #5c4413;background:rgba(245,158,11,.08);padding:12px 16px;color:var(--warn);font-family:var(--font-mono);font-size:14px;line-height:22px}.toc{border:1px solid var(--rule);background:var(--glass)}.toc__title{padding:12px 16px;border-bottom:1px solid var(--rule);color:var(--ink-muted);font-size:12px}.toc__list{display:flex;flex-direction:column;padding-block:10px;list-style:none}.toc__item a{display:block;padding:10px 16px;border-left:2px solid rgba(0,0,0,0);color:var(--ink-body);text-decoration:none;transition:color var(--dur-fast) var(--ease-term)}.toc__item a:hover{color:var(--glow)}.toc__item a[aria-current=true]{border-left-color:var(--term);color:var(--glow)}.share{position:relative;display:none}.js .share{display:block}.share__toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 14px;border:1px solid var(--rule);background:var(--glass);color:var(--ink);font-family:var(--font-mono);font-size:13px;text-align:left}.share__toggle[aria-expanded=true]{border-color:var(--term);color:var(--glow)}.share__toggle>span:first-of-type{flex:1}.share__caret{color:var(--ink-muted)}.share__menu{position:absolute;top:52px;right:0;left:0;z-index:5;padding-block:6px;border:1px solid var(--term);background:var(--bg-subtle);box-shadow:0 0 0 1px rgba(34,197,94,.15),var(--shadow)}.share__menu[hidden]{display:none}.share__item{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 14px;border:0;background:rgba(0,0,0,0);color:var(--ink-body);font-family:var(--font-mono);font-size:13px;text-align:left;text-decoration:none}.share__item:hover{background:var(--accent-soft);color:var(--glow)}.share__menu li:last-child{border-top:1px solid var(--rule)}.share svg{flex-shrink:0;width:16px;height:16px;color:var(--glow)}.post__footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid var(--rule)}.post-nav{--card-min: 240px;gap:12px}.post-nav a{display:flex;flex-direction:column;gap:8px;border:1px solid var(--rule);background:var(--glass);padding:20px;color:var(--ink);text-decoration:none;transition:border-color var(--dur-fast) var(--ease-term)}.post-nav a:hover{border-color:var(--term)}.post-nav__older{text-align:right}.post-nav__dir{color:var(--ink-muted);font-family:var(--font-mono);font-size:12px}.post-nav__title{font-size:16px;font-weight:600;line-height:24px}.author-card{display:flex;flex-wrap:wrap;gap:20px;align-items:center;border:1px solid var(--rule);background:var(--glass);padding:24px}.author-card .mark{width:56px;height:56px;font-size:16px;text-shadow:none;box-shadow:none}.author-card__text{display:flex;flex:1 1 240px;flex-direction:column;gap:4px}.author-card__text strong{font-size:16px;font-weight:600;line-height:24px}.author-card__text span{color:var(--ink-muted);font-family:var(--font-mono);font-size:12px;line-height:18px}.author-card__links{display:flex;gap:14px}.author-card__links a{color:var(--glow);font-family:var(--font-mono);font-size:13px;line-height:20px;text-decoration:none}.author-card__links a:hover{color:var(--accent-hover)}.site-header__actions{display:flex;align-items:center;gap:clamp(8px,1.6vw,18px)}.terminal-trigger{display:none;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--rule);background:rgba(0,0,0,0);color:var(--ink-muted);font-family:var(--font-mono);font-size:13px;line-height:1}.js .terminal-trigger{display:grid}.terminal-trigger:hover{border-color:var(--accent);color:var(--accent)}.terminal-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}body.terminal-open{overflow:hidden}.terminal[hidden]{display:none}.terminal{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:clamp(18px,8vh,96px) 16px;overflow-y:auto}.terminal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.74);backdrop-filter:blur(6px)}.terminal__window{position:relative;display:flex;flex-direction:column;width:min(760px,100%);max-height:min(78svh,720px);overflow:hidden;border:1px solid var(--rule-strong);border-top:2px solid var(--accent);background:var(--bg);box-shadow:0 0 0 1px rgba(28,185,0,.12),0 32px 90px rgba(0,0,0,.85)}.terminal__bar{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-bottom:1px solid var(--rule);background:var(--bg-elevated);color:var(--ink-muted);font-family:var(--font-mono);font-size:10px;letter-spacing:.04em}.terminal__status{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(28,185,0,.1)}.terminal__bar-title{flex:1;color:var(--ink-soft)}.terminal__close{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(0,0,0,0);background:rgba(0,0,0,0);color:var(--ink-muted);font-family:var(--font-mono);font-size:20px;line-height:1}.terminal__close:hover,.terminal__close:focus-visible{border-color:var(--rule-strong);color:var(--accent)}.terminal__body{padding:clamp(16px,3vw,24px);overflow-y:auto}.terminal__form{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--accent);padding-bottom:10px}.terminal__prompt{color:var(--accent);font-family:var(--font-mono);font-size:20px;font-weight:600;line-height:1}.terminal__input{flex:1;min-width:0;padding:0;border:0;outline:0;background:rgba(0,0,0,0);color:var(--ink);font-family:var(--font-mono);font-size:clamp(16px,2vw,19px);line-height:1.4;caret-color:var(--accent)}.terminal__input::placeholder{color:var(--ink-muted);opacity:.7}.terminal__completion{flex:0 0 auto;max-width:45%;overflow:hidden;color:var(--ink-muted);font-family:var(--font-mono);font-size:10px;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap}.terminal__completion[hidden],.terminal__results[hidden],.terminal__help[hidden]{display:none}.terminal__hint{margin:8px 0 0;color:var(--ink-muted);font-family:var(--font-mono);font-size:9px;letter-spacing:.04em}.terminal__results{display:grid;gap:2px;max-height:44svh;margin-top:18px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.terminal__result{display:grid;grid-template-columns:60px minmax(0, 1fr) auto;gap:12px;align-items:center;width:100%;min-height:48px;padding:9px 11px;border:1px solid rgba(0,0,0,0);border-left:2px solid rgba(0,0,0,0);background:rgba(0,0,0,0);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.terminal__result:hover,.terminal__result.is-selected{border-color:var(--rule);border-left-color:var(--accent);background:rgba(28,185,0,.08)}.terminal__result:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.terminal__result-kind{color:var(--accent);font-family:var(--font-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase}.terminal__result-content{display:grid;gap:3px;min-width:0}.terminal__result-title{overflow:hidden;color:var(--ink);font-family:var(--font-mono);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.terminal__result-summary{overflow:hidden;color:var(--ink-muted);font-family:var(--font-sans);font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.terminal__result-meta{max-width:150px;overflow:hidden;color:var(--ink-muted);font-family:var(--font-mono);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.terminal__empty{margin:16px 0 0;color:var(--ink-muted);font-family:var(--font-mono);font-size:11px}.terminal__help{margin-top:18px;padding:14px;border:1px solid var(--rule);background:rgba(255,255,255,.012)}.terminal__help-title{margin:0;color:var(--accent);font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase}.terminal__help-grid{display:grid;grid-template-columns:max-content minmax(0, 1fr);gap:8px 16px;align-items:baseline;margin-top:12px}.terminal__help-grid code{color:var(--accent);font-family:var(--font-mono);font-size:11px;line-height:1.45;overflow-wrap:anywhere}.terminal__help-grid>span{color:var(--ink-muted);font-family:var(--font-sans);font-size:11px;line-height:1.45}.terminal__help-grid>span code{color:var(--ink-soft);font-size:10px}.terminal__help-keys{margin:12px 0 0;color:var(--ink-muted);font-family:var(--font-mono);font-size:9px;letter-spacing:.04em}.terminal__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:9px 14px;border-top:1px solid var(--rule);background:var(--bg-elevated);color:var(--ink-muted);font-family:var(--font-mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase}@media (max-width: 900px){.terminal-trigger{width:44px;height:44px}.terminal{padding:10px}.terminal__window{width:100%;max-height:calc(100svh - 20px)}.terminal__close{width:44px;height:44px}.terminal__result{grid-template-columns:48px minmax(0, 1fr);gap:8px;min-height:52px;padding:10px}.terminal__result-meta{display:none}.terminal__results{max-height:48svh}.terminal__completion{display:none}.terminal__help-grid{grid-template-columns:minmax(0, 1fr);gap:3px 0}.terminal__help-grid>span{margin-bottom:7px}.terminal__footer{font-size:7px}}.prose{color:var(--ink-body);font-size:18px;line-height:32px;overflow-wrap:break-word}.prose>*{max-width:var(--measure)}.prose>.diagram{max-width:100%}.prose>*+*{margin-top:22px}.prose h2,.prose h3,.prose h4{color:var(--ink);scroll-margin-top:24px}.prose h2{margin-top:50px;font-size:28px;line-height:1.25;letter-spacing:-.01em}.prose h3{margin-top:36px;font-size:21px;line-height:1.3}.prose h4{margin-top:28px;font-size:18px}.prose p,.prose li{color:var(--ink-body)}.prose a{color:var(--glow);text-decoration-color:color-mix(in srgb, var(--glow) 65%, rgba(0,0,0,0));text-decoration-line:underline}.prose a:hover{color:var(--accent-hover);text-decoration-color:var(--accent-hover)}.prose ul{display:flex;flex-direction:column;gap:10px}.prose ul>li{position:relative;padding-left:26px}.prose ul>li::before{content:">";position:absolute;left:0;color:var(--term);font-family:var(--font-mono)}.prose ol{border:1px solid var(--rule);background:var(--glass);list-style:none;counter-reset:step;font-size:16px;line-height:26px}.prose ol>li{position:relative;padding:14px 18px 14px 62px;border-bottom:1px solid var(--rule-subtle);counter-increment:step}.prose ol>li:last-child{border-bottom:0}.prose ol>li::before{content:"[" counter(step) "]";position:absolute;left:18px;color:var(--glow);font-family:var(--font-mono)}.prose strong{color:var(--ink);font-weight:600}.prose blockquote{border-top:1px solid var(--term);border-bottom:1px solid var(--term);padding:22px 0;color:var(--ink);font-size:22px;font-weight:600;line-height:34px}.prose blockquote p{color:inherit}.prose blockquote>*+*{margin-top:14px}.prose hr{max-width:var(--measure);margin-block:48px;border:0;border-top:1px solid var(--rule)}.prose img{display:block;width:auto;max-width:100%;height:auto;border:1px solid var(--rule)}.prose figure{margin-block:32px}.prose figure img[width]{width:100%}.prose figcaption{margin-top:8px;color:var(--ink-muted);font-family:var(--font-mono);font-size:12px;line-height:1.6}.table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.prose table{width:100%;max-width:100%;border-collapse:collapse;font-size:15px;line-height:24px}.prose th,.prose td{padding:10px 12px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}.prose th{color:var(--ink);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.prose code{padding:.12em .32em;border:1px solid var(--code-border);background:var(--code-bg);color:var(--glow);font-family:var(--font-mono);font-size:.86em}.prose pre{max-width:100%;margin-block:0;padding:18px 20px;border:1px solid var(--code-border);background:var(--code-bg);font-size:14px;line-height:23px;tab-size:4}.prose pre>code{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.prose>*+pre{margin-top:22px}.prose pre code{padding:0;border:0;background:rgba(0,0,0,0);font-size:inherit}.prose .zola-anchor{margin-right:12px;color:var(--term);font-family:var(--font-mono);font-size:max(.65em,12px);font-weight:400;text-decoration:none}.prose .zola-anchor:hover{color:var(--glow)}.prose .markdown-alert-note,.prose .markdown-alert-tip,.prose .markdown-alert-important,.prose .markdown-alert-warning,.prose .markdown-alert-caution,.prose .notice{max-width:var(--measure);border:1px solid color-mix(in srgb, var(--notice-color) 50%, rgba(0,0,0,0));padding:14px 18px;background:color-mix(in srgb, var(--notice-color) 8%, var(--bg-subtle));color:var(--ink-body);font-size:16px;font-weight:400;line-height:26px}.prose .markdown-alert-note{--notice-color: var(--dg-blue)}.prose .markdown-alert-tip{--notice-color: var(--dg-green)}.prose .markdown-alert-important{--notice-color: var(--dg-pink)}.prose .markdown-alert-warning{--notice-color: var(--dg-amber)}.prose .markdown-alert-caution{--notice-color: var(--dg-red)}.prose .notice--info{--notice-color: var(--dg-cyan)}.prose .notice--suggestion{--notice-color: var(--dg-violet)}.prose .notice--recommendation{--notice-color: var(--glow)}.prose .notice--disclaimer{--notice-color: var(--ink-muted)}.prose .markdown-alert-note::before,.prose .markdown-alert-tip::before,.prose .markdown-alert-important::before,.prose .markdown-alert-warning::before,.prose .markdown-alert-caution::before,.prose .notice__label{display:block;margin-bottom:4px;color:var(--notice-color);font-family:var(--font-mono);font-size:13px;line-height:22px}.prose .markdown-alert-note::before{content:"[note]"}.prose .markdown-alert-tip::before{content:"[tip]"}.prose .markdown-alert-important::before{content:"[important]"}.prose .markdown-alert-warning::before{content:"[warning]"}.prose .markdown-alert-caution::before{content:"[caution]"}.prose .notice__body>*+*{margin-top:12px}.prose h5{margin-top:24px;color:var(--ink);font-size:16px;scroll-margin-top:24px}.prose h6{margin-top:24px;color:var(--ink-soft);font-size:14px;scroll-margin-top:24px}.prose u{text-underline-offset:.2em}.prose del{color:var(--ink-muted)}.prose mark{padding:0 .2em;background:var(--accent-soft);color:var(--glow)}.prose kbd{padding:.1em .4em;border:1px solid var(--rule);background:var(--bg-elevated);color:var(--ink);font-family:var(--font-mono);font-size:.8em}.prose abbr[title]{text-decoration:underline dotted;text-underline-offset:.2em;cursor:help}.prose sup,.prose sub{font-size:.72em;line-height:0}.prose li>ul{margin-top:10px}.prose ul>li:has(>input[type=checkbox]){padding-left:0}.prose ul>li:has(>input[type=checkbox])::before{content:none}.prose input[type=checkbox]{margin-right:10px;accent-color:var(--term)}.prose dl{display:flex;flex-direction:column;gap:4px}.prose dt{color:var(--ink);font-weight:600}.prose dd{margin-bottom:10px;padding-left:26px}.prose .footnote-reference a{text-decoration:none}.prose .footnotes{margin-top:56px;padding-top:24px;border-top:1px solid var(--rule);font-size:15px;line-height:24px}.prose .footnotes ol{border:0;background:rgba(0,0,0,0);font-size:inherit;line-height:inherit}.prose .footnotes ol>li{padding:4px 0 4px 44px;border-bottom:0}.prose .footnotes ol>li::before{left:0}.prose .footnotes p{display:inline}.prose--page{padding-block:48px 0}.prose--page h2:first-child{margin-top:0}.diagram{margin-block:clamp(30px,4vw,46px)}.diagram figcaption{margin-top:0;padding:8px 12px 12px;color:var(--ink-muted);font-family:var(--font-mono);font-size:12px;line-height:1.6}.giallo-l{display:inline-block;width:100%;min-height:1lh}.giallo-ln{display:inline-block;min-width:3ch;margin-right:.4em;padding:.4em;text-align:right;user-select:none;opacity:.45}.prose pre{position:relative}.prose pre:has(>code){padding-top:44px}.prose pre>code[data-lang]::before{content:attr(data-lang);position:absolute;top:14px;left:20px;color:var(--ink-muted);font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase}.code-copy{position:absolute;top:8px;right:8px;z-index:1;padding:4px 7px;border:1px solid var(--code-border);background:var(--code-bg);color:var(--ink-muted);font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;opacity:0;transition:opacity 120ms ease,color 120ms ease,border-color 120ms ease}.prose pre:hover .code-copy,.code-copy:focus-visible{opacity:1}.code-copy:hover{border-color:var(--accent);color:var(--accent)}.code-copy[data-copied=true]{border-color:var(--focus);color:var(--focus);opacity:1}@media (hover: none){.code-copy{opacity:.7}}.dg-svg{background:rgba(0,0,0,0);font-family:var(--font-sans)}.dg-tone-neutral{--dg-tone: var(--dg-neutral)}.dg-tone-blue{--dg-tone: var(--dg-blue)}.dg-tone-violet{--dg-tone: var(--dg-violet)}.dg-tone-green{--dg-tone: var(--dg-green)}.dg-tone-amber{--dg-tone: var(--dg-amber)}.dg-tone-red{--dg-tone: var(--dg-red)}.dg-tone-cyan{--dg-tone: var(--dg-cyan)}.dg-tone-pink{--dg-tone: var(--dg-pink)}.dg-group-box{fill:var(--dg-group-bg);stroke:var(--dg-group-border);stroke-width:1}.dg-group-label{fill:var(--dg-muted);font-family:var(--font-mono);font-size:10.5px;font-weight:650;letter-spacing:.12em;text-transform:uppercase}.dg-group-box,.dg-group-label{cursor:grab}.dg-group.is-selected .dg-group-box{stroke:var(--accent);stroke-opacity:.65}.dg-node-box{fill:var(--dg-node-bg);stroke:var(--dg-node-border);stroke-width:1.2}.dg-node-accent{fill:var(--dg-tone)}.dg-node-label{fill:var(--dg-text);font-family:var(--font-mono);font-size:13px;font-weight:560}.dg-node-icon{fill:none;stroke:var(--dg-tone);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;color:var(--dg-tone)}.dg-icon-filled{fill:var(--dg-tone);stroke:none}.dg-edge{fill:none;stroke:var(--dg-tone);pointer-events:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:opacity 120ms ease,stroke-width 120ms ease}.dg-svg.is-highlighting .dg-edge{opacity:.12}.dg-svg.is-highlighting .dg-edge.is-highlighted{opacity:1;stroke-width:2.2;filter:drop-shadow(0 0 4px var(--dg-tone))}.dg-edge--draw{stroke-dasharray:1;stroke-dashoffset:1;animation:dg-draw var(--dg-draw-duration, 1200ms) ease forwards;animation-delay:var(--dg-delay, 0ms)}.dg-style-dashed{stroke-dasharray:.025 .018}.dg-style-dotted{stroke-dasharray:.002 .016;stroke-linecap:round}.dg-edge--flow{stroke-dasharray:none}.dg-node{cursor:default}.dg-node.is-moving{cursor:grabbing}.dg-node.is-moving .dg-node-box,.dg-node.is-selected .dg-node-box{stroke:var(--accent);stroke-width:1.8}.dg-node.is-selected .dg-node-accent{fill:var(--accent)}.dg-node--vm .dg-node-box{stroke-dasharray:4 3}.arch-node-title{fill:var(--dg-text);font-family:var(--font-mono);font-size:11px;font-weight:600}.arch-node-meta{fill:var(--dg-muted);font-family:var(--font-mono);font-size:8px;letter-spacing:.04em}.arch-nic{fill:color-mix(in srgb, var(--dg-tone) 6%, rgba(0,0,0,0));stroke:color-mix(in srgb, var(--dg-tone) 35%, var(--rule));stroke-width:.8}.arch-nic-label{fill:color-mix(in srgb, var(--dg-tone) 78%, var(--dg-muted));font-family:var(--font-mono);font-size:6.5px;font-weight:650;letter-spacing:.04em}.arch-port{fill:var(--bg);stroke:var(--rule-strong);stroke-width:.7}.arch-port.is-used{fill:var(--dg-tone);stroke:var(--dg-tone)}.arch-port-label{fill:var(--dg-muted);font-family:var(--font-mono);font-size:4.8px;pointer-events:none}.arch-port-label.is-used{fill:var(--bg);font-weight:700}.network-rail{fill:none;stroke:var(--dg-tone);stroke-width:3;stroke-linecap:round;transition:opacity 120ms ease,stroke-width 120ms ease}.network-stub{fill:none;stroke:var(--dg-tone);stroke-width:1.4;stroke-opacity:.8;transition:opacity 120ms ease}.network-legend-item{transition:opacity 120ms ease}.network-legend-hit{fill:rgba(0,0,0,0)}.dg-svg.is-highlighting-network .network-rail,.dg-svg.is-highlighting-network .network-stub,.dg-svg.is-highlighting-network .network-legend-item{opacity:.18}.dg-svg.is-highlighting-network .network-rail.is-highlighted,.dg-svg.is-highlighting-network .network-stub.is-highlighted,.dg-svg.is-highlighting-network .network-legend-item.is-highlighted{opacity:1}.dg-svg.is-highlighting-network .network-rail.is-highlighted{stroke-width:4;filter:drop-shadow(0 0 4px var(--dg-tone))}.dg-svg.is-highlighting-network .network-stub.is-highlighted{stroke-opacity:1;filter:drop-shadow(0 0 3px var(--dg-tone))}.dg-svg.is-highlighting-network .network-legend-item.is-highlighted .network-legend-swatch,.dg-svg.is-highlighting-network .network-legend-item.is-highlighted .network-legend-label{filter:drop-shadow(0 0 4px var(--dg-tone))}.network-legend-swatch{stroke:var(--dg-tone);stroke-width:3;stroke-linecap:round}.network-legend-label{fill:var(--dg-tone);font-family:var(--font-mono);font-size:10px;font-weight:650;letter-spacing:.1em;text-transform:uppercase}.dg-bond-mark{fill:color-mix(in srgb, var(--dg-tone) 7%, rgba(0,0,0,0));stroke:var(--dg-tone);stroke-width:1.2;stroke-dasharray:3 3;transition:opacity 120ms ease}.dg-bond-label{fill:var(--dg-tone);font-family:var(--font-mono);font-size:8px;font-weight:650;letter-spacing:.04em;transition:opacity 120ms ease}.dg-svg.is-highlighting .dg-bond-mark,.dg-svg.is-highlighting .dg-bond-label{opacity:.12}.dg-svg.is-highlighting .dg-bond-mark.is-highlighted,.dg-svg.is-highlighting .dg-bond-label.is-highlighted{opacity:1}.dg-packet{fill:#eaffea;stroke:var(--dg-tone);stroke-width:1.2;opacity:0;pointer-events:none;transition:opacity 120ms ease;filter:drop-shadow(0 0 3px var(--dg-tone)) drop-shadow(0 0 9px var(--dg-tone)) drop-shadow(0 0 18px var(--dg-tone))}.diagram[data-dg-ready] .dg-packet{opacity:1}.dg-packet-trail{fill:none;stroke:var(--dg-tone);stroke-linecap:round;stroke-linejoin:round;opacity:0;pointer-events:none;transition:opacity 120ms ease;filter:drop-shadow(0 0 5px var(--dg-tone)) drop-shadow(0 0 11px var(--dg-tone))}.dg-packet-trail--glow{filter:blur(3px) drop-shadow(0 0 8px var(--dg-tone))}.dg-edge--pulse{animation:dg-pulse var(--dg-pulse-duration, 2000ms) ease-in-out infinite;animation-delay:var(--dg-delay, 0ms)}.dg-arrow{fill:var(--dg-tone)}.dg-edge-label{fill:var(--dg-muted);pointer-events:none;stroke:var(--dg-label-halo);stroke-width:5px;stroke-linejoin:round;paint-order:stroke;font-family:var(--font-mono);font-size:11.5px;font-weight:500}@keyframes dg-draw{to{stroke-dashoffset:0}}@keyframes dg-pulse{0%, 100%{stroke-opacity:1}50%{stroke-opacity:.3}}.diagram:not([data-dg-ready]) .dg-edge{animation-play-state:paused}.diagram{position:relative;overflow:hidden;border:1px solid var(--rule);background:var(--bg-elevated);box-shadow:0 0 0 1px rgba(28,185,0,.05),0 20px 50px -34px rgba(0,0,0,.9)}.diagram__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;border-bottom:1px solid var(--rule);background:color-mix(in srgb, var(--bg-subtle) 88%, rgba(0,0,0,0))}.diagram__toolbar[hidden],.diagram:not([data-dg-ready]) .diagram__toolbar,.diagram:not([data-dg-ready]) .diagram__hint{display:none}.diagram__controls{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.diagram__controls[hidden]{display:none}.diagram__button{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;padding:0 8px;border:1px solid rgba(0,0,0,0);background:rgba(0,0,0,0);color:var(--ink-soft);font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.03em;line-height:1;text-decoration:none;transition:border-color 140ms ease,background-color 140ms ease,color 140ms ease}.diagram__button:hover{border-color:var(--rule-strong);background:color-mix(in srgb, var(--accent) 7%, rgba(0,0,0,0));color:var(--accent)}.diagram__button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.diagram__button[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, rgba(0,0,0,0));color:var(--accent)}.diagram__button--value,.diagram__button--fit{border-color:var(--rule);background:color-mix(in srgb, var(--bg) 44%, rgba(0,0,0,0))}.diagram__button--value{min-width:42px}.diagram__icon{display:inline-block;min-width:1.4em;text-align:center}.diagram__button--direction{font-size:18px}.diagram__button-label{margin-left:5px}.diagram__zoom-label{min-width:52px;color:var(--ink-muted);font-family:var(--font-mono);font-size:11px;letter-spacing:.03em;text-align:center}.diagram__popover{position:relative;display:inline-flex}.diagram__popover-panel{position:absolute;top:100%;left:0;z-index:20;width:196px;padding:10px 12px 8px;border:1px solid var(--rule-strong);background:var(--bg-elevated);box-shadow:0 14px 30px -18px rgba(0,0,0,.95);opacity:0;visibility:hidden;transform:translateY(-3px);pointer-events:none;transition:opacity 120ms ease,transform 120ms ease,visibility 120ms ease}.diagram__popover--end .diagram__popover-panel{right:0;left:auto}.diagram__popover[data-dg-animation-control] .diagram__popover-panel{right:auto;left:0}.diagram__options-panel{width:168px;padding:6px}.diagram__option{display:flex;align-items:center;gap:8px;width:100%;min-height:32px;padding:0 8px;border:1px solid rgba(0,0,0,0);background:rgba(0,0,0,0);color:var(--ink-soft);font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.03em;text-align:left;cursor:pointer}.diagram__option:hover,.diagram__option:focus-visible{border-color:var(--rule-strong);background:color-mix(in srgb, var(--accent) 7%, rgba(0,0,0,0));color:var(--accent);outline:none}.diagram__option:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.diagram__option.is-active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, rgba(0,0,0,0));color:var(--accent)}.diagram__option-icon{width:16px;font-size:14px;text-align:center}.diagram__popover:hover .diagram__popover-panel,.diagram__popover:focus-within .diagram__popover-panel,.diagram__popover.is-open .diagram__popover-panel{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.diagram__range{display:block;width:100%;height:20px;margin:0;accent-color:var(--accent);cursor:pointer}.diagram__ticks{display:flex;justify-content:space-between;gap:4px;margin-top:2px;color:var(--ink-muted);font-family:var(--font-mono);font-size:10px;letter-spacing:.02em}.diagram__ticks .is-active{color:var(--accent)}.diagram__canvas{position:relative;height:clamp(480px,48vw,620px);overflow:hidden;background-color:var(--bg);background-image:linear-gradient(rgba(28,185,0,.035) 1px, rgba(0,0,0,0) 1px),linear-gradient(90deg, rgba(28,185,0,.035) 1px, rgba(0,0,0,0) 1px);background-size:28px 28px;cursor:default;touch-action:none;user-select:none}.diagram__canvas:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.diagram__canvas.is-dragging{cursor:grabbing}.diagram__canvas.is-selecting{cursor:crosshair}.diagram__marquee{position:absolute;z-index:5;border:1px dashed var(--accent);background:color-mix(in srgb, var(--accent) 10%, rgba(0,0,0,0));pointer-events:none}.diagram__marquee[hidden]{display:none}.diagram__canvas svg{display:block;width:100%;height:100%}.diagram__hint{margin:0;padding:6px 10px;border-top:1px solid var(--rule);color:var(--ink-muted);font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;line-height:1.5}.diagram__hint.is-hidden{display:none}@media (max-width: 900px){.diagram__toolbar{padding:6px}.diagram__controls{gap:2px}.diagram__button{min-width:44px;min-height:44px;padding:0 6px}.diagram__button-label{display:none}.diagram__zoom-label{min-width:46px;font-size:10px}.diagram__popover-panel{right:0;left:auto;width:176px;padding:12px 14px 10px}.diagram__popover[data-dg-animation-control] .diagram__popover-panel{right:auto;left:0;width:168px}.diagram__options-panel{width:168px;padding:6px}.diagram__option{min-height:44px;font-size:11px}.diagram__range{height:28px}.diagram__ticks{font-size:10px}.diagram__canvas{height:clamp(320px,56vh,480px);height:clamp(320px,56svh,480px)}.diagram__hint{font-size:10px}}@media print{.diagram__toolbar,.diagram__hint{display:none !important}.dg-edge{animation:none !important}.dg-packet{display:none}.diagram{border:0;box-shadow:none}.diagram__canvas{height:auto;overflow:visible;background:#fff}.diagram__canvas svg{width:100%;height:auto}.diagram figcaption{font-size:9pt}}.diagram__button:disabled{cursor:wait;opacity:.55}@media (pointer: coarse){.diagram__button{min-width:44px;min-height:44px}.diagram__option{min-height:44px}}@media (max-width: 360px){.diagram__controls{gap:0}.diagram__zoom-label{min-width:40px}}.diagram__source{margin:0;padding:0 12px 12px;color:var(--ink-muted);font-family:var(--font-mono);font-size:11px;line-height:1.5}.diagram__source a{color:inherit;text-decoration:underline;text-underline-offset:2px}.diagram__source a:hover{color:var(--accent)}@media print{:root{--bg: #fff;--bg-elevated: #fff;--bg-subtle: #fff;--glass: #fff;--ink: #000;--ink-body: #333;--ink-soft: #333;--ink-muted: #555;--rule: #ccc;--rule-subtle: #ddd;--rule-tag: #ccc;--rule-strong: #999;--term: #000;--glow: #000;--accent: #000;--accent-hover: #000;--code-bg: #f5f5f5;--code-border: #ddd;--dg-node-bg: #fff;--dg-node-border: #999;--dg-text: #000;--dg-muted: #555;--dg-edge: #666;--dg-label-halo: #fff;--dg-group-bg: #fff;--dg-group-border: #ccc;--dg-neutral: #555;--dg-blue: #1f5f8f;--dg-violet: #6a4b9a;--dg-green: #1a7a45;--dg-amber: #8a5a00;--dg-red: #a33333;--dg-cyan: #1f6f75;--dg-pink: #8a3d62}.sky,.caret,.site-header,.site-footer,.post__aside,.hero__panel,.post__footer,.post-nav,.author-card,.back-to-top,.code-copy{display:none !important}body{background:#fff;color:#000;font-size:11pt}.highlight{color:inherit;text-shadow:none}.prose,.prose p,.prose li{color:#333;font-size:11pt;line-height:1.5}.post__layout,.post__header,.post__article,.prose,.prose>*{max-width:none}.prose a{color:#000;text-decoration:underline}.diagram svg{min-width:0}}