/* LinX's reading and knowledge layouts, layered over the pinned Aerlume theme. */
:root{--ink:#33383d;--muted:#80858b;--line:#eceeef;--accent:#507ca6;--paper:#fff;--soft:#f7f9fb}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0!important;background:var(--paper);color:var(--ink)}
body,button,input{font-family:var(--aerlume-local-font),Helvetica,Arial,sans-serif;font-weight:400}
*{box-sizing:border-box}a{color:inherit}button,summary{cursor:pointer}button,input{font-size:inherit}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:3px}
.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip-link:focus{position:fixed;top:8px;left:8px;padding:12px;background:white;z-index:100}
.linx-icon{flex-shrink:0;vertical-align:middle}.quiet-link{color:var(--accent);font-size:14px;text-decoration:none}
.index-about{margin:48px 0 46px;opacity:1;animation:none;font-size:14px;color:var(--muted);letter-spacing:.08em}.index-about a{text-decoration:none}
.index-container{max-width:1160px;padding:0 40px;margin:0 auto;gap:70px;background:var(--paper)}
.index-container .index-left{flex:0 0 154px;transition:none;position:sticky;top:40px}
.index-container .index-middle{flex:1;min-width:0;max-width:820px}
.linx-nav{padding-top:4px}.site-identity{display:flex;align-items:center;gap:12px;text-decoration:none;margin-bottom:32px;color:#333;font-size:19px}
.site-identity img{width:48px;height:48px;border-radius:50%;object-fit:cover}.identity-caption{display:block;color:#8a8f94;font-size:11px;letter-spacing:.12em;margin-top:5px}
.site-menu{display:flex;flex-direction:column;gap:6px}.menu-link{display:flex;align-items:center;gap:13px;padding:11px 14px;color:#7a8188;text-decoration:none;font-size:14px;border:0;background:transparent;width:100%;text-align:left;border-radius:7px}
.menu-link:hover,.menu-link.active{background:#f3f6f9;color:var(--accent)}.menu-link.active{font-weight:500}.mobile-menu-toggle{display:none}
.page-heading{margin:0 0 36px}.eyebrow{font-size:11px;color:#91979c;letter-spacing:.16em;margin:0 0 12px}.page-heading h1{font-size:28px;line-height:1.55;font-weight:400;color:#252a2f;margin:0 0 12px}.page-heading>p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.8;margin:0}
.home-heading{margin-bottom:44px}.home-heading h1{font-size:27px}.list-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.list-heading h2{font-size:13px;font-weight:400;color:var(--muted);margin:0}.list-heading a{font-size:12px;text-decoration:none;color:var(--muted)}.list-heading a:hover{color:var(--accent)}
.post-preview-container{min-height:0;border-top:1px solid var(--line)}.post-preview{padding:22px 2px;gap:14px;border-bottom:1px solid var(--line)}.post-preview:hover{padding:22px 2px;background:#fafbfc}
.post-preview .post-info a h2{font-size:17px;line-height:1.7;font-weight:400;margin:0 0 6px;color:#292e32;overflow-wrap:anywhere}.post-preview .post-info a:hover h2{color:var(--accent)}
.post-preview .post-info p.post-tags{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.post-preview .post-info p a.tag{background:transparent;padding:0;margin:0;border-radius:0;color:#90969b;font-size:12px}.post-preview .post-info p a.tag:hover{color:var(--accent);background:transparent}.tag-separator{font-size:11px!important;color:#c4c8cc!important}.post-preview .post-time{font-size:12px;color:#92989e;min-width:85px;margin-left:8px}
.linx-pager{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:30px 0;font-size:13px;color:var(--muted)}.linx-pager a{text-decoration:none}.linx-pager a:hover{color:var(--accent);background:var(--soft)}.linx-pager a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.linx-pager-prev,.linx-pager-next{grid-row:1;padding:10px 4px;white-space:nowrap;border-radius:5px}.linx-pager-prev{grid-column:1;justify-self:start}.linx-pager-next{grid-column:3;justify-self:end}.linx-pager-numbers{grid-column:2;grid-row:1;display:flex;align-items:center;gap:4px}.linx-pager-number,.linx-pager-gap{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:36px;box-sizing:border-box;padding:0 6px;border-radius:6px}.linx-pager-number.is-current{color:var(--accent);background:var(--soft);font-weight:600}.linx-pager-gap{min-width:20px;padding:0}.linx-pager-mobile{display:none}
@media(max-width:680px){.linx-pager{grid-template-columns:1fr 1fr;gap:8px}.linx-pager-desktop{display:none}.linx-pager-mobile{display:flex;grid-column:1/-1;justify-self:center}.linx-pager-prev,.linx-pager-next{grid-row:2}.linx-pager-next{grid-column:2}.linx-pager-number{min-width:36px;min-height:40px}}
.linx-footer{max-width:960px;margin:64px auto 30px!important;padding:24px 20px!important;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 28px;border:0;font-size:11px;line-height:1.8;color:#a0a5aa}.linx-footer a{text-decoration:none;color:#8b9299}.linx-footer a:hover{color:var(--accent)}
.reading-shell{max-width:852px;margin:0 auto;padding:0 26px}.reading-tools{position:sticky;top:0;z-index:10;height:72px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);margin-bottom:48px}
.reading-back,.reading-toc summary{display:flex;align-items:center;gap:9px;font-size:13px;color:#7a828a;text-decoration:none;padding:10px 0;min-height:44px}.reading-back:hover,.reading-toc summary:hover{color:var(--accent)}
.reading-toc summary{list-style:none}.reading-toc summary::-webkit-details-marker{display:none}.reading-toc[open] summary{color:var(--accent)}
.reading-toc-panel{position:absolute;right:0;top:62px;width:320px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 100px);overflow-y:auto;background:white;border:1px solid #e7ebef;border-radius:10px;padding:22px 16px;box-shadow:0 14px 45px #24334414;overscroll-behavior:contain}
.toc-caption{display:block;font-size:12px;color:#9aa1a8;padding:0 10px 14px;letter-spacing:.08em}.reading-toc-panel ol{list-style:none;margin:0;padding-left:12px}.reading-toc-panel>ol{padding:0}.reading-toc-panel li{margin:0}.reading-toc-panel a{display:block;padding:7px 10px;text-decoration:none;font-size:13px;line-height:1.7;color:#767f89;border-radius:5px;overflow-wrap:anywhere}.reading-toc-panel a:hover,.reading-toc-panel a[aria-current="location"]{background:#f3f6f9;color:var(--accent)}
.article-header{text-align:center;margin-bottom:36px}.article-category{display:inline-block;font-size:12px;color:var(--accent);text-decoration:none;margin-bottom:16px;letter-spacing:.08em}
.post-container .post-title{font-size:30px;font-weight:400;line-height:1.6;margin:0 0 16px;color:#262b30;overflow-wrap:anywhere}
.post-container .post-meta{font-size:12px;color:#9aa0a6;margin:0;padding:0;border:0;line-height:2}.post-container .post-meta a,.post-container .post-meta span{font-size:12px;color:#939ba2}.post-meta a{text-decoration:none}.article-description{max-width:620px;margin:22px auto 0;font-size:14px;line-height:1.9;color:#858c93;text-align:left;padding:16px 20px;background:#fafbfc;border-left:2px solid #dee6ed;border-radius:0 5px 5px 0}
.post-content{min-width:0;line-height:1.85;font-size:16px;font-weight:400;letter-spacing:.015em;text-indent:0;overflow-wrap:anywhere;color:#444b52}
.post-content p,.post-content li{font-size:16px;font-weight:400;line-height:1.85;letter-spacing:.015em;word-break:normal;text-indent:0;color:inherit}
.post-content p{margin:1em 0}.post-content li p{display:block;margin:.5em 0}.post-content ul,.post-content ol{padding-left:1.5em;text-indent:0;margin:1em 0}.post-content ul li{list-style:disc outside}.post-content ol li{list-style:decimal outside}.post-content ul li::before{content:none}.post-content li{padding-left:.2em;margin:.35em 0}
.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{font-weight:500;line-height:1.6;color:#30363c;text-indent:0;word-break:normal;overflow-wrap:anywhere;scroll-margin-top:90px}
.post-content h2{font-size:23px;margin:44px 0 18px;padding-bottom:10px;border-bottom:1px solid var(--line)}.post-content h3{font-size:20px;margin:32px 0 14px}.post-content h4{font-size:18px;margin:26px 0 12px}.post-content h5,.post-content h6{font-size:16px;margin:22px 0 10px}
.post-content .headerlink{border:0}.post-content img,.post-content p img{display:block;width:auto;max-width:100%;height:auto;margin:24px auto;border-radius:6px}.post-content blockquote{margin:24px 0;padding:8px 20px;border-left:2px solid #bfd0df;background:#f8fafc}.post-content blockquote p{color:#6b7580}
.post-content code,.post-content pre,.post-content pre *,.post-content .highlight *{font-family:Consolas,"SFMono-Regular",Menlo,monospace;letter-spacing:0;font-weight:400}.post-content :not(pre)>code{font-size:.88em;background:#f2f5f7;color:#526f88;padding:2px 5px;border-radius:4px;word-break:break-word}
.post-content pre,.post-content .highlight{max-width:100%;overflow:auto;text-indent:0;line-height:1.7;border-radius:8px;font-size:13px}.post-content .highlight{margin:22px 0}.post-content .highlight pre{margin:0;overflow:visible;white-space:pre;word-break:normal;overflow-wrap:normal;padding:12px 14px}.post-content .highlight table{margin:0;display:table;overflow:visible;border:0;width:100%}.post-content .highlight td{border:0;padding:0}.post-content .highlight .gutter{width:38px;user-select:none}.post-content .highlight .gutter pre{padding-right:8px;padding-left:12px}.post-content .highlight pre code{background:transparent;padding:0;color:inherit}
.post-content table:not(.highlight table){display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:14px;line-height:1.7;margin:24px 0;text-indent:0}.post-content table:not(.highlight table) th,.post-content table:not(.highlight table) td{padding:10px 14px;border:1px solid #e7ebef;min-width:100px}.post-content table:not(.highlight table) th{background:#f7f9fb;font-weight:500}
.article-end{display:flex;justify-content:space-between;gap:20px;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);font-size:13px;color:#8c949b}.article-end a{text-decoration:none}.article-end a:hover{color:var(--accent)}
.topic-jumps{display:flex;flex-wrap:wrap;gap:10px 20px;margin:0 0 40px;padding-bottom:24px;border-bottom:1px solid var(--line)}.topic-jumps a{font-size:13px;text-decoration:none;color:var(--accent)}.topic-section{margin-bottom:48px;scroll-margin-top:32px}.topic-heading{display:flex;align-items:baseline;gap:16px;margin-bottom:20px}.topic-number{font-size:13px;color:#b3bbc2}.topic-heading h2{font-size:21px;font-weight:400;margin:0 0 7px}.topic-heading p{font-size:13px;line-height:1.8;color:#8a9299;margin:0}.topic-count{margin-left:auto;white-space:nowrap;font-size:12px;color:#9ca4ab}.topic-section .post-preview .post-info a h2{font-size:15px}
.tag-index{display:flex;flex-wrap:wrap;gap:14px}.tag-index a{display:flex;gap:14px;align-items:center;padding:10px 15px;border:1px solid var(--line);border-radius:6px;text-decoration:none;font-size:14px;color:#677482}.tag-index a:hover{border-color:#cbd9e6;background:#fafcfe}.tag-index small{font-size:11px;color:#a4aab1}
.archive-year{margin:36px 0}.archive-year h2{font-size:22px;font-weight:400;color:#6a737c}.archive-year ol{list-style:none;padding:0}.archive-year li{display:flex;gap:24px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:1.7}.archive-year time{flex-shrink:0;color:#a2a9af;font-size:12px;padding-top:3px}.archive-year a{text-decoration:none}.archive-year a:hover{color:var(--accent)}
.search-dialog{width:min(650px,calc(100vw - 32px));max-height:80dvh;border:1px solid #e5eaf0;border-radius:12px;padding:26px;color:var(--ink);box-shadow:0 20px 80px #1e304c20}.search-dialog::backdrop{background:#2937474d;backdrop-filter:blur(3px)}.search-dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.search-dialog h2{font-size:20px;font-weight:400;margin:0}.search-dialog button{border:0;background:transparent;color:var(--accent);padding:10px;min-height:44px}.search-dialog-top button{font-size:12px;color:#939ba4}.search-dialog form{display:flex;gap:10px;border:1px solid #dce4ec;border-radius:6px;padding:3px 8px}.search-dialog input{width:100%;min-width:0;border:0;background:transparent;color:var(--ink);padding:10px;outline:0}.search-dialog form button{flex-shrink:0}.search-dialog #search-status{font-size:12px;color:var(--muted);line-height:1.8}.search-dialog ul{list-style:none;padding:0;margin:0}.search-dialog li{border-top:1px solid var(--line)}.search-dialog li a{display:block;padding:16px 4px;text-decoration:none}.search-dialog li strong{font-size:15px;font-weight:400;color:var(--accent)}.search-dialog li p{font-size:12px;line-height:1.8;color:#8b949c;margin:7px 0 0}
@media(max-width:980px){.index-container{padding:0 28px;gap:35px}.index-container .index-left{flex-basis:136px}.reading-shell{max-width:852px}}
@media(max-width:680px){
 .index-about{display:none}.index-container{display:block;padding:0 22px}.index-container .index-left{position:relative;top:auto;width:100%;margin-bottom:30px}.linx-nav{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:22px 0 18px;border-bottom:1px solid var(--line)}.site-identity{margin:0;font-size:17px}.site-identity img{width:36px;height:36px}.identity-caption{font-size:10px}.mobile-menu-toggle{display:flex;align-items:center;gap:8px;padding:10px 0 10px 16px;min-height:44px;color:#8a9299;border:0;background:transparent;font-size:13px}.site-menu{display:none;width:100%;padding-top:16px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.site-menu.is-open{display:grid}.menu-link{padding:12px 8px;font-size:12px;gap:8px}.menu-link .linx-icon{width:16px}
 .page-heading h1,.home-heading h1{font-size:23px}.page-heading{margin-bottom:28px}.home-heading{margin-bottom:32px}.page-heading>p:not(.eyebrow){font-size:13px}.post-preview,.post-preview:hover{padding:20px 0;align-items:flex-start;gap:6px}.post-preview .post-info a h2{font-size:16px;line-height:1.7;white-space:normal}.post-preview .post-time{font-size:10px;min-width:70px;padding-top:5px;margin-left:4px}.post-preview .post-info p a.tag{font-size:11px}.linx-footer{margin:40px auto 20px!important;flex-direction:column;gap:6px;font-size:10px}
 .reading-shell{width:100%;padding:0 20px}.reading-tools{height:60px;margin-bottom:32px}.reading-toc-panel{top:54px}.article-header{margin-bottom:28px}.post-container .post-title{font-size:25px;text-align:left}.article-header{text-align:left}.article-category{margin-bottom:12px}.post-container .post-meta{text-align:left;font-size:11px}.post-container .post-meta a,.post-container .post-meta span{font-size:11px}.article-description{font-size:13px;padding:12px 15px;margin-top:20px}.post-content,.post-content p,.post-content li{font-size:15px;line-height:1.9}.post-content h2{font-size:21px}.post-content h3{font-size:18px}.post-content h4{font-size:16px}.post-content h5,.post-content h6{font-size:15px}.post-content pre,.post-content .highlight{font-size:12px}.post-content .highlight .gutter{display:none}.topic-heading{gap:10px}.topic-heading h2{font-size:19px}.topic-heading p{font-size:12px}.topic-number{font-size:11px}.topic-jumps{gap:14px}.topic-count{font-size:11px}.archive-year li{gap:16px;font-size:14px}.search-dialog{padding:20px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Article TOC: persistent left column on desktop; collapsible panel on small screens. */
.reading-shell{max-width:1140px}
.article-reading-layout{max-width:800px;margin:0 auto}
.article-reading-layout.has-toc{max-width:none;display:grid;grid-template-columns:230px minmax(0,800px);gap:38px;align-items:start;justify-content:center}
.article-reading-layout.has-toc:has(.reading-toc:not([open])){grid-template-columns:72px minmax(0,800px);gap:24px}
.article-reading-layout .post-container{min-width:0}
.article-reading-layout .reading-toc{position:sticky;top:96px;min-width:0}
.article-reading-layout .reading-toc summary{gap:8px;padding:0 6px 14px;min-height:36px;color:#78838e}
.toc-hide-label{margin-left:auto;font-size:11px;color:#9ba4ad}
.reading-toc[open] .toc-show-label,.reading-toc:not([open]) .toc-open-label,.reading-toc:not([open]) .toc-hide-label{display:none}
.toc-show-label{font-size:12px;white-space:nowrap}
.article-reading-layout .reading-toc-panel{position:static;width:100%;max-width:none;max-height:calc(100dvh - 160px);padding:6px 0 12px;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;background:transparent;scrollbar-width:thin;scrollbar-color:#dce2e8 transparent}
.article-reading-layout .reading-toc-panel a{font-size:12px;padding:6px 8px;line-height:1.8}
.article-reading-layout .reading-toc-panel ol{padding-left:10px}
.article-reading-layout .reading-toc-panel>ol{padding-left:0}
@media(max-width:980px){
  .reading-shell{max-width:852px}
  .article-reading-layout.has-toc,.article-reading-layout.has-toc:has(.reading-toc:not([open])){display:block}
  .article-reading-layout .reading-toc{position:relative;top:auto;margin:0 0 28px}
  .article-reading-layout .reading-toc summary{justify-content:flex-start;padding:0 0 12px}
  .toc-hide-label{margin-left:12px}
  .article-reading-layout .reading-toc-panel{max-height:45dvh;padding:10px 8px;background:#fafbfc;border:1px solid var(--line);border-radius:6px}
}
