@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-cyrillic-ext-700-normal-BDQ-w_bc.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-700-normal-CtgKGIh5.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-cyrillic-700-normal-Bp80XfeI.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-700-normal-O_YjL27c.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-vietnamese-700-normal-apsD3J7v.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-700-normal-Bs14ezHR.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-ext-700-normal-Dhimjc7-.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-700-normal-Cwsjk1Jb.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-700-normal-7sUh57Bg.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-700-normal-CNHXzs6v.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f3f4ee;--surface:#fff;--surface-2:#e9ece3;--ink:#12201b;--ink-2:#33433d;--muted:#66746e;--line:#d6dbd0;--line-strong:#12201b;--accent:#c6ff00;--accent-ink:#0b0b0b;--link:#1f5f3f;--header-bg:var(--accent);--header-ink:#0b0b0b;--nav-bg:#12201b;--nav-ink:#e9f2ea;--chip-bg:var(--accent);--chip-ink:#0b0b0b;--shadow:0 1px 2px #0000000a, 0 8px 24px -12px #0000002e;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius:10px;--radius-sm:6px;--gap:20px;--max:1200px;--measure:700px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0c1d18;--surface:#112822;--surface-2:#16332b;--ink:#e7f0e9;--ink-2:#bccbc2;--muted:#8a9e94;--line:#22463b;--line-strong:#2f5c4e;--link:#d9ff7a;--nav-bg:#12382e;--nav-ink:#e7f0e9;--shadow:0 1px 2px #0000004d, 0 10px 30px -14px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0}a{color:var(--link)}img{max-width:100%;height:auto;display:block}h1,h2,h3,h4{font-family:var(--font-mono);letter-spacing:-.02em;text-wrap:balance;font-weight:700;line-height:1.22}h1{overflow-wrap:break-word;margin:0 0 16px;font-size:clamp(28px,4vw,42px)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.muted{color:var(--muted)}.site-header{z-index:10;position:relative}.site-header__bar{background:var(--header-bg);color:var(--header-ink);padding:12px max(16px, calc((100vw - var(--max)) / 2 + 16px));align-items:center;gap:20px;display:flex}.site-header__tagline{font:600 13px/1.3 var(--font-mono);opacity:.75;margin:0}.site-header__actions{gap:8px;margin-left:auto;display:flex}.hbtn{border-radius:var(--radius-sm);color:#f3f4ee;height:36px;font:700 14px/1 var(--font-mono);background:#12201b;align-items:center;padding:0 14px;text-decoration:none;display:inline-flex}.hbtn:hover{background:#1f3a31}.hbtn--ghost{color:#12201b;background:0 0;box-shadow:inset 0 0 0 2px #12201b}.hbtn--ghost:hover{background:#00000014}.logo{color:inherit;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.logo__mark{width:36px;height:36px;image-rendering:pixelated;border-radius:6px;transition:transform .15s;box-shadow:0 0 0 2px #12201b}.logo:hover .logo__mark{transform:rotate(-8deg)translateY(-1px)}.logo__text{font:700 23px/1 var(--font-mono);letter-spacing:-.03em}.logo__tld{opacity:.55}.site-nav{background:var(--nav-bg)}.site-nav ul{max-width:var(--max);scrollbar-width:none;justify-content:center;margin:0 auto;padding:0 8px;list-style:none;display:flex;overflow-x:auto}.site-nav a{font:700 13px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--nav-ink);white-space:nowrap;padding:13px 12px;text-decoration:none;display:block;box-shadow:inset 0 -3px #0000}.site-nav a:hover,.site-nav a.active{box-shadow:inset 0 -3px 0 var(--accent);color:#fff}.page{max-width:var(--max);margin:0 auto;padding:28px 16px 72px}.block{margin:56px 0}.section-title{align-items:center;gap:16px;margin-bottom:22px;display:flex}.section-title h2{text-transform:uppercase;letter-spacing:.01em;white-space:nowrap;margin:0;font-size:clamp(20px,2.6vw,28px)}.section-title__rule{background:var(--line);flex:1;height:1px}.section-title__more{font:600 13px/1 var(--font-mono);white-space:nowrap}.kicker{font:700 12px/1.2 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 12px}.lead{color:var(--ink-2);max-width:var(--measure);margin:0 0 20px;font-size:20px;line-height:1.55}.btn{border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);font:700 15px/1 var(--font-mono);padding:12px 18px;text-decoration:none;display:inline-block}.chip{background:var(--chip-bg);color:var(--chip-ink);font:700 12px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.02em;border-radius:4px;padding:5px 8px;text-decoration:none;display:inline-block}.chip--ghost{color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-strong);background:0 0}.tag{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink);font:500 13px/1.2 var(--font-mono);padding:6px 10px;text-decoration:none;display:inline-block}a.tag:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.tag-cloud{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.front,.grid{gap:var(--gap);display:grid}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex;overflow:hidden}.card:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.card__cover{aspect-ratio:1200/630;background:var(--surface-2);border-bottom:1px solid var(--line);display:block;position:relative;overflow:hidden}.card__cover img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.card:hover .card__cover img{transform:scale(1.03)}.card__cover-fallback{background:repeating-linear-gradient(45deg, var(--surface-2) 0 10px, var(--bg) 10px 20px);position:absolute;inset:0}.card__cover .chip{position:absolute;bottom:10px;right:10px}.card__body{flex-direction:column;flex:1;gap:12px;padding:14px 16px 16px;display:flex}.card__title{letter-spacing:-.02em;margin:0;font-size:18px;line-height:1.3}.card--lg .card__title{font-size:clamp(20px,2.2vw,24px)}.card__title a{color:var(--ink);text-decoration:none}.card__title a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px;text-decoration-thickness:3px}.card__desc{color:var(--ink-2);margin:0;font-size:16px}.card .byline{margin-top:auto}.byline{align-items:center;gap:10px;display:flex}.byline p{margin:0}.byline__avatar{width:36px;height:36px;image-rendering:pixelated;box-shadow:0 0 0 2px var(--line);border-radius:50%;flex:none}.byline__name{font:700 14px/1.3 var(--font-mono)}.byline__name a{color:var(--ink);text-decoration:none}.byline__name a:hover{text-decoration:underline}.byline__meta{font:500 13px/1.3 var(--font-mono);color:var(--muted)}.byline--lg .byline__avatar{width:44px;height:44px}.tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,136px),1fr));gap:12px;display:grid}.tile{border-radius:var(--radius);min-height:96px;font:700 15px/1.25 var(--font-mono);text-transform:uppercase;align-items:flex-end;padding:16px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex}.tile:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.crumbs ol{font:500 13px/1.4 var(--font-mono);color:var(--muted);flex-wrap:wrap;gap:6px;margin:0 0 22px;padding:0;list-style:none;display:flex}.crumbs li+li:before{content:"/";opacity:.6;margin-right:6px}.crumbs a{color:inherit}.hub-intro{max-width:var(--measure);color:var(--ink-2);margin-bottom:20px;font-size:18px;line-height:1.7}.hub-intro p{margin:0 0 1em}.hub-head{border-bottom:1px solid var(--line);margin-bottom:32px;padding-bottom:24px}.reading-progress{z-index:50;background:var(--accent);transform-origin:0;height:3px;transform:scaleX(var(--progress,0));position:fixed;inset:0 0 auto}.article__head{max-width:880px;margin-bottom:28px}.article__chips{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.article__byline{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 24px;padding-top:18px;display:flex}.article__updated{font:500 13px/1.3 var(--font-mono);color:var(--muted);margin:0}.article__cover{border-radius:var(--radius);border:1px solid var(--line);margin:0 0 36px;overflow:hidden}.article__cover img{aspect-ratio:1200/630;object-fit:cover;width:100%}.article__layout{grid-template-columns:minmax(0, var(--measure)) 260px;align-items:start;gap:56px;display:grid}.article__body{grid-area:1/1;min-width:0}.toc{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);grid-column:2;padding:18px;position:sticky;top:20px}.toc ol{margin:0;padding-left:18px;font-size:14px;line-height:1.45}.toc li+li{margin-top:8px}.toc a{color:var(--ink-2);text-decoration:none}.toc a:hover{color:var(--ink);text-decoration:underline}.prose{color:var(--ink);text-wrap:pretty;font-size:19px;line-height:1.75}.prose>*+*{margin-top:1.1em}.prose p,.prose ul,.prose ol{margin-bottom:0}.prose h2{margin:2.2em 0 .6em;scroll-margin-top:20px;font-size:27px}.prose h3{margin:1.8em 0 .4em;font-size:21px}.prose h2+*,.prose h3+*{margin-top:0}.prose a{color:inherit;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px;text-decoration-thickness:3px}.prose a:hover{background:var(--accent);color:var(--accent-ink)}.prose strong{font-weight:600}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.45em}.prose li::marker{color:var(--muted)}.prose blockquote{border-radius:var(--radius-sm);background:var(--surface-2);border-left:5px solid var(--accent);margin-left:0;margin-right:0;padding:16px 20px;font-size:17px}.prose blockquote p{margin:0}.prose code{font-family:var(--font-mono);background:var(--surface-2);border-radius:4px;padding:1px 5px;font-size:.88em}.prose .table-wrap{border:1px solid var(--line);border-radius:var(--radius-sm);overflow-x:auto}.prose table{border-collapse:separate;border-spacing:0;width:100%;font-size:15px;line-height:1.45}.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 12px}.prose tr:last-child td{border-bottom:0}.prose th{background:var(--surface-2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.02em;font-size:13px;font-weight:700}.prose tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--surface-2) 45%, transparent)}.faq{margin-top:56px}.faq h2{font-size:24px}.faq details{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);margin-bottom:10px}.faq summary{cursor:pointer;font:700 16px/1.4 var(--font-mono);padding:14px 16px}.faq details[open] summary{border-bottom:1px solid var(--line)}.faq details p{margin:0;padding:14px 16px;line-height:1.65}.terms-box{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);margin-top:48px;padding:22px}.terms-box dl,.glossary-list{gap:16px;margin:0;display:grid}.terms-box dt,.glossary-list dt{font:700 15px/1.3 var(--font-mono)}.terms-box dd,.glossary-list dd{color:var(--ink-2);margin:4px 0 0;font-size:15px;line-height:1.55}.glossary-list{gap:22px var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}.term{max-width:var(--measure)}.term__def{border-radius:var(--radius);border:1px solid var(--line);border-left:5px solid var(--accent);background:var(--surface);padding:22px;font-size:20px;line-height:1.65}.relations{padding-left:18px;line-height:1.8}.relations em{font-style:normal;font-family:var(--font-mono);background:var(--accent);color:var(--accent-ink);border-radius:4px;padding:1px 6px;font-size:13px}.photo,.diagram-figure{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);margin:36px 0;overflow:hidden}.photo img{object-fit:cover;width:100%;max-height:min(70vh,560px)}.article__cover figcaption,.photo figcaption,.diagram-figure figcaption{font:500 12px/1.5 var(--font-mono);color:var(--muted);border-top:1px solid var(--line);background:var(--surface);padding:10px 14px}.article__cover figcaption a,.photo figcaption a{color:inherit}.diagram-scroll{padding:16px;overflow-x:auto}svg.diagram{width:100%;height:auto;display:block}.dg-ink{fill:var(--ink)}.dg-muted{fill:var(--muted)}.dg-bg{fill:var(--surface)}.dg-accent-ink{fill:var(--accent-ink)}.dg-surface{fill:var(--surface)}.dg-accent{fill:var(--accent)}.dg-accentsoft{fill:var(--accent);opacity:.18}.dg-inkfill{fill:var(--ink)}.dg-mutedfill{fill:var(--surface-2)}.dg-stroke,.dg-line{stroke:var(--ink)}svg.diagram g:hover>rect.dg-stroke{stroke-width:3px}.site-footer{background:var(--nav-bg);color:var(--nav-ink);padding:48px 16px 28px}.site-footer a{color:var(--nav-ink)}.site-footer__grid{max-width:var(--max);gap:28px var(--gap);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin:0 auto;font-size:14px;display:grid}.site-footer__brand{grid-column:span 2}.site-footer__brand p{color:#e9f2eabf;max-width:420px}.site-footer__brand .logo__mark{box-shadow:none}.site-footer__title{font:700 12px/1.2 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;margin:0 0 10px}.site-footer__title a{color:var(--accent);text-decoration:none}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer li+li{margin-top:6px}.site-footer ul a{opacity:.85;text-decoration:none}.site-footer ul a:hover{opacity:1;text-decoration:underline}.site-footer__pages{max-width:var(--max);font:600 13px/1.4 var(--font-mono);border-top:1px solid #e9f2ea26;flex-wrap:wrap;gap:8px 22px;margin:36px auto 0;padding-top:20px;display:flex}.site-footer__pages a{text-decoration:none}.site-footer__pages a:hover{text-decoration:underline}.static-page{max-width:var(--measure)}.static-page__updated{font:500 13px/1.4 var(--font-mono);color:var(--muted);margin:-6px 0 28px}.site-footer__legal{max-width:var(--max);color:#e9f2eaa6;margin:16px auto 0;font-size:13px}.error-page{padding:48px 0}.error-beast{width:144px;height:auto;image-rendering:pixelated;border-radius:12px;margin-bottom:24px}.error-code{font:700 56px/1 var(--font-mono);background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-sm);padding:8px 16px;display:inline-block}@media (width<=960px){.article__layout{grid-template-columns:minmax(0,1fr);gap:28px}.toc{grid-area:1/1;position:static}.article__body{grid-row:2}.site-header__tagline{display:none}.site-nav ul{justify-content:flex-start}}@media (width<=720px){.grid--2{grid-template-columns:minmax(0,1fr)}.prose{font-size:18px;line-height:1.7}.lead{font-size:18px}.site-footer__brand{grid-column:auto}.hbtn--ghost{display:none}.logo__text{font-size:20px}}@media (prefers-reduced-motion:reduce){.card,.card__cover img,.tile,.logo__mark{transition:none}}
