@font-face{font-family:"Source Serif 4";src:url(/fonts/ss4-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(/fonts/ss4-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(/fonts/ss4-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(/fonts/ss4-600-italic.woff2) format("woff2");font-weight:600;font-style:italic;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(/fonts/ss4-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/inter-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/inter-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
:root{--bg:#fbfaf7;--text:#1f2328;--muted:#555b63;--accent:#1f3a5f;--accent-2:#2c5282;--line:#e4e0d8;--panel:#f3f1ec;
--serif:"Source Serif 4",Georgia,"Times New Roman",serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:1rem}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--serif);font-size:1.1875rem;line-height:1.65}
a{color:var(--accent-2);text-underline-offset:.15em}
a:hover{color:var(--accent)}
:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}
.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:10}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:72rem;margin:0 auto;padding:0 1.5rem}
header.site{border-bottom:1px solid var(--line);background:var(--bg)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding-top:1rem;padding-bottom:1rem}
.brand{font-weight:600;font-size:1.2rem;color:var(--accent);text-decoration:none}
header nav{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;font-family:var(--sans);font-size:.95rem;font-weight:500}
header nav a{color:var(--text);text-decoration:none;padding:.25rem 0}
header nav a:hover{color:var(--accent-2);text-decoration:underline}
footer.site{border-top:1px solid var(--line);margin-top:4rem;font-family:var(--sans);font-size:.875rem;color:var(--muted)}
footer.site .wrap{padding-top:1.5rem;padding-bottom:2rem}footer.site p{margin:.25rem 0}
h1,h2,h3{line-height:1.25;color:var(--accent);font-weight:600}
h1{font-size:2.25rem;margin:2.5rem 0 1.5rem}
h2{font-size:1.5rem;margin:2.75rem 0 1rem}
h3{font-size:1.2rem;margin:2rem 0 .75rem}
p{margin:0 0 1.1em}
blockquote{margin:1.5rem 0;padding:.25rem 0 .25rem 1.25rem;border-left:3px solid var(--line);color:#2d3238}
/* home */
.home .hero{max-width:44rem;margin:0 auto;text-align:center;padding:3rem 0 1rem}
.home h1{font-size:clamp(2.25rem,6vw,3.25rem);margin:0 0 .75rem}
.sub{font-size:1.3rem;margin:0 0 1rem}.by{font-family:var(--sans);font-weight:500;color:var(--muted);letter-spacing:.02em}
.excerpt{text-align:left;border:0;background:var(--panel);padding:1.5rem 1.75rem;border-radius:6px;margin:2rem 0}
.excerpt footer{font-family:var(--sans);font-size:.85rem;color:var(--muted);margin-top:.5rem}
.cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin:2rem 0 1rem}
.btn{display:inline-block;font-family:var(--sans);font-weight:600;font-size:1rem;background:var(--accent);color:#fff;border:2px solid var(--accent);padding:.75rem 1.5rem;border-radius:4px;text-decoration:none;cursor:pointer}
.btn:hover{background:#15294a;color:#fff}.btn.alt{background:transparent;color:var(--accent)}.btn.alt:hover{background:var(--accent);color:#fff}
.indep{font-family:var(--sans);font-size:.875rem;color:var(--muted)}
.contents{max-width:44rem;margin:2rem auto 0;border-top:1px solid var(--line)}
ol.toc{list-style:none;padding:0;margin:0}
ol.toc>li{margin:.9rem 0}ol.toc>li>a{font-weight:600;text-decoration:none;color:var(--accent)}
ol.toc ol{list-style:none;padding-left:1.1rem;margin:.3rem 0}ol.toc ol li{margin:.2rem 0;font-size:.95em}ol.toc ol li.h3{padding-left:1.1rem;font-size:.9em}
ol.toc ol a{color:var(--text);text-decoration:none}ol.toc a:hover{text-decoration:underline;color:var(--accent-2)}
/* reading */
.read{display:grid;grid-template-columns:16rem minmax(0,1fr);gap:3rem;align-items:start}
.read main{max-width:68ch}
.side{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto;margin-top:2.5rem;font-family:var(--sans);font-size:.85rem;line-height:1.4}
.side summary{font-weight:600;color:var(--accent);cursor:pointer;margin-bottom:.5rem}
.side ol.toc>li{margin:.45rem 0}.side ol.toc>li>a{font-weight:500}.side a[aria-current]{color:var(--accent-2);font-weight:600}
.side ol.toc ol li{font-size:1em}
article p,article li{hyphens:auto}
a.fnref{text-decoration:none;padding:0 .1em}a.fnref sup{font-family:var(--sans);font-size:.7em;font-weight:600}
.footnotes{margin-top:3.5rem;border-top:1px solid var(--line);font-size:.95rem;line-height:1.55}
.footnotes h2{font-size:1.15rem}.footnotes ol{padding-left:2.5rem}.footnotes li{margin:.5rem 0}.footnotes li p{margin:0}
.footnote-back{margin-left:.35em;text-decoration:none}
.footnotes li:target,article :target{background:#fff3c4}
.pn{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;border-top:1px solid var(--line);padding-top:1.5rem;font-family:var(--sans)}
.pn a{text-decoration:none;max-width:48%;font-size:.95rem}.pn a span{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.pn .next{text-align:right;margin-left:auto}
/* contact */
.narrow{max-width:40rem}
form.contact{display:grid;gap:.4rem;font-family:var(--sans)}
form.contact label{font-weight:600;font-size:.95rem;margin-top:.8rem}
form.contact input,form.contact textarea{font:inherit;font-size:1rem;padding:.65rem .75rem;border:1px solid #8a8f96;border-radius:4px;background:#fff;color:var(--text)}
form.contact button{justify-self:start;margin-top:1.2rem}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.cf-turnstile{margin-top:1rem}
@media (max-width:900px){
 body{font-size:1.125rem}
 .read{display:block}
 .side{position:static;max-height:none;margin:1.5rem 0 0;padding:.75rem 1rem;background:var(--panel);border-radius:6px}
 .side:not([open]) summary{margin:0}
 h1{font-size:1.9rem;margin-top:1.75rem}
}
@media print{
 body{background:#fff;color:#000;font-size:11.5pt}
 header.site,.side,.pn,.skip,.cta,footer.site{display:none}
 .read{display:block}.read main{max-width:none}
 a{color:#000;text-decoration:none}
 h1,h2,h3{color:#000;break-after:avoid}
 p,blockquote,li{orphans:3;widows:3}
}
