:root{
  --bg:#ece6d8;
  --panel:#e4dccb;
  --text:#1a1a1d;
  --muted:#5b6270;
  --line:rgba(20,20,23,.16);
  --accent:#a3222a;
  --gold:#e8b878;
  --ink:#141417;
  --codebg:rgba(20,20,23,.08);
  --serif:"Cormorant Garamond","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --mono:ui-monospace,Consolas,"SF Mono",monospace;
  --gutter:clamp(16px,4vw,32px);
  --topbar:58px;
}
@media(prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#17171b;
    --panel:#1e1e23;
    --text:#e9e3d4;
    --muted:#a0a0a8;
    --line:rgba(236,230,216,.16);
    --accent:#e0575f;
    --codebg:rgba(236,230,216,.1);
  }
}
:root[data-theme="dark"]{
  --bg:#17171b;
  --panel:#1e1e23;
  --text:#e9e3d4;
  --muted:#a0a0a8;
  --line:rgba(236,230,216,.16);
  --accent:#e0575f;
  --codebg:rgba(236,230,216,.1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--topbar) + 16px)}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--serif);font-size:clamp(18px,1.3vw,20px);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
a:hover{text-decoration-thickness:2px}

.topbar{position:sticky;top:0;z-index:30;height:var(--topbar);display:flex;align-items:center;gap:16px;padding:0 var(--gutter);background:var(--ink);color:#ece6d8}
.menu-btn{display:none;font:inherit;background:none;border:1px solid rgba(236,230,216,.4);color:inherit;border-radius:4px;padding:4px 12px;cursor:pointer}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;font-size:1.25rem;font-weight:700;letter-spacing:.04em}
.seal{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#a3222a;color:#ece6d8;font-weight:700}
.brand small{font-weight:500;color:var(--gold);letter-spacing:.2em;text-transform:uppercase;font-size:.75rem;margin-left:4px}
.top-links{margin-left:auto;display:flex;gap:clamp(10px,2vw,24px)}
.top-links a{color:inherit;text-decoration:none;font-size:.95rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.top-links a:hover{opacity:1;color:var(--gold)}

.layout{display:grid;grid-template-columns:260px minmax(0,1fr);max-width:1400px;margin:0 auto}
.side{position:sticky;top:var(--topbar);align-self:start;height:calc(100vh - var(--topbar));overflow:auto;padding:28px 16px 40px var(--gutter);border-right:1px solid var(--line)}
.side h4{margin:1.6em 0 .4em;font-size:.8rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-weight:600}
.side h4:first-child{margin-top:0}
.side a{display:block;padding:5px 10px;margin:1px 0;border-left:2px solid transparent;color:var(--text);text-decoration:none;border-radius:0 4px 4px 0}
.side a:hover{background:var(--panel)}
.side a[aria-current="page"]{border-left-color:var(--accent);background:var(--panel);font-weight:700}

.content{display:grid;grid-template-columns:minmax(0,1fr);padding:0 var(--gutter)}
@media(min-width:1240px){.content{grid-template-columns:minmax(0,760px) 220px;gap:48px;justify-content:center}}
.doc{padding:44px 0 40px;min-width:0}
.doc h1{font-size:clamp(2.4rem,5vw,3.4rem);line-height:1.05;margin:0 0 .3em;letter-spacing:.01em}
.doc .lead{font-size:1.3em;color:var(--muted);margin:0 0 1.6em;line-height:1.4}
.doc h2{font-size:1.9rem;margin:2.2em 0 .5em;padding-top:.6em;border-top:1px solid var(--line);line-height:1.15}
.doc h3{font-size:1.35rem;margin:1.7em 0 .3em}
.doc p{margin:0 0 1em}
.doc ul,.doc ol{margin:0 0 1.2em;padding-left:1.4em}
.doc li code,.doc p code{white-space:normal;overflow-wrap:anywhere}
.doc li{margin:.25em 0}
code,kbd{font-family:var(--mono);font-size:.82em;background:var(--codebg);padding:.1em .38em;border-radius:3px;white-space:nowrap}
pre{background:var(--ink);color:#ece6d8;border-radius:6px;padding:14px 16px;overflow-x:auto;margin:0 0 1.2em}
pre code{background:none;color:inherit;padding:0;white-space:pre}
table{border-collapse:collapse;width:100%;font-size:.95em;display:block;overflow-x:auto;margin:0 0 1.4em}
td code,th code{white-space:normal;overflow-wrap:anywhere}
th,td{border:1px solid var(--line);padding:8px 12px;text-align:left;vertical-align:top}
th{background:var(--panel);font-weight:700}
.callout{margin:1.4em 0;padding:14px 18px;border-left:4px solid var(--accent);background:var(--panel);border-radius:0 6px 6px 0}
.callout p:last-child{margin:0}
.callout strong:first-child{display:block;letter-spacing:.14em;text-transform:uppercase;font-size:.8rem;color:var(--accent);margin-bottom:.2em}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:1.4em 0}
.card{display:block;padding:16px 18px;border:1px solid var(--line);border-radius:6px;background:var(--panel);text-decoration:none;color:var(--text);transition:transform .2s,border-color .2s}
.card:hover{transform:translateY(-3px);border-color:var(--accent)}
.card strong{display:block;font-size:1.25rem;margin-bottom:.1em}
.card span{color:var(--muted);font-size:.95em}
.asof{color:var(--muted);font-size:.85em;margin-top:2.5em}

.toc{position:sticky;top:calc(var(--topbar) + 28px);align-self:start;padding-top:44px;font-size:.9rem;display:none}
@media(min-width:1240px){.toc{display:block}}
.toc h4{margin:0 0 .6em;font-size:.75rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.toc a{display:block;padding:3px 0 3px 12px;border-left:2px solid var(--line);color:var(--muted);text-decoration:none}
.toc a:hover,.toc a.on{color:var(--text);border-left-color:var(--accent)}

.pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:3rem}
.pager a{display:block;padding:14px 18px;border:1px solid var(--line);border-radius:6px;text-decoration:none;color:var(--text)}
.pager a:hover{border-color:var(--accent)}
.pager small{display:block;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.7rem}
.pager .next{text-align:right;grid-column:2}
.pager .prev:only-child{grid-column:1}

.foot{border-top:1px solid var(--line);padding:22px var(--gutter);color:var(--muted);font-size:.9rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 20px;max-width:1400px;margin:0 auto}

a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

@media(max-width:860px){
  .layout{grid-template-columns:1fr}
  .menu-btn{display:inline-block}
  .brand small{display:none}
  .top-links a:nth-child(n+3){display:none}
  .side{position:fixed;top:var(--topbar);left:0;bottom:0;width:min(300px,86vw);height:auto;z-index:25;background:var(--bg);transform:translateX(-102%);transition:transform .25s;box-shadow:0 0 40px rgba(0,0,0,.35);padding-right:var(--gutter)}
  body.menu-open .side{transform:none}
  .pager{grid-template-columns:1fr}
  .pager .next{grid-column:1}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important}
  html{scroll-behavior:auto}
}
