/* Shared type roles keep every page in the same reading scale. */
:root{
 --text-body:clamp(1.25rem,1.15rem + .3vw,1.375rem);
 --text-lead:clamp(1.375rem,1.25rem + .3vw,1.5rem);
 --text-section:clamp(2rem,2.5vw,2.25rem);
 --text-subheading:clamp(1.625rem,2.2vw,1.875rem);
 --text-ui:1rem;
 --text-meta:.875rem;
 --text-caption:.8125rem;
}
body{font-size:var(--text-ui)}
.meta,.feature .meta{font-family:Inter,system-ui,sans-serif;font-size:var(--text-meta);letter-spacing:.01em;line-height:1.6}
.article-opening,.article-body{min-width:0;background:var(--paper)}
.article-opening p,.article-body p,.prose p{text-wrap:pretty}
.article-opening img,.article-body img{display:block;max-width:100%;height:auto}
.article-opening img,.article-body img,.author-photo{filter:brightness(1.08) contrast(1.15);mix-blend-mode:multiply}
.archive h2,.archive-entry h3,.side-heading,.article-body h2,.article-body h3,.all-articles h2{text-wrap:balance}
.skip-link{position:fixed;left:16px;top:12px;z-index:10;transform:translateY(-160%);padding:12px 18px;background:var(--ink);color:var(--paper)}
.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
main:focus{outline:none}
.preview-note{position:relative;z-index:2;margin-top:-20px;margin-bottom:30px;color:var(--muted);font-size:var(--text-meta);line-height:1.7}
.preview-note a{color:var(--accent)}
.draft-label{color:var(--accent);font-weight:600}
.article-opening p:first-child{font-size:var(--text-body);color:var(--lead);line-height:1.55}
.read-more{display:inline-flex;align-items:center;gap:14px;margin-top:18px;color:var(--accent);font:600 var(--text-ui)/1.5 Inter,system-ui,sans-serif;text-decoration:none}
.read-more:hover{text-decoration:underline}
.read-more svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5}
.archive-entry h3 a{text-decoration:none}
.archive-entry h3 a:hover{color:var(--accent)}
.archive-entry .entry-meta{margin:0}
.site-nav a[aria-current="page"]{border-bottom:1px solid var(--ink);padding-bottom:5px}
.site-footer a{color:inherit}
.footer-links{display:flex;flex-wrap:wrap;gap:20px}
.content-page{position:relative;z-index:2;padding-top:50px;padding-bottom:110px;min-height:55vh}
.content-page h1{font:400 clamp(41.6px,4.8vw,72px)/1 'EB Garamond',Georgia,serif;letter-spacing:-.028em;margin:0 0 28px;max-width:17.5ch;text-wrap:balance}
.page-intro,.prose p{font:400 var(--text-body)/1.55 'EB Garamond',Georgia,serif;color:var(--body);max-width:65ch;margin:0 0 24px}
.search-form{max-width:620px;margin:42px 0}
.search-form label{display:block;font-size:var(--text-ui);margin-bottom:10px;color:var(--body)}
.search-controls{display:flex;gap:12px}
.search-controls input{min-width:0;width:100%;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--trace-strong);border-radius:3px;padding:12px}
.search-controls button{font:500 var(--text-ui) Inter,system-ui,sans-serif;padding:12px 20px;background:var(--primary);color:var(--paper);border:1px solid var(--primary);border-radius:3px;cursor:pointer}
.search-controls button:hover{background:var(--ink)}
.label-filters{border:0;padding:0;margin:24px 0 0;min-width:0}
.label-filters legend{padding:0;font-size:var(--text-ui);font-weight:600;color:var(--body)}
.label-filters p{font-size:var(--text-meta);line-height:1.5;color:var(--muted);margin:8px 0 10px}
.label-options{display:flex;flex-wrap:wrap;gap:8px 24px}
.search-form .label-option{display:inline-flex;align-items:center;gap:9px;min-height:44px;margin:0;cursor:pointer;color:var(--ink)}
.label-option input{width:18px;height:18px;margin:0;accent-color:var(--primary);cursor:pointer}
.label-count{color:var(--muted)}
.clear-labels{display:inline-block;margin-top:12px;font-size:var(--text-meta);color:var(--accent)}
.results-note{color:var(--muted);font-size:var(--text-ui)}
.all-articles{list-style:none;padding:0;margin:40px 0 0;max-width:850px}
.all-articles>li{padding:28px 0;border-top:1px solid var(--rule)}
.all-articles .meta{display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:var(--text-meta);margin:0 0 10px}
.all-articles h2{font:400 var(--text-section)/1.2 'EB Garamond',Georgia,serif;margin:0}
.all-articles h2 a{text-decoration:none}
.all-articles h2 a:hover{color:var(--accent)}
.author-photo{grid-column:2;grid-row:1 / span 3;width:240px;max-width:100%;height:auto;justify-self:end;align-self:start}
.about-page{display:grid;grid-template-columns:minmax(0,1fr) 240px;column-gap:clamp(48px,8vw,104px);background:var(--paper)}
.about-page>h1,.about-page>.prose,.about-page>.read-more{grid-column:1}
.about-page>.read-more{justify-self:start}
.prose{max-width:72ch}
.article-body{overflow-wrap:anywhere}
.frame{overflow:clip}
.sidebar{align-self:stretch}
.feature h1,.article-head h1{overflow-wrap:anywhere;text-wrap:balance}
.article-body img{max-width:100%;height:auto}
.article-body pre{overflow-x:auto;padding:18px;background:var(--wash)}
.article-body ol{font:400 var(--text-body)/1.55 'EB Garamond',Georgia,serif;color:var(--body);padding-left:26px}
.article-body table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}
.article-body th,.article-body td{padding:10px;border-bottom:1px solid var(--rule);text-align:left}
.article-body>p:first-child{font-size:var(--text-lead);line-height:1.5;color:var(--primary)}
.toc-level-3{padding-left:12px!important}
.toc-level-3 a{font-size:var(--text-body)}
.side-links a:not(.toc-link){font-size:var(--text-subheading)}
.side-links a[aria-current="location"]{color:var(--accent);text-decoration:underline}
@media(max-width:720px){.content-page{padding-top:12px;padding-bottom:76px}.preview-note{margin-top:-20px;margin-bottom:35px}.about-page{display:block}.author-photo{width:180px;margin:0 0 28px}.page-intro,.prose p{font-size:var(--text-body)}.article-body ol{font-size:var(--text-body)}.article-opening p:first-child{font-size:var(--text-body)}.search-controls{gap:8px}.search-controls button{padding-inline:14px}}
@media print{.skip-link,.preview-note,.search-form{display:none}.page-shell,.frame{overflow:visible}.article-body{color:#000}.article-opening,.article-body,.about-page{background:white}}
