@font-face{font-family:plexSans;src:url(../media/IBMPlexSans_Regular-s.p.1xf5nwxyfigak.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:plexSans;src:url(../media/IBMPlexSans_Medium-s.p.2i4a1iuj6lbvw.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:plexSans;src:url(../media/IBMPlexSans_SemiBold-s.p.2ovda_azncp9b.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:plexSans;src:url(../media/IBMPlexSans_Bold-s.p.3cj1z__33gk9h.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:plexSans Fallback;src:local(Arial);ascent-override:101.35%;descent-override:27.19%;line-gap-override:0.0%;size-adjust:101.13%}.plexsans_3f41ecfb-module__RPH5Rq__className{font-family:plexSans,plexSans Fallback,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.plexsans_3f41ecfb-module__RPH5Rq__variable{--font-sans:"plexSans", "plexSans Fallback", system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif}
@font-face{font-family:plexMono;src:url(../media/IBMPlexMono_Regular-s.p.3xdfs0-p_zi4c.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:plexMono;src:url(../media/IBMPlexMono_Medium-s.p.11q3guvgd1r20.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:plexMono;src:url(../media/IBMPlexMono_SemiBold-s.p.30e0eqd5fxn92.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:plexMono Fallback;src:local(Arial);ascent-override:77.95%;descent-override:20.91%;line-gap-override:0.0%;size-adjust:131.49%}.plexmono_da1d441f-module__ulqLQG__className{font-family:plexMono,plexMono Fallback,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.plexmono_da1d441f-module__ulqLQG__variable{--font-mono:"plexMono", "plexMono Fallback", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}
@font-face{font-family:newsreader;src:url(../media/Newsreader_Regular-s.1zqdvo8tou4dd.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:newsreader Fallback;src:local(Arial);ascent-override:76.71%;descent-override:27.66%;line-gap-override:0.0%;size-adjust:95.82%}.newsreader_be2bc336-module__X47Dfa__className{font-family:newsreader,newsreader Fallback,Georgia,Cambria,Times New Roman,serif}.newsreader_be2bc336-module__X47Dfa__variable{--font-serif:"newsreader", "newsreader Fallback", Georgia, Cambria, Times New Roman, serif}
.ThemeToggle-module__3b5zuq__toggle{border:1px solid var(--btn);color:var(--nav);font-family:var(--font-mono), ui-monospace, monospace;cursor:pointer;background:0 0;border-radius:2px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;line-height:1;display:inline-flex}.ThemeToggle-module__3b5zuq__toggle:hover,.ThemeToggle-module__3b5zuq__toggle:focus-visible{color:var(--text2)}.ThemeToggle-module__3b5zuq__label{letter-spacing:.01em}
.TopBar-module__dQ673a__bar{border-bottom:1px solid var(--border);background:var(--bg);justify-content:space-between;align-items:center;gap:24px;padding:18px 40px;display:flex}.TopBar-module__dQ673a__lockup{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.01em;align-items:baseline;font-size:15px;font-weight:600;display:inline-flex}.TopBar-module__dQ673a__lockAccent{color:var(--accent)}.TopBar-module__dQ673a__lockDev{color:var(--text)}.TopBar-module__dQ673a__right{align-items:center;gap:22px;display:flex}.TopBar-module__dQ673a__link,.TopBar-module__dQ673a__linkActive,.TopBar-module__dQ673a__linkDisabled{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.01em;font-size:12.5px}.TopBar-module__dQ673a__link{color:var(--nav)}.TopBar-module__dQ673a__link:hover,.TopBar-module__dQ673a__link:focus-visible,.TopBar-module__dQ673a__linkActive{color:var(--text2)}.TopBar-module__dQ673a__linkDisabled{color:var(--nav);opacity:.6;cursor:default;-webkit-user-select:none;user-select:none}@media (max-width:640px){.TopBar-module__dQ673a__bar{gap:16px;padding:16px 20px}.TopBar-module__dQ673a__right{gap:18px}.TopBar-module__dQ673a__link{display:none}}
.SiteFooter-module__p-5sba__footer{border-top:1px solid var(--border);margin-top:0;padding:28px 40px}.SiteFooter-module__p-5sba__inner{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.SiteFooter-module__p-5sba__left,.SiteFooter-module__p-5sba__link{font-family:var(--font-mono), ui-monospace, monospace;color:var(--faint);font-size:12px}.SiteFooter-module__p-5sba__link{transition:color .15s}.SiteFooter-module__p-5sba__link:hover{color:var(--muted)}@media (max-width:640px){.SiteFooter-module__p-5sba__footer{padding:24px 20px}}
:root,:root[data-theme=dark]{--bg:#0d1117;--read-bg:#100f0c;--surface:#161c28;--surface2:#1b212d;--text:#eef2f6;--text2:#c9d1d9;--muted:#9aa6b6;--faint:#7b8593;--nav:#7a8699;--border:#1c2333;--divider:#161c28;--btn:#2a3344;--accent:#6ad08a;--accent-ink:#0d1117;--fw:#4f93d6;--mem:#6ad08a;--eng:#d6a45a;--read-text:#d8d2c5;--read-strong:#f4efe6;--read-soft:#b3ab9b;--quote:#c9a44e}:root[data-theme=light]{--bg:#f4f2ec;--read-bg:#faf8f3;--surface:#eae7df;--surface2:#f1ede4;--text:#1b1f25;--text2:#343941;--muted:#5a626c;--faint:#6c685e;--nav:#6a6f78;--border:#dcd7cc;--divider:#e6e1d7;--btn:#cdc8bb;--accent:#2f7d4f;--accent-ink:#fff;--fw:#3f6aa0;--mem:#2f7d4f;--eng:#9a6b2c;--read-text:#2a2620;--read-strong:#1f1c17;--read-soft:#5a554c;--quote:#b58a2e}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--text2);font-family:var(--font-sans), system-ui, sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes dwRise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
pre{color:#dfe3e6;font-family:var(--font-mono), ui-monospace, monospace;border:1px solid var(--border);border-radius:4px;max-width:100%;margin:26px 0;padding:16px 18px;font-size:13.5px;line-height:1.6;overflow-x:auto;background:#0c0e11!important}pre[data-theme] code{background:0 0;display:grid}
