.article-page .article-shell{padding:clamp(24px,4vw,44px) 0 0}.article-page .article-grid{display:grid;grid-template-columns:minmax(0,650px) minmax(168px,214px);gap:clamp(54px,8vw,108px);align-items:start}.article-page .back-link,.article-page .meta-line,.article-page .tags,.article-page .toc{color:var(--color-muted);font-family:var(--font-sans);font-size:12px}.article-page .meta-line{display:flex;flex-wrap:wrap;gap:6px 10px}.article-page .meta-line span:before{color:var(--color-border);content:"/ "}.article-page .back-link{display:inline-block;margin-bottom:18px;text-decoration:none}.article-page h1{max-width:650px;margin:10px 0 16px;font-family:var(--font-title);font-size:clamp(31px,4vw,43px);font-weight:600;line-height:1.25;letter-spacing:0}.article-page .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.article-page .tags a{color:var(--color-ink-blue);text-decoration:none}.article-page .prose{margin-top:30px;padding-top:32px;border-top:1px solid color-mix(in srgb,var(--color-border),transparent 8%);color:#26231f;font-family:var(--font-serif);font-size:15.25px;font-weight:400;line-height:1.94;letter-spacing:0}.article-page .prose h2{margin:2.75em 0 .82em;color:color-mix(in srgb,var(--color-text),var(--color-ink-blue) 18%);font-family:var(--font-serif);font-size:23px;font-weight:650;line-height:1.42;letter-spacing:0}.article-page .prose h3{margin:2.1em 0 .68em;color:var(--color-text);font-family:var(--font-serif);font-size:17px;font-weight:650;line-height:1.5;letter-spacing:0}.article-page .prose p{margin:0 0 1.34em;text-align:justify;text-justify:inter-ideograph;hanging-punctuation:allow-end}.article-page .prose strong{color:#211e1b;font-weight:600}.article-page .prose a{color:var(--color-accent)}.article-page .prose img{display:block;width:auto;max-width:100%;max-height:min(68vh,620px);height:auto;margin:1.9em auto 2.1em;object-fit:contain;background:color-mix(in srgb,var(--color-surface),var(--color-bg) 32%);border:1px solid color-mix(in srgb,var(--color-border),transparent 10%)}.article-page .prose p:has(>img:only-child){margin:2em 0;text-align:center}.article-page .prose figure{max-width:100%;margin:2em 0 2.2em;overflow:hidden}.article-page .prose figure img{margin:0 auto}.article-page .prose figcaption{margin-top:.75em;color:var(--color-soft);font-family:var(--font-sans);font-size:12.5px;line-height:1.6;text-align:center}.article-page .prose hr{height:1px;width:38%;min-width:160px;margin:2.65em auto;background:color-mix(in srgb,var(--color-border),transparent 28%);border:0}.article-page .prose blockquote{margin:2.05em 0 2.2em;padding:16px 20px 15px;color:color-mix(in srgb,var(--color-muted),var(--color-soft) 28%);background:color-mix(in srgb,var(--color-surface),var(--color-bg) 38%);border-left:2px solid color-mix(in srgb,var(--color-accent),var(--color-border) 68%)}.article-page .prose blockquote p{color:inherit;margin-bottom:.9em;font-size:14.5px;line-height:1.82;text-align:left}.article-page .prose blockquote p:last-child{margin-bottom:0}.article-page .prose ul,.article-page .prose ol{margin:0 0 1.48em;padding-left:1.25em}.article-page .prose li+li{margin-top:.36em}.article-page .prose li::marker{color:color-mix(in srgb,var(--color-accent),var(--color-muted) 40%)}.article-page .prose code{padding:.1em .34em;background:color-mix(in srgb,var(--color-border),transparent 52%);border-radius:3px;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.88em}.article-page .prose table{display:block;width:100%;margin:2.05em 0 2.25em;overflow-x:auto;border:1px solid color-mix(in srgb,var(--color-border),transparent 14%);border-radius:6px;border-collapse:separate;border-spacing:0;font-family:var(--font-sans);font-size:13px;line-height:1.62;white-space:normal}.article-page .prose thead th{position:sticky;top:0;z-index:1;padding:11px 13px;color:var(--color-text);background:color-mix(in srgb,var(--color-surface),var(--color-bg) 46%);border-top:0;border-bottom:1px solid color-mix(in srgb,var(--color-border),transparent 8%);font-size:12.5px;font-weight:600;letter-spacing:0;text-align:left}.article-page .prose thead th:first-child{border-left:0;border-top-left-radius:6px}.article-page .prose thead th:last-child{border-right:0;border-top-right-radius:6px}.article-page .prose tbody td{min-width:132px;padding:12px 13px;color:var(--color-muted);background:color-mix(in srgb,var(--color-surface),transparent 10%);border-bottom:1px solid color-mix(in srgb,var(--color-border),transparent 10%);vertical-align:top}.article-page .prose tbody td:first-child{color:var(--color-text);border-left:0;font-weight:500}.article-page .prose tbody td:last-child{border-right:0;white-space:normal;min-width:200px}.article-page .prose tbody tr:last-child td:first-child{border-bottom-left-radius:8px}.article-page .prose tbody tr:last-child td:last-child{border-bottom-right-radius:8px}.article-page .prose tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--color-bg),white 58%)}.article-page .toc{position:sticky;top:96px;padding:2px 0 2px 15px;border-left:1px solid color-mix(in srgb,var(--color-border),transparent 18%)}.article-page .toc p{margin:0 0 12px;color:color-mix(in srgb,var(--color-text),var(--color-muted) 28%);font-size:12px;font-weight:600}.article-page .toc nav{display:grid;gap:7px}.article-page .toc a{color:color-mix(in srgb,var(--color-muted),transparent 8%);display:block;overflow:hidden;font-size:12px;line-height:1.42;text-overflow:ellipsis;text-decoration:none;white-space:nowrap;transition:color .12s ease}.article-page .toc a:hover{color:var(--color-accent)}.article-page .toc .depth-3{padding-left:14px}@media(max-width:960px){.article-page .article-grid{display:block}.article-page .toc{position:static;margin-top:34px;padding:16px;background:#ffffff52;border:1px solid var(--color-border);border-radius:8px}}@media(max-width:640px){.article-page .prose{font-size:15.5px}}
