:root{--bg: #fafaf7;--fg: #111110;--dim: #888580;--line: #e5e3dc;--accent: #111110}:root[data-theme=dark]{--bg: #101010;--fg: #e8e6df;--dim: #6a6862;--line: #242320;--accent: #e8e6df}html,body{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--fg);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13.5px;line-height:1.7}*{box-sizing:border-box}a{color:inherit}.a-root{min-height:100vh;display:flex;flex-direction:column}.a-wrap{max-width:640px;margin:0 auto;padding:64px 40px 48px;width:100%}.a-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:72px;gap:20px;flex-wrap:wrap}.a-head .name{display:inline-flex;text-decoration:none}.a-head .logo{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1.5px solid var(--fg);border-radius:7px;font-weight:700;font-size:12.5px;letter-spacing:.04em;color:var(--fg);transition:background .18s ease,color .18s ease}.a-head .name:hover .logo{background:var(--fg);color:var(--bg)}.a-head nav{display:flex;gap:20px;font-size:12.5px;align-items:center}.a-head nav a{color:var(--dim);cursor:pointer;text-decoration:none}.a-head nav a.active{color:var(--fg)}.a-head nav a:hover{color:var(--fg)}.theme-toggle{background:transparent;border:none;padding:0;cursor:pointer;display:inline-flex;align-items:center;line-height:0}.tt-track{position:relative;display:inline-flex;align-items:center;justify-content:space-between;box-sizing:border-box;width:40px;height:20px;padding:0 4px;border:1px solid var(--line);border-radius:999px;transition:border-color .18s ease}.tt-ico{width:11px;height:11px;color:var(--dim);flex:none}.tt-thumb{position:absolute;top:50%;left:2px;width:14px;height:14px;border-radius:50%;background:var(--fg);transform:translateY(-50%);transition:transform .18s ease}:root[data-theme=dark] .tt-thumb{transform:translate(18px,-50%)}.theme-toggle:hover .tt-track{border-color:var(--fg)}.theme-toggle:focus-visible .tt-track{outline:2px solid var(--fg);outline-offset:2px}.a-intro{max-width:52ch;margin-bottom:80px}.a-intro p{margin:0 0 14px}.a-intro .dim{color:var(--dim)}.a-label{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.14em;margin-bottom:20px}.a-list{display:flex;flex-direction:column}.a-item{display:grid;grid-template-columns:80px 1fr;gap:24px;padding:14px 0;align-items:baseline;cursor:pointer;color:inherit;text-decoration:none}.a-item+.a-item{border-top:1px solid var(--line)}.a-item .d{color:var(--dim);font-size:12px}.a-item .t{font-weight:500;letter-spacing:-.005em}.a-item .t .arrow{color:var(--dim);margin-left:6px;opacity:0;transition:opacity .15s,transform .15s;display:inline-block}.a-item:hover .t .arrow{opacity:1;transform:translate(3px)}.a-filter{display:flex;gap:4px;flex-wrap:wrap;align-items:baseline;margin:-4px 0 28px;font-size:12px}.a-filter .lbl{color:var(--dim);font-size:11px;text-transform:uppercase;letter-spacing:.14em;margin-right:10px}.a-filter button{background:transparent;border:none;font:inherit;color:var(--dim);cursor:pointer;padding:4px 10px;border-radius:3px;letter-spacing:-.005em}.a-filter button:hover{color:var(--fg)}.a-filter button.on{color:var(--bg);background:var(--fg)}.a-filter .ct{color:var(--dim);margin-left:auto;font-size:11px}.a-empty{color:var(--dim);padding:40px 0;text-align:center;font-size:13px}.a-post-wrap{max-width:680px;margin:0 auto;padding:64px 40px 48px;width:100%}.a-back{font-size:12px;color:var(--dim);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;margin-bottom:64px}.a-back:hover{color:var(--fg)}.a-back .arr{display:inline-block;transition:transform .15s}.a-back:hover .arr{transform:translate(-3px)}.a-post-meta{font-size:11.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.14em;margin-bottom:22px;display:flex;gap:16px;flex-wrap:wrap}.a-post-meta .sep{opacity:.5}.a-series{border:1px solid var(--line);border-radius:4px;padding:14px 16px;margin-bottom:28px}.a-series .hd{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;margin-bottom:10px}.a-series .hd .nm{color:var(--fg)}.a-series .hd .pt{color:var(--dim)}.a-series .parts{list-style:none;margin:0;padding:0;font-size:12.5px}.a-series .parts li{display:flex;gap:10px;padding:3px 0;color:var(--dim)}.a-series .parts .n{color:var(--dim);flex:none}.a-series .parts a.t{color:var(--dim);text-decoration:none}.a-series .parts a.t:hover{color:var(--fg);text-decoration:underline}.a-series .parts li.on .t,.a-series .parts li.on .n{color:var(--fg)}.a-prose svg{display:block;max-width:100%;height:auto;margin:26px 0}.a-post-title{font-size:28px;font-weight:500;line-height:1.25;letter-spacing:-.015em;margin:0 0 16px;text-wrap:balance}.a-post-lede{font-size:15px;color:var(--dim);line-height:1.6;margin-bottom:56px;max-width:56ch}.a-prose{font-size:14px;line-height:1.8;max-width:62ch}.a-prose h2{font-size:15px;font-weight:600;letter-spacing:-.005em;margin:48px 0 14px}.a-prose h2:before{content:"§ ";color:var(--dim);font-weight:400}.a-prose p{margin:0 0 18px}.a-prose a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.a-prose a:hover{text-decoration-color:var(--fg)}.a-prose code{background:var(--line);padding:1px 6px;border-radius:3px;font-size:12.5px}.a-prose ul{padding-left:0;list-style:none}.a-prose ul li{padding-left:18px;position:relative;margin-bottom:6px}.a-prose ul li:before{content:"—";position:absolute;left:0;color:var(--dim)}.a-prose blockquote{margin:24px 0;padding-left:18px;border-left:2px solid var(--line);color:var(--dim);font-style:normal}.a-prose table{width:100%;border-collapse:collapse;margin:24px 0;font-size:12.5px}.a-prose thead th{text-align:left;font-weight:500;font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--dim);padding:0 12px 8px 0;border-bottom:1px solid var(--line)}.a-prose tbody td{vertical-align:top;padding:9px 12px 9px 0;border-bottom:1px solid var(--line);line-height:1.6}.a-prose tbody td:first-child{color:var(--dim);white-space:nowrap}.a-prose table :last-child>tr:last-child>td{border-bottom:none}.a-code,.a-prose pre{background:transparent;border:1px solid var(--line);border-radius:4px;padding:16px 18px;margin:20px 0;font-size:12.5px;line-height:1.65;overflow-x:auto;white-space:pre;font-family:inherit}.a-prose pre code{background:none;padding:0;border-radius:0;font-size:inherit;font-family:inherit}.a-code .kw{color:var(--dim);font-weight:500}.a-code .st{color:var(--fg)}.a-code .cm{color:var(--dim);font-style:italic;opacity:.75}.a-code-head{font-size:10.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.14em;margin-bottom:6px}.a-post-foot{margin-top:72px;padding-top:24px;border-top:1px solid var(--line);font-size:12px;color:var(--dim)}.a-post-foot .tags{margin-bottom:40px}.a-post-foot .tags span{margin-right:10px}.a-nextprev{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-top:20px;border-top:1px solid var(--line)}.a-nextprev .slot{cursor:pointer;color:inherit;text-decoration:none}.a-nextprev .slot.next{text-align:right}.a-nextprev .lbl{font-size:10.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.14em;margin-bottom:6px}.a-nextprev .ttl{font-size:13px;color:var(--fg);font-weight:500;line-height:1.35}.a-nextprev .slot:hover .ttl{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.a-nextprev .slot.placeholder{cursor:default;opacity:.5}.a-nextprev .slot.placeholder:hover .ttl{text-decoration:none}.a-body-scroll{flex:1}.a-foot{max-width:640px;margin:96px auto 0;padding:24px 40px 48px;width:100%;display:flex;justify-content:space-between;font-size:11.5px;color:var(--dim);gap:20px;flex-wrap:wrap}.a-foot a{color:var(--dim);cursor:pointer;text-decoration:none}.a-foot a:hover{color:var(--fg)}.a-foot .links a+a{margin-left:18px}.a-proj{display:grid;grid-template-columns:1fr;gap:0}.a-prow{display:grid;grid-template-columns:1fr auto;gap:24px;padding:16px 0;align-items:baseline;border-top:1px solid var(--line)}.a-prow:last-child{border-bottom:1px solid var(--line)}.a-prow .n{font-weight:500}.a-prow .tag{color:var(--dim);font-size:12.5px;margin-top:2px}.a-prow .r{color:var(--dim);font-size:12px}
