.td .art-head{padding-top:40px}.td .art-intro{max-width:1040px;margin-top:36px}.td .art-meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.td .art-meta .chip{font-size:12px}.td .art-title{text-wrap:balance;margin:22px 0 0;font-size:clamp(44px,6.4vw,96px);line-height:1.02}.td .art-lede{color:var(--muted);max-width:40em;margin:28px 0 0;font-size:clamp(18px,1.6vw,22px);font-weight:500;line-height:1.6}.td .art-intro .tags{margin-top:24px}.td .art-cover{margin-top:48px}.td .art-body{padding-top:72px;padding-bottom:96px}.td .layout{grid-template-columns:240px minmax(0,700px) minmax(0,1fr);align-items:start;gap:64px;display:grid}.td .layout.no-toc{grid-template-columns:minmax(0,700px) minmax(0,1fr);padding-left:304px}.td .toc{font-family:JetBrains Mono,monospace;font-size:13px;position:sticky;top:96px}.td .toc ol{border-left:2px solid var(--line);margin:14px 0 0;padding:0;list-style:none}.td .toc a{color:var(--muted);border-left:2px solid #0000;grid-template-columns:28px 1fr;margin-left:-2px;padding:8px 0 8px 14px;font-family:Be Vietnam Pro,sans-serif;font-size:14px;font-weight:500;line-height:1.45;display:grid}.td .toc a .n{padding-top:1px;font-family:JetBrains Mono,monospace;font-size:12px}.td .toc a:hover,.td .toc a.on{color:var(--ink)}.td .toc a.on{border-left-color:var(--accent)}.td .toc a.on .n{color:var(--accent-ink)}.td .side{color:var(--muted);flex-direction:column;gap:12px;font-family:JetBrains Mono,monospace;font-size:12.5px;display:flex;position:sticky;top:96px}.td .side .iconbtn{width:40px;height:40px}.td .side-msg{color:#10b981;order:1;min-height:18px}.td .prose{color:var(--ink);overflow-wrap:break-word;font-size:18px;line-height:1.8}.td .prose p{margin:0 0 22px}.td .prose>div>p:first-child{color:var(--muted);font-size:21px;font-weight:500;line-height:1.7}.td .prose a{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px;text-decoration-thickness:1.5px}.td .prose a:hover{color:var(--accent-ink)}.td .prose h2{letter-spacing:-.035em;align-items:baseline;gap:14px;margin:80px 0 22px;scroll-margin-top:96px;font-size:34px;font-weight:700;line-height:1.2;display:flex}.td .prose>div>h2:first-child{margin-top:0}.td .prose h2 .n{letter-spacing:0;color:var(--accent-ink);flex:none;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:600;transform:translateY(-4px)}.td .prose h3{letter-spacing:-.02em;margin:44px 0 14px;scroll-margin-top:96px;font-size:22px;font-weight:700;line-height:1.35}.td .prose h4{margin:32px 0 10px;scroll-margin-top:96px;font-size:18px;font-weight:700}.td .prose ul,.td .prose ol{margin:0 0 22px;padding-left:0;list-style:none}.td .prose li{margin:6px 0;padding-left:26px;position:relative}.td .prose ul>li:before{content:"";background:var(--accent);width:8px;height:2px;position:absolute;top:.72em;left:4px}.td .prose li ul,.td .prose li ol{margin:6px 0 0}.td .prose li li:before{background:var(--tone-2);border-radius:50%;width:4px;height:4px;top:.68em}.td .prose ol{counter-reset:ol}.td .prose ol>li{counter-increment:ol}.td .prose ol>li:before{content:counter(ol) ".";color:var(--accent-ink);font-family:JetBrains Mono,monospace;font-size:.8em;font-weight:600;position:absolute;top:.18em;left:0}.td .prose strong{font-weight:700}.td .prose em{font-style:italic}.td .prose :not(pre)>code{background:var(--surface);box-shadow:0 0 0 1px var(--line);overflow-wrap:anywhere;border-radius:6px;padding:.12em .42em;font-family:JetBrains Mono,monospace;font-size:.84em}.td .prose blockquote{border-left:3px solid var(--accent);letter-spacing:-.02em;margin:30px 0;padding:6px 0 6px 26px;font-size:22px;font-weight:600;line-height:1.5}.td .prose blockquote p:last-child{margin-bottom:0}.td .prose hr{border:0;border-top:1px dashed var(--line-2);margin:56px 0}.td .prose img{max-width:100%;height:auto;box-shadow:0 0 0 1px var(--line);border-radius:14px;margin:28px 0;display:block}.td .prose table{border-collapse:collapse;width:100%;margin:24px 0 32px;font-size:15.5px;line-height:1.55;display:block;overflow-x:auto}.td .prose th{text-align:left;color:var(--muted);border-bottom:1.5px solid var(--ink);padding:0 14px 10px 0;font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:600}.td .prose td{border-bottom:1px solid var(--line);vertical-align:top;padding:14px 14px 14px 0}.td .code{background:var(--term);color:#e6e8f0;box-shadow:var(--shadow);border-radius:14px;margin:24px 0 28px;overflow:hidden}.td .code-h{color:#8a8f9e;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:8px 10px 8px 16px;font-family:JetBrains Mono,monospace;font-size:11.5px;display:flex}.td .copy{color:#c9cdd6;cursor:pointer;border-radius:6px;padding:5px 9px;font-family:JetBrains Mono,monospace;font-size:11.5px}.td .copy:hover{color:#fff;background:#ffffff14}.td .copy:focus-visible{outline:2px solid #ff5a52}.td .copy.ok{color:#34d399}.td .code pre{margin:0;padding:16px 18px 18px;font-family:JetBrains Mono,monospace;font-size:14.5px;line-height:1.75;overflow-x:auto}.td .code .hljs-comment,.td .code .hljs-quote{color:#8a8f9e;font-style:italic}.td .code .hljs-keyword,.td .code .hljs-selector-tag,.td .code .hljs-built_in,.td .code .hljs-attribute{color:#ff8a80}.td .code .hljs-string,.td .code .hljs-attr,.td .code .hljs-addition{color:#a7f3d0}.td .code .hljs-number,.td .code .hljs-literal,.td .code .hljs-symbol,.td .code .hljs-variable,.td .code .hljs-template-variable{color:#fcd34d}.td .code .hljs-title,.td .code .hljs-function,.td .code .hljs-name,.td .code .hljs-section{color:#c4b5fd}.td .code .hljs-meta,.td .code .hljs-deletion{color:#fca5a5}.td .eof{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:56px;padding-top:22px;display:flex}.td .eof>.mono{color:var(--muted);font-size:12.5px}.td .after{padding-bottom:128px}.td .series-bar{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);border-radius:18px;flex-direction:column;gap:14px;margin-bottom:20px;padding:24px;display:flex}.td .ticks{gap:6px;display:grid}.td .ticks span{background:var(--tone);border-radius:3px;height:6px}.td .ticks span.on{background:var(--accent)}.td .pn{grid-template-columns:1fr 1fr;gap:16px;display:grid}.td .pn a{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);border-radius:18px;flex-direction:column;gap:8px;padding:22px 24px;transition:box-shadow .3s,transform .5s cubic-bezier(.16,1,.3,1);display:flex}.td .pn a:hover{box-shadow:inset 0 0 0 1.5px var(--accent), var(--shadow);transform:translateY(-3px)}.td .pn .t{font-size:24px;transition:color .2s}.td .pn a:hover .t{color:var(--accent)}.td .pn .pn-r{text-align:right}.td .pn-l{color:var(--muted);font-size:12.5px}.td .read-next{margin:96px 0 40px}.td .after .tile-title{margin:0;font-size:clamp(26px,2.3vw,34px)}@media (max-width:1100px){.td .layout,.td .layout.no-toc{grid-template-columns:minmax(0,1fr);gap:40px;padding-left:0}.td .toc{display:none}.td .side{flex-flow:wrap;align-items:center;position:static}}@media (max-width:900px){.td .prose{font-size:17px}.td .prose h2{margin-top:60px;font-size:28px}.td .prose blockquote{font-size:19px}.td .pn{grid-template-columns:1fr}.td .pn .pn-r{text-align:left}}@media (prefers-reduced-motion:reduce){.td .pn a{transition:none}}
