
@font-face { font-family:'Josefin Sans'; src:url('/fonts/josefin-sans-latin-wght-normal.woff2') format('woff2'); font-weight:100 700; font-display:swap; }
@font-face { font-family:'Lato'; src:url('/fonts/lato-latin-400-normal.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Lato'; src:url('/fonts/lato-latin-700-normal.woff2') format('woff2'); font-weight:700; font-display:swap; }
:root { --primary:#cb0c9f; --surface:#f8f9fa; --border:#e9ecef; --heading:#2c2f31; --text:#4a556b; --dark:#344767; --max:46rem; }
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:#fff; color:var(--text); font-family:'Lato',system-ui,sans-serif; font-size:1.0625rem; line-height:1.6; }
a { color:var(--primary); text-underline-offset:.15em; }
header.site { border-bottom:1px solid var(--border); background:#fff; }
header.site .inner, main, footer.site .inner { max-width:var(--max); margin:0 auto; padding:0 1rem; }
header.site .inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:1rem; padding-bottom:1rem; flex-wrap:wrap; }
.brand { font-family:'Josefin Sans',sans-serif; font-size:1.6rem; color:var(--primary); text-decoration:none; line-height:1; }
.brand span { color:var(--heading); font-size:1rem; margin-left:.5rem; letter-spacing:.12em; text-transform:uppercase; }
.search { flex:1 1 14rem; max-width:20rem; }
.search input { width:100%; font:inherit; font-size:1rem; padding:.55rem .8rem; border:1px solid var(--border); border-radius:.6rem; background:var(--surface); }
.results { list-style:none; padding:0; margin:.5rem 0 0; }
.results li { padding:.6rem 0; border-bottom:1px solid var(--border); }
main { padding-top:2rem; padding-bottom:3rem; }
h1, h2, h3 { font-family:'Josefin Sans',sans-serif; color:var(--heading); font-weight:500; letter-spacing:-.01em; line-height:1.2; }
h1 { font-size:2.1rem; font-weight:400; margin:.2rem 0 .6rem; }
h2 { font-size:1.4rem; margin:2rem 0 .6rem; }
h3 { font-size:1.15rem; margin:1.5rem 0 .4rem; }
.lead { font-size:1.15rem; color:var(--dark); margin:0 0 1.5rem; }
.crumbs { font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; color:var(--primary); font-family:'Josefin Sans',sans-serif; }
.crumbs a { text-decoration:none; }
img { max-width:100%; height:auto; border:1px solid var(--border); border-radius:.5rem; }
code { background:var(--surface); border:1px solid var(--border); border-radius:.3rem; padding:.05rem .3rem; font-size:.92em; }
pre { background:var(--surface); border:1px solid var(--border); border-radius:.5rem; padding:.8rem 1rem; overflow-x:auto; }
pre code { border:0; padding:0; }
table { border-collapse:collapse; width:100%; display:block; overflow-x:auto; }
th, td { text-align:left; border-bottom:1px solid var(--border); padding:.45rem .6rem; vertical-align:top; }
blockquote { margin:1rem 0; padding:.6rem 1rem; border-left:3px solid var(--primary); background:var(--surface); border-radius:0 .5rem .5rem 0; }
.area { margin:2.2rem 0; }
.area > p { margin-top:-.3rem; }
.chapter { font-family:'Josefin Sans',sans-serif; font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dark); margin:1.2rem 0 .3rem; }
.list { list-style:none; padding:0; margin:0; }
.list li { padding:.55rem 0; border-bottom:1px solid var(--border); }
.list a { font-weight:700; text-decoration:none; }
.list small { display:block; color:var(--text); }
nav.pager { display:flex; justify-content:space-between; gap:1rem; margin-top:3rem; padding-top:1rem; border-top:1px solid var(--border); flex-wrap:wrap; }
footer.site { border-top:1px solid var(--border); background:var(--surface); font-size:.9rem; }
footer.site .inner { padding-top:1.2rem; padding-bottom:1.6rem; }
@media print { header.site .search, nav.pager { display:none; } }