:root{color-scheme:light dark;--shell-max:1100px;--container-max:1100px;--container-max-prose:92ch;--prose-max:72ch;--bg:#faf6ef;--surface:#fff;--text:#111;--muted:#111111b8;--border:#1111111a;--border-strong:#1111112e;--accent:#4f7a16;--accent-wash:#4f7a1614;--accent-underline:#4f7a1670;--selection-bg:#4f7a1629;--radius:16px;--shadow:0 1px 2px #0000000a,0 10px 24px #0000000c;--soft:#11111114;--header-border:var(--border);--anchor-offset:88px;--fab-right:clamp(20px,4vw,36px);--fab-bottom:clamp(16px,4vw,20px);--font-body:"IBM Plex Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--font-display:"IBM Plex Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--font-brand:"IBM Plex Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--bg:#121414;--surface:#151818;--text:#f2f2f2;--muted:#f2f2f2b8;--border:#f2f2f21a;--border-strong:#f2f2f233;--header-border:#f2f2f229;--accent:#a8c27a;--accent-wash:#a8c27a1f;--accent-underline:#a8c27a80;--selection-bg:#a8c27a33;--shadow:0 1px 2px rgba(0,0,0,.28),0 10px 28px rgba(0,0,0,.36);--soft:#f2f2f20f;--pagefind-ui-primary:var(--accent);--pagefind-ui-text:var(--text);--pagefind-ui-background:var(--surface);--pagefind-ui-border:var(--border);--pagefind-ui-tag:var(--soft);--pagefind-ui-border-radius:12px;--pagefind-ui-font:var(--font-body)}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg:#121414;--surface:#151818;--text:#f2f2f2;--muted:#f2f2f2b8;--border:#f2f2f21a;--border-strong:#f2f2f233;--header-border:#f2f2f229;--accent:#a8c27a;--accent-wash:#a8c27a1f;--accent-underline:#a8c27a80;--selection-bg:#a8c27a33;--shadow:0 1px 2px rgba(0,0,0,.28),0 10px 28px rgba(0,0,0,.36);--soft:#f2f2f20f;--pagefind-ui-primary:var(--accent);--pagefind-ui-text:var(--text);--pagefind-ui-background:var(--surface);--pagefind-ui-border:var(--border);--pagefind-ui-tag:var(--soft)}}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.65;margin:0;-webkit-font-smoothing:antialiased}::selection{background:var(--selection-bg)}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.2;margin:0 0 12px}h1{font-size:2rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 14px}.meta{color:var(--muted)}main>*+*{margin-top:16px}a{color:inherit;text-underline-offset:3px}main a{text-decoration:underline;text-decoration-thickness:1px}main a:visited{opacity:.9}main a:hover{color:var(--accent)}.card a,.links a,a.button{text-decoration:none}a:focus-visible,button:focus-visible{border-radius:10px;outline:3px solid var(--accent);outline-offset:3px}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.page{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:24px auto;overflow:hidden;width:min(var(--shell-max),calc(100% - 32px))}.page.is-prose{--shell-max:var(--container-max-prose);--container-max:var(--shell-max)}.container{margin:0 auto;max-width:var(--container-max);padding:24px clamp(16px,3vw,40px)}.prose{margin:0 auto;max-width:var(--prose-max)}#main{scroll-margin-top:var(--anchor-offset)}header.container{border-bottom:1px solid var(--header-border);padding:16px clamp(16px,2vw,28px)}.nav{align-items:center;display:flex;gap:16px;justify-content:space-between}.nav-right{flex:1;flex-wrap:nowrap;justify-content:flex-end;margin-left:auto;min-width:0}.nav-actions,.nav-right{align-items:center;display:inline-flex;gap:6px}.brand,.links a{align-items:center;display:inline-flex;height:36px;line-height:1;padding:6px 2px}.brand{font-family:var(--font-brand);font-size:1.6rem;font-variation-settings:"opsz" 72;font-weight:700;letter-spacing:.01em;text-decoration:none;text-transform:none;transform:translateY(-3px)}.brand,.brand:hover{color:var(--accent)}.avatar{background:var(--surface);border:1px solid var(--border);border-radius:999px;height:32px;object-fit:cover;width:32px}.links{display:flex;flex-wrap:nowrap;gap:16px;justify-content:flex-end;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;align-items:center;padding-block:4px;padding-inline:2px;scrollbar-color:var(--border-strong) transparent;scrollbar-gutter:stable;scrollbar-width:thin}.links a{color:inherit;position:relative;white-space:nowrap}.links a:after{background:transparent;border-radius:2px;bottom:2px;content:"";height:2px;left:2px;position:absolute;right:2px}.links a:hover:after{background:var(--accent-underline)}.links::-webkit-scrollbar{height:8px}.links::-webkit-scrollbar-track{background:transparent}.links::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}.icon-btn{align-items:center;background:transparent;border:1px solid transparent;border-radius:10px;color:var(--muted);cursor:pointer;display:inline-flex;height:36px;justify-content:center;padding:0;width:36px}.icon-btn:hover{background:var(--soft);border-color:var(--border-strong);color:var(--accent)}.icon-btn svg{fill:none;height:18px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:18px}.icon-btn:focus-visible{background:var(--soft);border-color:var(--border-strong);color:var(--accent)}.social .icon-btn svg{display:block;height:20px;stroke-width:1.75;width:20px}.icon-btn__moon,.icon-btn__sun{display:none}.icon-btn[data-effective=dark] .icon-btn__sun,.icon-btn[data-effective=light] .icon-btn__moon{display:block}@media (max-width:760px){.page{margin:14px auto}header.container{padding-left:16px;padding-right:16px}.nav{align-items:center;column-gap:16px;display:grid;grid-template-areas:"brand toggle" "links links";grid-template-columns:1fr auto;row-gap:14px}.brand{font-size:1.35rem;grid-area:brand;line-height:1.1;transform:none}.nav-actions{grid-area:toggle;justify-self:end}.nav-right{display:contents;margin-left:0}.links{gap:18px;grid-area:links;justify-content:flex-start}}@media (max-width:520px){.page{margin:12px auto;width:calc(100% - 24px)}.container{padding-left:16px;padding-right:16px}.links{gap:12px}}footer.container{padding-top:0}.button{background:transparent;border:1px solid var(--border-strong);border-radius:12px;color:inherit;display:inline-block;padding:10px 14px}.button:hover{background:var(--accent-wash);border-color:var(--accent)}.cards{display:grid;gap:16px;list-style:none;margin:0;padding:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px}.card h2{font-size:1.1rem;margin:0 0 8px}.card a{color:inherit}.card a:hover{color:var(--accent)}.tag{background:transparent;border:1px solid var(--border-strong);border-radius:999px;color:var(--muted);display:inline-block;font-size:.9rem;margin:4px 6px 0 0;padding:2px 10px}.footer{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;opacity:.7}.footer,.hero{align-items:center}.hero{display:grid;gap:28px;grid-template-columns:180px 1fr;margin:0 auto;max-width:80ch;padding:6px 0}.hero h1{margin-top:0}.hero-photo{background:var(--surface);border:1px solid var(--border);border-radius:999px;height:180px;object-fit:cover;width:180px}@media (min-width:760px){.hero{gap:32px;grid-template-columns:180px minmax(0,56ch);justify-content:center;padding-left:90px}}@media (max-width:700px){.hero{grid-template-columns:1fr}.hero-photo{height:140px;width:140px}}.skip-link{background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;left:12px;padding:10px 12px;position:absolute;top:12px;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}.back-to-top{margin-left:auto;margin-right:auto;max-width:var(--prose-max)}.back-to-top :is(a,.back-to-top__btn){align-items:center;background:transparent;border:1px solid var(--border);border-radius:10px;color:inherit;display:inline-flex;gap:8px;padding:8px 10px;text-decoration:none}.back-to-top :is(a,.back-to-top__btn):focus-visible,.back-to-top :is(a,.back-to-top__btn):hover{background:var(--soft);border-color:var(--border-strong);color:var(--accent)}.back-to-top__btn{appearance:none;-webkit-appearance:none;cursor:pointer;font:inherit}.fab-top{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:999px;bottom:calc(var(--fab-bottom) + env(safe-area-inset-bottom, 0px));box-shadow:var(--shadow);color:var(--muted);display:inline-flex;height:44px;justify-content:center;opacity:0;pointer-events:none;position:fixed;right:calc(var(--fab-right) + env(safe-area-inset-right, 0px));transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,border-color .2s ease,background .2s ease,color .2s ease;width:44px;will-change:opacity,transform;z-index:50}.fab-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.fab-top:focus-visible,.fab-top:hover{background:var(--surface);border-color:var(--border-strong);color:var(--accent)}.fab-top svg{fill:none;height:18px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:18px}@media (prefers-reduced-motion:reduce){.fab-top{transform:none;transition:none}}.fab-sentinel{height:0}.pdf object{border:1px solid var(--border);border-radius:12px}.social{align-items:center;display:inline-flex;gap:10px}.prose :is(ul,ol){margin:0 0 14px;padding-left:1.2em}.prose li+li{margin-top:6px}.prose blockquote{border-left:3px solid var(--border-strong);color:var(--text);margin:0 0 14px;padding:.25rem 0 .25rem 1rem}.prose hr{border:0;border-top:1px solid var(--border);margin:24px 0}.prose code{background:var(--soft);border:1px solid var(--border);border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.95em;padding:.15em .35em;white-space:nowrap}.prose pre{background:var(--soft);border:1px solid var(--border);border-radius:12px;margin:0 0 14px;overflow:auto;padding:14px 16px}.prose pre code{background:transparent;border:0;font-size:.92em;line-height:1.6;padding:0;white-space:pre}.prose a code{color:inherit;text-decoration:none}.prose img{border-radius:12px;height:auto;max-width:100%}.prose table{border-collapse:collapse;display:block;font-size:.98em;margin:0 0 14px;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.prose :is(th,td){border:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:top}.prose th{background:var(--soft);font-weight:600}.prose :is(h1,h2,h3){scroll-margin-top:var(--anchor-offset)}