
:root{
  --paper:#FAF8FB; --surface:#FFFFFF; --sunk:#F3F0F7; --plate:#FFFFFF;
  --ink:#1E1930; --ink-soft:#56506B; --ink-faint:#8A83A0;
  --rule:#DFD9E9; --rule-soft:#EDE9F4;
  --accent:#4A3A96; --accent-soft:#E9E4F6;
  --signal:#B33A5E; --signal-soft:#FAE9EE;
  --good:#2C6E5B; --bg-art:#D9D4E2;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"URW Palladio L",P052,"Book Antiqua",Georgia,serif;
  --sans:Optima,Candara,"Segoe UI",Ubuntu,"Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#14111C; --surface:#1B1726; --sunk:#221D30; --plate:#F2EFF6;
    --ink:#ECE8F5; --ink-soft:#A9A1BE; --ink-faint:#7C7492;
    --rule:#2F2942; --rule-soft:#241F33;
    --accent:#A493EE; --accent-soft:#282142;
    --signal:#E8829E; --signal-soft:#33202A;
    --good:#6FBFA3; --bg-art:#B9B2C6;
  }
}
:root[data-theme="dark"]{
  --paper:#14111C; --surface:#1B1726; --sunk:#221D30; --plate:#F2EFF6;
  --ink:#ECE8F5; --ink-soft:#A9A1BE; --ink-faint:#7C7492;
  --rule:#2F2942; --rule-soft:#241F33;
  --accent:#A493EE; --accent-soft:#282142;
  --signal:#E8829E; --signal-soft:#33202A;
  --good:#6FBFA3; --bg-art:#B9B2C6;
}
:root[data-theme="light"]{
  --paper:#FAF8FB; --surface:#FFFFFF; --sunk:#F3F0F7; --plate:#FFFFFF;
  --ink:#1E1930; --ink-soft:#56506B; --ink-faint:#8A83A0;
  --rule:#DFD9E9; --rule-soft:#EDE9F4;
  --accent:#4A3A96; --accent-soft:#E9E4F6;
  --signal:#B33A5E; --signal-soft:#FAE9EE;
  --good:#2C6E5B; --bg-art:#D9D4E2;
}

*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:16.5px;line-height:1.62;-webkit-font-smoothing:antialiased;}
img,svg{max-width:100%;}
a{color:var(--accent);}
a:focus-visible,button:focus-visible{outline:2px solid var(--signal);outline-offset:3px;}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(18px,4vw,44px) 96px;}
.wrap--wide{max-width:1400px;}

/* ---- site chrome ---- */
.sitenav{border-bottom:1px solid var(--rule);background:var(--paper);}
.sitenav-in{max-width:1400px;margin:0 auto;padding:11px clamp(18px,4vw,44px);
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;}
.brand{font-family:var(--serif);font-size:.98rem;text-decoration:none;
  color:var(--ink);white-space:nowrap;}
.brand b{font-weight:400;font-style:italic;color:var(--accent);}
.sitenav ul{list-style:none;display:flex;gap:2px;margin:0;padding:0;flex-wrap:wrap;}
.sitenav a.nl{display:block;padding:4px 11px;font-size:.82rem;text-decoration:none;
  color:var(--ink-soft);border:1px solid transparent;}
.sitenav a.nl:hover{color:var(--accent);}
.sitenav a.nl[aria-current="page"]{color:var(--ink);border-color:var(--rule);
  background:var(--surface);}
.sitenav .lock{margin-left:6px;vertical-align:-1px;opacity:.55;}
.themetog{margin-left:auto;font:inherit;font-size:.72rem;letter-spacing:.08em;
  text-transform:uppercase;background:none;border:1px solid var(--rule);
  color:var(--ink-faint);padding:4px 10px;cursor:pointer;}
.themetog:hover{color:var(--accent);border-color:var(--accent);}
.sitefoot{border-top:1px solid var(--ink);margin-top:60px;}
.sitefoot-in{max-width:1400px;margin:0 auto;padding:22px clamp(18px,4vw,44px) 56px;
  font-size:.79rem;color:var(--ink-faint);display:flex;flex-wrap:wrap;
  gap:10px 40px;justify-content:space-between;}
.sitefoot p{max-width:64ch;margin:0;}
