/* McGee for Houston. V2 palette and contrast floors retained. */
@font-face{font-family:"Sofia Sans Extra Condensed";src:url(fonts/sofia-sans-xcond.woff2) format("woff2");font-weight:100 1000;font-display:swap}
@font-face{font-family:"Sofia Sans Condensed";src:url(fonts/sofia-sans-cond.woff2) format("woff2");font-weight:100 1000;font-display:swap}
@font-face{font-family:"Sofia Sans";src:url(fonts/sofia-sans.woff2) format("woff2");font-weight:100 1000;font-display:swap}
@font-face{font-family:"Alegreya";font-style:italic;font-weight:500;src:url(fonts/alegreya-italic-sub.woff2) format("woff2");font-display:swap}
:root{
--night:#0F1830;--panel:#16213F;--body-night:#DDE1EA;--mist:#C8D1E8;--rule-night:#273352;
--bar:#1E3F94;--rule-bar:#4462B3;--ink:#1A2A57;
--paper:#F5F3EE;--paper-2:#ECE8DF;--card:#FBFAF7;--slate:#4D5468;--rule-paper:#D6D0C4;
--red:#D42539;--red-print:#F84851;--red-deep:#B81E33;
--white:#FFFFFF;--outline:#9AAEE0;--water:#2560A0;--card-edge:#B9B2A3;--card-edge-night:#4A5884;
--confirm:#FFD84A;--confirm-ink:#1A1A1A;
--veil-lk:.85;--veil-hd:.78;
--focus:var(--ink);
}
.on-dark{--focus:var(--white)}
/* --strip: widest fallback face (launch: delete .draft, --strip:0); --hf ≤ the gap above TRAVIS */
:root{--f-x:"Sofia Sans Extra Condensed","Arial Narrow",Impact,sans-serif;--f-c:"Sofia Sans Condensed","Arial Narrow",sans-serif;--f-s:"Sofia Sans",system-ui,sans-serif;--f-a:"Alegreya",Georgia,serif;
--strip:68px;--head:56px;--gutter:clamp(1rem,5vw,4.5rem);--measure:81rem;--max:calc(var(--measure) + 2*var(--gutter));--gap:clamp(1rem,.5rem + 1.25vw,1.5rem);--text:36rem;
--air:clamp(12px,4svh,48px);--pt:clamp(8px,3svh,24px);--hf:min(64px,var(--pt) + var(--air));
--sp-section:clamp(3.5rem,min(2.357rem + 5.714vw,12svh),7.5rem);--sp-row:clamp(2rem,1.643rem + 1.786vw,3.25rem);
--fs-display:clamp(2.5rem,1.6429rem + 4.2857vw,5.5rem);--fs-h2:clamp(1.875rem,1.4107rem + 2.3214vw,3.5rem);--fs-h3:clamp(1.875rem,1.5536rem + 1.6071vw,3rem);--fs-h4:clamp(1.5rem,1.3214rem + .8929vw,2.125rem);--fs-year:clamp(1.75rem,1.536rem + 1.0714vw,2.5rem);--fs-index:clamp(1.125rem,1.018rem + .5357vw,1.5rem);--fs-lead:clamp(1.125rem,1.0714rem + .2679vw,1.3125rem);--fs-kicker:clamp(1rem,.9286rem + .3571vw,1.25rem);--fs-body:clamp(1.0625rem,1.0446rem + .0893vw,1.125rem);--fs-list:1.0625rem;--fs-ui:.9375rem;--fs-sm:.875rem;--fs-label:.8125rem;--fs-corner:.75rem;
--z-head:1/-1;--z-body:1/-1;--z-text:1/-1;--z-map:1/-1;--z-lists:1/-1;
--ease:cubic-bezier(.2,0,0,1);--t160:160ms var(--ease);--rule:var(--rule-night);--mute:var(--mist)}
@media (min-width:448px){:root{--strip:50px}}
@media (min-width:864px){:root{--strip:32px}}
@media (min-width:768px){:root{--head:max(64px,4rem)}}
@media (max-height:500px){:root{--head:48px}}
@media (max-height:400px){:root{--pt:4px}}
@media (min-width:900px){:root{--z-head:1/6;--z-body:6/13;--z-text:6/13}}
@media (min-width:1024px){:root{--z-head:1/5;--z-body:5/13;--z-text:5/13;--z-map:1/9;--z-lists:9/13}}
@media (min-width:1300px){:root{--z-map:1/8;--z-lists:8/13}}
@media (min-width:1440px){:root{--z-text:5/10}}
*,*::before,*::after{box-sizing:border-box}
html{font-size:clamp(100%,62.5% + .4167vw,125%);background:var(--night);-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--head) + 16px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
html.lock{overflow:hidden;scrollbar-gutter:stable}
body{margin:0;color:var(--white);font:400 var(--fs-body)/1.55 var(--f-s)}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,fieldset,legend{margin:0;padding:0}
ul,ol{list-style:none}
fieldset{border:0;min-width:0}
img,svg,video{display:block;max-width:100%}
button,input,select{font:inherit;color:inherit}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.u,.first,.office,.corner,.label,.flabel,.d-date dt,.btn,.draft,.menu-btn,.cf__first,.cf__office,.cf__bar span:first-child,.cb__office,.donate__plate,.f-office,.pending,.back,.mcard__name .first{text-transform:uppercase}
a{color:inherit;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.2em;transition:color var(--t160),text-decoration-color var(--t160)}
a:hover{text-decoration-thickness:2px}
:where(.paper) a{color:var(--ink)}
:where(.paper) a:hover{color:var(--red-deep)}
:where(.on-dark) a{color:var(--white);text-decoration-color:var(--mist)}
:where(.on-dark) a:hover{text-decoration-color:var(--white)}
.skip{position:absolute;left:8px;top:-200px;z-index:100;padding:12px 16px;background:var(--paper);color:var(--ink);font:700 var(--fs-ui)/1 var(--f-c)}
.skip:focus{top:40px}
.skip:focus-visible{outline-offset:-6px}
.paper{background:var(--paper);color:var(--ink);--focus:var(--ink);--rule:var(--rule-paper);--mute:var(--slate)}
.paper-2{background:var(--paper-2)}
.night{background:var(--night)}
.confirm{background:var(--confirm);color:var(--confirm-ink);outline:1px dashed var(--confirm-ink);outline-offset:0;padding:.05em .35em;font:600 var(--fs-label)/1.5 var(--f-c);font-style:normal;letter-spacing:.01em;text-transform:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.blank{display:inline-block;width:5em;border-bottom:1.5px solid currentColor}
.blankfield{font-size:var(--fs-label);line-height:2;min-height:4em;padding-top:.2em;background:repeating-linear-gradient(to bottom,transparent 0 calc(2em - 1px),var(--rule) calc(2em - 1px) 2em)}
.blankfield .confirm,.intro__q .confirm,.d-hist__q .confirm,.fnote .confirm,.record li>.confirm:only-child,.row h3 .confirm{display:block;width:fit-content;max-width:100%;padding:.35em .6em;line-height:1.4;text-wrap:balance}
.corner{position:relative;display:inline-block;padding:9px 0 0 10px;font:700 var(--fs-corner)/1 var(--f-c);letter-spacing:.14em;color:var(--mute)}
.corner::before{content:"";position:absolute;left:0;top:0;width:14px;height:14px;border:solid currentColor;border-width:1px 0 0 1px}
.bullet{display:block;width:8px;height:8px;border-radius:50%;background:var(--white)}
.chk{width:28px;height:28px;fill:none;stroke:var(--red);stroke-width:3;stroke-linecap:square}
.ref{font:700 .72em/0 var(--f-c);vertical-align:super;margin-left:.08em}
.ref a{text-decoration:none;color:var(--red-deep);padding:0 .08em}
.on-dark .ref a{color:var(--mist)}
.ref a:hover{text-decoration:underline}
.ref+.confirm{margin-left:.3em}
.label{font:700 var(--fs-kicker)/1.2 var(--f-c);letter-spacing:.12em;color:var(--ink)}
.night .label{color:var(--mist)}
.flabel,.d-date dt{font:700 var(--fs-label)/1.2 var(--f-c);letter-spacing:.12em;color:var(--mute)}
.flabel{margin-bottom:.625rem}
.lead{font:500 var(--fs-lead)/1.45 var(--f-s);max-width:var(--text);margin-top:1rem}
.night .lead{color:var(--body-night)}
.paper .lead{color:var(--slate)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1px solid transparent;border-radius:0;background:transparent;font:700 var(--fs-ui)/1 var(--f-c);letter-spacing:.1em;text-decoration:none;text-align:center;text-wrap:balance;cursor:pointer;transition:background-color var(--t160),color var(--t160),border-color var(--t160)}
.btn--chip{background:var(--white);border-color:var(--white);color:var(--red)}
.btn--chip:hover{color:var(--red-deep)}
.btn--ghost{border-color:var(--outline);color:var(--white)}
.btn--ghost:hover{border-color:var(--white)}
.btn--red{background:var(--red);border-color:var(--red);color:var(--white)}
.btn--red:hover,.btn--red:active{background:var(--red-deep);border-color:var(--red-deep)}
.btn--line{border:1.5px solid var(--ink);color:var(--ink)}
.btn--line:hover{background:var(--ink);color:var(--white)}
.btn.is-pending,.btn.is-pending:hover{cursor:default;background:none;color:var(--ink)}
.draft{position:relative;z-index:1;display:flex;align-items:center;min-height:var(--strip);padding:7px max(var(--gutter),calc((100% - var(--measure))/2));background:var(--confirm);color:var(--confirm-ink);font:700 var(--fs-label)/18px var(--f-c);letter-spacing:.06em}
.draft p{text-wrap:balance}
.draft .nc{text-transform:none}
/* V2 §2.5 header: solid past the lockup (main.js); the two legs never overlap, text ≥4.94:1 (REVIEW V2 A11Y-2) */
.head{position:relative;top:0;z-index:20;height:var(--head);background:rgb(30 63 148/0);transition:background-color var(--t160) 160ms,box-shadow var(--t160) 160ms}
.js .head{position:sticky}
.head::before{content:"";position:absolute;inset:0 0 auto;height:calc(100% + var(--hf));pointer-events:none;background:linear-gradient(rgb(15 24 48/var(--veil-hd)) var(--head),rgb(15 24 48/0));transition:opacity var(--t160)}
.head.is-solid{background:var(--bar);box-shadow:inset 0 -1px var(--rule-bar);transition-delay:0s}
.head.is-solid::before{opacity:0;transition-delay:160ms}
.head__in{position:relative;display:flex;align-items:center;gap:24px;height:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.mark{margin-right:auto;color:var(--white);text-decoration:none;white-space:nowrap;line-height:1}
.mark__last{font:900 1.75rem/1 var(--f-x)}
.mark__for{font:800 1.125rem/1 var(--f-x)}
.head__nav{display:none;gap:28px}
.head__nav a,.sheet__bar a{font:600 var(--fs-ui)/1.2 var(--f-c);letter-spacing:.02em;text-decoration-color:transparent}
.head__nav a:hover,.sheet__bar a:hover{text-decoration-color:var(--white)}
.head__vol{display:none;min-height:40px;padding:0 18px}
.menu-btn{min-height:44px;padding:0 4px;border:0;background:none;color:var(--white);font:700 var(--fs-ui)/44px var(--f-c);letter-spacing:.1em;text-decoration:none;cursor:pointer}
/* ≤500 tall: rings inside the 48px bar */
@media (max-height:500px){.head__vol{min-height:36px}.head .menu-btn:focus-visible{outline-offset:0}}
/* V2 §2 hero: still credited in the footer only, never captioned as District D; veils = --night, caps in check.mjs;
   field top 80px up so the H1 stays the LCP */
.hero{--rail:124px;--name:clamp(92px,min((100vw - 2*var(--gutter))/2.25,21.5svh,(100svh - var(--strip) - var(--head) - var(--rail) - 2*var(--air) - 24px)/1.83),10rem);position:relative;display:grid;overflow-x:clip;grid-template-columns:[full-start] minmax(var(--gutter),1fr) [content-start] minmax(0,var(--measure)) [content-end] minmax(var(--gutter),1fr) [full-end];grid-template-rows:minmax(var(--air),1fr) auto auto;min-height:calc(100svh - var(--strip));margin-top:calc(-1*var(--head));padding-top:calc(var(--head) + var(--pt))}
.hero__field{--ext:max(0px,13svh + 12px - 1.13*var(--rail));position:absolute;z-index:-1;inset:-80px 0 0;bottom:calc(-1*var(--ext));overflow:hidden;background:var(--night)}
.hero__media{position:absolute;inset:0;transform-origin:50% 30%}
.hero__field img,.hero__field video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.95);background:var(--night)}
.hero__field::before,.hero__field::after{content:"";position:absolute;inset:0;z-index:1}
.hero__field::before{background:var(--night);opacity:0}
/* G2: opaque night at the rail top; the field runs --ext below the hero (City Hall: marker test, REVIEW V2) */
.hero__field::after{background:linear-gradient(rgb(15 24 48/0) calc(100% - var(--ext) - var(--rail) - 11svh),var(--night) calc(100% - var(--ext) - var(--rail)))}
.hero::before{content:"";position:absolute;z-index:0;grid-row:2/4;grid-column:full-start/full-end;--ft:clamp(96px,16svh,200px);--fr:clamp(120px,14vw,280px);--vx:calc(max(var(--gutter),(100% - var(--measure))/2) + min(100% - 2*var(--gutter),var(--name)*2.203 + 8px) + 40px);inset:calc(-40px - var(--ft)) 0 0;background:linear-gradient(90deg,rgb(15 24 48/var(--veil-lk)) var(--vx),rgb(15 24 48/0) calc(var(--vx) + var(--fr)));-webkit-mask:linear-gradient(transparent,#000 var(--ft));mask:linear-gradient(transparent,#000 var(--ft))}
.lockup{grid-row:2;grid-column:content-start/content-end;justify-self:start;position:relative;z-index:1;max-width:calc(var(--name)*2.203 + 8px);margin-bottom:var(--air)}
.first{display:block;font:800 calc(var(--name)*.25)/1 var(--f-x);letter-spacing:.08em}
.last{display:block;margin-top:.04em;font:900 var(--name)/.78 var(--f-x);letter-spacing:-.005em}
/* A2/F1: wrap once the face settled */
.fx .last{overflow-wrap:anywhere}
@media (scripting:none){.last{overflow-wrap:anywhere}}
.for{margin-top:.06em;font:800 calc(var(--name)*.4)/.9 var(--f-x);color:var(--red-print)}
.office{width:calc(var(--name)*2.203);max-width:100%;margin-top:calc(var(--name)*.09);padding:.42em .6em;background:var(--red);font:700 calc(var(--name)*.135)/1 var(--f-c);letter-spacing:.14em;white-space:nowrap}
.fact{grid-row:3;grid-column:full-start/full-end;position:relative;z-index:1;background:var(--bar);box-shadow:inset 0 1px var(--rule-bar)}
.fact__in{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 8px;max-width:var(--max);margin:0 auto;padding:12px var(--gutter) calc(14px + env(safe-area-inset-bottom,0px))}
.d-date dd{font:600 var(--fs-list)/1.25 var(--f-c)}
.fact__ctas{display:contents}
.fact .btn{padding:0 8px}
@media (min-width:768px),(min-width:600px) and (orientation:landscape){
.hero{--rail:64px}
.fact__in{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px;padding-block:8px}
.fact__ctas{display:flex;gap:12px}
.fact .btn{min-height:44px;padding:0 20px}
}
/* G1 push, scrubbed over 0–70vh. Kill switch: delete this block */
@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){
.hero__media,.hero__field::before{animation:linear both;animation-timeline:scroll(root);animation-range:0 70vh}
.hero__media{animation-name:v2-push}
.hero__field::before{animation-name:v2-dim}
}}
@keyframes v2-push{to{transform:scale(1.06)}}
@keyframes v2-dim{to{opacity:.45}}
.sec{padding-block:var(--sp-section)}
.js #who{padding-bottom:var(--sp-row)}
.js #commitments{padding-top:var(--sp-row)}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.cols{display:grid;grid-template-columns:minmax(0,1fr)}
.rail .corner{margin-bottom:1.5rem}
.intro{padding-bottom:2.5rem}
.intro__q{margin-top:1rem}
.row{--t:var(--fs-h3);--lh:1.05;--mk:8px;grid-template-columns:auto minmax(0,1fr);column-gap:.875rem;padding-block:var(--sp-row);background:linear-gradient(var(--rule),var(--rule)) var(--gutter) 0/calc(100% - 2*var(--gutter)) 1px no-repeat}
.paper .row{--t:var(--fs-h4);--lh:1.1;--mk:28px}
.row__mk{grid-column:1;grid-row:1;display:flex;align-items:center;height:calc(var(--t)*var(--lh))}
.row h3,.cb__lines li,.mcard li a,.label,.h-back{text-wrap:balance}
.nw{white-space:nowrap}
.t-night{font:800 var(--t)/var(--lh) var(--f-x);color:var(--white)}
.t-night .blank{width:3.2em}
.row h3 .confirm{margin-top:.7rem}
.t-paper{font:600 var(--t)/var(--lh) var(--f-c);color:var(--slate)}
.nn{color:var(--red);font-weight:700}
.field p,.record li{max-width:var(--text)}
.night .field{color:var(--body-night)}
.record li+li{margin-top:.85rem}
.field--aside p{font-size:var(--fs-sm);color:var(--slate)}
.note,.srcs{font:400 var(--fs-sm)/1.45 var(--f-s)}
.note{color:var(--mute)}
.note+.note{margin-top:.35rem}
.note b{margin-right:.4em;font:700 var(--fs-sm)/1 var(--f-c);color:var(--red-deep)}
.night .note b{color:var(--mist)}
@media (max-width:899px){
.row__head,.row__body{display:contents}
.row h3{grid-column:2;grid-row:1}
.row .field,.row .notes{grid-column:1/-1;margin-top:1.5rem}
}
@media (max-width:1439px){
.notes .note{display:inline}
.notes .note+.note::before{content:"·" / "";margin:0 .5em 0 .25em;color:var(--mute)}
}
.h-back{font:700 var(--fs-h2)/1.05 var(--f-s);letter-spacing:-.01em;color:var(--ink)}
.h-back .red,.cb__head .red,.mcard__head .red{color:var(--red)}
.cb__head .ln,.mcard__head .ln{display:block}
.district{row-gap:2.25rem}
.d-rail .label{margin-bottom:1.25rem}
.d-date dd{margin-top:.3rem}
.d-lookup{display:grid;justify-items:start;gap:.6rem;margin-top:1.5rem}
.d-lead{margin-top:0}
.map__art{position:relative;aspect-ratio:1160/1044;max-width:min(46rem,(100svh - var(--head) - 4rem)*1.11)}
.map__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.map__district{fill:var(--paper);stroke:var(--ink);stroke-width:1.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.map__water path{fill:none;stroke:var(--water);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.map__labels{position:absolute;inset:0}
.mk,.kn{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--ink);color:var(--white);font:700 var(--fs-corner)/1 var(--f-c)}
.mk{position:absolute;transform:translate(-50%,-50%)}
.mk--part,.kn--part{background:var(--paper);color:var(--slate);box-shadow:inset 0 0 0 1.5px var(--slate)}
.wl{position:absolute;transform:translateY(-50%);font:italic 500 var(--fs-ui)/1 var(--f-a);color:var(--water);white-space:nowrap}
.map figcaption,.place figcaption{max-width:36em;margin-top:.9rem;font:400 var(--fs-label)/1.45 var(--f-s);color:var(--slate)}
.lgrp+.lgrp{margin-top:1.75rem}
.label--sm{font-size:var(--fs-label);margin-bottom:.5rem}
.ruled{border-top:1px solid var(--rule)}
.ruled li{padding:.5rem 0;border-bottom:1px solid var(--rule);font:600 var(--fs-list)/1.3 var(--f-c)}
.keyed li{display:flex;align-items:center;gap:.65rem}
.d-note{margin-top:.75rem;font-size:var(--fs-sm);line-height:1.45;color:var(--slate)}
.places{display:grid;gap:1.5rem var(--gap);padding-top:1.5rem;border-top:1px solid var(--rule)}
.d-lists .lgrp:last-child li:last-child{border-bottom:0}
.place img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:var(--rule-paper);filter:saturate(.88)}
.place img[src*=reflection-pool]{filter:saturate(.5) brightness(.9)}
.d-hist .label{margin-bottom:.75rem}
.hist{margin-top:1.25rem;border-top:1px solid var(--rule)}
.hist li{display:grid;grid-template-columns:minmax(0,1fr);gap:.35rem;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--rule)}
.yr{font:800 var(--fs-year)/1 var(--f-x)}
.hist p{max-width:var(--text)}
.slogan{font:italic 500 var(--fs-display)/1 var(--f-a);text-wrap:balance}
.form{display:grid;gap:1.25rem;max-width:44rem}
.fgrp>label:not(.chkbox){display:block;margin-bottom:.4rem;font:500 var(--fs-body)/1.3 var(--f-s)}
input:not([type=checkbox]),select{display:block;width:100%;height:48px;padding:0 12px;border:1.5px solid var(--ink);border-radius:0;background:var(--white);color:var(--ink);font:400 var(--fs-body)/1.2 var(--f-s)}
input[aria-invalid=true]{border-color:var(--red)}
.fgrp--zip input{max-width:10rem}
.frow{display:grid;gap:1.25rem}
.fset legend{margin-bottom:.35rem;font:500 var(--fs-body)/1.3 var(--f-s)}
.chkbox{display:flex;align-items:center;gap:.65rem;min-height:44px;font:400 var(--fs-body)/1.3 var(--f-s);cursor:pointer}
.chkbox input{flex:0 0 auto;width:22px;height:22px;margin:0;accent-color:var(--ink)}
.fgrp--sub{margin:.15rem 0 .6rem 2.2rem}
.err{margin-top:.35rem;font:500 var(--fs-ui)/1.4 var(--f-s);color:var(--red-deep)}
.err:empty{display:none}
.privacy{font-size:var(--fs-sm);line-height:1.5;color:var(--slate)}
.fsubmit{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.fsubmit .btn{min-width:10rem}
.nojs{font-size:var(--fs-sm);color:var(--slate)}
.js .nojs{display:none}
.status:empty{position:absolute;padding:0;outline:0}
.status{padding:.75rem 1rem;background:var(--confirm);color:var(--confirm-ink);outline:1px dashed var(--confirm-ink);font:600 var(--fs-list)/1.5 var(--f-c)}
/* V2 §5.8 footer; folds: phones only, JS only */
.foot{padding-block:4rem 3.5rem;background:var(--bar);color:var(--white)}
.foot__row{padding-block:1.25rem;border-top:1px solid var(--rule-bar)}
.foot__row:first-child{padding-top:0;border-top:0}
.foot__row p+p{margin-top:.5rem}
.f-office{font:700 var(--fs-list)/1.3 var(--f-c);letter-spacing:.06em}
.soc{display:inline-block}
.pending{margin-left:.2em;font:600 var(--fs-label)/1 var(--f-c);letter-spacing:.06em;color:var(--mist)}
.index{text-wrap:balance}
.index li{display:inline-block;margin-right:1.2rem}
.index a{display:inline-block;padding:.5rem 0;font:600 var(--fs-ui)/1.2 var(--f-c)}
.srcs{list-style:decimal;padding-left:1.6em;color:var(--mist)}
.srcs li{margin-bottom:.55rem;padding-left:.35em;break-inside:avoid;overflow-wrap:anywhere}
.srcs li::marker{font:700 var(--fs-sm) var(--f-c)}
.srcs a{color:inherit}
.srcs a:hover{color:var(--white)}
.back{white-space:nowrap;font:700 var(--fs-label)/1 var(--f-c);letter-spacing:.08em}
.attest{font:500 1.125rem/1.5 var(--f-s)}
.fold>summary{display:flex;align-items:center;gap:12px;width:fit-content;min-height:44px;margin-top:-.75rem;list-style:none;cursor:pointer}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary::after{content:"";width:8px;height:8px;border:solid var(--mist);border-width:1px 0 0 1px;transform:translateY(2px) rotate(45deg)}
.fold:not([open])>summary::after{transform:translateY(-3px) rotate(225deg)}
.fold .flabel{margin:0}
.fold[open]>summary{margin-bottom:.25rem}
@media (min-width:768px) and (min-height:501px){.js .fold>summary{cursor:auto}.js .fold>summary::after{content:none}}
.sheet{position:fixed;inset:0;z-index:50;overflow:auto;overscroll-behavior:contain;background:var(--night);color:var(--white);opacity:0;transition:opacity var(--t160)}
.sheet.is-open{opacity:1}
.sheet__in{display:flex;flex-direction:column;min-height:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.sheet__top{display:flex;justify-content:end;align-items:center;height:var(--head)}
.sheet__cards{display:grid;gap:16px;margin-block:auto;padding:.5rem 0 2rem}
.mcard{--rule:var(--rule-night);padding:1.25rem 1.25rem 1.5rem;border:1px solid var(--card-edge-night);background:var(--panel)}
.mcard--back{--rule:var(--rule-paper);--mute:var(--slate);--focus:var(--ink);background:var(--card);border-color:var(--card-edge);color:var(--ink)}
.mcard .corner{margin-bottom:1rem}
.mcard a{display:block;text-decoration:none}
.mcard a:hover{text-decoration:underline 2px}
.mcard--back a{color:var(--ink)}
.mcard--back a:hover{color:var(--red-deep)}
.mcard__name .first{font:800 1.5rem/1 var(--f-x);letter-spacing:.08em}
.mcard__name .last{font:900 clamp(3.5rem,2.5rem + 3vw,5rem)/.8 var(--f-x);margin-top:.06em}
.mcard ul{margin-top:1rem;border-top:1px solid var(--rule)}
.mcard li a{padding:.65rem 0;border-bottom:1px solid var(--rule);font:600 1.25rem/1.25 var(--f-c)}
.mcard--back li a{color:var(--slate)}
.face .blank,.mcard .blank{width:2.5em}
.mcard__slogan{margin-top:1.25rem;font:italic 500 2rem/1.1 var(--f-a)}
.mcard__head{font:700 clamp(1.5rem,1.2rem + 1vw,2rem)/1.05 var(--f-s);letter-spacing:-.01em}
.sheet__bar{display:flex;flex-wrap:wrap;gap:.25rem 1.75rem;margin:0 calc(-1*var(--gutter));padding:.75rem var(--gutter);background:var(--bar)}
.sheet__bar a{display:inline-block;padding:.6rem 0}
@media (min-width:480px){
.head__vol{display:inline-flex}
.hist li{grid-template-columns:5rem minmax(0,1fr);gap:1rem}
}
@media (min-width:560px){
.d-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gap)}
.lgrp:first-child{grid-row:1/3}
.lgrp:nth-child(2){margin-top:0}
}
@media (min-width:600px){
.form{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.5rem}
.form>.frow,.form>.fset,.form>.fgrp:has(#f-phone),.form>.privacy,.form>.fsubmit,.form>.status{grid-column:1/-1}
.fset{display:flex;flex-wrap:wrap;column-gap:1.75rem}
.fset>legend{width:100%}
.fset>.fgrp--sub{flex-basis:100%;margin-left:0}
.fgrp:has(#f-phone) input{max-width:20rem}
.frow{grid-template-columns:10rem minmax(0,1fr)}
.places{grid-template-columns:repeat(2,minmax(0,1fr))}
.h-back .ln{display:block}
}
@media (min-width:768px){
.srcs{columns:2;column-gap:48px}
.hist li{grid-template-columns:5.5rem minmax(0,1fr)}
.sheet__cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
}
@media (max-width:1023px) and (max-height:500px){
.map{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--gap);align-items:end}
.map__art{width:min(46rem,(100svh - var(--head) - 4rem)*1.11)}
.map figcaption{margin-top:0}
}
/* spread ≥900: HEAD/BODY 5/7, 4/8 from 1024 (TEXT/NOTES ≥1440); nav, atlas, footer ≥1024 */
@media (min-width:900px){
.cols,.row,.district,.d-hist,.donate{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.intro{display:contents}
.cols>.rail{grid-column:var(--z-head);grid-row:1}
.intro>h2{grid-column:var(--z-head);grid-row:2;align-self:start}
.intro>.lead{grid-column:var(--z-text);grid-row:2;margin-top:0}
.intro>.intro__q{grid-column:var(--z-text);grid-row:3}
.intro>:last-child{margin-bottom:2.5rem}
#commitments .intro>h2{grid-column:1/10}
#commitments .intro>.lead{grid-row:3;margin-top:1.25rem}
.row__mk{grid-area:1/1;justify-self:start;width:28px;justify-content:flex-end;margin-left:max(calc(-28px - .875rem),calc(16px - var(--gutter)))}
.row__head{grid-column:var(--z-head);grid-row:1}
.row__head .field{margin-top:1.5rem}
.row__body{grid-column:var(--z-body);grid-row:1;align-self:start}
.row__body>*+*{margin-top:1.5rem}
.d-lead{grid-column:var(--z-text);grid-row:1}
.d-map,.d-lists,.d-places{grid-column:1/13}
.d-hist{grid-column:1/13;grid-template-rows:auto auto 1fr;align-items:start}
.d-hist>.label,.d-hist__q{grid-column:var(--z-head)}
.d-hist__q{grid-row:2}
.hist{grid-column:var(--z-text);grid-row:1/span 3;margin-top:0}
.hist li{grid-template-columns:6rem minmax(0,1fr)}
.involved .cols{grid-template-rows:auto auto auto 1fr auto}
.involved .intro>*{grid-column:var(--z-head)}
.involved .slogan{grid-row:1}
.involved .intro__q{grid-row:2}
.involved .intro>.lead{grid-row:3;margin:1rem 0 0}
.form{grid-column:var(--z-body);grid-row:1/span 4}
.donate{grid-column:1/13;grid-row:5;max-width:none;margin-top:var(--sp-row);align-items:start}
.donate>*{grid-column:var(--z-text)}
.donate>.donate__plate,.donate>.donate__lead{grid-column:var(--z-head)}
.donate__plate{grid-row:1;justify-self:start}
.donate__lead{grid-row:2/span 2;margin:1rem 0 0}
.donate>.flabel{grid-row:1;margin:0}
.donate>.btn{justify-self:start}
}
@media (min-width:900px) and (max-width:1023px){.row__mk{margin-left:0;width:auto}.row__head{padding-left:calc(var(--mk) + .875rem)}}
@media (min-width:1024px){
.head__nav{display:flex}
.foot__main{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:start}
.d-map{grid-column:var(--z-map);grid-row:2}
.map__art{max-width:calc((100svh - var(--head) - 4rem)*1.11)}
.d-lists{grid-column:var(--z-lists);grid-row:2;display:block}
.lgrp+.lgrp{margin-top:1.75rem}
.d-places{grid-row:3;grid-template-columns:7fr 5fr;align-items:start}
.d-hist{grid-row:4}
.foot__main>*{grid-column:1/13}
.foot__main>.f-office{grid-column:var(--z-head);grid-row:1}
#contact{grid-column:var(--z-head);grid-row:2}
#site-index{grid-column:var(--z-body);grid-row:1;padding-top:0;border-top:0}
#sources{grid-column:var(--z-body);grid-row:2}
#credits{grid-column:var(--z-body);grid-row:3}
}
@media (min-width:1440px){@supports (grid-template-columns:subgrid){
.row__body{display:grid;grid-template-columns:subgrid;grid-template-rows:auto auto auto 1fr;column-gap:var(--gap)}
.row__body>.field{grid-column:1/6}
.row__body>.notes{grid-column:6/9;grid-row:1/span 4;margin-top:0}
}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0ms!important;animation:none!important;scroll-behavior:auto!important}}
@media (forced-colors:active){
.turn,.hero__field,.hero::before,.head::before{display:none}
.head{background:Canvas}
.btn,.mk,.kn{border:1px solid ButtonText}
.chk{stroke:CanvasText}
.bullet{background:CanvasText}
.map__district{stroke:CanvasText;fill:Canvas}
.map__water path{stroke:LinkText}
}

/* V3: the campaign card becomes an editorial page, with warm paper and an atlas spread. */
.head__nav a{padding-block:12px}
.btn--ghost:hover{background:var(--white);color:var(--ink)}
.btn--chip:hover{background:var(--paper);border-color:var(--paper)}
.menu-btn{display:inline-flex;align-items:center;gap:10px}
.menu-btn::after{content:"";width:16px;height:8px;border-block:1px solid currentColor}
.sheet__close::after{content:none}
.h-back{font:800 clamp(2.75rem,1.75rem + 3.5vw,5.25rem)/1.02 var(--f-x);letter-spacing:-.01em}
.priority-index{padding-bottom:2.5rem}
.priority-index .flabel{margin-bottom:1rem}
.priority-index ol{border-top:1px solid var(--ink)}
.priority-index li{border-bottom:1px solid var(--rule-paper)}
.priority-index a{display:flex;align-items:center;gap:1rem;min-height:64px;padding:.6rem 0;font:600 1.25rem/1.15 var(--f-c);text-decoration:none}
.priority-index a:hover{color:var(--red-deep)}
.priority-index__n{min-width:1.8rem;font:800 2rem/1 var(--f-x);color:var(--red)}
.priority-index__arrow{margin-left:auto;font:400 1.5rem/1 var(--f-s)}
.district>.d-rail>.label{font:800 clamp(3rem,2rem + 4vw,5.5rem)/.95 var(--f-x);text-transform:none;letter-spacing:-.015em}
.d-rail .d-date{padding-top:1.5rem;border-top:1px solid var(--ink)}
.map__art{background:var(--paper-2)}
.d-places{gap:1.5rem 2rem;padding-top:2rem}
.d-places .place figcaption{max-width:32rem;font-size:var(--fs-sm)}
.d-hist>.label{font:800 var(--fs-h2)/1.05 var(--f-x);text-transform:none;letter-spacing:0;max-width:15rem}
.hist .yr{color:var(--red-deep)}
.involved .slogan{font-size:clamp(3.25rem,2rem + 4vw,6rem);line-height:1.08}
.involved .intro>.lead{font-weight:400}
.form{padding-top:1.5rem;border-top:2px solid var(--ink)}
.fsubmit .btn{min-width:10rem}
@media (min-width:600px){
.priority-index ol{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid var(--rule-paper)}
.priority-index li{border:0;min-width:0}
.priority-index li+li{border-left:1px solid var(--rule-paper)}
.priority-index a{position:relative;display:grid;align-content:start;gap:1rem;min-height:132px;height:100%;padding:1rem .875rem;font-size:1.125rem}
.priority-index li:first-child a{padding-left:0}
.priority-index__n{font-size:2.75rem}
.priority-index__arrow{position:absolute;right:.875rem;top:1rem;font-size:1.25rem}
.d-places{align-items:start}
.d-places .place:nth-child(2){padding-top:3rem}
}
@media (min-width:768px){
.district{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.district>.d-rail{grid-column:1/6;grid-row:1}
.d-lead{grid-column:6/13;grid-row:1;align-self:start;padding-top:.25rem}
.d-map{grid-column:1/8;grid-row:2}
.d-lists{grid-column:8/13;grid-row:2;display:block}
.d-lists .lgrp+.lgrp{margin-top:1.75rem}
.d-places{grid-column:1/13;grid-row:3;grid-template-columns:7fr 5fr}
.d-hist{grid-column:1/13;grid-row:4}
.d-map .map__art{position:relative;top:auto;max-width:100%}
.d-map{display:block;align-self:start;min-width:0}
.d-map figcaption{position:relative;background:var(--paper-2);margin-top:.9rem}
}
@media (min-width:900px){
.priority-index{padding-top:1rem;padding-bottom:3rem}
}
@media (min-width:1100px){
.d-map{grid-column:1/7}
.d-lists{grid-column:7/13;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;align-content:start}
.d-lists .lgrp:first-child{grid-column:1;grid-row:1/3}
.d-lists .lgrp:nth-child(2){grid-column:2;grid-row:1;margin:0}
.d-lists .lgrp:nth-child(3){grid-column:2;grid-row:2;margin:0}
.map__art{max-width:100%}
}
@media (min-width:1200px) and (min-height:700px){
.hero{--name:clamp(160px,min(16vw,25svh,(100svh - var(--strip) - var(--head) - var(--rail) - 2*var(--air) - 24px)/1.83),13rem)}
}
@media (forced-colors:active){.priority-index__n,.hist .yr{color:CanvasText}.menu-btn::after{border-color:ButtonText}}

/* V4: the filmed skyline replaces the still's camera push when motion is enabled. */
.hero.has-video .hero__media{animation:none;transform:none}
.hero__field video{opacity:0;transition:opacity 240ms var(--ease)}
.hero__field video.is-ready{opacity:1}
.hero__pause{position:absolute;z-index:3;top:calc(var(--head) + 1rem);right:max(var(--gutter),calc((100% - var(--measure))/2));display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid var(--outline);border-radius:0;background:var(--night);color:var(--white);font:600 var(--fs-ui)/1 var(--f-c);cursor:pointer}
.hero__pause:hover{background:var(--bar);border-color:var(--white)}
@media (forced-colors:active){.hero__pause{display:none}}

/* V4 campaign presentation: sourced copy replaces the research worksheet. */
:root{--strip:28px}
.draft{min-height:var(--strip);padding-block:5px;background:var(--night);color:var(--mist);font-size:.6875rem;line-height:18px;letter-spacing:.1em}
.draft span{padding-inline:.5rem}
.hero-story{grid-column:1/-1;display:inline-flex;align-items:center;gap:.75rem;justify-self:start;min-height:44px;text-decoration:none}
.hero-story__arrow{display:grid;place-items:center;flex:none;width:2.375rem;height:2.375rem;border:1px solid var(--outline);border-radius:50%;font:600 1.25rem/1 var(--f-s)}
.hero-story:hover .hero-story__arrow{background:var(--white);color:var(--bar)}
.hero-story__label,.campaign-photo__source{display:block;color:var(--mist);font:700 var(--fs-corner)/1.2 var(--f-c);letter-spacing:.12em;text-transform:uppercase}
.hero-story strong{display:block;margin-top:.125rem;font:700 1.125rem/1.15 var(--f-c)}
.hero-story:hover strong{text-decoration:underline}

/* Opening chapters: the statement takes its cues from print, the biography from a field photo. */
.chapter-label{display:flex;align-items:center;gap:.65rem;color:var(--mute);font:700 var(--fs-corner)/1.2 var(--f-c);letter-spacing:.14em;text-transform:uppercase}
.chapter-label span{display:grid;place-items:center;width:2rem;height:1.625rem;border:1px solid currentColor;color:var(--red-deep);font-size:.875rem;letter-spacing:.06em}
.on-dark .chapter-label span{color:var(--red-print)}
.freedom-statement{padding-block:clamp(2.75rem,6vw,5.5rem);border-top:4px solid var(--red)}
.freedom-statement__masthead{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1rem 2rem;padding-block:1rem 1.375rem;border-top:1px solid var(--rule-paper)}
.freedom-statement h2{margin-top:.75rem;font:800 clamp(2.875rem,1.875rem + 4.6vw,6rem)/.96 var(--f-x);letter-spacing:-.02em;text-wrap:balance}
.freedom-statement h2 span{color:var(--red)}
.freedom-statement__byline{display:grid;gap:.125rem;color:var(--slate);font-size:var(--fs-sm)}
.freedom-statement__byline strong{color:var(--ink);font:750 1.375rem/1.1 var(--f-c)}
.freedom-statement__words{margin:0}
.freedom-statement__pull{
  display:grid;align-items:start;gap:.65rem 1.75rem;
  padding:clamp(1.375rem,4.5vw,4rem);
  border-inline-start:5px solid var(--red-print);
  background:var(--bar);
  color:var(--white)
}
.freedom-statement__mark{display:block;height:.55em;color:var(--outline);font:700 clamp(4.75rem,9vw,8rem)/.85 Georgia,serif}
.freedom-statement__pull p{max-width:34ch;font:700 clamp(1.875rem,1.3rem + 2.2vw,3.5rem)/1.08 var(--f-c);text-wrap:pretty}
.freedom-statement__pull em{color:#F4E2BC;font:italic 500 .9em/1.08 var(--f-a)}
.freedom-statement__body{
  display:grid;gap:1em;max-width:40rem;margin:0 auto;padding:clamp(1.5rem,3vw,2.75rem) 0 .375rem;
  color:var(--slate);line-height:1.62
}
.freedom-statement__body p+p{margin-top:1em}

.campaign-about{display:grid;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.campaign-about h2{margin-top:1rem;font:800 clamp(3.5rem,2rem + 4.5vw,6rem)/.91 var(--f-x);letter-spacing:-.015em}
.campaign-about__title .lead{max-width:26rem;margin-top:1.125rem;font-size:clamp(1.1875rem,1rem + .75vw,1.5625rem)}
.campaign-photo{width:100%;padding:clamp(.625rem,1.25vw,1rem);border:1px solid var(--card-edge-night);background:var(--panel)}
.campaign-photo__frame{position:relative}
.campaign-photo img{width:100%;height:auto}
.campaign-photo__location{
  position:absolute;inset:auto auto 0 0;padding:.625rem .8rem;
  border-inline-start:3px solid var(--red-print);background:var(--night);color:var(--white);
  font:700 var(--fs-corner)/1.2 var(--f-c);letter-spacing:.12em;text-transform:uppercase
}
.campaign-photo figcaption{color:var(--mist);font-size:var(--fs-sm)}
.campaign-photo figcaption>p{margin:.75rem .25rem}
.campaign-photo__article{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.875rem .5rem .25rem .25rem;border-top:1px solid var(--card-edge-night);text-decoration:none
}
.campaign-photo__article strong{display:block;margin-top:.25rem;font:750 1.5rem/1.1 var(--f-c)}
.campaign-photo__article:hover strong{text-decoration:underline}
.campaign-photo__arrow{display:grid;place-items:center;flex:none;width:2rem;height:2rem;border:1px solid var(--outline);font:600 1rem/1 var(--f-s)}
.campaign-photo__article:hover .campaign-photo__arrow{background:var(--white);color:var(--night)}
.campaign-about__copy{max-width:37rem}
.campaign-about__copy>p{color:var(--body-night)}
.campaign-about__copy>p+p{margin-top:1rem}
.recognition{padding-block:1rem;border-block:1px solid var(--rule-night);font-size:var(--fs-sm)}
.text-link{display:inline-flex;align-items:center;gap:1.5rem;min-height:44px;padding-block:.65rem;font:700 1.125rem/1.2 var(--f-c);text-decoration:none}
.text-link:hover{text-decoration:underline}
.community-record{display:grid;gap:.75rem;margin-top:3rem}
.community-record article{border-top:2px solid var(--rule-bar);padding:clamp(1rem,2.25vw,1.75rem);background:var(--panel)}
.record-number{font:800 1.25rem/1 var(--f-x);color:var(--red-print)}
.community-record h3{margin:.75rem 0;font:700 1.75rem/1.1 var(--f-c)}
.community-record p{max-width:25rem;color:var(--body-night);font-size:var(--fs-sm)}
.priority-intro{display:grid;gap:1.5rem;padding-bottom:2.5rem}
.priority-intro h2{font:800 clamp(3rem,1.75rem + 5vw,6rem)/.98 var(--f-x);letter-spacing:-.015em}
.priority-intro h2 span{color:var(--red)}
.priority-intro .lead{margin:0;max-width:31rem}
.priorities__rows{padding-top:1rem}
.priority-row{display:grid;gap:1.25rem;padding-block:2.25rem;border-top:1px solid var(--rule-paper)}
.priority-row h3{max-width:26rem;font:700 clamp(2rem,1.5rem + 2vw,3.25rem)/1.05 var(--f-x);text-wrap:balance}
.priority-row__copy{max-width:36rem;color:var(--slate)}
.record-note{max-width:var(--max);font-size:var(--fs-sm);color:var(--slate)}
.district-tagline{font:500 1.125rem/1.4 var(--f-s);color:var(--slate)}
.involved .intro>.corner{grid-column:var(--z-head);grid-row:1;margin-bottom:1.5rem}
.involved .slogan{grid-row:2}
.involved .intro>.lead{grid-row:3}
.form .privacy{padding-top:.5rem}
.status{background:var(--paper-2);color:var(--ink);outline:0;border-left:2px solid var(--ink)}
.foot-tagline{font:800 clamp(2rem,1.5rem + 2vw,3.25rem)/1 var(--f-x);letter-spacing:-.01em}
.attest{font:400 var(--fs-sm)/1.5 var(--f-s);color:var(--mist)}
.sheet .mcard__head{font-family:var(--f-x);font-size:2.5rem}
@media (min-width:600px){
.freedom-statement__pull{grid-template-columns:auto minmax(0,1fr)}
.community-record{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
}

@media (min-width:900px){
.freedom-statement__body{--column-gap:clamp(2.5rem,7vw,7rem);grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--column-gap);max-width:70rem}
.freedom-statement__body>div+div{position:relative}
.freedom-statement__body>div+div::before{content:"";position:absolute;inset-block:0;inset-inline-start:calc(-.5*var(--column-gap));border-inline-start:1px solid var(--rule-paper)}
.campaign-about{grid-template-columns:minmax(0,5fr) minmax(0,6fr);grid-template-areas:"title photo" "copy photo";row-gap:1.5rem;align-items:center}
.campaign-about__title{grid-area:title;align-self:end}
.campaign-about__copy{grid-area:copy;align-self:start}
.campaign-photo{grid-area:photo;justify-self:end}
.community-record{margin-top:4rem}
.priority-intro{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.priority-intro .corner{grid-column:1/-1}
.priority-intro h2{grid-column:1/8;grid-row:2}
.priority-intro .lead{grid-column:8/13;grid-row:2;align-self:end}
.priority-row{grid-template-columns:5fr 7fr;gap:var(--gap);padding-block:2.75rem}
.priority-row__copy{align-self:center}
}

/* V6: campaign ink, red and paper. Local Sofia family throughout. */
:root {
  --scene-night: #0f1830;
  --scene-paper: #f5f3ee;
  --scene-red: #d42539;
  --scene-soft-red: #ff777c;
  --scene-line: #3b455b;
  --scene-display: "Sofia Sans Extra Condensed", "Arial Narrow", Impact, sans-serif;
  --scene-body: "Sofia Sans", system-ui, sans-serif;
  --scene-title: clamp(5rem, 10vw, 10.5rem);
  --scene-heading: clamp(3.75rem, 7.5vw, 8rem);
  --scene-space: clamp(4rem, 8vw, 8rem);
  --scene-radius: 4px;
}

/* V6 photographic chapters. These follow the preserved V5 layout and map styles. */
@font-face{font-family:"Sofia Sans Extra Condensed";src:url(fonts/sofia-sans-xcond.woff2) format("woff2");font-weight:100 1000;font-display:swap}
:root{--gutter:clamp(1.25rem,4vw,5rem);--measure:88rem;--head:76px;--strip:0px;--sp-section:var(--scene-space)}
html{font-size:100%}
body{font-size:18px}
.corner,.label,.flabel,.btn,.draft,.menu-btn,.chapter-label,.hero-story__label,.campaign-photo__source,.campaign-photo__location,.f-office,.back{font-family:var(--scene-body);text-transform:none;letter-spacing:0}
.corner{padding:0;font-size:.875rem;font-weight:650}
.corner::before{content:none}
.chapter-label{font-size:.875rem;line-height:1.3;font-weight:650}
.chapter-label span{display:none}
.btn{border-radius:var(--scene-radius);font-size:.9375rem;font-weight:700;min-height:48px}
.btn:active,.menu-btn:active{transform:translateY(1px)}
.btn--chip{background:var(--red);border-color:var(--red);color:var(--white)}
.btn--chip:hover{background:var(--red-deep);border-color:var(--red-deep);color:var(--white)}
.btn--ghost{border-color:#9aa6bf}
.draft{font-size:.75rem;line-height:18px;color:#b9c2d7;min-height:28px}
.head__in{gap:2rem}
.mark__last{font-size:2.15rem}
.mark__for{font-size:1.2rem}
.head__nav{gap:1.8rem}
.head__nav a{font:600 .9375rem/1.3 var(--scene-body);letter-spacing:0;white-space:nowrap;flex-shrink:0}
.head.is-solid{background:var(--night);box-shadow:inset 0 -1px var(--scene-line)}
.menu-btn{font-size:.9375rem}
.menu-btn::after{margin-left:.75rem}
.head__vol{min-height:42px}
.hero{isolation:isolate;--rail:100px;--name:clamp(130px,min(27vw,29svh),330px);min-height:calc(100svh - var(--strip));grid-template-rows:1fr auto auto;padding-top:calc(var(--head) + 5rem)}
.hero__field{inset:0;bottom:0;z-index:-2}
.hero__field::before{display:none}
.hero__field::after{background:linear-gradient(90deg,rgba(15,24,48,.64),rgba(15,24,48,.1) 72%),linear-gradient(0deg,rgba(15,24,48,.95),transparent 55%)}
.hero::before{display:none}
.hero__media{animation:none;transform:none}
.hero__field img,.hero__field video{filter:saturate(1.2)}
.lockup{max-width:none;margin-bottom:clamp(2rem,5vh,4rem)}
.first{font-size:calc(var(--name)*.26);letter-spacing:.005em;line-height:1}
.last{font-size:var(--name);line-height:.78;letter-spacing:-.025em;margin-top:.06em}
.fx .last{overflow-wrap:normal}
.for{font-size:calc(var(--name)*.36);letter-spacing:-.01em;color:var(--scene-soft-red);line-height:.92;margin-top:.12em}
.office{display:inline-flex;align-items:center;gap:1.25rem;font:750 clamp(1.5rem,2vw,2rem)/1 var(--scene-display);letter-spacing:0;text-transform:none;white-space:normal;background:none;width:auto;padding:0;border:0;margin-top:1.75rem}
.office__name{white-space:nowrap}
.office__district{display:inline-flex;align-items:center;gap:.55rem;padding:.5rem .8rem;background:var(--red);color:var(--white);border-radius:var(--scene-radius);font:650 .9375rem/1 var(--scene-body)}
.office__district strong{font:850 2rem/.85 var(--scene-display)}
.fact{background:rgba(15,24,48,.9);box-shadow:inset 0 2px var(--scene-soft-red)}
.fact__in{padding-block:1rem;min-height:94px}
.hero-story__arrow{border:0;border-radius:0;width:auto;margin-right:.25rem;font-size:2rem;color:var(--scene-soft-red)}
.hero-story:hover .hero-story__arrow{background:none;color:white;transform:translateY(3px)}
.hero-story strong{font:650 1.25rem/1.2 var(--scene-body)}
.hero-story__label{font-size:.8125rem}
.hero__pause{top:calc(var(--head) + 1.25rem);font-family:var(--scene-body);font-size:.8125rem;border-radius:4px;background:rgba(15,24,48,.9)}

/* Portrait is a background composition, with the face kept away from the title. */
.portrait-chapter{position:relative;isolation:isolate;min-height:900px;min-height:max(760px,100svh);display:flex;align-items:center;background:var(--scene-night);overflow:hidden}
.portrait-chapter__photo{position:absolute;inset:0 0 0 22%;z-index:-2;mask-image:linear-gradient(90deg,transparent,#000 26%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 26%)}
.portrait-chapter__photo img{width:100%;height:100%;object-fit:cover;object-position:62% 38%}
.portrait-chapter__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0f1830 2%,rgba(15,24,48,.97) 14%,rgba(15,24,48,.78) 34%,rgba(15,24,48,.08) 67%),linear-gradient(0deg,rgba(15,24,48,.75),transparent 35%)}
.portrait-chapter__content{width:100%;padding-block:7rem 8rem}
.portrait-chapter .chapter-label{color:var(--mist);margin-bottom:1.8rem}
.portrait-chapter h2{font:850 var(--scene-title)/.88 var(--scene-display);text-transform:uppercase;letter-spacing:-.022em;max-width:9ch}
.portrait-chapter h2 span{color:var(--scene-soft-red)}
.portrait-chapter .lead{max-width:26rem;font-size:clamp(1.125rem,1.4vw,1.375rem);line-height:1.5;margin-top:2rem;color:#eef0f5}
.portrait-chapter .text-link{margin-top:1.25rem;font-family:var(--scene-body);font-size:1rem}
.portrait-chapter__note{position:absolute;bottom:2rem;left:var(--gutter);font-size:.8125rem;color:var(--mist)}
.portrait-chapter__note span{margin-inline:.75rem;color:var(--red-print)}
.js #who{padding-bottom:0}
.story-chapter{padding-block:var(--scene-space)}
.story-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(2rem,7vw,7rem);align-items:center}
.story-grid h2{font:800 var(--scene-heading)/.92 var(--scene-display);text-transform:uppercase;letter-spacing:-.02em;margin:1.4rem 0 2rem}
.campaign-about__copy{max-width:36rem;font-size:1.0625rem;line-height:1.65}
.campaign-about__copy .text-link{margin-top:.75rem}
.campaign-photo{grid-area:auto;padding:0;border:0;background:none}
.campaign-photo img{aspect-ratio:3/2;object-fit:cover}
.campaign-photo__location{font-size:.75rem}
.campaign-photo figcaption>p{margin:.875rem 0}
.campaign-photo__article{padding:.875rem 0 .25rem}
.campaign-photo__source{font-size:.75rem}
.community-record{margin-top:4rem;gap:2rem}
.community-record article{border-top:1px solid var(--scene-line);padding:1.5rem 0 0;background:none}
.community-record h3{font:750 1.75rem/1.05 var(--f-c)}
.record-number{font-size:1.5rem}
.community-scene{position:relative;isolation:isolate;display:flex;align-items:end;min-height:810px;min-height:max(660px,90svh);background:var(--night);overflow:hidden}
.community-scene__photo{position:absolute;inset:0;z-index:-2}
.community-scene__photo img{width:100%;height:100%;object-fit:cover;object-position:50% 34%}
.community-scene__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(15,24,48,.98),rgba(15,24,48,.65) 32%,rgba(15,24,48,.04) 72%)}
.community-scene__content{width:100%;padding-block:12rem 3.75rem}
.community-scene .chapter-label{color:#e1e5ee;margin-bottom:1.3rem}
.community-scene h2{font:850 clamp(4.5rem,8.5vw,9rem)/.9 var(--scene-display);text-transform:uppercase;letter-spacing:-.02em}
.community-scene h2 span{color:#f5f3ee}
.community-scene .text-link{margin-top:1.5rem;font-family:var(--scene-body);font-size:1rem}

/* Quiet editorial reading between the photographic chapters. */
.freedom-statement{padding-block:var(--scene-space);border-top:0}
.freedom-statement__masthead{border-top:0;padding:0 0 2.5rem}
.freedom-statement h2{font-size:clamp(3.75rem,7vw,7.5rem);text-transform:uppercase;max-width:12ch}
.freedom-statement__byline{max-width:17rem}
.freedom-statement__pull{background:none;color:var(--ink);border:0;border-block:1px solid var(--rule-paper);padding:2.5rem 0;gap:0 2rem}
.freedom-statement__pull p{font:750 clamp(2.4rem,4.5vw,5rem)/1.05 var(--f-c);max-width:30ch}
.freedom-statement__pull em{font-family:var(--f-c);font-style:normal;font-weight:750;color:var(--red-deep);font-size:1em}
.freedom-statement__mark{color:var(--red);font-size:7rem}
.freedom-statement__body{padding-top:2.75rem;max-width:none;font-size:1.0625rem}
.js #commitments{padding-top:var(--scene-space)}
.priorities{background:var(--paper-2)}
.priority-intro h2{font-size:clamp(3.75rem,7.5vw,8rem);line-height:.94;text-transform:uppercase}
.priority-index a{font-family:var(--scene-body);font-size:1rem}
.priority-row{padding-block:2.75rem}
.priority-row h3{font-size:clamp(2.75rem,4.25vw,4.5rem);max-width:16ch;line-height:1}
.priority-row .flabel{font-size:.875rem}
.priority-row__copy{font-size:1.0625rem;line-height:1.65}
.d-rail h2.label{font-size:clamp(4rem,7.5vw,8rem);line-height:.95;text-transform:uppercase}
.label--sm{font-size:1.25rem;font-family:var(--f-c);font-weight:700}
.d-hist>.label{font-size:clamp(3rem,4vw,4.5rem);max-width:12ch}
.d-places{gap:2rem;padding-top:3rem}
.d-places .place:nth-child(2){padding-top:0}
.d-places .place img{aspect-ratio:4/3;filter:none}
.d-places .place figcaption{max-width:none}
.involved .cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);grid-template-rows:auto}
.involved .intro{display:block;padding:0}
.involved .intro>*{margin-bottom:0}
.involved .intro>.corner{margin-bottom:1.5rem;color:var(--red-deep)}
.involved .slogan{font:850 clamp(5.5rem,11vw,11.5rem)/.82 var(--scene-display);text-transform:uppercase;letter-spacing:-.025em}
.involved .slogan span{color:var(--red)}
.involved .intro>.lead{margin-top:2.5rem;max-width:26rem}
.involved .form{grid-column:auto;grid-row:auto;border-top:1px solid var(--ink);align-self:start;max-width:none}
.form input:not([type=checkbox]),.form select{background:var(--paper);border-radius:4px;border:1px solid #8b91a0;font-size:1rem}
.form .fgrp>label:not(.chkbox),.form .fset legend{font-size:1rem}
.form .chkbox{font-size:1rem}
.form .frow{grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr)}
.foot{background:var(--night);padding-top:3rem}
.foot__row{border-color:var(--scene-line)}
.foot-tagline{font-size:clamp(3.5rem,7vw,7rem);text-transform:uppercase;line-height:.9}
.mcard .corner{font-size:.875rem}
.mcard__slogan{font-family:var(--f-c);font-style:normal}
.mcard__slogan br{display:none}
.mcard__slogan span::before{content:' '}

@media(min-width:1700px){.portrait-chapter__photo{inset-inline-start:25%}.portrait-chapter__content{padding-block:9rem}.portrait-chapter h2{font-size:12rem}}
@media(max-width:1050px){
  .head__nav{display:none}.head__vol{margin-left:auto}.head__in{gap:1.5rem}
  .portrait-chapter h2{font-size:clamp(5.75rem,11.5vw,8rem)}
  .portrait-chapter__photo{inset-inline-start:8%}
  .portrait-chapter__shade{background:linear-gradient(90deg,#0f1830,rgba(15,24,48,.86) 20%,rgba(15,24,48,.24) 68%),linear-gradient(0deg,rgba(15,24,48,.8),transparent 60%)}
  .story-grid{gap:2.5rem}.story-grid h2{font-size:4.75rem}
  .involved .cols{gap:2.5rem}.form{grid-template-columns:minmax(0,1fr)}
  .form>.fgrp{grid-column:1/-1}.involved .slogan{font-size:clamp(6rem,13vw,9rem)}
}
@media(max-width:767px){
  :root{--head:64px;--scene-space:4rem}.head__in{gap:1rem}.mark__last{font-size:1.9rem}
  .hero{--name:clamp(130px,min(43vw,25svh),230px);min-height:calc(100svh - var(--strip));padding-top:calc(var(--head) + 4rem)}
  .hero__field::after{background:linear-gradient(0deg,rgba(15,24,48,.95),rgba(15,24,48,.5) 48%,rgba(15,24,48,.12) 100%)}
  .lockup{margin-bottom:2rem}.office{font-size:1.5rem;gap:.875rem;margin-top:1.25rem}
  .fact__in{gap:1rem;padding-block:1rem}.hero-story strong{font-size:1.125rem}
  .portrait-chapter{min-height:930px;min-height:max(850px,108svh);align-items:end}
  .portrait-chapter__photo{inset:0 0 14%;mask-image:none;-webkit-mask-image:none}.portrait-chapter__photo img{object-position:54% 12%}
  .portrait-chapter__shade{background:linear-gradient(0deg,#0f1830 4%,rgba(15,24,48,.94) 20%,rgba(15,24,48,.55) 44%,transparent 72%)}
  .portrait-chapter__content{padding-block:23rem 5.5rem}
  .portrait-chapter .chapter-label{margin-bottom:1rem}
  .portrait-chapter h2{font-size:clamp(4.75rem,14vw,7.5rem);max-width:none;line-height:.9}
  .portrait-chapter .lead{max-width:25rem;margin-top:1.5rem;font-size:1.125rem}
  .portrait-chapter .text-link{margin-top:.75rem}
  .portrait-chapter__note{bottom:1.5rem}
  .story-grid{grid-template-columns:1fr;gap:3rem}.story-grid h2{font-size:clamp(4rem,12vw,6rem)}
  .campaign-photo{max-width:none}.community-record{grid-template-columns:1fr;gap:1.5rem;margin-top:3rem}
  .community-record article{display:grid;grid-template-columns:2rem 1fr;column-gap:1rem}
  .community-record h3{margin:0 0 .5rem}.community-record p{grid-column:2;max-width:none}
  .community-scene{min-height:780px;min-height:max(720px,95svh)}
  .community-scene__photo img{object-position:30% 25%}
  .community-scene__shade{background:linear-gradient(0deg,#0f1830,rgba(15,24,48,.8) 33%,rgba(15,24,48,.15) 68%)}
  .community-scene__content{padding-block:25rem 3rem}
  .community-scene h2{font-size:clamp(3.4rem,11.5vw,6rem);line-height:.94}
  .freedom-statement__masthead{gap:1.75rem}.freedom-statement h2{font-size:4.25rem}
  .freedom-statement__pull{grid-template-columns:1fr;gap:1rem;padding-block:2rem}.freedom-statement__mark{height:.5em;font-size:5rem}
  .freedom-statement__pull p{font-size:2.5rem}
  .priority-intro h2{font-size:4.25rem}.priority-index{padding-top:0;padding-bottom:2rem}
  .priority-index ol{display:block;border:0}.priority-index li+li{border-left:0}.priority-index li{border-bottom:1px solid var(--rule-paper)}
  .priority-index a{display:flex;align-items:center;min-height:60px;padding:.75rem 0;gap:1rem}
  .priority-index__n{font-size:1.75rem;flex:none;min-width:2rem}.priority-index__arrow{position:static;margin-left:auto}
  .priority-row h3{font-size:3.125rem}.priority-row{padding-block:2rem}
  .d-rail h2.label{font-size:5rem}.d-places{grid-template-columns:1fr;gap:2rem}.d-places .place img{aspect-ratio:3/2}.involved .cols{grid-template-columns:1fr;gap:3rem}
  .involved .slogan{font-size:clamp(6rem,22vw,9rem)}.involved .intro>.lead{margin-top:2rem}
  .involved .form{width:100%;grid-column:1;grid-row:auto}.fgrp--sub{margin-left:0}
  .foot-tagline{font-size:4rem}
}
@media(max-width:380px){.head__vol{display:none}.mark__for{font-size:1rem}.portrait-chapter h2{font-size:4.5rem}.community-scene h2{font-size:3.3rem}.form .frow{grid-template-columns:1fr}.hero__pause{top:calc(var(--head) + .5rem)}}
@media(max-height:560px) and (min-width:600px){.hero{--name:150px;min-height:680px}.portrait-chapter{min-height:760px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero__media{transform:none!important}}
@media(forced-colors:active){.portrait-chapter__photo,.community-scene__photo{display:none}.portrait-chapter__shade,.community-scene__shade{display:none}.portrait-chapter,.community-scene{background:Canvas;color:CanvasText}.portrait-chapter h2 span,.community-scene h2 span,.portrait-chapter .lead,.chapter-label{color:CanvasText}}

/* Community photographs keep their complete compositions and natural color. */
.community-journal{padding-block:var(--scene-space);border-bottom:1px solid var(--rule-paper)}
.community-journal__head{display:grid;grid-template-columns:minmax(0,16fr) minmax(0,9fr);gap:var(--gap);align-items:end;margin-bottom:clamp(1.75rem,3vw,3rem)}
.community-journal .chapter-label{color:var(--slate);margin-bottom:1rem}
.community-journal h2{font:850 clamp(3.5rem,6.5vw,6.5rem)/.9 var(--scene-display);text-transform:uppercase;letter-spacing:-.02em}
.community-journal h2 span{color:var(--red-deep)}
.community-journal__intro{font-size:clamp(1.0625rem,1.5vw,1.25rem);line-height:1.5;color:var(--slate);padding-bottom:.1rem;text-wrap:pretty}
.community-journal__photos{display:grid;grid-template-columns:minmax(0,16fr) minmax(0,9fr);gap:var(--gap);align-items:start}
.community-journal__figure{min-width:0}
.community-journal__figure img{width:100%;height:auto;background:var(--paper-2)}
.community-journal__figure figcaption{padding-top:1rem;line-height:1.5}
.community-journal__figure figcaption strong{display:block;font-size:1rem;font-weight:700}
.community-journal__figure figcaption span{display:block;margin-top:.2rem;font-size:.875rem;color:var(--slate);max-width:48ch}
@media(max-width:699px){
  .community-journal__head,.community-journal__photos{grid-template-columns:minmax(0,1fr)}
  .community-journal__head{gap:1.25rem}
  .community-journal__intro{max-width:32ch}
  .community-journal__photos{gap:2rem}
  .community-journal__figure figcaption{padding-top:.75rem}
}
@media(forced-colors:active){.community-journal h2 span,.community-journal__intro,.community-journal .chapter-label,.community-journal__figure figcaption span{color:CanvasText}}

/* Native signup: the disabled fieldset is the activation gate, including without JavaScript. */
.signup-wrap{min-width:0;align-self:start}
.signup-pending{margin-bottom:1.25rem;padding:1rem;border-left:2px solid var(--ink);background:var(--paper-2);font-size:var(--fs-sm);line-height:1.5}
.signup-wrap:has(#signup-gate:not(:disabled)) .signup-pending{display:none}
.form>noscript{grid-column:1/-1}
.form input[type=hidden],.form-honey{display:none!important}
.no-js .js-form-only{display:none}
.signup-wrap .privacy a{overflow-wrap:anywhere}
.form button:disabled{cursor:not-allowed}
.receipt{min-height:100svh;padding-block:clamp(4rem,12vh,8rem)}
.receipt .lead{margin-block:1.5rem;max-width:38rem}
.receipt .text-link{overflow-wrap:anywhere}

/* Static election information, using the existing campaign palette. */
.election-banner{background:var(--red-deep);color:var(--white);padding-block:clamp(2rem,4vw,3.5rem)}
.election-banner__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:1.5rem clamp(2rem,6vw,6rem);align-items:center}
.election-banner__eyebrow{font:600 .8125rem/1.5 var(--scene-body);margin-bottom:.5rem}
.election-banner h2{font:850 clamp(3rem,5vw,5.5rem)/.95 var(--scene-display);letter-spacing:-.02em;margin-bottom:.75rem}
.election-banner__date{font-size:1.125rem;font-weight:650;line-height:1.4}
.election-banner__hours{font-size:.875rem;margin-top:.25rem}
.election-banner__link{display:inline-flex;gap:1.5rem;align-items:center;min-height:44px;font-size:.9375rem;font-weight:700;text-decoration:none}
.election-banner__link span{font-size:1.5rem}
.election-banner__links p{font-size:.8125rem;line-height:1.6;max-width:39ch;margin-top:.5rem}
@media(max-width:767px){
  .election-banner__in{grid-template-columns:1fr;gap:1.5rem}
  .election-banner__links{border-top:1px solid rgba(255,255,255,.42);padding-top:.75rem}
}
@media(forced-colors:active){
  .election-banner{background:Canvas;color:CanvasText;--focus:Highlight}
  .election-banner__links{border-color:CanvasText}
}
