/* Article-first typography. Shared by initial and progressively loaded posts. */
.site-admin-menu{position:relative}
@media(min-width:821px){.site-admin-menu{display:none}}
.site-admin-menu>summary{display:flex;align-items:center;justify-content:center;list-style:none;cursor:pointer;width:44px;height:44px;color:var(--text);font:20px/1 var(--font-ui)}
.site-admin-menu>summary::-webkit-details-marker{display:none}
body .site-header .site-admin-menu [data-site-admin-quick]{position:absolute;inset-inline-end:0;top:48px;z-index:130;white-space:nowrap;width:max-content!important;min-width:160px!important;height:auto!important;min-height:44px!important;padding:12px 16px!important;display:flex;justify-content:flex-start!important;border-radius:10px!important;font:400 14px/1.5 var(--font-ui)!important;background:var(--background)!important;color:var(--text)!important;box-shadow:0 6px 24px #0002}
body .site-header .site-admin-menu [data-site-admin-quick]::before{display:none!important}
.site-admin-menu>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:820px){
 .primary-nav .site-admin-menu>summary{display:none}
 body .site-header .primary-nav .site-admin-menu [data-site-admin-quick]{position:static;width:100%!important;box-shadow:none;background:transparent!important}
}
.showcase .article-excerpt,.article-excerpt{display:block;font:400 1rem/1.8 var(--font-ui);color:var(--text);max-width:64ch;overflow-wrap:anywhere;-webkit-line-clamp:unset;overflow:visible}
.article-excerpt p{margin:0 0 .95em;white-space:normal}
.article-excerpt>:last-child{margin-bottom:0}
.article-excerpt blockquote{margin:1rem 0;padding:.8rem 1rem;border:0;border-inline-start:2px solid var(--accent);border-radius:0 8px 8px 0;background:var(--surface-muted);font:inherit;color:var(--text)}
.article-excerpt blockquote>:last-child{margin-bottom:0}
.article-excerpt :is(ul,ol){padding-inline-start:1.4em;margin:.8em 0}
.article-excerpt li+li{margin-top:.4em}
.article-excerpt :is(strong,b){font-weight:600}
/* Wide home: two real reading columns, not a squeezed sidebar. */
@media(min-width:1200px){
 main.shell:has(>.showcase .has-short-sidebar){width:min(1320px,calc(100% - 64px));max-width:none}
 .showcase:has(.has-short-sidebar){width:100%;max-width:none}
 .showcase .showcase-layout.has-short-sidebar{grid-template-columns:minmax(360px,.85fr) minmax(0,1.45fr);column-gap:48px;row-gap:0;align-items:start;padding-top:2rem}
 .showcase .has-short-sidebar>.showcase-short-sidebar{grid-column:1;grid-row:1;width:100%;max-width:none;margin:0;padding:0}
 .showcase .has-short-sidebar>.showcase-main{grid-column:2;grid-row:1}
 .showcase .has-short-sidebar>.showcase-main .showcase-lead{padding-top:0;margin-top:0}
 .showcase .has-short-sidebar .showcase-posts{grid-template-columns:minmax(0,1fr);gap:2.4rem}
 .showcase .has-short-sidebar .showcase-main>.showcase-section:first-child{padding-top:0}
}
body .site-header .article-controls-only{margin-inline-start:auto;flex:0 0 auto;width:auto;padding:0}
body .site-header .article-controls-only .header-controls{display:flex;flex-flow:row nowrap;align-items:center;gap:4px;padding:0;margin:0}
body .site-header .article-controls-only .theme-control{width:auto}
body .site-header .article-controls-only :is([data-theme-toggle],[data-site-admin-quick]){display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;margin:0;border:0;border-radius:50%;background:transparent;color:var(--text);font-size:0;gap:0}
body .site-header .article-controls-only :is([data-theme-toggle],[data-site-admin-quick])::before{content:'';display:block;width:19px;height:19px;background:currentColor;mask:center/contain no-repeat var(--reading-control-icon);-webkit-mask:center/contain no-repeat var(--reading-control-icon)}
body .site-header [data-theme-toggle]{--reading-control-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M12 3a9 9 0 0 1 0 18Z' fill='black'/%3E%3C/svg%3E")}
@media(min-width:821px){
 body .site-header .site-nav:not(.article-controls-only) [data-theme-cycle]{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;margin:0;border:0;border-radius:50%;background:transparent;color:var(--text);font-size:0;gap:0}
 body .site-header .site-nav:not(.article-controls-only) [data-theme-cycle]::before{content:'';display:block;width:19px;height:19px;order:0;margin:0;background:currentColor;mask:center/contain no-repeat var(--reading-control-icon);-webkit-mask:center/contain no-repeat var(--reading-control-icon)}
 body .site-header .site-nav:not(.article-controls-only) [data-theme-cycle]:hover{background:var(--surface-muted);color:var(--text)}
}
body .site-header .article-controls-only [data-site-admin-quick]{--reading-control-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 5H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8M16 3l5 5M10 14l-1 4 4-1L22 8a2 2 0 0 0 0-3l-1-1a2 2 0 0 0-3 0Z' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
@media(hover:hover){body .site-header .article-controls-only :is([data-theme-toggle],[data-site-admin-quick]):hover{background:var(--surface-muted);color:var(--text)}}
.reading-shell{width:100%;max-width:760px;margin-inline:auto;padding-top:2.2rem}
.reading-article .post-header{margin:0 0 2rem;padding:0}
.reading-article .post-header h1{font-family:var(--font-reading);font-size:clamp(1.6rem,3vw,2.15rem);font-weight:400;line-height:1.3;letter-spacing:-.02em;max-width:32ch;margin:0 0 1rem;text-wrap:pretty;overflow-wrap:anywhere}
.reading-article .post-header .post-meta{font:400 .8125rem/1.65 var(--font-ui);letter-spacing:0;margin:0;color:var(--muted)}
.reading-article .article-languages{margin-top:1rem;font:.875rem/1.6 var(--font-ui)}
.reading-article .reading-prose{font:400 1.125rem/1.8 var(--font-ui);letter-spacing:normal;max-width:66ch;color:var(--text);text-align:start;overflow-wrap:anywhere}
.reading-prose>p:first-child{font:inherit;color:inherit}
.reading-prose p{margin:0 0 1.3em}
.reading-prose :is(h2,h3,h4){text-wrap:pretty;letter-spacing:-.015em;line-height:1.4;margin-bottom:.8em}
.reading-prose h2{font-size:1.35em;margin-top:2.2em}
.reading-prose h3{font-size:1.14em;margin-top:1.9em}
.reading-prose :is(ul,ol){margin-block:1em 1.5em;padding-inline-start:1.4em}
.reading-prose li+li{margin-top:.5em}
.reading-prose :is(blockquote,.content-quote){margin-block:1.8em;border:0;border-radius:12px;background:var(--surface-muted);padding:1.1em 1.2em;color:var(--text)}
.reading-prose .content-quote blockquote{padding:0;margin:0;background:transparent}
.reading-prose :is(blockquote,.content-quote)>:last-child{margin-bottom:0}
.reading-prose :is(figcaption,.content-quote figcaption){font:.875rem/1.65 var(--font-ui);color:var(--muted)}
.reading-prose :is(.table-scroll,pre){width:100%;max-width:100%;box-sizing:border-box;overflow-x:auto;overscroll-behavior-x:contain;border-radius:10px}
.reading-prose pre{line-height:1.65;padding:1.1rem}
.reading-prose table{font-size:.875rem;line-height:1.65}
.reading-prose img,.reading-article .post-cover img{max-width:100%;height:auto;border-radius:10px}
.reading-article .post-cover--detail{margin:0 0 2rem}
.reading-article .references{border-radius:12px;margin-top:2.5rem}
.reading-article .references :is(ol,summary){font-size:.875rem;line-height:1.75}
.showcase .showcase-main .showcase-lead{max-width:860px;padding-block:2.3rem 3rem}
.showcase .showcase-main .showcase-lead h1{font:400 clamp(1.4rem,2.8cqi,1.85rem)/1.35 var(--font-reading);letter-spacing:-.02em;max-width:38ch;margin:0 0 .7rem;text-wrap:pretty}
.showcase .showcase-lead .showcase-meta,.showcase .showcase-posts :is(.showcase-meta,.post-meta){font:400 .8125rem/1.6 var(--font-ui);color:var(--muted);margin:.6rem 0 1rem;letter-spacing:0}
.showcase .showcase-deck{font:400 1.0625rem/1.8 var(--font-ui);max-width:64ch;color:var(--text);margin:1rem 0 0}
.showcase .showcase-posts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 3.5rem}
.showcase .showcase-posts>article{min-width:0;padding:0;border:0;background:none}
.showcase .showcase-main .showcase-posts :is(h2,h3){font:400 1.25rem/1.4 var(--font-reading);letter-spacing:-.015em;margin:0 0 .6rem;max-width:none;text-wrap:pretty;overflow-wrap:anywhere}
.showcase .showcase-posts article>p:last-child{font:400 1rem/1.75 var(--font-ui);color:var(--text);margin:1rem 0 0;-webkit-line-clamp:4}
.showcase .showcase-posts .post-cover{margin:1rem 0}
.showcase .post-cover img{border-radius:10px;background:var(--surface-muted)}
.showcase .post-cover--lead img{max-height:420px;object-fit:contain}
.showcase .showcase-section-heading{margin-bottom:1.7rem}
.showcase .showcase-lead h1 a,.showcase .showcase-posts :is(h2,h3) a{color:var(--text);text-decoration:none;background:none;box-shadow:none}
.showcase .showcase-lead h1 a:hover,.showcase .showcase-posts :is(h2,h3) a:hover{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;background:none}
@media(max-width:650px){
 .reading-shell{padding-top:1.4rem}
 .reading-article .post-header{margin-bottom:1.6rem}
 .reading-article .post-header h1{font-size:1.6rem;line-height:1.35}
 .reading-article .reading-prose{font-size:1.125rem;line-height:1.8}
 .reading-prose :is(blockquote,.content-quote){padding:1rem .9rem}
 .showcase .showcase-posts{grid-template-columns:minmax(0,1fr);gap:2.2rem}
 .showcase .showcase-main .showcase-lead{padding-block:1.4rem 2rem}
 .showcase .showcase-main .showcase-lead h1{font-size:1.4rem}
 .showcase .showcase-main .showcase-posts :is(h2,h3){font-size:1.22rem}
 .showcase .showcase-deck{font-size:1rem;line-height:1.8}
 .showcase .showcase-section{padding-block:1rem 2rem}
 .showcase .post-cover--listing img{max-height:320px}
}
html[data-blog-theme=eink] .reading-prose :is(blockquote,.content-quote){background:none}
/* Mobile header belongs to the document flow; no reserved sticky-header gap. */
@media(max-width:820px){
 body .site-header.shell{position:relative;inset:auto;box-sizing:border-box;width:100%;max-width:none;margin:0;padding:12px max(12px,env(safe-area-inset-right)) 12px max(12px,env(safe-area-inset-left))}
 body.article-view main.shell{padding-top:0}
 .article-view .reading-shell{padding-top:.5rem}
 .article-view .reading-article{width:100%;max-width:100%;margin-top:0}
 .article-view .reading-article .post-header{padding:0;margin:0 0 1.5rem}
 .reading-article .post-header h1{font-size:clamp(1.5rem,5.8vw,1.875rem);line-height:1.35;letter-spacing:-.015em;max-width:none;margin:0 0 .65rem;text-wrap:pretty;word-break:normal;overflow-wrap:anywhere;color:var(--text)}
 .article-view .reading-article .post-meta{font-size:.8125rem;line-height:1.6;margin:0}
 .article-view .reading-prose{line-height:1.8;text-align:start}
}
.archive-pagination{display:flex;gap:1rem;margin:1.5rem 0;font:.875rem/1.6 var(--font-ui)}
.archive-pagination a{display:inline-flex;align-items:center;min-height:44px;color:var(--text);text-underline-offset:4px}
.archive-pagination[hidden]{display:none}
.reading-contents{margin:0 0 1.75rem;font:.9375rem/1.7 var(--font-ui);max-width:66ch}
.reading-contents summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--muted)}
.reading-contents ol{list-style:none;margin:.5rem 0;padding:0;max-height:45vh;overflow:auto;overscroll-behavior:contain}
.reading-contents a{display:block;min-height:44px;padding:9px 0;color:var(--text);text-decoration:none;overflow-wrap:anywhere}
.reading-contents li[data-level="3"]{padding-inline-start:1rem}
.reading-contents li:is([data-level="4"],[data-level="5"],[data-level="6"]){padding-inline-start:2rem}
.reading-contents a:hover{text-decoration:underline;text-underline-offset:4px}
.reading-contents :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.reading-prose :is(h2,h3,h4,h5,h6)[id]{scroll-margin-top:24px}
/* Reading-only refinements; never change editor content or navigation links. */
.reading-article .reading-prose{font-size:clamp(1.0625rem,1rem + .25vw,1.125rem)}
.reading-prose :is(strong,b){font-weight:600}
.reading-prose :is(strong,b) :is(strong,b){font-weight:inherit}
.reading-prose a{overflow-wrap:anywhere;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
.reading-prose a:visited{color:color-mix(in srgb,var(--accent) 55%,var(--text));text-decoration-color:currentColor}
.reading-prose a:hover{background:transparent;color:var(--text);text-decoration-color:currentColor}
.reading-prose>p:empty{display:none}
/* Keep an active archive's idle/loading footprint stable; no-JS links stay compact. */
html.js .infinite-sentinel[data-before]:not([data-before=""]):not([data-done="true"]){box-sizing:border-box;min-height:3.5rem;padding-block:14px}
.infinite-sentinel[data-loading="true"]::before{width:5ch;white-space:nowrap;text-align:center}
