:root{
  --bg:#f5f0e6; --paper:#fbf8f2; --ink:#26221e; --muted:#6b6258; --line:#e2d9c8; --line-strong:#cfc3ad;
  --accent:#7a2432; --accent-soft:#f1e4e0;
  --serif:"Libre Baskerville",Baskerville,"Baskerville Old Face",Georgia,serif;
  --sans:"Source Sans 3","Source Sans Pro",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --wide:74rem; --read:42rem;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#1b1815; --paper:#24201c; --ink:#ede6d9; --muted:#a69c8e; --line:#3a332b; --line-strong:#4a4137;
  --accent:#d7a0a8; --accent-soft:#33262a;}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:18px/1.65 var(--sans)}
a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.005em;color:var(--ink)}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 32px}
@media(max-width:640px){.wrap{padding:0 18px}}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;color:#000;padding:8px 12px;z-index:9}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.fine{font-size:.82rem;line-height:1.5;color:var(--muted)}
.label{margin:0 0 12px;font:600 .72rem var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--accent)}
.lede{font-size:1.12rem;line-height:1.6;color:var(--muted);margin:0}

/* header */
.masthead{border-bottom:1px solid var(--line);background:var(--bg)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px 28px;flex-wrap:wrap}
.masthead .bar{min-height:68px;padding-top:10px;padding-bottom:10px}
.mark{font:italic 400 1rem var(--serif);color:var(--ink);text-decoration:none}
.mark:hover{color:var(--accent)}
.masthead nav{display:flex;flex-wrap:wrap;gap:2px 2px}
.masthead nav a{color:var(--muted);text-decoration:none;padding:6px 12px;font:600 .8rem var(--sans);text-transform:uppercase;letter-spacing:.12em;border-radius:3px}
.masthead nav a:hover{color:var(--ink);background:var(--paper)}
.masthead nav a[aria-current]{color:var(--accent)}
@media(max-width:640px){.masthead .bar{justify-content:center}.mark{display:none}.masthead nav a{padding:6px 9px;font-size:.74rem}}

/* meta */
.meta{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:.84rem;color:var(--muted);margin:0 0 8px}
.meta .cat{color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;align-self:center}

/* home hero */
.hero{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:56px;padding-top:56px;padding-bottom:48px;border-bottom:1px solid var(--line)}
.lead h1{font-size:clamp(2rem,3.6vw,3rem);line-height:1.18;margin:0 0 14px}
.lead h1 a{color:var(--ink);text-decoration:none}.lead h1 a:hover{color:var(--accent)}
.lead .lede{margin:14px 0 26px;max-width:40rem}
.btn{display:inline-block;background:var(--accent);color:#fff;padding:11px 20px;border-radius:3px;text-decoration:none;font-weight:600;font-size:.95rem}
.btn:hover{opacity:.9;color:#fff}
.recent{border-left:1px solid var(--line);padding-left:40px}
.recent ul,.side ul{list-style:none;margin:0;padding:0}
.recent li,.side li{padding:14px 0;border-bottom:1px solid var(--line)}
.recent li:first-child,.side li:first-child{padding-top:0}
.recent li a,.side li a{font:400 1.02rem/1.4 var(--serif);color:var(--ink);text-decoration:none}
.recent li a:hover,.side li a:hover{color:var(--accent)}
.recent .meta,.side .meta{margin-bottom:4px}
@media(max-width:900px){.hero{grid-template-columns:1fr;gap:36px}.recent{border-left:0;padding-left:0}}

/* sections + grid */
.head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding:44px 0 18px}
.head h2{font-size:1.5rem;margin:0}
.head a{font-size:.95rem}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
@media(max-width:1000px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.grid{grid-template-columns:1fr}}
.card{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:22px 24px;transition:border-color .15s}
.card:hover{border-color:var(--line-strong)}
.card[hidden]{display:none}
.card h3{font-size:1.15rem;line-height:1.35;margin:4px 0 10px}
.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:hover{color:var(--accent)}
.card p{margin:0;font-size:.96rem;line-height:1.55;color:var(--muted)}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:44px}
.tile{display:block;padding:28px 30px;border:1px solid var(--line);border-radius:4px;text-decoration:none;color:var(--ink);background:var(--accent-soft)}
.tile:hover{border-color:var(--accent)}
.tile strong{display:block;font:400 1.5rem var(--serif);margin-bottom:6px}
.tile span:last-child{color:var(--muted);font-size:.98rem}
@media(max-width:640px){.tiles{grid-template-columns:1fr}}

/* inner pages */
.page{padding-top:52px;padding-bottom:12px}
.page h1{font-size:clamp(2rem,4vw,2.7rem);line-height:1.15;margin:0 0 10px}
.pagehead{max-width:46rem;margin-bottom:28px}
.tools{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-bottom:28px}
.search input{width:min(22rem,100%);padding:11px 14px;font:inherit;font-size:1rem;border:1px solid var(--line-strong);border-radius:3px;background:var(--paper);color:var(--ink)}
.search input:focus{outline:2px solid var(--accent);outline-offset:1px}
.search{flex:0 1 22rem}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font:600 .8rem var(--sans);border:1px solid var(--line-strong);background:transparent;color:var(--muted);padding:6px 12px;border-radius:999px;cursor:pointer}
.chip:hover{color:var(--ink)}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}

/* article + sidebar */
.article{display:grid;grid-template-columns:minmax(0,var(--read)) minmax(0,17rem);justify-content:space-between;gap:64px}
.side{position:sticky;top:24px;align-self:start;padding-top:8px}
.side .label{margin-top:4px}
.side ul{margin-bottom:28px}
.side-links{display:flex;flex-direction:column;gap:8px;margin:0}
@media(max-width:960px){.article{grid-template-columns:1fr}.side{position:static;border-top:1px solid var(--line);padding-top:28px}}
.crumb{margin:0 0 14px;font-size:.88rem;color:var(--muted)}
.prose{font-size:1.08rem}
.prose h1{margin-bottom:12px}
.prose h2{font-size:1.45rem;margin:2em 0 .5em}
.prose h3{font-size:1.22rem;margin:1.9em 0 .4em}
.prose h4{font:700 1.05rem var(--sans);margin:1.7em 0 .4em}
.prose p{margin:1em 0}
.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.4em 0}
.prose img{max-width:100%;height:auto;display:block;margin:1.6em 0;border:1px solid var(--line);border-radius:3px}
.prose blockquote{margin:1.6em 0;padding:.1em 1.3em;border-left:3px solid var(--accent);color:var(--muted);font-style:italic}
.prose table{border-collapse:collapse;width:100%;font-size:.95rem}
.prose td,.prose th{border:1px solid var(--line);padding:8px}
.prose a{word-break:break-word}
.prose .cite{font-size:.88rem;line-height:1.5;color:var(--muted);background:var(--paper);border-left:3px solid var(--accent);padding:10px 14px;margin:1em 0 1.4em}
.prose>.meta{margin-bottom:20px}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:52px 0 8px;padding-top:26px;border-top:1px solid var(--line)}
.pn a{display:block;text-decoration:none;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:14px 16px;font:400 .98rem/1.4 var(--serif)}
.pn a:hover{border-color:var(--accent)}
.pn a.r{text-align:right;grid-column:2}
.pn small{display:block;font:600 .7rem var(--sans);text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin-bottom:5px}
@media(max-width:600px){.pn{grid-template-columns:1fr}.pn a.r{grid-column:1;text-align:left}}

/* case law */
.topic{font:600 .78rem var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--accent);margin:36px 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.cases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
@media(max-width:800px){.cases{grid-template-columns:1fr}}
.case{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:22px 24px}
.case-head{display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.case h3{font:italic 400 1.12rem/1.35 var(--serif);margin:0}
.year{font-size:.85rem;color:var(--muted);white-space:nowrap}
.case .cite{margin:6px 0 10px;font-size:.84rem;color:var(--muted)}
.case p{margin:0 0 8px;font-size:.98rem;line-height:1.55}
.case .links{display:flex;gap:18px;margin:12px 0 0;font-size:.9rem;font-weight:600}
.note{margin-top:30px}

/* glossary */
.jump{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0;font-weight:600;font-size:.92rem}
.jump a{text-decoration:none}
.gl{columns:2 22rem;column-gap:56px}
.letter-block{break-inside:avoid-column}
.letter-block[hidden],.term[hidden]{display:none}
.letter{font-size:1.5rem;color:var(--accent);margin:0 0 4px;padding:10px 0 6px;border-bottom:1px solid var(--line)}
dl{margin:0 0 22px}
.term{padding:12px 0;border-bottom:1px solid var(--line);break-inside:avoid}
dt{font:700 1.02rem var(--sans)}
dd{margin:3px 0 0;color:var(--muted);font-size:.98rem;line-height:1.55}

/* about */
.about{display:grid;grid-template-columns:minmax(0,18rem) minmax(0,var(--read));gap:64px}
.about-side h1{font-size:2.2rem}
.about .prose p:first-child{margin-top:6px;font-size:1.18rem;color:var(--ink)}
@media(max-width:860px){.about{grid-template-columns:1fr;gap:10px}}

/* footer */
.colophon{margin-top:80px;border-top:1px solid var(--line);padding:24px 0 40px;color:var(--muted);font-size:.88rem}
.colophon p{margin:6px 0}
.colophon .fine{max-width:30rem}
@media(max-width:640px){.colophon .bar{flex-direction:column;align-items:flex-start;gap:4px}}
