
:root{
  --ink:#101C1A;--ink-soft:#3A544F;--ink-mute:#6B807B;
  --paper:#EDEEE9;--panel:#E4E6DF;--card:#F6F7F3;
  --rule:#C3C8BD;--rule-soft:#D6DACF;--brass:#8A6E2F;--max:120rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:17px;line-height:1.62;font-weight:380;-webkit-font-smoothing:antialiased}
body.no-scroll{overflow:hidden}
.wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(1.15rem,3.2vw,4rem)}

a{color:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--brass);outline-offset:3px}

/* masthead */
.mast{border-bottom:1px solid var(--rule)}
.mast .wrap{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;
  padding-top:1.4rem;padding-bottom:1.4rem;flex-wrap:wrap}
.mark{font-family:"Newsreader",Georgia,serif;font-size:1.32rem;font-weight:500;
  letter-spacing:-.015em;text-decoration:none;color:var(--ink)}
.mark em{font-style:italic;color:var(--ink-soft)}
.mast nav{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.68rem;
  letter-spacing:.13em;text-transform:uppercase;display:flex;gap:1.6rem}
.mast nav a{color:var(--ink-soft);text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent}
.mast nav a:hover{color:var(--ink);border-bottom-color:var(--brass)}

/* hero */
.hero{padding:5.5rem 0 3.5rem;border-bottom:1px solid var(--rule)}
.hero h1{font-family:"Newsreader",Georgia,serif;font-weight:400;
  font-size:clamp(2.5rem,6.6vw,6.4rem);line-height:1.02;letter-spacing:-.03em;margin:0 0 1.8rem;max-width:none}
.hero h1 em{font-style:italic;color:var(--ink-soft)}
.hero .lede{font-size:clamp(1.1rem,1.4vw,1.45rem);max-width:none;color:var(--ink-soft);margin:0}
.eyebrow{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin:0 0 1.5rem;display:block}

/* premise */
.premise{border-bottom:1px solid var(--rule);padding:2.6rem 0}
.premise .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.premise .cell{padding:0 2rem;border-left:1px solid var(--rule-soft)}
.premise .cell:first-child{padding-left:0;border-left:0}
.premise .cell:last-child{padding-right:0}
.premise h3{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 .6rem;font-weight:500}
.premise p{margin:0;font-size:clamp(.94rem,1vw,1.08rem);color:var(--ink-soft);max-width:none}
@media(max-width:760px){.premise .wrap{grid-template-columns:1fr;gap:1.8rem}
  .premise .cell{padding:0;border-left:0}}

/* register */
.register{padding:3.5rem 0 4rem}
.cat-head{display:flex;align-items:baseline;gap:1rem;margin:3.2rem 0 .4rem;
  padding-bottom:.7rem;border-bottom:1px solid var(--rule)}
.cat-head:first-of-type{margin-top:0}
.cat-head h2{font-family:"Newsreader",Georgia,serif;font-weight:500;font-size:clamp(1.42rem,2vw,2rem);letter-spacing:-.012em;margin:0}
.cat-head span{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;letter-spacing:.14em;color:var(--ink-mute)}
.entry{display:grid;grid-template-columns:3.6rem 1fr;gap:1.4rem;padding:1.5rem 0;
  border-bottom:1px solid var(--rule-soft);text-decoration:none;color:inherit;align-items:start}
.entry:hover{background:rgba(138,110,47,.05)}
.entry:hover .entry-title{color:var(--brass)}
.entry-num{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.76rem;color:var(--ink-mute);padding-top:.32rem}
.entry-title{font-family:"Newsreader",Georgia,serif;font-size:clamp(1.36rem,1.75vw,1.75rem);font-weight:500;
  letter-spacing:-.012em;line-height:1.24;margin:0 0 .3rem;transition:color .15s ease}
.entry-tension{margin:0;font-size:.96rem;color:var(--ink-soft);max-width:none}
@media(max-width:560px){.entry{grid-template-columns:2.4rem 1fr;gap:.9rem}.entry-title{font-size:1.18rem}}

/* two-column layout */
.layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(20rem,23vw,27rem);gap:0}
.layout > main{padding-right:clamp(2rem,4vw,5rem);min-width:0}
.layout > aside{border-left:1px solid var(--rule);padding:3.2rem 0 3.2rem clamp(1.6rem,2.4vw,3rem)}
@media(max-width:1040px){
  .layout{grid-template-columns:1fr}
  .layout > main{padding-right:0}
  .layout > aside{border-left:0;border-top:1px solid var(--rule);padding:2.6rem 0 0}
}
.sticky{position:sticky;top:2rem}
@media(max-width:1040px){.sticky{position:static}}

/* content that breaks out of the two-column band to the full page width */
.full{border-bottom:1px solid var(--rule);padding:3.4rem 0}
.full:last-of-type{border-bottom:0}
.intro-band{border-bottom:1px solid var(--rule)}
.prose-lead{max-width:none;font-size:clamp(1.15rem,1.6vw,1.7rem);line-height:1.5;
  color:var(--ink);margin:0 0 1.8rem;padding-bottom:1.6rem;border-bottom:1px solid var(--rule-soft)}
.prose-cols{max-width:none;column-gap:clamp(2rem,3.5vw,4rem)}
.prose-cols p{margin:0 0 1.15rem;break-inside:avoid}
@media(min-width:1180px){.prose-cols{columns:2}}
@media(min-width:1700px){.prose-cols{columns:3}}

/* issue page */
.issue-head{padding:4rem 0 2.6rem;border-bottom:1px solid var(--rule)}
.crumb{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-mute);margin:0 0 1.4rem;display:flex;gap:.7rem;align-items:center}
.crumb a{color:var(--ink-mute);text-decoration:none;white-space:nowrap}
.crumb a:hover{color:var(--brass)}
@media(max-width:560px){.crumb{flex-wrap:wrap;gap:.5rem;font-size:.6rem}}
.issue-head h1{font-family:"Newsreader",Georgia,serif;font-weight:400;
  font-size:clamp(2.2rem,6vw,5.6rem);line-height:1.02;letter-spacing:-.028em;margin:0 0 1.6rem;max-width:none}
.tension{border-left:2px solid var(--brass);padding:.2rem 0 .2rem 1.5rem;
  font-family:"Newsreader",Georgia,serif;font-style:italic;font-size:clamp(1.2rem,1.7vw,1.7rem);
  line-height:1.38;color:var(--ink-soft);max-width:none;margin:0}
.section{padding:3.2rem 0;border-bottom:1px solid var(--rule)}
.sec-label{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brass);margin:0 0 1.5rem;display:block}
.prose{max-width:none}
.prose p{margin:0 0 1.15rem}
.prose p:last-child{margin-bottom:0}
.prose .short{font-size:1.14rem;color:var(--ink);margin-bottom:1.8rem}

/* positions */
.positions{display:grid;gap:0;grid-template-columns:repeat(var(--cols),1fr);grid-template-rows:auto auto auto auto}
.pos{padding:0 clamp(1.9rem,2.6vw,3.4rem);border-left:1px solid var(--rule);display:grid;grid-row:span 4;
  grid-template-rows:subgrid;align-content:start}
.pos:first-child{padding-left:0;border-left:0}
.pos:last-child{padding-right:0}
.pos-mark{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;letter-spacing:.16em;color:var(--ink-mute);margin:0 0 .7rem}
.pos h3{font-family:"Newsreader",Georgia,serif;font-size:clamp(1.28rem,1.5vw,1.6rem);font-weight:500;line-height:1.25;
  letter-spacing:-.012em;margin:0 0 .8rem;align-self:start}
.pos .sum{font-size:clamp(.96rem,1.05vw,1.12rem);color:var(--ink-soft);margin:0 0 1.3rem;padding-bottom:1.3rem;
  border-bottom:1px solid var(--rule-soft);align-self:stretch}
.pos ul{list-style:none;margin:0;padding:0}
.pos li{font-size:.93rem;line-height:1.55;color:var(--ink-soft);padding-left:1rem;margin-bottom:.85rem;position:relative}
.pos li:last-child{margin-bottom:0}
.pos li::before{content:"";position:absolute;left:0;top:.62em;width:.36rem;height:1px;background:var(--brass)}
@media(max-width:1240px){.positions{grid-template-columns:1fr}
  .pos{padding:1.9rem 0;border-left:0;border-top:1px solid var(--rule);grid-row:auto;grid-template-rows:none;display:block}
  .pos:first-child{padding-top:0;border-top:0}}

/* terms + questions */
.terms{display:grid;grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:0 clamp(2rem,3.5vw,4.5rem)}
.term{padding:1.05rem 0;border-top:1px solid var(--rule-soft)}
.term dt{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.76rem;color:var(--ink);margin:0 0 .3rem}
.term dd{margin:0;font-size:.92rem;color:var(--ink-soft)}
@media(max-width:820px){.terms{grid-template-columns:1fr}}
.qs{list-style:none;margin:0;padding:0;max-width:none;counter-reset:q;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(24rem,1fr));gap:0 clamp(2rem,3.5vw,4.5rem)}
.qs li{counter-increment:q;position:relative;padding-left:2.6rem;margin-bottom:1.2rem;
  font-family:"Newsreader",Georgia,serif;font-size:clamp(1.1rem,1.25vw,1.3rem);line-height:1.4}
.qs li::before{content:counter(q,decimal-leading-zero);position:absolute;left:0;top:.28em;
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.7rem;color:var(--brass)}

/* ---- balance vote ---- */
.vote{padding:2.6rem 0;border-bottom:1px solid var(--rule)}
.vote h3{font-family:"Newsreader",Georgia,serif;font-size:clamp(1.3rem,1.7vw,1.7rem);font-weight:500;margin:0 0 .35rem;letter-spacing:-.012em}
.vote p.sub{margin:0 0 1.3rem;font-size:.98rem;color:var(--ink-soft);max-width:none}
.vote-btns{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}
.vbtn{display:inline-flex;align-items:center;gap:.5rem;background:var(--card);
  border:1px solid var(--rule);border-radius:2px;padding:.6rem 1rem;cursor:pointer;
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.7rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);transition:border-color .15s,color .15s}
.vbtn:hover{border-color:var(--brass);color:var(--ink)}
.vbtn[aria-pressed="true"]{border-color:var(--brass);color:var(--brass);background:rgba(138,110,47,.07)}
.vbtn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6}
.vote-result{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.68rem;
  letter-spacing:.08em;color:var(--ink-mute);margin:1rem 0 0}
.vote-bar{height:3px;background:var(--rule-soft);margin-top:.7rem;max-width:20rem;overflow:hidden}
.vote-bar i{display:block;height:100%;background:var(--brass);width:0}
.vote-report{margin:1.3rem 0 0;font-size:.88rem;color:var(--ink-mute);max-width:none}
.vote-report a{color:var(--brass)}

/* ---- share ---- */
.share{padding:2.4rem 0;border-bottom:1px solid var(--rule)}
.share .lbl{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brass);margin:0 0 1rem;display:block}
.share-row{display:flex;gap:.6rem;flex-wrap:wrap}
.sbtn{width:2.6rem;height:2.6rem;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--rule);border-radius:2px;background:var(--card);color:var(--ink-soft);
  text-decoration:none;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.sbtn:hover{border-color:var(--brass);color:var(--brass);background:rgba(138,110,47,.07)}
.sbtn svg{width:16px;height:16px;fill:currentColor}
aside .share{border-bottom:0;padding-top:0}
aside .share-row{gap:.45rem}
aside .sbtn{width:2.3rem;height:2.3rem}
.copied{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.63rem;
  letter-spacing:.1em;color:var(--brass);margin:.7rem 0 0;text-transform:uppercase;display:none}
.copied.on{display:block}

/* ---- signup card ---- */
.signup{background:var(--card);border:1px solid var(--rule);padding:1.5rem;margin-bottom:2.4rem}
.signup h3{font-family:"Newsreader",Georgia,serif;font-size:1.18rem;font-weight:500;
  margin:0 0 .5rem;letter-spacing:-.012em;line-height:1.25}
.signup p{margin:0 0 1.1rem;font-size:.88rem;color:var(--ink-soft);line-height:1.5}
.signup .note{margin:.9rem 0 0;font-size:.72rem;color:var(--ink-mute)}
.signup-band{border-bottom:1px solid var(--rule);padding:3rem 0}
.signup-band .wrap{display:grid;grid-template-columns:1fr 26rem;gap:3rem;align-items:center}
.signup-band h2{font-family:"Newsreader",Georgia,serif;font-weight:400;font-size:clamp(1.6rem,3.4vw,2.6rem);
  letter-spacing:-.02em;line-height:1.12;margin:0 0 .8rem;max-width:none}
.signup-band p{margin:0;color:var(--ink-soft);max-width:none;font-size:1.02rem}
@media(max-width:900px){.signup-band .wrap{grid-template-columns:1fr;gap:1.8rem}}

/* pager */
.pager{display:flex;justify-content:space-between;gap:1.5rem;padding:2.6rem 0;border-top:1px solid var(--rule)}
.pager a{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.7rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-soft);text-decoration:none;max-width:45%}
.pager a:hover{color:var(--brass)}
.pager .lbl{display:block;color:var(--ink-mute);margin-bottom:.35rem;font-size:.62rem}
.pager .nm{font-family:"Newsreader",Georgia,serif;font-size:1rem;text-transform:none;color:var(--ink)}
.pager .r{text-align:right;margin-left:auto}

/* doc pages */
.doc{padding:4rem 0 2rem}
.doc h1{font-family:"Newsreader",Georgia,serif;font-weight:400;font-size:clamp(2rem,5vw,4rem);
  line-height:1.05;letter-spacing:-.026em;margin:0 0 1.8rem;max-width:none}
.doc h2{font-family:"Newsreader",Georgia,serif;font-weight:500;font-size:1.28rem;
  letter-spacing:-.012em;margin:2.6rem 0 .8rem}
.doc .prose{max-width:none}
.doc .prose p{max-width:92ch}
.doc .updated{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 2.4rem}
.doc ul{max-width:64ch;padding-left:1.1rem}
.doc li{margin-bottom:.5rem;color:var(--ink-soft)}

.officials-link{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.6rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ink-mute);text-decoration:none;
  border:1px solid var(--rule);border-radius:2px;padding:.32rem .7rem;white-space:nowrap;
  transition:border-color .15s,color .15s}
.officials-link:hover{border-color:var(--brass);color:var(--brass)}
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  flex-wrap:wrap;margin:0 0 1.5rem}
.sec-head .sec-label{margin:0}
.cat-head .officials-link{margin-left:auto}

/* footer */
footer{border-top:1px solid var(--rule);padding:2.6rem 0 3.5rem}
footer .wrap{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
footer p,footer nav{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;
  letter-spacing:.1em;color:var(--ink-mute);margin:0;text-transform:uppercase}
footer nav{display:flex;gap:1.4rem;flex-wrap:wrap}
footer a{color:var(--ink-mute);text-decoration:none}
footer a:hover{color:var(--brass)}

/* modal */
.modal{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:1.2rem}
.modal.on{display:flex}
.modal-bg{position:absolute;inset:0;background:rgba(16,28,26,.55)}
.modal-box{position:relative;background:var(--paper);border:1px solid var(--rule);
  max-width:26rem;width:100%;padding:2rem;max-height:90vh;overflow:auto;
  box-shadow:0 20px 60px rgba(16,28,26,.25)}
.modal-box h3{font-family:"Newsreader",Georgia,serif;font-size:1.5rem;font-weight:400;
  letter-spacing:-.02em;line-height:1.15;margin:0 0 .6rem}
.modal-box p{margin:0 0 1.2rem;font-size:.92rem;color:var(--ink-soft)}
.modal-close{position:absolute;top:.6rem;right:.6rem;background:none;border:0;cursor:pointer;
  color:var(--ink-mute);font-size:1.4rem;line-height:1;padding:.4rem .6rem}
.modal-close:hover{color:var(--ink)}
.modal-box .note{font-size:.72rem;color:var(--ink-mute);margin:1rem 0 0}

@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---- representative finder ---- */
.finder-head{padding:4rem 0 2.4rem;border-bottom:1px solid var(--rule)}
.finder-head h1{font-family:"Newsreader",Georgia,serif;font-weight:400;
  font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.06;letter-spacing:-.025em;margin:0 0 1.2rem;max-width:20ch}
.finder-head p.lede{font-size:1.06rem;color:var(--ink-soft);max-width:56ch;margin:0}

.issue-context{background:var(--card);border:1px solid var(--rule);padding:1.4rem 1.6rem;margin:0 0 2.4rem;display:none}
.issue-context.on{display:block}
.issue-context .k{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.63rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin:0 0 .5rem}
.issue-context h2{font-family:"Newsreader",Georgia,serif;font-size:1.3rem;font-weight:500;
  margin:0 0 .4rem;letter-spacing:-.012em}
.issue-context p.t{font-family:"Newsreader",Georgia,serif;font-style:italic;color:var(--ink-soft);
  margin:0 0 .8rem;font-size:1.02rem}
.issue-context a.back{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.65rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);text-decoration:none}
.issue-context a.back:hover{color:var(--brass)}

.lookup{padding:2.6rem 0;border-bottom:1px solid var(--rule)}
.lookup form{display:flex;gap:.7rem;flex-wrap:wrap;align-items:flex-start;max-width:44rem}
.lookup label{display:block;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.63rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 .5rem}
.lookup .field{flex:1 1 22rem}
.lookup input{width:100%;background:var(--card);border:1px solid var(--rule);border-radius:2px;
  padding:.8rem .9rem;font-family:inherit;font-size:1rem;color:var(--ink)}
.lookup input:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass)}
.lookup button{align-self:flex-end;background:var(--ink);color:var(--paper);border:1px solid var(--ink);
  border-radius:2px;padding:.82rem 1.5rem;cursor:pointer;font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}
.lookup button:hover{background:var(--brass);border-color:var(--brass)}
.lookup button[disabled]{opacity:.5;cursor:default}
.lookup .hint{font-size:.85rem;color:var(--ink-mute);margin:.9rem 0 0;max-width:52rem}

.notice{border-left:2px solid var(--brass);padding:.2rem 0 .2rem 1.1rem;margin:1.6rem 0 0;
  font-size:.92rem;color:var(--ink-soft);max-width:58ch;display:none}
.notice.on{display:block}
.notice.err{border-left-color:#8a3a2f}

.results{padding:0 0 1rem}
.res-group{padding:2.6rem 0;border-bottom:1px solid var(--rule)}
.res-group > .lbl{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin:0 0 1.4rem;display:block}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:0}
.card{border-left:1px solid var(--rule);padding:0 1.6rem 1.4rem}
.card:first-child{border-left:0;padding-left:0}
@media(max-width:760px){
  .cards{grid-template-columns:1fr}
  .card{border-left:0;border-top:1px solid var(--rule-soft);padding:1.4rem 0}
  .card:first-child{border-top:0;padding-top:0}
}
.card .office{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.63rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 .45rem}
.card h3{font-family:"Newsreader",Georgia,serif;font-size:1.22rem;font-weight:500;
  letter-spacing:-.012em;margin:0 0 .3rem;line-height:1.25}
.card .meta{font-size:.85rem;color:var(--ink-mute);margin:0 0 1rem}
.card .prop{color:var(--brass)}
.card .links{display:flex;flex-direction:column;gap:.42rem}
.card .links a{font-size:.88rem;color:var(--ink-soft);text-decoration:none;
  display:inline-flex;align-items:center;gap:.45rem;width:fit-content}
.card .links a:hover{color:var(--brass)}
.card .links a::before{content:"";width:.34rem;height:1px;background:var(--brass);flex:none}

/* compose panel */
.compose{padding:2.8rem 0;border-bottom:1px solid var(--rule);display:none}
.compose.on{display:block}
.compose h2{font-family:"Newsreader",Georgia,serif;font-size:1.5rem;font-weight:500;
  letter-spacing:-.015em;margin:0 0 .6rem}
.compose > p{font-size:.95rem;color:var(--ink-soft);max-width:60ch;margin:0 0 1.6rem}
.compose-grid{display:grid;grid-template-columns:1fr 20rem;gap:2.4rem;align-items:start}
@media(max-width:900px){.compose-grid{grid-template-columns:1fr}}
.compose textarea{width:100%;min-height:11rem;max-width:none;background:var(--card);border:1px solid var(--rule);
  border-radius:2px;padding:1rem;font-family:inherit;font-size:.98rem;line-height:1.6;color:var(--ink);resize:vertical}
.compose textarea:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass)}
.compose .tools{display:flex;gap:.6rem;margin-top:.9rem;flex-wrap:wrap}
.compose .tools button{background:var(--card);border:1px solid var(--rule);border-radius:2px;
  padding:.6rem 1rem;cursor:pointer;font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-soft)}
.compose .tools button:hover{border-color:var(--brass);color:var(--brass)}
.ref{background:var(--card);border:1px solid var(--rule);padding:1.2rem 1.3rem}
.ref .k{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-mute);margin:0 0 .7rem}
.ref ul{list-style:none;margin:0;padding:0}
.ref li{font-size:.86rem;color:var(--ink-soft);padding-left:.9rem;position:relative;margin-bottom:.6rem;line-height:1.45}
.ref li::before{content:"";position:absolute;left:0;top:.6em;width:.32rem;height:1px;background:var(--brass)}
.ref .foot{font-size:.75rem;color:var(--ink-mute);margin:1rem 0 0;padding-top:.9rem;border-top:1px solid var(--rule-soft)}

.scope{padding:2.4rem 0;border-bottom:1px solid var(--rule)}
.scope .lbl{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brass);margin:0 0 1rem;display:block}
.scope p{font-size:.92rem;color:var(--ink-soft);max-width:62ch;margin:0 0 .8rem}
.scope p:last-child{margin:0}
.scope a{color:var(--brass)}
.demo-flag{background:#f5ecd8;border:1px solid #c9a94e;padding:1rem 1.2rem;margin:0 0 1.6rem;
  font-size:.9rem;line-height:1.55;color:#6b5518;display:none;max-width:none}
.demo-flag code{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.85em;
  background:rgba(107,85,24,.1);padding:.1rem .35rem;border-radius:2px}
.demo-flag.on{display:block}

/* ================= sponsorship slots ================= */
.sp{--sp-line:var(--rule)}
.sp a{text-decoration:none}
.sp-kicker{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.6rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 .7rem}
.sp-name{font-family:"Newsreader",Georgia,serif;font-weight:500;letter-spacing:-.012em;
  line-height:1.25;color:var(--ink);margin:0 0 .35rem}
.sp-tag{font-family:"Public Sans",sans-serif;font-size:.86rem;line-height:1.5;
  color:var(--ink-soft);margin:0}
.sp-note{font-size:.72rem;color:var(--ink-mute);margin:.7rem 0 0;font-style:italic}
.sp-cta{display:inline-block;font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--brass);margin:.7rem 0 0}
.sp-logo{max-width:100%;max-height:44px;width:auto;height:auto;display:block;margin:0 0 .6rem}
.sp-link{display:block;color:inherit}
.sp-link:hover .sp-name{color:var(--brass)}

/* A — sidebar */
.sp-side{border:1px solid var(--rule);background:var(--card);padding:1.1rem 1.2rem;margin-top:1.6rem}
.sp-side.sp-open{border-style:dashed;background:transparent}
.sp-avail{font-size:.84rem;line-height:1.5;color:var(--ink-soft);margin:0}

/* B — full-width band */
.sp-band{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  padding:1.8rem 0;margin:0}
.sp-band-inner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  gap:clamp(1.4rem,2.5vw,3rem);align-items:center}
.sp-band-mark{width:clamp(7rem,10vw,10rem);display:flex;align-items:center}
.sp-band-mark .sp-name{margin:0}
.sp-ph{display:flex;align-items:center;justify-content:center;width:100%;height:46px;
  border:1px dashed var(--rule);font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:.58rem;letter-spacing:.14em;color:var(--ink-mute)}
.sp-band-body .sp-tag{max-width:74ch}
.sp-band-cta{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);
  border:1px solid var(--rule);padding:.7rem 1.2rem;white-space:nowrap;
  transition:border-color .15s,color .15s}
.sp-band-cta:hover{border-color:var(--brass);color:var(--brass)}
.sp-band.sp-open{border-color:var(--rule-soft)}
.sp-band.sp-open .sp-name{color:var(--ink-soft)}
@media(max-width:820px){
  .sp-band-inner{grid-template-columns:1fr;gap:1.1rem}
  .sp-band-mark{width:9rem}
}

/* C — category patron */
.sp-cat{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.6rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ink-mute);margin-left:1rem}
.sp-cat a{color:var(--ink-soft)}
.sp-cat a:hover{color:var(--brass)}
.sp-cat-name{color:var(--ink-soft)}
.sp-cat-open{color:var(--ink-mute);border-bottom:1px dotted var(--rule)}
.sp-cat-open:hover{color:var(--brass);border-bottom-color:var(--brass)}

/* sponsorship page */
.sp-page .rate{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));
  gap:0;margin:2rem 0 0}
.sp-page .rate > div{border-left:1px solid var(--rule);padding:0 1.8rem}
.sp-page .rate > div:first-child{border-left:0;padding-left:0}
.sp-page .rate h3{font-family:"Newsreader",Georgia,serif;font-size:1.24rem;font-weight:500;
  margin:0 0 .5rem;letter-spacing:-.012em}
.sp-page .rate p{font-size:.92rem;color:var(--ink-soft);margin:0 0 .8rem}
.sp-page .rate .where{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.6rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--brass);margin:0 0 .7rem}
@media(max-width:820px){
  .sp-page .rate > div{border-left:0;border-top:1px solid var(--rule);padding:1.5rem 0}
  .sp-page .rate > div:first-child{border-top:0;padding-top:0}
}

/* footer follow */
.follow{display:flex;align-items:center;gap:.7rem}
.follow-lbl{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute)}
.follow .sbtn{width:2rem;height:2rem}
.follow .sbtn svg{width:13px;height:13px}
footer .wrap{align-items:center}

/* ================= reader polls ================= */
.poll-host{border-bottom:1px solid var(--rule)}
.poll{padding:2.8rem 0}
.poll-kicker{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.62rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--brass);display:block;margin:0 0 .8rem}
.poll h3{font-family:"Newsreader",Georgia,serif;font-size:clamp(1.4rem,2vw,2rem);font-weight:500;
  letter-spacing:-.015em;margin:0 0 .5rem;line-height:1.2}
.poll h4{font-family:"Newsreader",Georgia,serif;font-size:clamp(1.25rem,1.7vw,1.6rem);font-weight:500;
  letter-spacing:-.014em;margin:0 0 .5rem}
.poll-sub{font-size:.95rem;color:var(--ink-soft);margin:0 0 1.6rem;max-width:78ch}
.poll-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.7rem}
.poll-opt{font-family:"Newsreader",Georgia,serif;font-size:1.08rem;text-align:left;
  background:var(--card);border:1px solid var(--rule);border-radius:2px;padding:1rem 1.1rem;
  cursor:pointer;color:var(--ink);transition:border-color .15s,background .15s}
.poll-opt:hover{border-color:var(--brass);background:rgba(138,110,47,.06)}
.poll-opt[disabled]{opacity:.45;cursor:default}

/* gate */
.poll-gate{max-width:46rem}
.poll-form{background:var(--card);border:1px solid var(--rule);padding:1.5rem;max-width:34rem}
.poll-form label{display:block;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.62rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 .5rem}
.poll-form label.opt-lbl{margin-top:1.1rem}
.poll-form label span{color:var(--rule);text-transform:none;letter-spacing:.04em}
.poll-form input,.poll-form select{width:100%;background:var(--paper);border:1px solid var(--rule);
  border-radius:2px;padding:.75rem .85rem;font-family:inherit;font-size:1rem;color:var(--ink)}
.poll-form input:focus,.poll-form select:focus{outline:2px solid var(--brass);outline-offset:1px}
.poll-why{font-size:.8rem;color:var(--ink-mute);line-height:1.5;margin:.9rem 0 0}
.poll-submit{margin-top:1.1rem;background:var(--ink);color:var(--paper);border:1px solid var(--ink);
  border-radius:2px;padding:.85rem 1.5rem;cursor:pointer;font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}
.poll-submit:hover{background:var(--brass);border-color:var(--brass)}
.poll-submit[disabled]{opacity:.5;cursor:default}
.poll-fine{font-size:.75rem;color:var(--ink-mute);margin:.9rem 0 0}
.poll-fine a{color:var(--brass)}

/* results */
.poll-results{display:grid;gap:1.1rem;max-width:60rem}
.poll-row-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.4rem}
.poll-row-lbl{font-family:"Newsreader",Georgia,serif;font-size:1.08rem;color:var(--ink)}
.poll-row-lbl em{font-family:"IBM Plex Mono",ui-monospace,monospace;font-style:normal;
  font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass);margin-left:.5rem}
.poll-row-pct{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.9rem;color:var(--ink-soft)}
.poll-track{height:4px;background:var(--rule-soft)}
.poll-track i{display:block;height:100%;background:var(--ink-soft)}
.poll-row.mine .poll-track i{background:var(--brass)}
.poll-total{font-size:.85rem;color:var(--ink-mute);margin:1.4rem 0 0}
.poll-x{margin-top:1.6rem;border-top:1px solid var(--rule-soft);padding-top:1.2rem}
.poll-x summary{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.66rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer}
.poll-x summary:hover{color:var(--brass)}
.poll-x-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));
  gap:1.6rem;margin-top:1.3rem}
.poll-x-name{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brass);margin:0 0 .6rem;padding-bottom:.4rem;
  border-bottom:1px solid var(--rule-soft)}
.poll-x-row{display:flex;justify-content:space-between;gap:.8rem;font-size:.84rem;
  color:var(--ink-soft);margin-bottom:.35rem}
.poll-x-row b{color:var(--ink);font-weight:500}

/* poll in the right rail */
.poll-rail{margin-top:1.6rem;border-bottom:0}
.poll-rail .poll{padding:0;border:1px solid var(--rule);background:var(--card);padding:1.2rem}
.poll-rail .poll h3{font-size:1.12rem;line-height:1.25;margin-bottom:.45rem}
.poll-rail .poll h4{font-size:1.05rem}
.poll-rail .poll-sub{font-size:.82rem;margin-bottom:1rem}
.poll-rail .poll-opts{grid-template-columns:1fr;gap:.45rem}
.poll-rail .poll-opt{font-size:.95rem;padding:.65rem .8rem;background:var(--paper)}
.poll-rail .poll-form{background:transparent;border:0;padding:0;max-width:none}
.poll-rail .poll-form input,.poll-rail .poll-form select{background:var(--paper);font-size:.92rem;padding:.6rem .7rem}
.poll-rail .poll-why{font-size:.74rem}
.poll-rail .poll-submit{width:100%;padding:.75rem 1rem;font-size:.64rem}
.poll-rail .poll-gate{max-width:none}
.poll-rail .poll-results{gap:.85rem}
.poll-rail .poll-row-lbl{font-size:.95rem}
.poll-rail .poll-row-lbl em{display:block;margin:.15rem 0 0}
.poll-rail .poll-row-pct{font-size:.8rem}
.poll-rail .poll-total{font-size:.76rem;margin-top:1rem}
.poll-rail .poll-x-grid{grid-template-columns:1fr;gap:1.1rem}
.poll-rail .poll-x summary{font-size:.6rem}

/* Rail order is fixed in CSS so it never depends on which script finishes first:
   newsletter, poll, sponsorship, share. */
aside .sticky{display:flex;flex-direction:column}
aside .sticky > .signup{order:1;margin-bottom:0}
aside .sticky > .poll-rail{order:2}
aside .sticky > .sp-side{order:3}
aside .sticky > .share{order:4;margin-top:1.6rem}

/* ============ tightened vertical rhythm ============ */
.hero{padding:2.6rem 0 2.2rem}
.eyebrow{margin:0 0 .8rem}
.hero h1{margin:0 0 1rem}
.premise{padding:1.8rem 0}
.register{padding:2.2rem 0 3rem}
.cat-head{margin:2.2rem 0 .3rem;padding-bottom:.55rem}
.entry{padding:1.05rem 0}
.signup-band{padding:2rem 0}
.issue-head{padding:2.4rem 0 1.8rem}
.crumb{margin:0 0 .9rem}
.issue-head h1{margin:0 0 1rem}
.section{padding:2.2rem 0}
.full{padding:2.4rem 0}
.sec-head{margin:0 0 1.1rem}
.sec-label{margin:0 0 1.1rem}
.prose-lead{margin:0 0 1.3rem;padding-bottom:1.2rem}
.prose-cols p{margin:0 0 .95rem}
.term{padding:.85rem 0}
.qs li{margin-bottom:.9rem}
.vote{padding:2rem 0}
.share{padding:1.8rem 0}
.pager{padding:2rem 0}
.doc{padding:2.6rem 0 1.5rem}
.doc h1{margin:0 0 1.2rem}
.doc .updated{margin:0 0 1.6rem}
.doc h2{margin:1.9rem 0 .6rem}
.finder-head{padding:2.6rem 0 1.8rem}
.finder-head h1{margin:0 0 .9rem}
.lookup{padding:1.8rem 0}
.res-group{padding:1.8rem 0}
.scope{padding:1.8rem 0}
.compose{padding:2rem 0}
.poll{padding:2rem 0}
.sp-band{padding:1.4rem 0}
.layout > aside{padding-top:2.2rem;padding-bottom:2.2rem}
footer{padding:1.8rem 0 2.4rem}
.method h2:first-of-type,.doc h2:first-of-type{margin-top:1.2rem}

/* ============ search ============ */
.search{position:relative;flex:0 1 22rem;margin-left:auto}
.search input{width:100%;background:var(--card);border:1px solid var(--rule);border-radius:2px;
  padding:.5rem .7rem .5rem 1.9rem;font-family:inherit;font-size:.9rem;color:var(--ink)}
.search input:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass)}
.search::before{content:"";position:absolute;left:.65rem;top:50%;width:11px;height:11px;
  margin-top:-8px;border:1.5px solid var(--ink-mute);border-radius:50%;pointer-events:none}
.search::after{content:"";position:absolute;left:1.32rem;top:50%;width:5px;height:1.5px;
  background:var(--ink-mute);transform:rotate(45deg);margin-top:2px;pointer-events:none}
.search-results{position:absolute;top:calc(100% + .35rem);left:0;right:0;background:var(--paper);
  border:1px solid var(--rule);box-shadow:0 14px 40px rgba(16,28,26,.16);z-index:60;
  max-height:60vh;overflow:auto;display:none}
.search-results.on{display:block}
.sr-item{display:block;padding:.7rem .85rem;text-decoration:none;color:inherit;
  border-bottom:1px solid var(--rule-soft)}
.sr-item:last-child{border-bottom:0}
.sr-item:hover,.sr-item.sel{background:rgba(138,110,47,.09)}
.sr-cat{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.55rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-mute);display:block;margin-bottom:.2rem}
.sr-title{font-family:"Newsreader",Georgia,serif;font-size:1rem;color:var(--ink);display:block;line-height:1.25}
.sr-title mark{background:rgba(138,110,47,.24);color:inherit;padding:0 .1em}
.sr-none{padding:.9rem .85rem;font-size:.85rem;color:var(--ink-mute)}
@media(max-width:900px){.search{flex:1 1 100%;margin:.6rem 0 0}}

/* ============ polls page ============ */
.polls-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(23rem,1fr));
  gap:0;margin-top:1.5rem}
.pcard{border-left:1px solid var(--rule);border-top:1px solid var(--rule);
  padding:1.4rem clamp(1.2rem,2vw,2rem)}
.pcard .pc-cat{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.58rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 .4rem}
.pcard h3{font-family:"Newsreader",Georgia,serif;font-size:1.2rem;font-weight:500;margin:0 0 .8rem;
  letter-spacing:-.012em;line-height:1.25}
.pcard h3 a{color:inherit;text-decoration:none}
.pcard h3 a:hover{color:var(--brass)}
.pc-locked{font-size:.85rem;color:var(--ink-mute);margin:0}
.pc-go{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.6rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--brass);text-decoration:none}
