:root{--paper:#ecedf1;--surface:#fff;--surface-2:#f5f6f9;--border:#dfe2e9;--border-soft:#e9ebf1;
--ink:#10131a;--ink-2:#3c4351;--muted:#6a7183;--accent:#0f4c81;--accent-ink:#0a3960;--accent-wash:#e4ecf4;
--bedrock:#15624a;--solid:#8a6410;--contested:#a8382a;--framework:#5a6274;
--bedrock-wash:#e0f0ea;--solid-wash:#f6ecd6;--contested-wash:#f9e6e2;--framework-wash:#e7e9ef;
--shadow:0 1px 2px rgba(16,19,26,.04),0 10px 28px -20px rgba(16,19,26,.24);
--f-disp:"Newsreader",Georgia,serif;--f-body:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,sans-serif;
--f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#090b10;--surface:#12151d;--surface-2:#181c25;--border:#232833;--border-soft:#1a1e27;
--ink:#eaedf4;--ink-2:#c4cad7;--muted:#8e96a8;--accent:#7fb0e0;--accent-ink:#9ec6ec;--accent-wash:#122436;
--bedrock:#4cbf95;--solid:#dbaa3f;--contested:#ef7764;--framework:#98a3b8;
--bedrock-wash:#12281f;--solid-wash:#2b2413;--contested-wash:#2e1a16;--framework-wash:#1d212b;
--shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px -18px rgba(0,0,0,.9)}}
:root[data-theme="dark"]{--paper:#090b10;--surface:#12151d;--surface-2:#181c25;--border:#232833;--border-soft:#1a1e27;
--ink:#eaedf4;--ink-2:#c4cad7;--muted:#8e96a8;--accent:#7fb0e0;--accent-ink:#9ec6ec;--accent-wash:#122436;
--bedrock:#4cbf95;--solid:#dbaa3f;--contested:#ef7764;--framework:#98a3b8;
--bedrock-wash:#12281f;--solid-wash:#2b2413;--contested-wash:#2e1a16;--framework-wash:#1d212b;
--shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px -18px rgba(0,0,0,.9)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);
font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;font-weight:500;text-wrap:balance;font-variation-settings:"opsz" 44}p{margin:0}
a{color:var(--accent)}
.wrap{max-width:720px;margin:0 auto;padding-inline:20px;padding-block:0 84px}
.bar{border-bottom:1px solid var(--border-soft);margin-bottom:34px}
.bar-in{max-width:720px;margin:0 auto;padding:14px 20px;display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
.mark{font-family:var(--f-mono);font-weight:600;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;
color:var(--accent);text-decoration:none}
.bar .crumb{font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.bar .sp{flex:1}.bar .cta{font-family:var(--f-mono);font-size:11px;color:var(--muted);text-decoration:none}
.bar .cta:hover{color:var(--accent)}
.eyebrow{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;font-family:var(--f-mono);font-size:11px;
letter-spacing:.1em;text-transform:uppercase}
.eyebrow .l{color:var(--muted)}.eyebrow a{color:var(--accent);text-decoration:none}
h1{font-family:var(--f-disp);font-size:clamp(33px,6vw,46px);line-height:1.06;letter-spacing:-.02em;margin-top:12px}
.lead{font-family:var(--f-disp);font-size:21px;line-height:1.45;color:var(--ink-2);margin-top:14px}
.grade{font-family:var(--f-mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;padding:3px 9px;border-radius:99px}
.g-bedrock{color:var(--bedrock);background:var(--bedrock-wash)}
.g-solid{color:var(--solid);background:var(--solid-wash)}
.g-contested{color:var(--contested);background:var(--contested-wash)}
.g-framework{color:var(--framework);background:var(--framework-wash)}
.gradeline{margin-top:18px;display:flex;gap:11px;align-items:baseline;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
h2{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.blk{margin-top:30px}.blk p{color:var(--ink-2)}
.acts{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px}
.acts li{display:grid;grid-template-columns:auto 1fr;gap:11px}
.acts li::before{content:"\2192";color:var(--accent);font-family:var(--f-mono);font-size:13px;line-height:1.7}
.trap{margin-top:30px;background:var(--surface-2);border-left:2px solid var(--contested);border-radius:0 8px 8px 0;padding:14px 16px}
.trap h2{color:var(--contested)}
.cite{margin-top:30px;padding-top:14px;border-top:1px dashed var(--border);font-family:var(--f-mono);
font-size:12px;line-height:1.7;color:var(--muted)}
.cta-box{margin-top:38px;background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;
padding:22px 24px;box-shadow:var(--shadow)}
.cta-box p{color:var(--ink-2);font-size:15px}
.cta-box a.btn{display:inline-block;margin-top:14px;background:var(--accent);color:#fff;text-decoration:none;
border-radius:10px;padding:11px 20px;font-size:15px;font-weight:500}
@media(prefers-color-scheme:dark){.cta-box a.btn{color:#090b10}}
.nav{margin-top:34px;display:grid;gap:10px;grid-template-columns:1fr}
@media(min-width:620px){.nav{grid-template-columns:1fr 1fr}}
.nav a{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:13px 15px;
text-decoration:none;color:var(--ink);display:block}
.nav a:hover{border-color:var(--border);box-shadow:var(--shadow)}
.nav .k{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nav .t{font-family:var(--f-disp);font-size:18px;margin-top:3px;line-height:1.2}
.foot{margin-top:52px;padding-top:18px;border-top:1px solid var(--border);font-family:var(--f-mono);
font-size:11px;color:var(--muted);line-height:1.9}
.foot a{color:var(--muted)}
.verdict{margin-top:30px;background:var(--surface);border:1px solid var(--border-soft);border-left:3px solid var(--contested);
border-radius:0 12px 12px 0;padding:18px 20px}
.verdict h2{color:var(--contested)}
.instead{margin-top:18px;background:var(--surface);border:1px solid var(--border-soft);border-left:3px solid var(--bedrock);
border-radius:0 12px 12px 0;padding:18px 20px}
.instead h2{color:var(--bedrock)}
.replaced{margin-top:34px}
.replaced h2{margin-bottom:10px}
.replaced ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.replaced li a{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:13px 15px;
display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:baseline;text-decoration:none;color:var(--ink)}
.replaced li a:hover{border-color:var(--border);box-shadow:var(--shadow)}
.replaced .lc{font-family:var(--f-mono);font-size:10.5px;color:var(--muted)}
.replaced .nm{display:block;font-family:var(--f-disp);font-size:18.5px;line-height:1.25}
.replaced .on{display:block;font-size:13.5px;color:var(--ink-2);margin-top:3px;line-height:1.45}
.struck{text-decoration:line-through;text-decoration-color:var(--contested);text-decoration-thickness:3px}
.idx{margin-top:30px}.idx h3{font-family:var(--f-disp);font-size:25px;letter-spacing:-.01em}
.idx .blurb{color:var(--muted);font-size:14px;margin-top:5px}
.idx ul{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-direction:column;gap:9px}
.idx li a{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:13px 15px;
display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:baseline;text-decoration:none;color:var(--ink)}
.idx li a:hover{border-color:var(--border);box-shadow:var(--shadow)}
.idx .lc{font-family:var(--f-mono);font-size:10.5px;color:var(--muted)}
.idx .nm{display:block;font-family:var(--f-disp);font-size:18.5px;line-height:1.25}
.idx .on{display:block;font-size:13.5px;color:var(--ink-2);margin-top:3px;line-height:1.45}

/* ── the single-law page ─────────────────────────────────────────────── */
.prog{position:fixed;top:0;left:0;height:2px;width:0;background:var(--accent);z-index:60;transition:width .1s linear}
.bar{position:sticky;top:0;z-index:50;background:var(--paper);background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(12px)}
.eyebrow .dom{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);
background:var(--accent-wash);border-radius:99px;padding:3px 10px;text-decoration:none}
.eyebrow .dom:hover{background:var(--accent);color:var(--surface)}
h1{margin-top:16px}
.lead{border-left:3px solid var(--accent);padding-left:19px;margin-top:20px;font-size:22.5px;color:var(--ink)}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}
.tags span{font-family:var(--f-mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);
border:1px solid var(--border);border-radius:99px;padding:3px 9px}
.glance{margin-top:22px;display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:1px;
background:var(--border-soft);border:1px solid var(--border-soft);border-radius:12px;overflow:hidden}
.glance div{background:var(--surface);padding:12px 14px}
.glance dt{font-family:var(--f-mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.glance dd{margin:4px 0 0;font-size:14.5px;color:var(--ink);line-height:1.35}
.evbox{margin-top:30px;background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;
padding:19px 21px;box-shadow:var(--shadow)}
.evbox .top{display:flex;gap:11px;align-items:center;flex-wrap:wrap}
.evbox .why{margin-top:9px;font-size:14.5px;color:var(--ink-2)}
.evbox .srcs{list-style:none;padding:0;margin:15px 0 0;display:flex;flex-direction:column;gap:7px;
border-top:1px dashed var(--border);padding-top:13px}
.evbox .srcs li{display:grid;grid-template-columns:auto 1fr;gap:10px;font-family:var(--f-mono);font-size:12px;
line-height:1.65;color:var(--muted)}
.evbox .srcs li::before{content:"\25C7";color:var(--accent);font-size:9px;line-height:2.2}
.evbox .srcs li:first-child{color:var(--ink-2)}
.evbox .srcs em{display:block;font-family:var(--f-body);font-style:normal;font-size:13px;color:var(--accent);margin-top:2px}
h2{display:flex;align-items:center;gap:11px}
h2::after{content:"";flex:1;height:1px;background:var(--border-soft)}
.blk{margin-top:34px}
.steps{counter-reset:st;list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.steps li{counter-increment:st;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;
background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:14px 16px}
.steps li::before{content:counter(st);font-family:var(--f-mono);font-size:11px;font-weight:600;color:var(--accent);
background:var(--accent-wash);width:24px;height:24px;border-radius:99px;display:grid;place-items:center;margin-top:2px}
.steps li span{color:var(--ink);font-size:15.5px;line-height:1.55}
.trap{margin-top:34px;padding:16px 18px}
.trap p{color:var(--ink-2)}
.daily{margin-top:34px;background:var(--accent-wash);border-radius:14px;padding:18px 20px}
.daily h2{color:var(--accent)}
.daily h2::after{background:color-mix(in srgb,var(--accent) 22%,transparent)}
.daily .when{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.daily p{margin-top:4px;color:var(--ink);font-size:15px}
.daily .row+.row{margin-top:13px;padding-top:13px;border-top:1px solid color-mix(in srgb,var(--accent) 16%,transparent)}
.rel{margin-top:34px}
.rel ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
@media(min-width:620px){.rel ul{grid-template-columns:1fr 1fr}}
.rel a{display:block;background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;
padding:14px 16px;text-decoration:none;color:var(--ink);height:100%}
.rel a:hover{border-color:var(--border);box-shadow:var(--shadow)}
.rel .nm{font-family:var(--f-disp);font-size:18px;line-height:1.22;display:block}
.rel .on{display:block;font-size:13.5px;color:var(--ink-2);margin-top:5px;line-height:1.45}
.rel .gr{margin-top:9px;display:inline-block}
.question{margin-top:14px;font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--contested)}
.byline{margin-top:24px;padding-top:14px;border-top:1px solid var(--border-soft);font-size:13px;color:var(--muted)}
.byline a{color:var(--accent)}
.check{margin-top:12px;padding-top:11px;border-top:1px dashed var(--border);font-family:var(--f-mono);font-size:11.5px;color:var(--muted)}
.check a{color:var(--accent)}
.notice{margin-top:30px;background:var(--solid-wash);border-left:3px solid var(--solid);border-radius:0 10px 10px 0;padding:15px 18px}
.notice h2{color:var(--solid)}
.notice h2::after{background:color-mix(in srgb,var(--solid) 25%,transparent)}
.notice p{color:var(--ink-2);font-size:14.5px}
.defs{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.defs li{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:start;
background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:14px 16px;color:var(--ink-2)}
.defs li .grade{margin-top:2px}
.share{margin-top:30px;display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.share button,.share a.sh{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:99px;padding:7px 13px;
cursor:pointer;text-decoration:none}
.share button:hover,.share a.sh:hover{color:var(--accent);border-color:var(--accent)}
@media print{.bar,.cta-box,.nav,.share,.prog,.themefab{display:none}body{background:#fff}}

.themefab{position:fixed;z-index:60;right:max(16px,env(safe-area-inset-right,0px));
bottom:calc(16px + env(safe-area-inset-bottom,0px));display:inline-flex;align-items:center;gap:9px;
padding:10px 16px 10px 12px;border-radius:99px;background:var(--surface);color:var(--ink);
border:1px solid var(--border);font:500 13.5px/1 var(--f-body);cursor:pointer;
box-shadow:0 2px 6px rgba(16,19,26,.08),0 16px 34px -16px rgba(16,19,26,.45);
transition:transform .22s cubic-bezier(.2,.8,.3,1),border-color .2s,color .2s}
.themefab:hover{transform:translateY(-2px);color:var(--accent);border-color:var(--accent)}
.themefab:active{transform:translateY(0) scale(.96)}
.themefab .ico{position:relative;width:19px;height:19px;flex:0 0 auto;display:block}
.themefab .ico svg{position:absolute;inset:0;width:19px;height:19px;display:block;
transition:opacity .3s ease,transform .5s cubic-bezier(.2,.8,.3,1)}
.themefab .sun{opacity:0;transform:rotate(-120deg) scale(.3)}
.themefab .moon{opacity:1;transform:rotate(0) scale(1)}
.themefab.is-dark .sun{opacity:1;transform:rotate(0) scale(1);color:var(--solid)}
.themefab.is-dark .moon{opacity:0;transform:rotate(120deg) scale(.3)}
.themefab::before{content:"";position:absolute;inset:-1px;border-radius:99px;border:1.5px solid var(--accent);opacity:0;pointer-events:none}
.themefab.hint::before{animation:fabring 2.4s ease-out 3 .9s}
@keyframes fabring{0%{opacity:.75;transform:scale(1)}65%{opacity:0;transform:scale(1.4)}100%{opacity:0;transform:scale(1.4)}}
.themefab.hint .ico{animation:fabwave 2.4s ease-in-out 3 .9s}
@keyframes fabwave{0%,62%,100%{transform:rotate(0)}70%{transform:rotate(-20deg)}78%{transform:rotate(15deg)}86%{transform:rotate(-8deg)}94%{transform:rotate(0)}}
@media(max-width:620px){.themefab{padding:9px 14px 9px 11px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.themefab,.themefab *{animation:none!important;transition:none!important}}