/* Shared design system: all page shells and reusable content components. */
:root { --paper:#f3f0e8; --paper-2:#e9e4d8; --ink:#17211b; --muted:#59635c; --line:#b9b9aa; --green:#1f5639; --acid:#d8f36b; --rust:#b84a2d; --max:1080px; --serif:Georgia,"Times New Roman",serif; --sans:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font:17px/1.65 var(--sans); }
a { color:var(--green); text-underline-offset:3px; }
a:hover { text-decoration-thickness:2px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline:3px solid var(--rust); outline-offset:4px; }
.wrap { width:min(calc(100% - 40px),var(--max)); margin-inline:auto; }
.skip-link { position:absolute; left:1rem; top:-10rem; z-index:100; padding:.7rem 1rem; background:var(--paper); color:var(--ink); }
.skip-link:focus { top:1rem; }
.site-head { position:relative; z-index:20; background:var(--paper); color:var(--ink); border-bottom:1px solid var(--line); }
.site-head .wrap,.site-footer .wrap { width:min(calc(100% - 40px),1080px); }
.site-header { display:flex; align-items:center; justify-content:space-between; gap:1rem 2rem; min-height:80px; padding:.6rem 0; border:0; }
.site-header .mark { color:var(--ink); font-weight:900; letter-spacing:-.025em; text-decoration:none; }
.site-header nav { display:flex; flex-wrap:wrap; align-items:center; gap:.15rem .75rem; font-size:.85rem; font-weight:700; }
.site-header nav a { display:inline-flex; align-items:center; min-height:44px; padding:.2rem .35rem; color:var(--ink); text-decoration:none; white-space:nowrap; }
.site-header nav a[aria-current] { text-decoration:underline; text-underline-offset:6px; }
.site-header nav .nav-cta { background:var(--ink); color:var(--paper); padding:.3rem .9rem; }
.layout-article .page-main, .layout-listing .page-main { width:min(calc(100% - 40px),760px); margin:2.75rem auto 0; }
.layout-library .page-main { width:min(calc(100% - 40px),1080px); margin:2.75rem auto 0; }
.page-heading { margin-bottom:2rem; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; letter-spacing:-.035em; }
.layout-article h1,.layout-listing h1 { font-size:clamp(2.3rem,5.5vw,3.6rem); line-height:1.08; margin:0 0 1.2rem; }
.layout-library .page-heading h1 { font-size:clamp(2.3rem,5.5vw,3.6rem); line-height:1.08; margin:0 0 1.2rem; }
.layout-article h2 { font-size:1.75rem; line-height:1.25; margin:2.5rem 0 1rem; padding-top:.75rem; border-top:1px solid var(--line); }
.layout-article h3 { font-size:1.3rem; line-height:1.3; margin:1.5rem 0 .65rem; }
.layout-article p,.layout-listing p { margin:.9rem 0; }
.layout-article ul,.layout-article ol { padding-left:1.5rem; }
.layout-article li { margin:.6rem 0; }
.eyebrow,.kicker { font-size:.77rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--green); }
.page-heading .eyebrow { margin:0 0 1rem; }
.page-heading .lede { color:var(--muted); font-size:1.15rem; line-height:1.55; margin:0 0 1.4rem; }
.page-heading .pubdate { color:var(--muted); font-size:.85rem; margin:.65rem 0; }
.page-heading .byline { color:var(--muted); font-size:.85rem; padding:1rem 0; margin:.75rem 0 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:none; }
.page-heading .byline dl { display:grid; grid-template-columns:7.5rem 1fr; gap:.35rem .75rem; margin:0; }
.page-heading .byline dt { font-weight:700; }
.page-heading .byline dd { margin:0; }
.note,.case-sources,.sources { color:var(--muted); font-size:.92rem; }
.card { display:block; margin:1.25rem 0; padding:1.35rem; border:1px solid var(--line); background:rgba(255,255,255,.4); text-decoration:none; color:var(--ink); }
.card:hover { border-color:var(--green); background:white; }
.layout-listing .card h2 { font-size:1.65rem; line-height:1.2; margin:.4rem 0 .7rem; padding:0; border:0; }
.card p { margin:.4rem 0; color:var(--muted); }
.card .kicker { color:var(--green); }
.layout-article .case,.layout-article .panel,.layout-article .example,.layout-article .verdict { padding:1.2rem; margin:1.4rem 0; border:1px solid var(--line); background:rgba(255,255,255,.35); }
.layout-article .verdict { border-left:4px solid var(--green); }
.layout-article .case h3,.layout-article .panel h3 { margin-top:0; }
.layout-article .split { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.table-scroll { overflow-x:auto; max-width:100%; margin:1.4rem 0; }
.layout-article table { width:100%; border-collapse:collapse; font-size:.92rem; line-height:1.5; }
.layout-article table.wave-table { font-size:.92rem; }
.layout-article th,.layout-article td { text-align:left; vertical-align:top; padding:.75rem .65rem; border-bottom:1px solid var(--line); }
.layout-article thead th { border-top:1px solid var(--line); background:var(--paper-2); }
.layout-article caption { text-align:left; font-weight:700; margin-bottom:.6rem; }
.layout-article img,.layout-article video { max-width:100%; height:auto; }
.layout-article pre { max-width:100%; overflow:auto; padding:1rem; background:var(--paper-2); }
.layout-article :is(h2,h3,[id]) { scroll-margin-top:1.5rem; }
.site-footer { margin:3rem 0 0; padding:1.5rem 0; border-top:1px solid var(--line); background:var(--paper); color:var(--muted); font-size:.85rem; }
.site-footer .wrap { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; }
.site-footer nav { display:flex; flex-wrap:wrap; gap:.5rem 1rem; }
.site-footer a { display:inline-flex; align-items:center; min-height:44px; }
@media(max-width:860px) { .site-header { flex-wrap:wrap; gap:.3rem 1rem; } .site-header nav { flex:1 1 100%; gap:0 .5rem; } }
@media(max-width:600px) { .layout-article .split { grid-template-columns:1fr; } .page-heading .byline dl { grid-template-columns:1fr; } .page-heading .byline dd { margin-bottom:.5rem; } .layout-article th,.layout-article td { padding:.6rem .4rem; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
