
:root{
  --paper:#EEF0EA; --panel:#F6F7F2; --panel-2:#E7EAE1; --ink:#181A17;
  --ink-2:#42463D; --ink-3:#6C7064; --brass:#8A6D3B; --brass-deep:#6B5227;
  --line:#D5D8CD; --line-2:#C2C6B7;
  --s-inforce:#4A6B3C; --s-partial:#4E6484; --s-phased:#4E6484;
  --s-proposed:#8A6D3B; --s-none:#787C6E; --s-repealed:#984B3A; --s-failed:#83806F;
  --maxw:1140px; --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Jost",system-ui,-apple-system,Segoe UI,sans-serif; --mono:"IBM Plex Mono",monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans);
  font-size:17px; line-height:1.68; font-weight:400; -webkit-font-smoothing:antialiased;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 26px}
a{color:var(--brass-deep); text-decoration:none}
a:hover{color:var(--ink); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px}
h1,h2,h3,h4{font-family:var(--serif); font-weight:600; line-height:1.1; color:var(--ink); margin:0 0 .5em; letter-spacing:.002em}
h1{font-size:3rem; font-weight:600}
h2{font-size:2.05rem; font-weight:600}
h3{font-size:1.3rem; font-weight:600}
p{margin:0 0 1.15rem}
.mono{font-family:var(--mono)}
.kicker{font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--brass-deep)}
:focus-visible{outline:2.5px solid var(--brass); outline-offset:3px}
img,svg{max-width:100%}
hr{border:none; border-top:1px solid var(--line); margin:2.4rem 0}

/* flags */
.flag{width:34px; height:23px; object-fit:cover; border:1px solid var(--line-2); border-radius:1px;
  display:block; box-shadow:0 1px 2px rgba(24,26,23,.10); background:#fff}
.flag-lg{width:76px; height:51px; object-fit:cover; border:1px solid var(--line-2); border-radius:2px;
  display:block; box-shadow:0 2px 6px rgba(24,26,23,.12); background:#fff}

/* header */
.skip{position:absolute; left:-999px}
.skip:focus{left:16px; top:12px; background:var(--ink); color:var(--paper); padding:9px 15px; z-index:60; border-radius:2px}
.site-head{border-bottom:1px solid var(--line); background:rgba(246,247,242,.86); backdrop-filter:saturate(1.1) blur(6px);
  position:sticky; top:0; z-index:30}
.head-inner{display:flex; align-items:center; justify-content:space-between; height:70px; gap:20px}
.brand{display:flex; align-items:center; gap:12px; color:var(--brass-deep)}
.brand:hover{text-decoration:none; color:var(--brass-deep)}
.brand .mark{color:var(--brass); flex:none}
.brand-txt{display:flex; flex-direction:column; line-height:1}
.brand-a{font-family:var(--sans); font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3); font-weight:600; margin-bottom:2px}
.brand-b{font-family:var(--serif); font-size:1.28rem; font-weight:600; color:var(--ink); letter-spacing:.01em}
.nav{display:flex; gap:30px; align-items:center; font-size:.92rem; font-weight:500; letter-spacing:.01em}
.nav a{color:var(--ink-2)}
.nav a:hover{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--brass); padding-bottom:2px}

/* hero */
.hero{border-bottom:1px solid var(--line); background:
  radial-gradient(120% 90% at 85% -10%, rgba(140,29,47,.05), transparent 55%), var(--panel)}
.hero-inner{padding:88px 0 62px; max-width:900px}
.hero .eyebrow{margin-bottom:22px}
.hero h1{font-size:4.1rem; line-height:1.02; margin-bottom:.28em; letter-spacing:-.008em}
.hero .lede{font-family:var(--serif); font-size:1.7rem; font-weight:400; line-height:1.35; color:var(--ink-2); max-width:720px; margin-bottom:30px}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap}
.btn{display:inline-flex; align-items:center; gap:8px; padding:13px 26px; border-radius:2px; font-weight:500; font-size:.98rem; letter-spacing:.01em}
.btn-primary{background:var(--ink); color:var(--paper)}
.btn-primary:hover{background:var(--brass-deep); text-decoration:none; color:var(--paper)}
.btn-ghost{border:1px solid var(--line-2); color:var(--ink); background:transparent}
.btn-ghost:hover{border-color:var(--ink); text-decoration:none; color:var(--ink)}
.hero-stats{display:flex; gap:0; margin-top:52px; border-top:1px solid var(--line)}
.hero-stats .stat{padding:24px 34px 0 0; margin-right:34px; border-right:1px solid var(--line)}
.hero-stats .stat:last-child{border-right:none}
.stat b{font-family:var(--serif); font-size:2.6rem; font-weight:600; display:block; line-height:1; color:var(--ink); margin-bottom:6px}
.stat span{font-size:.8rem; color:var(--ink-3); letter-spacing:.02em; max-width:150px; display:block}

/* sections */
section{padding:64px 0}
.sec-head{display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:30px;
  border-bottom:1px solid var(--line); padding-bottom:16px; flex-wrap:wrap}
.sec-head h2{margin:0; font-size:2.2rem}
.sec-head .kicker{display:block; margin-bottom:10px}
.sec-lead{max-width:720px; color:var(--ink-2); margin:-10px 0 32px; font-size:1.05rem}
.tint{background:var(--panel); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}

/* standfirst editorial */
.standfirst{padding:70px 0}
.standfirst .lead-serif{font-family:var(--serif); font-size:2rem; font-weight:400; line-height:1.32; color:var(--ink); max-width:900px; margin:0 0 1.2rem; letter-spacing:.004em}
.standfirst .lead-serif .drop{color:var(--brass-deep)}
.editorial{max-width:760px; font-size:1.08rem; color:var(--ink-2)}
.editorial p{margin-bottom:1.3rem}
.editorial strong{color:var(--ink); font-weight:600}

/* ledger (signature register) */
.ledger{border:1px solid var(--line); background:var(--panel)}
.ledger-row{display:grid; grid-template-columns:74px 1.15fr 1.2fr 150px; gap:20px; align-items:center;
  padding:16px 22px; border-top:1px solid var(--line); color:inherit}
.ledger-row:first-child{border-top:none}
a.ledger-row:hover{background:var(--panel-2); text-decoration:none}
.ledger-head{background:var(--panel-2); font-family:var(--sans); font-size:.66rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); font-weight:600}
.flagcell{display:flex; align-items:center; gap:0}
.seal{font-family:var(--mono); font-weight:500; font-size:.7rem; color:var(--ink-3); letter-spacing:.02em}
.j-name{font-family:var(--serif); font-weight:600; font-size:1.28rem; color:var(--ink); line-height:1.12}
.j-approach{font-size:.9rem; color:var(--ink-3); line-height:1.35}
.ledger-row .chip{justify-self:start}

/* chips */
.chip{display:inline-flex; align-items:center; font-family:var(--sans); font-size:.72rem; font-weight:600;
  letter-spacing:.02em; padding:5px 11px; border-radius:2px; white-space:nowrap; border:1px solid; background:var(--panel)}
.chip::before{content:""; width:7px; height:7px; border-radius:50%; margin-right:8px; background:currentColor}
.chip-sm{font-size:.66rem; padding:3px 9px}
.s-inforce{color:var(--s-inforce); border-color:color-mix(in srgb,var(--s-inforce) 42%,var(--line))}
.s-partial{color:var(--s-partial); border-color:color-mix(in srgb,var(--s-partial) 42%,var(--line))}
.s-phased{color:var(--s-phased); border-color:color-mix(in srgb,var(--s-phased) 42%,var(--line))}
.s-proposed{color:var(--s-proposed); border-color:color-mix(in srgb,var(--s-proposed) 42%,var(--line))}
.s-none{color:var(--s-none); border-color:color-mix(in srgb,var(--s-none) 42%,var(--line))}
.s-repealed{color:var(--s-repealed); border-color:color-mix(in srgb,var(--s-repealed) 42%,var(--line))}
.s-failed{color:var(--s-failed); border-color:color-mix(in srgb,var(--s-failed) 42%,var(--line))}
.legend{display:flex; gap:18px; flex-wrap:wrap; font-size:.78rem; color:var(--ink-3); margin-top:18px}
.legend span{display:inline-flex; align-items:center; gap:7px}
.legend i{width:9px; height:9px; border-radius:50%; display:inline-block}

/* two-model comparison */
.models{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); background:var(--panel)}
.model{padding:34px 34px; border-right:1px solid var(--line)}
.model:last-child{border-right:none}
.model .mnum{font-family:var(--mono); font-size:.72rem; color:var(--brass-deep); letter-spacing:.1em}
.model h3{font-size:1.5rem; margin:.4rem 0 .6rem}
.model p{color:var(--ink-2); font-size:.98rem}
.model .who{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px}
.model.solo{grid-column:1/-1; border-right:none; border-top:1px solid var(--line); background:var(--panel-2)}

/* deadlines timeline */
.deadlines{border-left:2px solid var(--line); margin:0; padding:0; list-style:none; max-width:820px}
.deadlines li{position:relative; padding:0 0 24px 26px}
.deadlines li::before{content:""; position:absolute; left:-8px; top:6px; width:13px; height:13px; border-radius:50%;
  background:var(--panel); border:2px solid var(--brass)}
.deadlines li.past::before{background:var(--brass); border-color:var(--brass)}
.deadlines .d-date{font-family:var(--mono); font-size:.82rem; color:var(--brass-deep); font-weight:500; display:block}
.deadlines .d-ev{color:var(--ink); font-size:1.02rem; font-weight:500}
.deadlines .d-sub{color:var(--ink-3); font-size:.92rem}

/* penalties compare */
.pen{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.pen .pen-card{border:1px solid var(--line); background:var(--panel); padding:22px 24px; border-radius:2px}
.pen-card .flag{display:inline-block; vertical-align:middle; margin-right:10px}
.pen-card h4{display:flex; align-items:center; font-family:var(--serif); font-size:1.25rem; margin:0 0 8px}
.pen-card p{margin:0; color:var(--ink-2); font-size:.96rem}

/* cards */
.grid{display:grid; gap:18px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.card{border:1px solid var(--line); background:var(--panel); padding:26px; border-radius:2px; display:flex; flex-direction:column; transition:border-color .15s}
.card:hover{border-color:var(--brass)}
a.card:hover{text-decoration:none}
.card h3{margin-bottom:.4em; font-size:1.4rem}
.card p{color:var(--ink-2); font-size:.96rem; margin-bottom:1em}
.card .more{margin-top:auto; font-family:var(--sans); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--brass-deep); font-weight:600}

.topic-tags{display:flex; flex-wrap:wrap; gap:8px; margin:2px 0 0}
.tag{font-family:var(--sans); font-size:.78rem; padding:4px 11px; border:1px solid var(--line-2); border-radius:2px; color:var(--ink-2); background:var(--panel)}
a.tag:hover{border-color:var(--brass); color:var(--ink); text-decoration:none}
.flagtag{display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-size:.82rem; padding:4px 10px 4px 5px; border:1px solid var(--line-2); border-radius:2px; color:var(--ink-2); background:var(--panel)}
.flagtag .flag{width:22px; height:15px}
a.flagtag:hover{border-color:var(--brass); color:var(--ink); text-decoration:none}

/* detail pages */
.page-head{background:var(--panel); border-bottom:1px solid var(--line); padding:44px 0 38px}
.crumbs{font-family:var(--sans); font-size:.78rem; color:var(--ink-3); margin-bottom:20px; letter-spacing:.02em}
.crumbs .sep{margin:0 10px; color:var(--line-2)}
.crumbs a{color:var(--ink-3)}
.page-head .head-flag{display:flex; align-items:center; gap:20px; margin-bottom:8px}
.page-head h1{margin:0; font-size:3.1rem}
.page-head .meta-row{display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin-top:18px}
.reviewed{font-family:var(--mono); font-size:.76rem; color:var(--ink-3)}
.content{display:grid; grid-template-columns:1fr 288px; gap:56px; padding:52px 0}
.content.solo{grid-template-columns:1fr; max-width:800px}
.prose{font-size:1.06rem}
.prose h2{font-size:1.75rem; margin-top:2.4rem; padding-bottom:10px; border-bottom:1px solid var(--line)}
.prose h3{margin-top:1.7rem}
.prose .answer{font-family:var(--serif); font-size:1.5rem; font-weight:400; line-height:1.36; color:var(--ink);
  border-left:2px solid var(--brass); padding:6px 0 6px 26px; margin:0 0 30px}
.prose ul{padding-left:1.15em; margin:0 0 1.2rem}
.prose li{margin-bottom:.5rem}
.keypoints{list-style:none; padding:0; margin:0 0 1.4rem}
.keypoints li{position:relative; padding-left:28px; margin-bottom:.8rem; font-size:1.02rem}
.keypoints li::before{content:"\00A7"; position:absolute; left:0; top:1px; color:var(--brass); font-family:var(--serif); font-weight:600; font-size:1.15rem}

/* law entries */
.law{border:1px solid var(--line); border-radius:2px; background:var(--panel); padding:22px 24px; margin-bottom:16px}
.law-top{display:flex; justify-content:space-between; gap:14px; align-items:flex-start; flex-wrap:wrap}
.law h3{margin:0 0 5px; font-size:1.3rem}
.law .cite{font-family:var(--mono); font-size:.78rem; color:var(--ink-3); margin-bottom:12px}
.law p{font-size:.98rem; color:var(--ink-2); margin:8px 0 12px}
.law .src{font-family:var(--mono); font-size:.77rem}
.law .eff{font-family:var(--mono); font-size:.75rem; color:var(--ink-3); margin-top:4px}

/* timeline */
.timeline{list-style:none; padding:0; margin:0; border-left:2px solid var(--line)}
.timeline li{position:relative; padding:0 0 20px 24px}
.timeline li::before{content:""; position:absolute; left:-7px; top:7px; width:11px; height:11px; border-radius:50%; background:var(--panel); border:2px solid var(--brass)}
.timeline .t-date{font-family:var(--mono); font-size:.8rem; color:var(--brass-deep); font-weight:500}
.timeline .t-ev{color:var(--ink-2); font-size:.98rem}

/* fact box */
.aside{position:sticky; top:92px; align-self:start}
.factbox{border:1px solid var(--line); background:var(--panel); border-radius:2px; overflow:hidden}
.factbox h4{margin:0; padding:13px 20px; background:var(--panel-2); font-size:.7rem; letter-spacing:.16em;
  text-transform:uppercase; font-family:var(--sans); color:var(--ink-3); font-weight:600; border-bottom:1px solid var(--line)}
.fact{padding:14px 20px; border-bottom:1px solid var(--line)}
.fact:last-child{border-bottom:none}
.fact .k{font-family:var(--sans); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); margin-bottom:4px; font-weight:600}
.fact .v{font-size:.94rem; color:var(--ink)}
.aside .side-links{margin-top:18px; font-size:.9rem}
.aside .side-links a{display:block; padding:5px 0}

/* news */
.news-item{border-top:1px solid var(--line); padding:28px 0; display:grid; grid-template-columns:150px 1fr; gap:28px}
.news-item:first-of-type{border-top:none}
.news-date{font-family:var(--mono); font-size:.82rem; color:var(--brass-deep); font-weight:500}
.news-src{font-family:var(--mono); font-size:.73rem; color:var(--ink-3); margin-top:5px}
.news-body h3{margin:0 0 9px; font-size:1.45rem}
.news-body p{color:var(--ink-2); margin:0 0 13px}
.news-tags{display:flex; gap:8px; flex-wrap:wrap; align-items:center}

/* callout */
.callout{border:1px solid var(--line-2); background:var(--panel-2); border-radius:2px; padding:24px 28px; margin:26px 0}
.callout p:last-child{margin-bottom:0}
.callout .lbl{font-family:var(--sans); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-deep); font-weight:600; display:block; margin-bottom:8px}

/* pubs */
.pubs{columns:2; column-gap:38px; list-style:none; padding:0}
.pubs li{break-inside:avoid; margin-bottom:14px}
.pubs .kind{font-family:var(--mono); font-size:.68rem; color:var(--ink-3); text-transform:uppercase; letter-spacing:.06em}

/* faq */
.faq details{border:1px solid var(--line); border-radius:2px; background:var(--panel); margin-bottom:11px; padding:0 22px}
.faq summary{cursor:pointer; padding:17px 0; font-family:var(--serif); font-weight:600; font-size:1.22rem; list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; float:right; color:var(--brass); font-family:var(--mono); font-weight:400}
.faq details[open] summary::after{content:"\2013"}
.faq details[open] summary{border-bottom:1px solid var(--line)}
.faq .ans{padding:15px 0 20px; color:var(--ink-2); font-size:1rem}

.related-strip{border-top:1px solid var(--line); padding-top:24px; margin-top:10px}

/* footer */
.site-foot{background:var(--ink); color:#C9CCC2; border-top:3px solid var(--brass); margin-top:20px}
.foot-inner{display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:40px; padding:56px 0 40px}
.foot-brand{display:flex; align-items:center; gap:11px; color:#EEF0EA; font-family:var(--serif); font-size:1.15rem; margin-bottom:14px}
.foot-brand .mark{color:var(--brass)}
.foot-note{font-size:.92rem; color:#9DA095; max-width:360px; margin:0}
.foot-col h4{font-family:var(--sans); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:#8B8E82; font-weight:600; margin:0 0 14px}
.foot-col a{display:block; color:#C9CCC2; padding:4px 0; font-size:.95rem}
.foot-col a:hover{color:#fff}
.foot-small{font-size:.9rem; color:#9DA095; margin:0}
.foot-base{display:flex; justify-content:space-between; gap:20px; padding:18px 0; border-top:1px solid #2C2E29; font-size:.82rem; color:#8B8E82; font-family:var(--mono)}

@media (max-width:900px){
  body{font-size:16px}
  h1{font-size:2.3rem} .hero h1{font-size:2.7rem} .hero .lede{font-size:1.35rem}
  .page-head h1{font-size:2.3rem}
  .nav{gap:18px; font-size:.85rem} .brand-a{display:none}
  .hero-stats{flex-wrap:wrap; gap:18px} .hero-stats .stat{border-right:none; padding-right:0; margin-right:0; width:44%}
  .content,.content.solo{grid-template-columns:1fr; gap:36px} .aside{position:static}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .models{grid-template-columns:1fr} .model{border-right:none; border-bottom:1px solid var(--line)}
  .pen{grid-template-columns:1fr}
  .ledger-row{grid-template-columns:44px 1fr; grid-template-areas:"flag name" "flag approach" ". status"; gap:5px 16px}
  .ledger-head{display:none}
  .ledger-row .flagcell{grid-area:flag; flex-direction:column; align-items:flex-start; gap:5px} .j-name{grid-area:name}
  .j-approach{grid-area:approach} .ledger-row .chip{grid-area:status; margin-top:7px}
  .news-item{grid-template-columns:1fr; gap:9px}
  .pubs{columns:1}
  .foot-inner{grid-template-columns:1fr; gap:28px} .foot-base{flex-direction:column; gap:8px}
}
/* nested page context */
.head-context{font-family:var(--sans); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--brass-deep); font-weight:600; margin-bottom:4px}

/* US callout */
.us-callout{display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px; margin-top:22px;
  padding:18px 22px; border:1px solid var(--line-2); border-left:3px solid var(--brass); background:var(--panel); border-radius:2px; color:var(--ink)}
.us-callout:hover{text-decoration:none; border-color:var(--brass); background:var(--panel-2)}
.us-callout .flag{width:38px; height:26px}
.us-callout-txt{font-size:.98rem; color:var(--ink-2)}
.us-callout-txt strong{color:var(--ink)}
.us-callout-go{font-family:var(--sans); font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; color:var(--brass-deep); font-weight:600; white-space:nowrap}
.us-callout-flat{margin:0 0 34px}

/* US states LP */
.us-intro{font-family:var(--serif); font-size:1.42rem; line-height:1.4; color:var(--ink); max-width:840px; margin:0 0 28px}
.us-stats{display:flex; gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:34px}
.us-stats>div{padding:20px 32px 20px 0; margin-right:32px; border-right:1px solid var(--line)}
.us-stats>div:last-child{border-right:none}
.us-stats b{font-family:var(--serif); font-size:1.9rem; display:block; line-height:1; color:var(--ink); margin-bottom:5px}
.us-stats span{font-size:.78rem; color:var(--ink-3)}

/* mini state list on federal page */
.ministates{display:grid; gap:0; border:1px solid var(--line); border-radius:2px; background:var(--panel); margin:10px 0}
.ministate{display:grid; grid-template-columns:34px 1fr auto auto; gap:14px; align-items:center; padding:12px 18px; border-top:1px solid var(--line); color:var(--ink)}
.ministate:first-child{border-top:none}
.ministate:hover{background:var(--panel-2); text-decoration:none}
.ministate .flag{width:28px; height:19px}
.ms-name{font-family:var(--serif); font-weight:600; font-size:1.12rem}
.ms-eff{font-size:.78rem; color:var(--ink-3)}

/* interactive table */
.tablewrap{margin-top:8px}
.table-tools{display:flex; flex-direction:column; gap:14px; margin-bottom:18px}
.search-wrap input{width:100%; font-family:var(--sans); font-size:1rem; padding:13px 16px; border:1px solid var(--line-2); border-radius:2px; background:var(--panel); color:var(--ink)}
.search-wrap input::placeholder{color:var(--ink-3)}
.search-wrap input:focus{outline:none; border-color:var(--brass); box-shadow:0 0 0 3px rgba(138,109,59,.12)}
.filter-row{display:flex; flex-wrap:wrap; gap:12px 26px}
.filter-group{display:flex; flex-wrap:wrap; gap:8px}
.chipbtn{font-family:var(--sans); font-size:.82rem; padding:6px 14px; border:1px solid var(--line-2); border-radius:40px; background:var(--panel); color:var(--ink-2); cursor:pointer; transition:all .12s}
.chipbtn:hover{border-color:var(--brass); color:var(--ink)}
.chipbtn.is-active{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.table-meta{font-family:var(--mono); font-size:.76rem; color:var(--ink-3)}
.datatable{width:100%; border-collapse:collapse; border:1px solid var(--line); background:var(--panel)}
.datatable th{font-family:var(--sans); font-size:.66rem; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3); font-weight:600; text-align:left; padding:13px 18px; background:var(--panel-2); border-bottom:1px solid var(--line); white-space:nowrap}
.datatable th.sortable{cursor:pointer; user-select:none}
.datatable th.sortable:hover{color:var(--ink)}
.datatable th[data-sort]::after{content:"\2195"; margin-left:6px; opacity:.35}
.datatable th[aria-sort="ascending"]::after{content:"\2191"; opacity:.9}
.datatable th[aria-sort="descending"]::after{content:"\2193"; opacity:.9}
.datatable td{padding:15px 18px; border-top:1px solid var(--line); font-size:.94rem; color:var(--ink-2); vertical-align:middle}
.datatable tbody tr:hover{background:var(--panel-2)}
.datatable .c-name a{display:flex; align-items:center; gap:12px; color:var(--ink)}
.datatable .c-name a:hover{text-decoration:none; color:var(--brass-deep)}
.datatable .c-name .flag{width:30px; height:20px; flex:none}
.datatable .c-name span{font-family:var(--serif); font-weight:600; font-size:1.14rem}
.datatable .c-approach,.datatable .c-focus,.datatable .c-pen{color:var(--ink-3); font-size:.9rem}
.datatable .c-eff{white-space:nowrap; color:var(--ink-2)}
.th-approach,.th-focus,.th-pen{width:30%}
.table-empty{padding:24px; text-align:center; color:var(--ink-3); border:1px solid var(--line); border-top:none; background:var(--panel)}

/* cite this page */
.citebox{border:1px solid var(--line); border-left:3px solid var(--brass); background:var(--panel); border-radius:2px; padding:18px 22px; margin:30px 0 0}
.citebox .k{font-family:var(--sans); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-deep); font-weight:600; margin-bottom:8px}
.cite-line{font-size:.8rem; color:var(--ink-2); margin:0 0 8px; user-select:all; line-height:1.6}
.cite-note{font-size:.8rem; color:var(--ink-3); margin:0}

/* live news */
.news-live[hidden]{display:none}
.news-live{margin:0 0 12px}
.news-live-page{margin-bottom:8px}
.live-head{display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding-bottom:12px; margin-bottom:4px; border-bottom:1px solid var(--line)}
.live-dot{width:9px; height:9px; border-radius:50%; background:var(--s-inforce); animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(74,107,60,.45)}70%{box-shadow:0 0 0 7px rgba(74,107,60,0)}100%{box-shadow:0 0 0 0 rgba(74,107,60,0)}}
.live-label{font-family:var(--sans); font-weight:600; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink)}
.live-meta{font-family:var(--mono); font-size:.72rem; color:var(--ink-3)}
.live-list{list-style:none; padding:0; margin:0}
.live-list li{padding:13px 0; border-bottom:1px solid var(--line)}
.live-list li:last-child{border-bottom:none}
.live-list a{font-family:var(--serif); font-size:1.18rem; font-weight:600; color:var(--ink); line-height:1.25}
.live-src{font-size:.74rem; color:var(--ink-3); margin-top:4px}

@media (max-width:900px){
  .us-callout{grid-template-columns:auto 1fr; gap:12px 16px} .us-callout-go{grid-column:2/3}
  .us-stats{flex-wrap:wrap} .us-stats>div{border-right:none; margin-right:0; padding-right:0; width:46%}
  .ministate{grid-template-columns:28px 1fr auto} .ms-eff{display:none}
  .tablewrap{overflow-x:auto} .datatable{min-width:600px}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto; transition:none}; .live-dot{animation:none}}

/* ---- business type system: Helvetica throughout -------------------------- */
:root{
  --serif:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  --sans:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
}
h1,h2,h3,h4{font-weight:700; letter-spacing:-.015em; line-height:1.12}
h1{font-size:2.55rem}
h2{font-size:1.8rem}
.brand-b{font-size:1.06rem; font-weight:700; letter-spacing:-.005em}
.hero h1{font-size:3.25rem; letter-spacing:-.022em; line-height:1.04}
.hero .lede{font-size:1.28rem; font-weight:400; line-height:1.5}
.stat b{font-size:2.15rem; font-weight:700; letter-spacing:-.02em}
.sec-head h2{font-size:1.7rem}
.standfirst .lead-serif{font-size:1.5rem; font-weight:500; line-height:1.42; letter-spacing:-.012em}
.j-name{font-size:1.04rem; font-weight:600; letter-spacing:-.005em}
.model h3{font-size:1.22rem}
.card h3{font-size:1.14rem}
.page-head h1{font-size:2.55rem; letter-spacing:-.02em}
.prose .answer{font-size:1.22rem; line-height:1.5; font-weight:400}
.law h3{font-size:1.1rem}
.faq summary{font-size:1.02rem; font-weight:600}
.us-intro{font-size:1.18rem; line-height:1.55}
@media (max-width:720px){
  h1{font-size:1.95rem} .hero h1{font-size:2.2rem} .hero .lede{font-size:1.12rem}
  .page-head h1{font-size:1.95rem}
  .standfirst .lead-serif{font-size:1.25rem}
}
.deadlines .dl-past{opacity:.55}
.d-mark{display:block; font-style:normal; font-family:var(--mono); font-size:.62rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--brass-deep); margin-top:4px}
.dl-past .d-mark{color:var(--ink-3)}

/* ---- editorial finish: rules, not rounded panels -------------------------- */
::selection{background:var(--brass); color:var(--paper)}
.site-head{border-top:6px solid var(--ink)}
.btn,.chip,.tag,.flagtag,.card,.law,.factbox,.callout,.us-callout,.citebox,.pen-card,
.faq details,.ministates,.search-wrap input,.skip:focus,.flag,.flag-lg,.chipbtn{border-radius:0}
.flag,.flag-lg{box-shadow:none}
.search-wrap input:focus{box-shadow:none; border-color:var(--ink)}

.chip{background:transparent; border:none; padding:0; font-size:.7rem; letter-spacing:.13em}
.chip-sm{padding:0; font-size:.64rem}
.chip::before{border-radius:0; width:8px; height:8px}
.legend i{border-radius:0}
.timeline li::before{border-radius:0; width:9px; height:9px; left:-6px}
.deadlines li::before{border-radius:0; width:11px; height:11px}
.live-dot{border-radius:0; animation:blinkstep 1.1s steps(2,start) infinite}
@keyframes blinkstep{to{visibility:hidden}}

.card,.pen .pen-card{background:transparent; border:none; border-top:1px solid var(--ink); padding:20px 2px 0}
.card:hover{border-top-color:var(--brass)}
.faq details{background:transparent; border:none; border-top:1px solid var(--line-2); margin-bottom:0; padding:0}
.faq details:last-child{border-bottom:1px solid var(--line-2)}
.faq .ans{padding:0 0 18px}
.chipbtn{border-radius:0; font-family:var(--mono); font-size:.66rem; letter-spacing:.09em; text-transform:uppercase; padding:7px 12px}
.tag,.flagtag{background:transparent}
.btn-ghost{border:none; padding:13px 0; text-decoration:underline; text-underline-offset:4px}
.btn-ghost:hover{color:var(--brass-deep)}

.sec-head .kicker::before{content:""; display:inline-block; width:26px; height:2px; background:var(--brass);
  margin-right:10px; vertical-align:2px}
.datatable thead th{border-bottom:2px solid var(--ink)}
.datatable tbody tr:hover{background:color-mix(in srgb, var(--ink) 4%, transparent)}
.ledger-row:hover{box-shadow:inset 3px 0 0 var(--brass)}

/* ---- registry theme: cold porcelain, oxblood accent ----------------------- */
:root{
  --paper:#F4F5F6; --panel:#FAFBFB; --panel-2:#EBEDEF; --ink:#15171B;
  --ink-2:#3E434A; --ink-3:#6B717A; --brass:#8C1D2F; --brass-deep:#6E1423;
  --line:#D7DADE; --line-2:#C3C7CD;
  --s-inforce:#276B49; --s-partial:#3D5B85; --s-phased:#3D5B85;
  --s-proposed:#8A6412; --s-none:#757B83; --s-repealed:#5C616B; --s-failed:#9A9FA6;
}
.site-head{background:rgba(250,251,251,.88)}

/* ---- layout repairs: audited July 20, 2026 -------------------------------- */
.page-head h1{margin-bottom:4px}
.page-head .sec-lead{margin:14px 0 0}
.cform{max-width:640px; margin-top:6px}
.cform label{display:block; font-family:var(--mono); font-size:.68rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-2); margin:22px 0 8px}
.cform input,.cform select,.cform textarea{width:100%; box-sizing:border-box; background:var(--panel);
  border:1px solid var(--line-2); border-radius:0; padding:12px 14px; font:inherit; color:var(--ink)}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none; border-color:var(--ink)}
.cform textarea{min-height:170px; resize:vertical}
.cform .form-submit{margin-top:26px; background:var(--ink); color:var(--paper); border:none; padding:14px 26px;
  font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; cursor:pointer}
.cform .form-submit:hover{background:var(--brass-deep)}
[id]{scroll-margin-top:96px}
.content > *{min-width:0}
.cite-line,.citebox,.src,.fact .v,.prose a{overflow-wrap:anywhere}
.tablewrap{overflow-x:auto; -webkit-overflow-scrolling:touch}
.tablewrap .datatable{min-width:640px}
.page-head .meta-row,.law-top{flex-wrap:wrap}
@media (max-width:760px){
  .head-inner{flex-wrap:wrap; height:auto; padding:12px 0; row-gap:2px}
  .nav{flex-wrap:wrap; row-gap:6px; gap:8px 16px; font-size:.8rem}
  .cb-inner{padding:12px 18px}
}
.news-live-side .live-list a{font-size:.9rem}
.news-live-side .live-head{margin-bottom:10px}
.live-note{margin:12px 0 0; font-size:.74rem; color:var(--ink-3); line-height:1.5}
#consent-bar{position:fixed; left:0; right:0; bottom:0; z-index:80; background:var(--paper);
  border-top:2px solid var(--ink)}
.cb-inner{max-width:var(--maxw); margin:0 auto; padding:14px 26px; display:flex; gap:22px;
  align-items:center; justify-content:space-between; flex-wrap:wrap}
.cb-txt{margin:0; font-size:.86rem; color:var(--ink-2); max-width:640px}
.cb-txt a{color:var(--brass-deep)}
.cb-actions{display:flex; gap:14px; align-items:center}
.cb-accept{background:var(--ink); color:var(--paper); border:none; padding:10px 18px;
  font-family:var(--mono); font-size:.7rem; letter-spacing:.09em; text-transform:uppercase; cursor:pointer}
.cb-accept:hover{background:var(--brass-deep)}
.cb-decline{background:transparent; border:none; color:var(--ink-2); font-family:var(--mono);
  font-size:.7rem; letter-spacing:.09em; text-transform:uppercase; cursor:pointer;
  text-decoration:underline; text-underline-offset:3px}
@media (max-width:720px){ .cb-inner{flex-direction:column; align-items:flex-start; gap:10px} }
