:root{--paper:#ffffff;--ink:#0e0e0e;--ink-2:#3a3a3a;--grey:#77777a;--type:"IBM Plex Mono",ui-monospace,Menlo,monospace;--ui:"IBM Plex Sans",system-ui,sans-serif;color-scheme:light only}html{background:#ffffff}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--type);font-size:16px;line-height:1.6}a{color:inherit}a:hover,a:focus-visible{background:var(--ink);color:var(--paper);text-decoration:none;box-shadow:0 0 0 .22em var(--ink);outline:0}.gut{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.wrap{max-width:1120px;margin:0 auto}nav{position:sticky;top:0;z-index:5;background:#ffffff;border-bottom:3px solid var(--ink);font-family:var(--ui)}nav .wrap{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:6px 24px;flex-wrap:wrap;padding-block:8px}nav .mark{font-weight:600;font-size:15px;text-decoration:none}nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px 22px;font-size:14px;flex-wrap:wrap}nav ul a{text-decoration:none}nav ul a.on{font-weight:700}main .wrap{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:48px;padding-block:clamp(48px,7vw,96px)}@media (max-width:999px){main .wrap{grid-template-columns:minmax(0,1fr)}}.side{font-family:var(--ui);font-size:15px;line-height:1.35}.side p{margin:0}.side .st{font-weight:600;margin-bottom:6px}@media (min-width:1000px){.side{position:sticky;top:84px;align-self:start}}@media (max-width:999px){.side{margin-bottom:32px}}.prose{max-width:64ch;font-family:var(--ui);font-size:13.5px;line-height:1.55}.prose h1{font-family:var(--type);font-size:clamp(28px,4vw,44px);line-height:1.1;letter-spacing:-.03em;margin:0 0 .6em;font-weight:700}.prose h2{font-family:var(--ui);font-weight:600;font-size:13.5px;margin:2.2em 0 .5em}.prose h2:first-of-type{margin-top:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.prose p,.prose ul{margin:0 0 1em}.prose ul{padding-left:1.2em}.prose li{margin-bottom:.35em}.todo{font-family:var(--ui);font-size:14px;border:3px dashed var(--grey);color:var(--grey);padding:1px 8px;display:inline-block}.small{font-family:var(--ui);font-size:13px;color:var(--grey)}footer{border-top:3px solid var(--ink);padding-block:28px 56px;font-family:var(--ui);font-size:13px;color:var(--grey)}footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}footer a{text-decoration:none}