:root{--paper:#f7f4ec;--ink:#152a38;--muted:#53616b;--line:#d9ddd8;--blue:#233fce;--teal:#08756f;--orange:#ad4820;--white:#fff;--neutral-bg:#e9efff;--technical-bg:#e2f3ee;--advocacy-bg:#fff0e5;color-scheme:light;font-family:"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);scroll-padding-top:20px}
*{box-sizing:border-box}body{margin:0}a{color:var(--blue);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:5px}button{font:inherit;cursor:pointer}img{max-width:100%}[hidden]{display:none!important}.wrap{width:min(1180px,calc(100% - 72px));margin-inline:auto}.skip{position:absolute;left:20px;top:-100px;padding:12px;background:white;z-index:3}.skip:focus{top:12px}.masthead{display:flex;justify-content:space-between;gap:30px;align-items:center;min-height:116px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-weight:800;font-size:23px;line-height:1.1;letter-spacing:0}.brand-mark{display:grid;place-items:center;background:var(--blue);color:white;border-radius:50%;width:43px;height:43px;font-weight:500;font-size:30px}.brand-sub{display:block;font-size:10px;letter-spacing:.12em;margin-top:6px;font-weight:700}.masthead nav{display:flex;gap:26px;flex-wrap:wrap}.masthead nav a{font-size:14px;color:var(--ink);text-decoration:none;padding:10px 0}.masthead nav a:hover{text-decoration:underline}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:70px;padding-block:72px 60px;align-items:center}.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:800;margin:0 0 20px;color:var(--muted);line-height:1.6}h1{font-size:clamp(42px,4.6vw,65px);letter-spacing:0;line-height:1.15;margin:0 0 25px;font-weight:800}h1 span{color:var(--blue)}.lead{font-size:18px;line-height:1.65;max-width:560px;margin:0;color:var(--muted)}.hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:30px}.primary-button{display:inline-flex;align-items:center;gap:20px;color:white;background:var(--blue);padding:16px 20px;border-radius:5px;font-size:14px;font-weight:650;text-decoration:none}.primary-button:hover{background:#1831ae}.text-link{font-weight:600;font-size:14px}.legend-poster{background:#ece9df;padding:25px;border-radius:8px;transform:rotate(1deg);border:1px solid #e0ddd2}.poster-caption{font-size:20px;font-weight:700;line-height:1.25;margin-bottom:22px}.poster-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:clamp(20px,2.3vw,31px);font-weight:700;color:white;border-radius:5px;padding:16px 19px;margin:10px 0;letter-spacing:0}.poster-label span{font-size:32px;font-weight:400}.poster-neutral{background:var(--blue)}.poster-technical{background:var(--teal)}.poster-advocacy{background:var(--orange)}.legend-poster p{font-size:12px;margin:24px 0 0;color:var(--muted)}.independence{display:grid;grid-template-columns:190px 1fr;gap:26px;border-top:1px solid #c4cfed;border-bottom:1px solid #c4cfed;padding:22px 24px;background:#e9edfa;border-radius:6px}.independence strong{font-size:22px;line-height:1.12;letter-spacing:0;color:#173cb0}.independence p{margin:0;font-size:15px;line-height:1.65;max-width:840px}.community{padding-block:78px 66px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.section-head .eyebrow{margin-bottom:9px}h2{font-size:36px;letter-spacing:0;line-height:1.15;margin:0}.section-head>p{font-size:12px;line-height:1.65;color:var(--muted);text-align:right;margin:0}.section-intro{font-size:16px;line-height:1.65;max-width:800px;margin:18px 0 28px;color:var(--muted)}.filter-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:24px 0 25px;padding-block:15px;border-block:1px solid var(--line)}.filter-bar [role=group]{display:flex;flex-wrap:wrap;gap:6px}.filter-bar button{border:1px solid transparent;background:transparent;border-radius:4px;padding:10px 12px;color:var(--muted);font-size:13px;font-weight:600;min-height:42px}.filter-bar button:hover{background:#ece9e0}.filter-bar button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:white}.filter-bar p{font-size:12px;color:var(--muted);margin:0;white-space:nowrap}.site-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.site-card{min-width:0;background:var(--white);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.thumbnail{display:block;border-bottom:1px solid var(--line);background:#eef0f0;overflow:hidden}.thumbnail img{display:block;width:100%;aspect-ratio:8/5;object-fit:cover;object-position:top;transition:transform .16s}.thumbnail:hover img{transform:scale(1.025)}.card-body{padding:24px;display:flex;flex-direction:column;flex:1}.tag{display:inline-block;width:fit-content;border-radius:4px;font-size:11px;line-height:1.35;padding:6px 8px;font-weight:750}.tag.neutral{background:var(--neutral-bg);color:#2442b6}.tag.technical{background:var(--technical-bg);color:#08645e}.tag.advocacy,.tag.mixed{background:var(--advocacy-bg);color:#a2411b}.lens{font-size:11px;font-weight:650;color:var(--muted);margin:8px 0 0}.site-card h3{font-size:23px;line-height:1.18;letter-spacing:0;margin:15px 0 7px}.byline{font-size:12px;line-height:1.6;color:var(--muted);margin:0 0 18px}.purpose{font-size:14px;line-height:1.65;margin:0 0 17px}.position{font-size:13px;line-height:1.65;border-left:2px solid var(--line);padding-left:12px;margin:0 0 20px;color:#485862}.position strong{display:block;color:var(--ink);font-size:11px;letter-spacing:.03em;margin-bottom:4px}.card-links{display:flex;align-items:flex-start;flex-direction:column;gap:6px;margin-top:auto}.visit{font-size:14px;font-weight:700;display:inline-flex;align-items:center;min-height:35px;gap:8px}.evidence{font-size:11px;line-height:1.5;min-height:28px;display:inline-flex;align-items:center;color:var(--muted)}.thumbnail-note{font-size:12px;line-height:1.65;color:var(--muted);margin:22px 0 0}.official{background:#eeeee5;border-block:1px solid var(--line);padding-block:65px}.section-number{font-size:50px;line-height:1;color:#a9b6af;font-weight:650;letter-spacing:0}.official-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.official-card{min-width:0;padding:26px 0;border-top:1px solid #cfd4cb;display:flex;align-items:flex-start;gap:16px}.official-number{font-size:12px;color:#657666;padding-top:6px;font-variant-numeric:tabular-nums}.official-card h3{font-size:20px;line-height:1.25;letter-spacing:0;margin:13px 0 7px}.official-card .byline{margin-bottom:10px}.official-card p.description{font-size:14px;line-height:1.65;color:#485862;margin:0 0 13px}.official-links{display:flex;gap:17px;align-items:center;flex-wrap:wrap}.official-links a{font-size:13px;display:inline-flex;align-items:center;min-height:36px}.method{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-block:75px 55px}.method h2{font-size:32px}.method p{font-size:15px;line-height:1.75;color:var(--muted)}.method .eyebrow{font-size:11px;line-height:1.6;margin:0 0 13px}.definitions{margin:0}.definitions>div{padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.definitions>div:last-child{margin:0}.definitions dd{margin:10px 0 0;font-size:14px;line-height:1.7;color:var(--muted)}.reading-note{padding:27px 30px;border:1px solid var(--line);border-radius:6px;background:#fffdf7}.reading-note h2{font-size:22px}.reading-note p{font-size:14px;line-height:1.75;color:var(--muted);margin:12px 0 0}.footer{padding-block:38px 35px;margin-top:50px;border-top:1px solid var(--line)}.footer p{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 10px;max-width:850px}.footer strong{color:var(--ink);font-weight:650}.footer a{display:inline-block;font-size:12px;padding:10px 0}
@media(max-width:1000px){.hero{gap:35px}.site-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar{align-items:flex-start;flex-direction:column}.method{gap:40px}.poster-label{font-size:24px;padding-inline:14px}.hero-actions{gap:20px}.primary-button{padding-inline:15px}.wrap{width:calc(100% - 48px)}}
@media(max-width:700px){.masthead{min-height:100px;align-items:flex-start;padding-block:23px;gap:20px}.masthead nav{gap:4px 15px;justify-content:flex-end;max-width:210px}.masthead nav a{font-size:12px;padding:4px 0}.brand{font-size:20px}.brand-sub{font-size:8px}.brand-mark{width:35px;height:35px;font-size:25px}.hero{grid-template-columns:1fr;gap:34px;padding-block:43px 35px}.hero-copy{max-width:580px}h1{font-size:52px}.lead{font-size:16px}.legend-poster{transform:none;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.poster-caption{font-size:17px;grid-row:span 2;margin:0}.poster-label{font-size:17px;margin:0;padding:9px 12px}.poster-label span{font-size:22px}.poster-neutral{grid-column:2}.poster-technical{grid-column:2}.poster-advocacy{grid-column:2}.legend-poster p{font-size:11px;grid-column:1;grid-row:3;margin:0;line-height:1.5}.independence{grid-template-columns:1fr;gap:12px;padding:20px}.independence strong{font-size:20px}.independence strong br{display:none}.independence p{font-size:14px}.community{padding-block:48px}.section-head{align-items:flex-start;flex-direction:column;gap:13px}.section-head>p{text-align:left}.section-head>p br{display:none}.section-head>p br:after{content:' '}.section-head>p time{margin-right:5px}h2{font-size:30px}.section-intro{font-size:15px}.site-grid{gap:18px}.card-body{padding:19px}.site-card h3{font-size:21px}.official{padding-block:45px}.official-grid{grid-template-columns:1fr}.official .section-head{flex-direction:row;align-items:center}.section-number{font-size:39px}.method{grid-template-columns:1fr;gap:25px;padding-block:50px 35px}.method h2{font-size:30px}.reading-note{padding:23px}.footer{margin-top:35px}.thumbnail-note{font-size:11px}}
@media(max-width:480px){.wrap{width:calc(100% - 32px)}.masthead{gap:10px}.masthead nav{max-width:130px;gap:5px}.hero{padding-top:35px}h1{font-size:43px}.eyebrow{font-size:10px}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.site-grid{grid-template-columns:1fr}.card-body{padding:23px}.site-card h3{font-size:24px}.filter-bar button{padding:9px 10px;min-height:44px;font-size:12px}.visit,.official-links a{min-height:44px}.evidence{min-height:36px}.official-card{gap:12px}.official-number{font-size:11px}.legend-poster{padding:16px}.poster-label{font-size:15px;padding-inline:9px}.poster-caption{font-size:17px}.poster-label span{font-size:20px}.independence{padding:18px}.independence strong{font-size:20px}.section-head>p br{display:initial}.section-head>p time{margin-right:0}.thumbnail-note{line-height:1.75}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
@media print{.masthead nav,.filter-bar,.hero-actions,.legend-poster,.thumbnail,.skip{display:none!important}.site-card[hidden]{display:flex!important}.wrap{width:100%}.hero,.community,.official,.method{padding-block:20px}.hero,.method{display:block}.site-grid,.official-grid{grid-template-columns:1fr 1fr}.site-card,.official-card{break-inside:avoid}.site-card{box-shadow:none}a{color:inherit}.independence{margin-block:15px}.footer{margin-top:20px}.brand-mark{background:none;color:inherit}}

/* Preserve original logos and show selected features without further cropping. */
.staging-note{padding:9px 20px;text-align:center;background:#e2e8fa;color:#213a96;font-size:11px;font-weight:750;letter-spacing:.07em;line-height:1.5}
@media(min-width:701px){.staging-note{padding:4px 20px;font-size:10px;line-height:1.6}}
.staging-note span{font-weight:500;letter-spacing:0}
.thumbnail{color:var(--muted);text-decoration:none}
.thumbnail-stage{display:block;position:relative;width:100%;aspect-ratio:8/5;background:#f2f4f1;overflow:hidden}
.thumbnail .thumbnail-stage img{position:absolute;inset:0;width:100%;height:100%;max-width:none;aspect-ratio:auto;object-fit:contain;object-position:center;transition:none}
.thumbnail:hover .thumbnail-stage img{transform:none}
.visual-logo .thumbnail-stage{background:white}
.visual-logo .thumbnail-stage img{inset:28px;width:calc(100% - 56px);height:calc(100% - 56px)}
.thumb-right-way .thumbnail-stage{background:#fcf6ee}
.thumb-right-way .thumbnail-stage img{inset:0;width:100%;height:100%}
.thumb-data-explorer .thumbnail-stage{background:#151a20}
.thumb-right-size .thumbnail-stage{background:#f1f0e9}
.thumb-dli-explorer .thumbnail-stage,.visual-project .thumbnail-stage{background:white}
.thumbnail-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e5e8e4;padding:10px 15px;color:#5e6a72;font-size:11px;line-height:1.5;background:#fafbf8}
.thumbnail:hover .thumbnail-caption{color:var(--blue)}
@media(max-width:480px){.staging-note{font-size:10px}.staging-note span{display:block}.thumbnail-caption{padding-inline:18px}}
@media(max-width:700px){.site-grid{grid-template-columns:1fr}}

/* Compact numbered directory. */
.masthead{min-height:85px}
.hero{display:block;padding-block:32px 24px}
.hero h1{font-size:clamp(32px,4vw,47px);line-height:1.15;margin-bottom:10px;max-width:850px}
.hero .lead{font-size:16px;max-width:none}
.independence{display:block;padding:14px 18px}
.independence p{font-size:13px;line-height:1.6;max-width:none}
.independence strong{display:inline;font-size:13px;letter-spacing:0;line-height:inherit}
.community{padding-block:32px 38px}
.section-head h2{font-size:25px}
.section-head>p{font-size:11px}
.filter-bar{margin:16px 0 21px;padding-block:10px;gap:10px}
.card-body{padding:20px}
.card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:30px}
.project-number{font-size:24px;font-weight:800;letter-spacing:0;line-height:1;font-variant-numeric:tabular-nums}
.card-meta .tag{font-size:10px;text-align:right}
.site-card h3{font-size:22px;margin:12px 0 7px}
.title-link{color:var(--ink);text-decoration:none}
.title-link:hover{text-decoration:underline}
.out-arrow{font-size:.72em;color:var(--muted);white-space:nowrap}
.byline{font-size:12px;line-height:1.5;margin-bottom:12px}
.purpose{font-size:14px;line-height:1.6;margin-bottom:12px}
.project-details,.source-details,.label-details{font-size:13px;line-height:1.6;color:var(--muted)}
.project-details{margin-top:auto;border-top:1px solid #edf0eb;padding-top:6px}
summary{cursor:pointer;width:fit-content;color:var(--blue);padding:7px 0;font-size:12px;font-weight:600;min-height:34px}
summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.project-details p,.source-details p{font-size:13px;line-height:1.6;margin:8px 0}
.project-details .evidence{font-size:12px;min-height:32px}
.official{padding-block:32px}
.official-grid{margin-top:18px}
.official-card{padding:17px 0;display:block}
.official-card h3{font-size:18px;margin:0 0 5px}
.official-card .byline{font-size:11px;margin-bottom:9px}
.official-card .tag{font-size:10px;padding:4px 7px}
.source-details{margin-top:5px}
.official-links:empty{display:none}
.method{display:block;padding-block:25px 0}
.method .label-note{font-size:13px;margin:0 0 5px}
.label-details>summary{font-size:13px}
.definitions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:17px}
.definitions>div{padding-bottom:15px;margin-bottom:0}
.definitions dd{font-size:13px;line-height:1.6}
.label-details>p{font-size:12px;margin-block:12px}
.footer{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:24px;padding-block:16px}
.footer p{margin:0;font-size:11px}
@media(max-width:1000px){.filter-bar{flex-direction:row;align-items:center}}
@media(max-width:700px){.masthead{min-height:78px;padding-block:18px;align-items:center}.masthead nav{max-width:180px}.hero{padding-block:25px 20px}.hero h1{font-size:36px}.hero .lead{font-size:14px}.independence{padding:13px 15px}.community{padding-block:26px 32px}.section-head{gap:6px}.section-head h2{font-size:23px}.filter-bar{align-items:flex-start;flex-direction:column}.filter-bar button{font-size:12px;padding-inline:10px}.card-body{padding:20px}.site-card h3{font-size:23px}.definitions{grid-template-columns:1fr;gap:14px}.official{padding-block:28px}.official .section-head{display:block}.method{padding-top:22px}}
@media(max-width:480px){.hero h1{font-size:32px}.masthead nav{max-width:125px}.card-meta .tag{font-size:10px}.project-details summary,.source-details summary,.label-details summary{min-height:44px;display:list-item;padding-block:11px}.filter-bar{margin-top:13px}.filter-bar p{font-size:11px}.footer{margin-top:18px}}
.card-meta{padding:14px 20px;border-bottom:1px solid #edf0eb;min-height:53px}
.site-card .card-body h3{margin-top:0}

/* Categorical source map: fixed-size marks carry identifiers, not scores. */
.source-map{margin-top:22px;border-block:1px solid var(--line);padding-block:9px}
.source-map>summary{font-size:16px;font-weight:700;padding-block:11px;min-height:44px;color:var(--ink)}
.source-map>summary span{font-size:12px;font-weight:400;color:var(--muted)}
.source-graph{margin:5px 0 18px}
.source-graph figcaption{font-size:12px;line-height:1.65;color:var(--muted);margin-bottom:16px}
.map-columns,.map-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.map-columns span{padding:10px 4px;text-align:center;font-size:13px;font-weight:650;line-height:1.4}
.map-columns span:nth-child(1){color:var(--blue)}
.map-columns span:nth-child(2){color:var(--teal)}
.map-columns span:nth-child(3){color:var(--orange)}
.map-band h3{font-size:12px;font-weight:650;letter-spacing:.02em;line-height:1.5;margin:16px 0 8px;color:var(--muted)}
.map-row{border-block:1px solid var(--line)}
.map-cell{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-content:start;gap:10px;padding:14px 10px;min-height:85px}
.map-cell+.map-cell{border-left:1px solid var(--line)}
.map-cell.neutral{background:#eef2fc}
.map-cell.technical{background:#edf6f1}
.map-cell.advocacy{background:#fdf2e9}
.map-point{display:flex;align-items:center;justify-content:flex-start;gap:9px;border:0;border-radius:6px;width:100%;min-width:0;min-height:50px;height:auto;padding:5px 3px;text-align:left;background:transparent;color:var(--ink)}
.map-marker{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:50%;background:var(--muted);color:white;font-size:12px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.map-point.neutral .map-marker{background:var(--blue)}
.map-point.technical .map-marker{background:var(--teal)}
.map-point.advocacy .map-marker,.map-point.mixed .map-marker{background:var(--orange)}
.map-point-name{display:block;min-width:0;font-size:13px;line-height:1.4;font-weight:600;overflow-wrap:anywhere}
.map-point:hover{background:#ffffff80}
.map-point[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:1px}
.map-band-official .map-cell{background:#f1edf7}
.map-band-official h3{display:flex;align-items:center;gap:7px;color:#70449d}
.map-official-swatch{width:12px;height:12px;display:inline-block;border-radius:3px;background:#70449d}
.map-point.source-official .map-marker{background:#70449d;border-radius:7px}
.tag.map-official-tag{background:#eee6f7;color:#70449d}
.map-selection{padding:16px 0 0}
.map-selection-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.map-selection-title{font-size:18px;font-weight:700;line-height:1.4}
.map-selection-author{font-size:12px;line-height:1.6;color:var(--muted);margin:5px 0 7px}
.map-selection-summary{font-size:14px;line-height:1.65;margin:0 0 6px}
.map-selection-jump{display:inline-flex;align-items:center;min-height:36px;font-size:12px}
.source-code{display:inline-block;font-size:11px;line-height:1.5;padding:3px 5px;margin-right:4px;color:var(--muted);background:#e0e4db;border-radius:3px;vertical-align:middle;font-variant-numeric:tabular-nums}
@media(max-width:700px){.map-columns{display:none}.map-row{grid-template-columns:1fr}.map-cell{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;padding:12px}.map-cell+.map-cell{border-left:0;border-top:1px solid var(--line)}.map-cell::before{content:attr(data-category-label);grid-column:1/-1;display:block;font-size:12px;line-height:1.5;font-weight:650;margin-bottom:4px;color:var(--muted)}.map-selection-title{font-size:16px}.source-map{margin-top:18px}}
@media(max-width:480px){.map-cell{gap:6px 8px;padding:10px 8px}.map-point{gap:7px;padding:4px 2px;min-height:48px}.map-marker{width:30px;height:30px;flex-basis:30px;font-size:11px}.map-point-name{font-size:12px;line-height:1.45}.map-band h3{font-size:11px}.map-selection-jump{min-height:44px}.source-graph figcaption{font-size:11px}.map-point[aria-pressed=true]{outline-offset:0}}
@media print{.source-map{display:none}}

/* NewsOregon masthead and Portland artwork. */
.masthead{min-height:0;gap:24px;flex-wrap:wrap;padding-block:8px}
/* Logo lockup: state, then lettering over tagline. The lettering and tagline are one block,
   centered on the state's visual weight (2.4px below its box center), as the approved lockup
   centers its letters. The tagline is centered under the lettering, nudged 2px left because the
   script italic's ink leans right. Sizes come from split-newsoregon-lockup.py; --logo scales them. */
.brand{--logo:1;display:flex;align-items:center;gap:calc(11px*var(--logo));flex:0 0 auto;max-width:100%;line-height:0}
.brand a{text-decoration:none}
.brand-state img{display:block;width:calc(66.07px*var(--logo));height:calc(48.6px*var(--logo))}
.brand-text{display:flex;flex-direction:column;align-items:flex-start;gap:calc(5px*var(--logo));transform:translateY(calc(2.4px*var(--logo)))}
.brand-name img{display:block;width:calc(206.43px*var(--logo));height:calc(21.27px*var(--logo))}
.brand-tagline{position:relative;align-self:center;left:calc(-2px*var(--logo));color:#286449;font-family:'Segoe Print','Bradley Hand','Brush Script MT',cursive;font-size:13px;font-weight:700;font-style:italic;line-height:1;letter-spacing:0;white-space:nowrap}
.brand .brand-tagline:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.brand-tagline::after{content:'';position:absolute;inset:-3px -2px -12px}
.masthead nav{gap:8px 22px;max-width:none;justify-content:flex-start}
.masthead nav a{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;font-size:12px;line-height:1.4}
.masthead nav a[aria-current=page]{font-weight:750;text-decoration:underline;text-decoration-color:#6b8b74;text-decoration-thickness:2px;text-underline-offset:6px}
.hero-scene{--hero-art:url('/assets/versioned/b9a406b9419dc965/portland-bridge-hero.webp');background-color:#f5f0e3;background-image:linear-gradient(90deg,#f7f4ecde 0%,#f7f4ecbd 32%,#f7f4ec00 75%),var(--hero-art);background-size:cover;background-position:center 55%;border-bottom:1px solid #dce0d3}
.hero-scene .hero{padding-block:18px 22px;min-height:0}
.hero-copy{width:66%;max-width:690px}
.edition{font-size:11px;line-height:1.5;margin:0 0 12px;color:#455b57}
.edition a{color:inherit;text-decoration:none;font-weight:700}
.unofficial{font-family:'Segoe Print','Bradley Hand','Brush Script MT',cursive;font-size:42px;font-weight:700;font-style:italic;line-height:1.12;letter-spacing:0;color:#286449;display:table;transform:rotate(-4deg);margin:0 0 8px;padding-inline:0 10px;position:relative}
.unofficial::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:3px;background:#59816b;border-radius:60% 40%;transform:rotate(1deg)}
.hero-scene .hero h1{font-size:clamp(34px,3.8vw,48px);max-width:660px;margin:14px 0 12px;line-height:1.15}
.hero-scene .hero h1 span{display:block;color:#254d42}
.hero-scene .hero .lead{font-size:14px;color:#344b46;max-width:460px;line-height:1.6}
.guide-credit{font-size:12px;color:#344b46;margin:8px 0 0;line-height:1.6}
.guide-credit a{color:inherit;font-weight:650}
.independence{margin-top:18px;border:1px solid #cddbcf;background:#edf2e9}
.independence strong{color:#315a43}
.footer{display:flex;gap:10px 26px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-block:24px}
.footer p{margin:0;font-size:11px}
.footer nav{display:flex;gap:20px;flex-wrap:wrap}
.footer a{min-height:44px;display:inline-flex;align-items:center;font-size:12px;padding:7px 0}
.footer .review-date{width:100%;font-size:10px}
.content-page{padding-block:48px 36px;min-height:55vh}
.content-page>h1{font-size:clamp(34px,4.4vw,54px);max-width:850px;margin-bottom:20px;line-height:1.15}
@media(max-width:700px){.content-page>h1.about-title{font-size:clamp(23px,7.4vw,36px)}}
.content-page .eyebrow{color:#466750;margin-bottom:16px}
.page-intro{font-size:17px;line-height:1.7;color:var(--muted);max-width:720px;margin:0 0 30px}
.prose{max-width:730px}
.prose h2{font-size:23px;margin:32px 0 12px}
.prose p{font-size:16px;line-height:1.8;margin:12px 0;color:#43545d}
.prose ul{font-size:16px;line-height:1.55;margin:10px 0 16px;padding-left:22px;color:#43545d}
.prose li{margin:4px 0}
@media(max-width:700px){.prose ul{font-size:15px}}
.section-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:40px}
.section-links>a{display:block;padding:26px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);text-decoration:none}
.section-links>a:hover{border-color:#64826c}
.section-links h2{font-size:24px;line-height:1.2;margin-top:18px}
.section-links p{font-size:14px;color:var(--muted);line-height:1.7}
.section-links>a>span:last-child{font-size:13px;color:var(--blue);font-weight:650}
.section-kicker{font-size:10px;font-weight:750;letter-spacing:.06em;color:#526853}
.feedback-form{max-width:740px;padding:28px;background:white;border:1px solid var(--line);border-radius:8px}
.feedback-form label{display:block;font-size:14px;font-weight:650;line-height:1.5;margin:0 0 8px}
.feedback-form label span{font-size:12px;font-weight:400;color:var(--muted)}
.feedback-form input,.feedback-form textarea{width:100%;padding:12px;border:1px solid #aebbb2;border-radius:4px;font:inherit;line-height:1.5;color:var(--ink);background:#fff;margin-bottom:23px;min-height:46px}
.feedback-form textarea{resize:vertical}
.feedback-form input:focus,.feedback-form textarea:focus{outline:3px solid #c6d7ff;border-color:var(--blue)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form-trap{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.feedback-form button{border:0;min-height:48px}
.feedback-form button:disabled{opacity:.6;cursor:wait}
.privacy-note,.small-note{font-size:12px;color:var(--muted);line-height:1.7;margin:20px 0 0}
.form-status{padding:13px 16px;border-radius:4px;background:#eef1f6;font-size:14px;line-height:1.6;margin-bottom:0}
.form-success{background:#e6f3e6;color:#25522b}
.form-error{background:#fff0e7;color:#8c3514}
.draft-notice{max-width:730px;padding:14px 18px;background:#fff1d7;border:1px solid #e5ce9a;border-radius:4px;font-size:13px;line-height:1.6}
.news-list,.briefings{max-width:830px}
.news-card{padding:24px 0;border-top:1px solid var(--line)}
.news-card h2{font-size:24px;line-height:1.3;max-width:760px}
.news-card h2 a{color:var(--ink);text-decoration:none}
.news-card h2 a:hover{text-decoration:underline}
.news-card>p:last-child{font-size:14px;line-height:1.7;color:var(--muted)}
.news-meta,.news-author{font-size:12px;line-height:1.6;color:var(--muted);margin:0 0 12px}
.news-author{margin:10px 0 0}
.feed-status{max-width:830px;display:flex;gap:12px;align-items:flex-start;padding:16px 20px;border:1px solid #c6d4e3;border-radius:6px;background:#edf2f8;margin:0 0 34px}
.feed-status p{font-size:12px;line-height:1.75;margin:0;color:#41556b}
.feed-dot{flex:0 0 8px;height:8px;margin-top:7px;border-radius:50%;background:#556f96}
.feed-status.status-overdue{background:#fff2dc;border-color:#dfc38c}
.feed-status.status-overdue .feed-dot{background:#9d6a19}
.briefing{padding:26px 0;border-top:1px solid var(--line)}
.briefing-label{font-size:10px;font-weight:750;line-height:1.6;letter-spacing:.035em;color:#70449d;margin:0 0 14px}
.briefing h2{font-size:27px;line-height:1.25;margin-bottom:12px}
.briefing>p:not(.news-meta):not(.briefing-label){font-size:14px;line-height:1.75;color:var(--muted)}
.briefing-items{list-style:none;padding:0;margin:22px 0 0}
.briefing-items>li{padding:21px 24px;margin-top:16px;border:1px solid var(--line);border-radius:6px;background:#fff}
.briefing-items h3{font-size:19px;line-height:1.4;margin:0 0 10px}
.briefing-items p{font-size:14px;line-height:1.75;color:#43545d;margin:8px 0}
.briefing-items .briefing-why{font-size:13px;color:var(--muted)}
.briefing-items .briefing-sources{font-size:12px;margin-bottom:0}
.check-details{font-size:12px;line-height:1.75;color:var(--muted);margin-top:14px}
@media(max-width:1000px){.masthead{gap:8px}.masthead nav{width:100%;gap:6px 24px}.hero-copy{width:73%}.section-links{grid-template-columns:1fr}.section-links>a{padding:22px}}
@media(max-width:700px){.brand{--logo:.898}.masthead nav{gap:2px 19px}.masthead nav a{font-size:11px}.hero-scene{background-image:linear-gradient(90deg,#f7f4ecf5 0%,#f7f4ece8 62%,#f7f4ecb0 100%),var(--hero-art);background-size:cover,auto 210px;background-position:center,72% bottom;background-repeat:no-repeat}.hero-scene .hero{padding-block:18px 22px;min-height:0}.hero-copy{width:100%;max-width:none}.hero-scene .hero h1{font-size:38px}.unofficial{font-size:37px}.hero-scene .hero .lead{max-width:400px;font-size:14px}.edition{font-size:10px}.content-page{padding-top:32px}.content-page>h1{font-size:36px}.page-intro{font-size:15px}.prose p{font-size:15px}.feedback-form{padding:20px}.form-row{grid-template-columns:1fr;gap:0}.footer{display:block}.footer nav{gap:18px}.footer p{margin-bottom:8px}.news-card h2{font-size:22px}.feed-status{padding:14px}.briefing h2{font-size:24px}.briefing-items>li{padding:18px}}
@media(max-width:380px){.brand{--logo:.863}.masthead nav{gap:0 13px}.masthead nav a{font-size:10px}.hero-scene .hero h1{font-size:34px}.content-page>h1{font-size:32px}.hero-scene .hero{padding-bottom:22px}.feedback-form{padding:16px}}
@media(max-width:700px){.brand-tagline{font-size:12px}}
@media(max-width:380px){.brand-tagline{font-size:11.5px}}

/* Keep the complete guide heading on exactly two lines. */
.hero-scene .hero h1.closure-title{font-size:clamp(26px,3.2vw,40px);line-height:1.1;letter-spacing:0;margin-block:12px 10px;max-width:none}
.hero-scene .hero .closure-title .closure-title-line{display:block;color:#152e4d;white-space:nowrap}
.hero-scene .hero .closure-title .closure-title-line+.closure-title-line{margin-top:7px}
.closure-title .unofficial{display:inline-block;font-size:1em;line-height:1.15;margin:0 7px 0 0;padding:0 5px 0 0;color:#225d78;vertical-align:baseline}
.closure-title .unofficial::after{height:2px;background:#46a0af;bottom:-1px}
@media(max-width:700px){.hero-scene .hero h1.closure-title{font-size:clamp(25px,5.8vw,38px)}}
@media(max-width:380px){.hero-scene .hero h1.closure-title{font-size:clamp(23px,7.2vw,27px)}}

/* Full collection stays on its own page so the featured guide remains concise. */
.all-resources-link{display:inline-flex;align-items:center;min-height:48px;font-size:14px;font-weight:650;margin-top:20px}
.directory-tools{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;border-block:1px solid var(--line);padding-block:18px;margin-block:25px}
.directory-tools label{display:block;font-size:12px;line-height:1.5;font-weight:650;margin-bottom:6px}
.directory-tools input,.directory-tools select{font:inherit;font-size:14px;line-height:1.5;padding:11px;border:1px solid #aebbb2;border-radius:4px;min-height:46px;background:#fff;color:var(--ink);max-width:100%}
.directory-tools input{width:340px}
.directory-tools>p{font-size:12px;color:var(--muted);margin:0 0 14px}
.directory-list{max-width:1000px}
.directory-item{display:flex;gap:18px;padding:25px 0;border-bottom:1px solid var(--line);min-width:0}
.directory-item>div{flex:1;min-width:0}
.directory-number{display:grid;place-items:center;flex:0 0 36px;height:36px;min-width:36px;font-size:13px;font-weight:750;text-decoration:none;border-radius:50%;color:white;background:var(--ink)}
.directory-extra{background:#e5e9e2;color:#526853;font-size:13px;font-weight:650}
.directory-title{display:flex;gap:10px 20px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.directory-title h2{font-size:21px;line-height:1.3;max-width:700px;overflow-wrap:anywhere}
.directory-title h2 a{color:var(--ink);text-decoration:none}
.directory-title h2 a:hover{text-decoration:underline}
.tag.unassessed{background:#e9ede6;color:#526552}
.directory-byline,.directory-scope{font-size:12px;line-height:1.65;color:var(--muted);margin:8px 0}
.directory-scope{font-weight:650;color:#526552}
.directory-description{font-size:14px;line-height:1.7;margin:9px 0;color:#43545d}
.directory-item details,.other-directories{font-size:12px;line-height:1.8;color:var(--muted)}
.directory-evidence{display:flex;gap:8px 20px;flex-wrap:wrap}
.directory-evidence a{display:inline-flex;align-items:center;min-height:40px}
.directory-official{padding-block:38px;max-width:1000px}
.directory-official h2{font-size:25px}
.directory-official ul{padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:16px}
.directory-official li a{display:inline-flex;align-items:center;font-size:13px;line-height:1.6;min-height:44px;padding-block:8px}
@media(max-width:700px){.directory-tools{display:block}.directory-tools>div{margin-bottom:14px}.directory-tools input,.directory-tools select{width:100%}.directory-tools>p{margin:0}.directory-item{gap:12px}.directory-title h2{font-size:20px}.directory-title .tag{font-size:10px}.directory-official ul{grid-template-columns:1fr}.directory-title{gap:7px}}

/* Shared civic sections and the dated elections guide. */
.masthead{flex-wrap:wrap}
.home-topics{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:40px 0}.home-topic{display:block;min-width:0;padding:36px;border-radius:12px;background:#e7edf5;text-decoration:none;color:var(--ink);border:1px solid #c4d4e5}.home-topic h2{font-size:32px;line-height:1.2;margin:18px 0}.home-topic p{font-size:16px;line-height:1.7;margin-bottom:24px}.home-topic>span:last-child{font-weight:700}.election-topic{background:#e5f1ee;border-color:#b9d9cf}.home-topic:hover{box-shadow:0 6px 20px #152e4d14}
.election-date{display:flex;gap:16px 28px;flex-wrap:wrap;border-left:5px solid #27836b;background:#e8f0ed;padding:18px 22px;margin:28px 0;font-size:13px;line-height:1.6}.election-date strong{letter-spacing:.08em}.election-area-links h2{font-size:25px}.voter-essentials{margin:40px 0}.voter-essentials h2{font-size:25px}.voter-essentials>div{display:flex;flex-wrap:wrap;gap:8px 25px;margin-top:18px}.voter-essentials a{font-size:14px;min-height:44px;display:inline-flex;align-items:center}
.topic-tabs{display:flex;flex-wrap:wrap;gap:8px 24px;border-block:1px solid var(--line);padding:12px 0;margin:24px 0 28px}.topic-tabs a{font-size:13px;line-height:1.6;display:inline-flex;align-items:center;min-height:40px;text-decoration:none;font-weight:600}.topic-tabs a[aria-current]{color:#145a72;text-decoration:underline;text-underline-offset:6px}
.race-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:30px 0}.race-card{padding:26px;background:#fff;border:1px solid var(--line);border-radius:10px;min-width:0}.race-card h2{font-size:25px;line-height:1.25;margin:10px 0}.candidate-list{list-style:none;padding:0;margin:20px 0}.candidate-list li{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid #e9edf0;font-size:13px;line-height:1.55}.candidate-list strong{font-weight:650}.candidate-list small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.candidate-source{text-align:right;font-size:11px;max-width:45%}.candidate-list .candidate-advocacy{color:#955318;font-size:10px}.race-card details,.completed-election details{font-size:12px;line-height:1.8;color:var(--muted)}.race-card summary,.election-source summary,.completed-election summary{cursor:pointer;padding:8px 0;min-height:40px}.completed-election{border-left:5px solid #7160a4;padding:22px 28px;background:#eeeaf4;margin:32px 0}.completed-election h2{font-size:25px;margin:12px 0}.completed-election p{font-size:14px;line-height:1.8}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:12px;border-bottom:1px solid #ccc4da;vertical-align:top}td a{overflow-wrap:anywhere}
.source-group{margin:40px 0}.source-group>h2{font-size:25px;margin-bottom:20px}.election-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.election-source{padding:22px;border:1px solid var(--line);border-radius:8px;background:#fff;min-width:0}.election-source h3{font-size:18px;line-height:1.4;margin:15px 0 10px}.election-source h3 a{text-decoration:none;overflow-wrap:anywhere}.election-source details{font-size:12px;line-height:1.8;color:var(--muted)}.election-source .tag.official{background:#e8e1f6;color:#5a3f86}.feed-warning{background:#fff2dc;border-color:#e0be7f}.feed-warning .feed-dot{background:#a16416}
@media(max-width:1000px){.election-sources{grid-template-columns:repeat(2,minmax(0,1fr))}.race-list{grid-template-columns:1fr}.home-topic{padding:25px}.home-topic h2{font-size:27px}}
@media(max-width:700px){.home-topics,.election-sources{grid-template-columns:1fr}.home-topics{margin:26px 0}.home-topic{padding:25px}.race-card{padding:20px}.race-card h2{font-size:23px}.topic-tabs{gap:5px 20px}.topic-tabs a{font-size:12px}.election-date{display:block;padding:16px}.election-date span{display:block;margin-top:7px}.completed-election{padding:20px}.election-source{padding:20px}.candidate-list li{font-size:13px}}

/* Brand downloads and the retained comparison-layout styles. */
.race-list-council{align-items:start}.race-summary{display:grid;grid-template-columns:minmax(200px,1fr) minmax(220px,1.2fr);gap:6px 26px;padding:16px 20px;margin:0 0 24px;border:1px solid var(--line);border-radius:8px;background:#f0f3f5}.race-summary h2{font-size:20px;line-height:1.3;margin:0}.race-summary .small-note{font-size:12px;line-height:1.5;margin:4px 0 0}.race-summary-people{align-self:center}.race-summary-person{display:flex;gap:8px 22px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:14px;line-height:1.6}.race-summary-person a{font-size:12px;min-height:36px;display:inline-flex;align-items:center}.race-summary details{grid-column:1/-1;font-size:12px;line-height:1.8;color:var(--muted)}.race-summary summary{min-height:36px;padding:6px 0;cursor:pointer}.race-summary details p{margin:6px 0}
@media(max-width:700px){.race-summary{grid-template-columns:1fr;gap:8px;padding:16px 18px}.race-summary h2{font-size:19px}.race-summary-person a{min-height:44px}.race-summary summary{min-height:40px}}
.brand-selected{max-width:850px;margin:35px 0;padding:32px 24px;border:1px solid var(--line);background:#fff;border-radius:10px}.brand-selected img{display:block;width:100%;height:auto}
.brand-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:30px 0 35px}.brand-option{min-width:0;border:1px solid var(--line);background:#fff;padding:24px;border-radius:10px}.brand-option-a{border-color:#93b5e0}.brand-option-label{font-size:10px;letter-spacing:.08em;font-weight:750;color:#2363db;line-height:1.6;margin:0 0 12px}.brand-option h2{font-size:23px}.brand-option-art{display:flex;align-items:center;justify-content:center;min-height:180px;border-block:1px solid #edf0f2;margin:18px 0}.brand-option-art img{width:100%;height:auto;max-height:145px;object-fit:contain}.brand-option>p:not(.brand-option-label){font-size:14px;line-height:1.7;color:var(--muted)}.brand-option details{font-size:12px;line-height:1.7}.brand-option summary{min-height:44px;padding:10px 0;cursor:pointer}.brand-option-small{overflow:auto;padding:12px 0}.brand-option-small img{width:280px;max-width:none;height:52px;object-fit:contain;object-position:left center}.brand-option-downloads{display:flex;gap:22px;margin-top:12px}.brand-option-downloads a{font-size:12px;min-height:44px;display:inline-flex;align-items:center}
@media(max-width:1000px){.brand-options{grid-template-columns:1fr}.brand-option-art img{width:min(100%,620px)}.brand-option-art{min-height:160px}.brand-option-small{max-width:100%}}

/* Six distinct illustrated landings; independent resources lead navigation. */
.masthead nav[aria-label="Main navigation"] a:nth-child(n+2):nth-child(-n+3){font-weight:750;color:#173e58}
.hero-home{--hero-art:url('/assets/versioned/9436bd9e154ae3fc/hero-home-compact-v2.webp')}
.hero-about{--hero-art:url('/assets/versioned/06b5f1dc1d7721c6/hero-about-compact-v2.webp')}
.hero-pps{--hero-art:url('/assets/versioned/6efe64fbc02cd345/hero-pps-compact-v2.webp')}
.hero-elections{--hero-art:url('/assets/versioned/7e11e117577b6ed1/hero-elections-compact-v2.webp')}
.hero-other-elections{--hero-art:url('/assets/versioned/cfca235b1b5a6984/hero-other-elections-compact-v2.webp')}
.hero-feedback{--hero-art:url('/assets/versioned/1559064021304496/hero-feedback-compact-v2.webp')}
.key-dates{display:flex;flex-wrap:wrap;gap:8px 28px;padding-block:14px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.7}
.voting-essentials{border:1px solid var(--line);border-radius:7px;background:#eeeee5;padding:20px 24px;margin:22px 0}
.voting-essentials h2{font-size:23px}.voting-essentials ul{display:grid;grid-template-columns:1fr 1fr;gap:10px 28px;padding-left:18px;font-size:13px;line-height:1.7;margin:14px 0}.voting-essentials li:first-child{grid-column:1/-1}
.voting-essentials .small-note{margin-bottom:0}.start-here{display:flex;gap:15px 28px;flex-wrap:wrap;align-items:center;padding-block:20px;border-bottom:1px solid var(--line);font-size:13px;line-height:1.7}.start-here strong{font-size:14px}
.candidate-page-body{padding-top:1px}.candidate-comparisons{font-size:13px;line-height:1.8;margin-block:18px}.review-note{border-left:3px solid #ad4820;padding:10px 15px;background:#fff0e5}.original-source-link{font-size:12px}
@media(max-width:700px){.voting-essentials{padding:18px}.voting-essentials ul{grid-template-columns:1fr}.key-dates{display:block}.key-dates>span{display:block}.start-here{display:grid;gap:10px}}
.guide-page{min-height:55vh;padding-bottom:30px}
.guide-page .hero-scene .hero{padding-block:18px 22px}
.guide-home-section{padding-block:30px 10px}
.guide-home-section .section-head h2{font-size:25px}
.guide-home-section .home-topics{margin:20px 0 10px}
.guide-home-section .home-topic{padding:0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:8px}
.home-topic>img{display:block;width:100%;height:140px;object-fit:cover;object-position:70% 57%;border-bottom:1px solid var(--line)}
.home-topic-copy{padding:24px 28px}
.home-topic-copy h2{font-size:28px;line-height:1.2;margin:12px 0}
.home-topic-copy p{font-size:14px;line-height:1.7;margin-bottom:17px}
.home-topic-copy>span:last-child{font-size:13px;font-weight:700;color:var(--blue)}
.guide-secondary-nav .topic-tabs{margin:20px 0 0}
.resource-label-note{font-size:12px;line-height:1.7;color:var(--muted);max-width:780px;margin:14px 0 20px}
.guide-resource-card .card-body{display:flex;flex-direction:column;flex:1;min-width:0}
.resource-domain{font-size:10px;line-height:1.6;letter-spacing:.04em;color:#60736c;margin:0 0 12px;overflow-wrap:anywhere}
.guide-resource-card h3{line-height:1.25}
.guide-resource-card .tag{max-width:75%;line-height:1.5;white-space:normal}
.guide-resource-card .project-details{margin-top:auto}
.source-official-tag{background:#eee6f7;color:#70449d}
.election-reporting-directory{padding-top:2px}
@media(max-width:700px){
 .guide-page .hero-scene .hero{padding-block:18px 22px}
 .guide-home-section{padding-top:25px}
 .guide-home-section .section-head h2{font-size:23px}
 .home-topic>img{height:115px}
 .home-topic-copy{padding:22px}
 .home-topic-copy h2{font-size:26px}
 .guide-secondary-nav .topic-tabs{gap:3px 18px;margin-top:16px}
 .resource-label-note{font-size:11px}
}

/* Keep the destination visible before an off-site link is opened. */
.external-destination{display:inline-block;max-width:100%;margin:3px 0 3px 6px;padding:2px 6px;border:1px solid #cbd7d1;border-radius:4px;background:#f1f6f3;color:#365a49;font:500 12px/1.5 "Segoe UI",sans-serif;letter-spacing:0;text-transform:none;vertical-align:middle;overflow-wrap:anywhere;white-space:normal}
.external-host{overflow-wrap:anywhere}
.external-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
h2 .external-destination,h3 .external-destination,.map-selection-title .external-destination{display:block;width:fit-content;margin:6px 0 0}
.external-link .out-arrow{display:none}
.thumbnail .external-destination{display:block;margin:0;padding:6px 10px;border-width:1px 0 0;border-radius:0}
.visit.external-link,.evidence.external-link,.official-links .external-link{flex-wrap:wrap;min-width:0}
.footer .external-link-note{flex-basis:100%;margin-top:0;font-size:12px;line-height:1.6;color:var(--muted)}

.purpose-jumps{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 30px}
.purpose-jumps a{padding:9px 12px;border:1px solid #d6ded8;border-radius:5px;background:#fff;text-decoration:none;font-size:13px;color:var(--ink)}
.purpose-jumps span,.group-count{color:var(--muted);font-size:13px;font-weight:500;margin-left:6px}
.resource-group{margin:32px 0 44px;scroll-margin-top:20px}
.resource-group[hidden],.pps-entry[hidden]{display:none!important}
.reporting-tabs{max-width:850px;margin-top:26px}
.reporting-tablist{display:flex;gap:8px;margin:0 0 22px;border-bottom:1px solid var(--line)}
.reporting-tab{padding:13px 18px;border:1px solid var(--line);border-bottom:3px solid transparent;border-radius:6px 6px 0 0;background:#f0f1eb;color:var(--muted);font-size:14px;font-weight:650;line-height:1.45}
.reporting-tab[aria-selected="true"]{background:var(--neutral-bg);color:var(--ink);border-bottom-color:var(--blue)}
.reporting-panel{min-width:0}
.reporting-automation{padding:16px 18px;margin:0 0 24px;border:1px solid #d6dfdf;border-radius:6px;background:#eef3f3;color:#43545d;font-size:13px;line-height:1.75}
.reporting-panel>.small-note{margin:12px 0 24px}
@media(max-width:700px){.reporting-tablist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.reporting-tab{padding:12px 8px}.reporting-automation{padding:14px;font-size:12px}}
.resource-group .section-head{margin-bottom:6px}
.resource-group-intro{font-size:14px;color:var(--muted);margin:0 0 18px;line-height:1.65}
.pps-entry-list{display:grid;gap:14px}
.pps-entry{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:20px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:8px;align-items:start;scroll-margin-top:20px;min-width:0}
.pps-entry-copy{min-width:0}.pps-entry-no-preview .pps-entry-copy{grid-column:1/-1}
.pps-entry h3{font-size:22px;line-height:1.3;margin:0 0 9px}.pps-entry h3 a{color:var(--ink);text-decoration:none}.pps-entry h3 a:hover{color:var(--blue)}
.pps-entry .directory-number{position:static;min-width:0;width:auto;padding:0;font-size:17px;line-height:1.8;background:none;border:0;color:#61766a}
.pps-entry .directory-description{font-size:15px;line-height:1.65;margin:10px 0 12px}
.pps-entry .directory-byline{font-size:13px;line-height:1.6;margin:0 0 4px;overflow-wrap:anywhere}
.pps-entry .directory-scope{font-size:12px;line-height:1.6;margin:0;color:var(--muted)}
.pps-entry .project-details{margin-top:14px}.pps-entry .project-details p{font-size:13px;line-height:1.7}
.pps-entry .directory-evidence{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.pps-entry-preview{border:1px solid var(--line);border-radius:5px;min-width:0}.pps-entry-preview .thumbnail-caption{font-size:10px;padding:6px 8px}
.pps-entry-preview .external-destination{font-size:10px;padding:5px 7px}
.purpose-source-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.purpose-map-group{border:1px solid var(--line);border-radius:6px;padding:14px;background:#fff;min-width:0}
.purpose-map-group h3{font-size:14px;margin:0 0 12px}.purpose-map-points{display:flex;flex-wrap:wrap;gap:7px}
.purpose-map-points .map-point{position:static;display:flex;align-items:center;gap:5px;width:auto;max-width:100%;padding:7px 9px;font-size:12px;white-space:normal;text-align:left}
@media(max-width:700px){
 .pps-entry{grid-template-columns:minmax(0,1fr);gap:10px;padding:16px}
 .pps-entry h3{font-size:20px}.pps-entry-preview{grid-column:1;width:170px;max-width:100%}
 .purpose-source-map{grid-template-columns:1fr}.resource-group .section-head h2{font-size:23px}
 .purpose-jumps a{font-size:12px;padding:8px 10px}
}
/* Stable layout between pages: reserve scrollbar space, and size each menu item for its bold (active) weight. */
html{scrollbar-gutter:stable}
.masthead nav a[data-label]{display:inline-flex;flex-direction:column;justify-content:center;align-items:center}
.masthead nav a[data-label]::after{content:attr(data-label);font-weight:750;height:0;overflow:hidden;visibility:hidden;pointer-events:none;user-select:none}
.footer .tagline a{display:inline;min-height:0;padding:0;color:inherit;text-decoration:none}
.footer .tagline a:hover strong{text-decoration:underline;text-decoration-thickness:1px}
/* About page body under its illustrated banner. */
.about-body{padding-block:30px 36px;min-height:40vh}
/* Collection disclosure: readable full prompt without horizontal overflow. */
.collector-settings { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(0, 3fr); gap: .5rem 1rem; }
.collector-settings dt { font-weight: 700; }
.collector-settings dd { margin: 0; overflow-wrap: anywhere; }
.collection-prompt { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; line-height: 1.6; padding: 1rem; background: #f3f5f7; border-radius: .4rem; }
@media (max-width: 480px) { .collector-settings { grid-template-columns: 1fr; } .collector-settings dd { margin-bottom: .6rem; } }
/* October 26: compact page tops with complete, right-aligned 5:1 scenes at banner height,
   one section bar per main section, Mostly Neutral / Advocacy / Official directory tabs, and a side rail
   for the latest news, directory links and side promos (voting, key dates). */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.section-banner.hero-scene{box-sizing:border-box;min-height:112px;background-color:var(--paper);background-image:linear-gradient(90deg,#f7f4ec 0%,#f7f4ec 50%,#f7f4ec00 70%),var(--hero-art);background-size:100% 100%,auto 112px;background-position:0 0,right top;background-repeat:no-repeat;border-bottom:0}
.section-banner-copy{padding-block:26px 20px}
@media(min-width:701px){
 /* Center every headline in the fixed banner; optional notes cannot move it. */
 .section-banner .section-banner-copy{box-sizing:border-box;height:112px;min-height:112px;padding-block:12px;display:grid;align-items:center;position:relative}
 .section-banner .section-title{margin-block:0;text-box:trim-both cap alphabetic;max-width:none;white-space:nowrap}
 .section-banner .section-note{position:absolute;left:0;bottom:4px;margin:0;max-width:100%}
}
@media(min-width:701px) and (max-width:860px){.section-banner .section-note{font-size:11px}}
/* The complete 5:1 scene is 560 px wide at 112 px high; desktop never crops its top or bottom. */
.section-banner .edition{margin:0;font-size:11px;line-height:1.5}
.section-title{font-size:clamp(28px,2.8vw,38px);line-height:1.18;letter-spacing:0;font-weight:800;margin:6px 0 6px;max-width:820px}
.section-title .unofficial{display:inline-block;font-size:1em;line-height:1.05;margin:0 .2em 0 0;padding:0 4px 0 0;color:#225d78;vertical-align:baseline;position:relative;top:2px}
.section-title .unofficial::after{height:2px;background:#46a0af;bottom:-1px}
.section-note{font-size:13px;line-height:1.55;color:#2c433e;margin:0;max-width:640px}
.section-note strong{color:var(--ink)}
.section-nav-bar{background:#fbfaf6;border-block:1px solid var(--line)}
.section-nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.section-nav::-webkit-scrollbar{display:none}
.section-nav a{display:inline-flex;align-items:center;gap:8px;min-height:50px;padding:0 16px;margin-bottom:-1px;border-bottom:3px solid transparent;color:#2f4652;font-size:15px;font-weight:650;line-height:1.2;text-decoration:none;white-space:nowrap}
.section-nav a:first-child{padding-left:0}
.section-nav a:hover{color:var(--blue)}
.section-nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--blue)}
.live-dot{flex:none;display:inline-block;width:8px;height:8px;border-radius:50%;background:#1f8f4e;box-shadow:0 0 0 3px #1f8f4e26}
.section-lede{font-size:13px;line-height:1.6;color:var(--muted);max-width:760px;margin:0 0 16px}
.reporting-panel>h2,.reporting-panel .news-list>h2{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.section-main .reporting-tabs{margin-top:0;max-width:none}
.section-main .reporting-automation{padding:10px 14px;font-size:12px;line-height:1.6;margin-bottom:6px}
.section-main .reporting-panel .news-list>.small-note:first-of-type{margin-top:12px}
.section-main #feed-live .feed-status{max-width:none}

/* Section content uses one column without promotional side rails. */
.section-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;align-items:start;padding-block:22px 44px;min-height:40vh}
.section-main{min-width:0}
.side-rail{display:grid;gap:18px;align-content:start;min-width:0}
.news-rail,.rail-card,.promo{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 18px}
.news-rail-head h2,.rail-card h2{display:flex;align-items:center;gap:10px;font-size:17px;line-height:1.3;margin:0}
.rail-card .home-chips{margin:12px 0 4px}
.latest-status{font-size:10px;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:8px 0 2px;line-height:1.5}
.latest-list{list-style:none;margin:0;padding:0}
.latest-list .news-meta{font-size:11px;margin:0 0 3px}
.latest-list h3,.latest-list h4{font-size:15px;line-height:1.4;font-weight:650;margin:0}
.latest-list h3 a,.latest-list h4 a{color:var(--ink);text-decoration:none}
.latest-list h3 a:hover,.latest-list h4 a:hover{text-decoration:underline}
.latest-list .external-destination{display:block;width:fit-content;margin:5px 0 0;font-size:11px}
.rail-cta{display:flex;justify-content:center;align-items:center;min-height:44px;margin-top:8px;border-radius:7px;background:var(--ink);color:#fff;font-size:14px;font-weight:700;text-decoration:none}
.rail-cta:hover{background:#21445a}
.home-chips{display:flex;flex-wrap:wrap;gap:8px}
.home-chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 11px;border:1px solid #d6dbd4;border-radius:8px;background:#fbfaf6;color:var(--ink);font-size:14px;font-weight:650;text-decoration:none}
.home-chip:hover{border-color:#7f9884;background:#fff}

/* Directory tabs. */
.dir-tabbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px}
.dir-tablist{display:inline-flex;gap:4px;padding:4px;background:#ebe9df;border:1px solid #dad7ca;border-radius:10px;max-width:100%;box-sizing:border-box}
.dir-tab{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:0;border-radius:7px;background:transparent;color:#3a4f5b;font:inherit;font-size:15px;font-weight:650;line-height:1.2;cursor:pointer;white-space:nowrap}
.dir-tab:hover{background:#f6f4ee;color:var(--ink)}
.dir-tab[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 1px 2px #152a3829,0 0 0 1px #152a3812}
.dir-count{display:inline-flex;justify-content:center;min-width:24px;padding:1px 7px;border-radius:999px;font-size:12px;font-weight:750;line-height:1.5;font-variant-numeric:tabular-nums;background:#e4e8ee;color:#2e4256}
.dir-tab-independent .dir-count,.home-chip-independent .dir-count{background:var(--neutral-bg);color:#233fa8}
.dir-tab-advocacy .dir-count,.home-chip-advocacy .dir-count{background:var(--advocacy-bg);color:#9a3f1b}
.dir-tab-official .dir-count,.home-chip-official .dir-count{background:#eee6f7;color:#5a3f86}
.dir-search{position:relative;flex:1 1 200px;max-width:320px}
.dir-search input{box-sizing:border-box;width:100%;min-height:44px;padding:0 14px;border:1px solid #b9c3bb;border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:14px}
.dir-search-count{position:absolute;top:100%;right:0;margin:4px 0 0;font-size:12px;color:var(--muted);white-space:nowrap}
.dir-search-count:empty{display:none}
.dir-panel-title,.home-dir-panel-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.dir-intro{font-size:13px;line-height:1.6;color:var(--muted);max-width:760px;margin:12px 0 16px}
.dir-group-title{display:flex;align-items:baseline;gap:4px;font-size:19px;line-height:1.3;margin:28px 0 4px}
.dir-panel>.resource-group:first-of-type .dir-group-title,.dir-panel .source-group-first .dir-group-title{margin-top:4px}
.dir-panel .resource-group-intro{font-size:13px;margin:0 0 12px}
.dir-panel .source-group{margin:30px 0 0}
.dir-panel .source-group-first{margin-top:0}
.dir-panel .site-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.section-main .election-sources{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.dir-panel .official-grid{margin-top:0}
.dir-panel .start-here{display:flex;flex-wrap:wrap;align-items:center;gap:2px 22px;padding:10px 16px;margin:0 0 14px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px}
.official-card[hidden]{display:none!important}
.is-searching .dir-panel[hidden]{display:block!important}
.is-searching .dir-panel.no-matches{display:none!important}
.is-searching .dir-panel-title{position:static;width:auto;height:auto;margin:26px 0 4px;overflow:visible;clip:auto;white-space:normal;font-size:21px}
.is-searching .dir-intro,.is-searching .start-here,.is-searching .resource-group-intro{display:none}
.section-main .source-map{margin-top:36px}
.section-main .method{padding-top:6px}
.directory-footnote{margin-top:28px}
.section-main .race-list{margin-top:18px}

.content-page>h1{font-size:clamp(30px,3.4vw,42px)}

/* Narrow desktops and laptops (about 860 to 1100 wide): stack card internals. */
@media(max-width:1100px){
 .section-layout{gap:24px}
 .pps-entry{grid-template-columns:minmax(0,1fr);gap:10px;padding:18px}
 .pps-entry-preview{grid-column:1;width:200px;max-width:100%}
 .dir-panel .site-grid,.section-main .election-sources,.section-main .race-list{grid-template-columns:1fr}
 .dir-tabbar{display:grid;grid-template-columns:minmax(0,1fr)}
 .dir-search{max-width:none}
 .dir-search-count{position:static;margin-top:6px;text-align:right}
}
@media(max-width:860px){
 .section-layout{grid-template-columns:1fr;gap:28px}
}
@media(max-width:700px){
 .section-banner.hero-scene{min-height:0;background-image:linear-gradient(90deg,#f7f4ecf0 0%,#f7f4ece3 62%,#f7f4ecb3 100%),var(--hero-art);background-size:100% 100%,auto 112px;background-position:0 0,75% top}
 .section-banner-copy{padding-block:16px 14px}
 .section-banner .edition{font-size:10px}
 .section-title{margin-block:4px}
 .section-note{font-size:12px}
 .section-nav{gap:16px}
 .section-nav a,.section-nav a:first-child{min-height:46px;padding:0;font-size:13.5px;gap:6px}
 .section-layout{padding-top:16px}
 .dir-tabbar{gap:10px}
 .dir-tablist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
 .dir-tab{flex-direction:column;justify-content:center;min-height:54px;padding:4px 4px 5px;font-size:14px;gap:3px}
 .dir-count{font-size:11px;line-height:1.4}
 .pps-entry-preview{width:170px}
}
@media(max-width:380px){.dir-tab{font-size:13px}.section-nav{gap:12px}.section-nav a,.section-nav a:first-child{font-size:13px}}

/* October 23, second review: masthead navigation beside the logo, announcement strips, home folder tabs,
   and alternating backgrounds wherever news articles are listed. */
@media(min-width:861px){
 .masthead{flex-wrap:nowrap}
 .masthead nav{width:auto;margin-left:auto;justify-content:flex-end;flex-wrap:nowrap;gap:6px 20px}
 .masthead nav a{white-space:nowrap}
}
/* October 25: Home joins the main navigation; keep all six items on one line at the owner's ~892 px laptop width. */
@media(min-width:861px) and (max-width:1000px){.masthead nav{gap:6px 14px}}
.announce-wrap{padding-top:14px}
.announce{border:1px solid #e3d6ab;border-radius:8px;background:#fff7e0;font-size:13px;line-height:1.45}
.announce-pps{background:#eef4ea;border-color:#cbdcc2}
.announce summary{display:flex;align-items:center;gap:10px;min-height:40px;padding:6px 12px;cursor:pointer;list-style:none}
.announce summary::-webkit-details-marker{display:none}
.announce-kicker{flex:none;padding:2px 8px;border-radius:999px;background:#7a5a10;color:#fff;font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;line-height:1.6}
.announce-pps .announce-kicker{background:#2f6a45}
.announce-text{flex:1;min-width:0;color:var(--ink)}
.announce-more{color:#5d4c22}
.announce-toggle{flex:none;font-size:12px;font-weight:700;color:var(--blue)}
.announce-toggle::after{content:' ▾'}
.announce details[open] .announce-toggle::after{content:' ▴'}
.announce-links{display:flex;flex-wrap:wrap;gap:0 22px;list-style:none;margin:0;padding:2px 12px 4px}
.announce-links li{min-height:36px;display:flex;align-items:center}
.announce .small-note{margin:0;padding:2px 12px 10px;font-size:11px}

.home-folders{padding-block:22px 6px}
.folder-tablist{display:flex;gap:6px;align-items:flex-end;margin-bottom:-1px;position:relative;z-index:1}
.folder-tab{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:52px;padding:9px 20px 8px;border:1px solid #d7d3c4;border-bottom-color:var(--line);border-radius:10px 10px 0 0;background:#ebe8dc;color:#3a4f5b;font:inherit;text-align:left;cursor:pointer}
.folder-tab:hover{background:#f3f1e9;color:var(--ink)}
.folder-tab[aria-selected=true]{background:#fff;color:var(--ink);border-color:var(--line);border-bottom-color:#fff;padding-top:12px}
.folder-tab-title{font-size:18px;font-weight:750;line-height:1.2}
.folder-tab-kicker{font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:#5f7268;line-height:1.4}
.folder-panel{background:#fff;border:1px solid var(--line);border-radius:0 10px 10px 10px;padding:16px 20px 20px}
.folder-panel-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.folder-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start;margin-top:16px}
.folder-part-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.folder-part-head h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;line-height:1.4;margin:0}
.folder-part-head h3 a{display:inline-flex;align-items:center;gap:9px;min-height:32px;color:var(--ink);text-decoration:none}
.folder-part-head h3 a:hover{text-decoration:underline}
.home-tablist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
.home-tablist .dir-tab{justify-content:center;padding:0 6px;font-size:14px;gap:6px;min-height:40px}
.home-dir-list{list-style:none;margin:10px 0 0;padding:0;column-gap:28px}
.home-dir-list li{break-inside:avoid}
.home-dir-list a{display:flex;gap:8px;align-items:baseline;padding:7px 0;border-top:1px solid #eceae2;color:var(--ink);font-size:14px;line-height:1.35;text-decoration:none}
.home-dir-list a:hover .home-dir-name{text-decoration:underline}
.home-dir-code{flex:none;min-width:28px;font-size:12px;color:#6b7c74;font-variant-numeric:tabular-nums}
.home-more{display:inline-flex;align-items:center;min-height:36px;font-size:13px;font-weight:700;color:var(--blue);text-decoration:none}
.home-more:hover{text-decoration:underline}
.folder-other{margin-top:6px}
.home-footnotes .small-note{margin:10px 0 0}
@media(min-width:1101px){.home-dir-list{columns:2}}
@media(max-width:760px){
 .folder-body{grid-template-columns:1fr;gap:22px}
 .folder-panel{padding:14px 14px 16px}
 .folder-tab{padding:8px 12px 7px;min-height:50px;flex:1}
 .folder-tab-title{font-size:15px}
 .announce summary{flex-wrap:wrap;gap:6px 10px}
 .announce-more{display:none}
}

/* News articles alternate between two background colors. */
.latest-list li{padding:10px 12px;border:0;border-radius:6px}
.briefing-items>li{padding:16px 18px;border:0;border-radius:8px}
.latest-list li:nth-child(odd),.briefing-items>li:nth-child(odd){background:#ffffff;box-shadow:inset 0 0 0 1px #ebe8df}
.latest-list li:nth-child(even),.briefing-items>li:nth-child(even){background:#eaf1f8}
.latest-list li+li,.briefing-items>li+li{margin-top:6px}
.subscription-note{margin-block:8px}
.news-topic-links{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:18px}
.news-list>.news-card{padding:16px 18px;border:0;border-radius:8px;margin-bottom:8px}
.news-list>.news-card:nth-of-type(odd){background:#ffffff;box-shadow:inset 0 0 0 1px #e6e3da}
.news-list>.news-card:nth-of-type(even){background:#eaf1f8}
.news-list>.news-card>p:last-child{margin-bottom:0}

/* See all news: compact headline rows with credits on one line when they fit. */
.all-news-page .content-body{padding-block:16px 28px}
.all-news-page .page-intro{max-width:none;font-size:14px;line-height:1.45;margin:0 0 6px}
.all-news-page .all-news-schedule{font-size:12px;line-height:1.5;margin:0 0 6px}
.all-news-page .news-topic-links{gap:4px 18px;font-size:13px;line-height:1.5;margin-bottom:10px}
.all-news-page .news-topic-links a{display:inline-flex;align-items:center;min-height:28px}
.all-news-page #coverage-live>.feed-status{display:block;max-width:none;font-size:12px;line-height:1.5;padding:8px 12px;margin:0 0 6px}
.all-news-page .subscription-note{font-size:12px;line-height:1.45;margin:6px 0}
.all-news-page .news-list{max-width:none}
.all-news-page .news-list>.small-note{font-size:12px;line-height:1.45;margin:6px 0 8px}
.all-news-page .news-list>.news-card{padding:9px 12px;margin-bottom:4px;border-radius:5px}
.all-news-page .news-card h3{font-size:16px;line-height:1.35;font-weight:650;margin:0;overflow-wrap:anywhere}
.all-news-page .news-card h3 a{color:var(--ink);text-decoration:none}
.all-news-page .news-card h3 a:hover{text-decoration:underline}
.all-news-page .news-card h3 .external-destination{display:inline-block;width:auto;font-size:10.5px;line-height:1.4;padding:0 5px;margin:0 0 0 6px}
.all-news-page .news-card .news-meta{font-size:12px;line-height:1.45;margin:3px 0 0}
@media(max-width:700px){
 .all-news-page .news-card h3{font-size:15px;line-height:1.4}
 .all-news-page .news-list>.news-card{padding:8px 10px}
}

/* Home: the existing section tabs retain three compact headlines above each directory. */
.section-title-home,.hero-home .section-title{font-size:clamp(30px,3.4vw,44px);max-width:none}
.folder-body{display:block;margin-top:12px}
.folder-news{margin-bottom:16px}
.folder-news .folder-part-head,.folder-directory .folder-part-head{margin-bottom:6px}
.latest-live-home .latest-status{margin:0 0 6px}
.latest-live-home .latest-list{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:0}
.latest-live-home .latest-list li{display:grid;grid-template-columns:190px minmax(0,1fr);gap:12px;align-items:start;padding:7px 10px}
.latest-live-home .latest-list li+li{margin-top:0}
.latest-live-home .latest-list h3,.latest-live-home .latest-list h4{font-size:13px;line-height:1.3}
.latest-live-home .latest-list .news-meta{font-size:10px;margin:0}
@media(max-width:700px){.latest-live-home .latest-list li{grid-template-columns:minmax(0,1fr);gap:2px}.latest-live-home .latest-list h3,.latest-live-home .latest-list h4{font-size:12px}}
/* Keep the headline row to one line of labels plus one row of cards. */
.folder-news{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:14px}
.folder-news>.folder-part-head,.latest-live-home{display:contents}
.folder-news>.folder-part-head h3{grid-column:1;grid-row:1}
.folder-news>.folder-part-head .home-more{grid-column:3;grid-row:1}
.latest-live-home .latest-status{grid-column:2;grid-row:1;margin:0}
.latest-live-home .latest-list{grid-column:1/-1;grid-row:2;margin-top:4px}
.latest-live-home .latest-list li{padding:8px 11px}
.latest-live-home .latest-list .external-destination{display:inline-flex;margin:0 0 0 7px;font-size:10px;padding:0 5px}
@media(max-width:700px){
 .folder-news{grid-template-columns:minmax(0,1fr) auto}
 .folder-news>.folder-part-head .home-more{grid-column:2}
 .latest-live-home .latest-status{grid-column:1/-1;grid-row:2}
 .latest-live-home .latest-list{grid-row:3}
}
/* Short windows retain compact folder tabs; all desktop banners share the same 112 px height. */
@media(max-height:760px) and (min-width:701px){
 .folder-tab{min-height:44px;padding:7px 18px 6px}
 .folder-tab[aria-selected=true]{padding-top:9px}
 .folder-panel{padding-top:12px}
 .folder-body{margin-top:10px}
 .folder-news{margin-bottom:10px}
}
/* Plain pages under the shared banner (hubs, feedback, AI disclosure, not found). */
.content-body{padding-block:26px 40px;min-height:40vh}
.content-body>.page-intro{margin-top:0}
.content-body>.topic-tabs:first-child{margin-top:0}

/* October 25 (owner request): on directory pages the latest news sits above the directory, in the same
   place and form as on the home page, and the directory takes the full width (no side rail). */
.directory-layout{grid-template-columns:minmax(0,1fr);gap:20px}
.directory-news{margin-bottom:0;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:10px}
.folder-part-head h2{font-size:12px;letter-spacing:.08em;text-transform:uppercase;line-height:1.4;margin:0}
.folder-part-head h2 a{display:inline-flex;align-items:center;gap:9px;min-height:32px;color:var(--ink);text-decoration:none}
.folder-part-head h2 a:hover{text-decoration:underline}
.folder-news>.folder-part-head h2{grid-column:1;grid-row:1;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.folder-news>.folder-part-head h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.beta-pill{display:inline-block;padding:1px 8px;border-radius:999px;background:#fff1d7;border:1px solid #e5ce9a;color:#6b4f12;font-size:10.5px;font-weight:700;letter-spacing:.02em;text-transform:none;line-height:1.6;white-space:nowrap}
/* October 25: reference numbers are no longer shown; source-map markers become small category-colored dots. */
.map-marker:empty{width:14px;height:14px;flex:0 0 14px;border-radius:50%}
.map-point.source-official .map-marker:empty{border-radius:3px}

/* October 25 mobile pass (owner: desktop first, then adapt phones). On phones, dense items that sat side by side
   now stack, and the masthead and banners take less of the first screen. Desktop and laptop widths are unchanged. */
@media(max-width:700px){
 /* Masthead: two compact rows of links instead of two tall, widely spaced rows. */
 .masthead{min-height:88px;padding-block:12px 6px;gap:6px}
 .masthead nav{gap:0 16px}
 .masthead nav a{min-height:36px;padding:4px 0}
 /* Banners: less empty space above and below the headline. */
 .section-banner-copy{padding-block:12px 12px}
 .hero-home .section-banner-copy{padding-block:12px}
 /* Announcement strips: label and toggle share the first line; the message gets the full width below. */
 .announce summary{flex-wrap:wrap;row-gap:4px;padding:8px 12px}
 .announce-kicker{order:1}
 .announce-toggle{order:2;margin-left:auto}
 .announce-text{order:3;flex:1 1 100%}
 /* Home folder tabs: titles only, so the two tabs stay short and readable. */
 .folder-tab-kicker{display:none}
 .folder-tab{min-height:44px;justify-content:center}
 /* Latest news: heading and label, status, the card row, then the link to the feed. */
 .folder-news{grid-template-columns:minmax(0,1fr);row-gap:4px}
 .folder-news>.folder-part-head h2,.folder-news>.folder-part-head h3{grid-column:1;grid-row:1}
 .latest-live-home .latest-status{grid-column:1;grid-row:2;font-size:10.5px}
 .latest-live-home .latest-list{grid-column:1;grid-row:3}
 .folder-news>.folder-part-head .home-more{grid-column:1;grid-row:4;justify-self:start}
 .directory-news{padding:12px}
 /* Candidate rosters: the name, then its official filing link on one line beneath. */
 .candidate-list li{flex-direction:column;align-items:flex-start;gap:2px}
 .candidate-source{max-width:none;text-align:left}
 .candidate-source .external-destination{display:inline-block;margin:0 0 0 6px}
}
/* Directory pages no longer have a side rail, so laptop widths have room for the preview beside the entry. */
@media(min-width:701px){.pps-entry{grid-template-columns:minmax(0,1fr) 190px}.pps-entry-preview{grid-column:2;width:auto}}

/* October 25 (owner review): the six main pages share one headline size, the banner note runs at the full
   text width instead of wrapping at a fixed 640 px, and About's text starts where Feedback's and the hubs' do. */
.section-title-home,.hero-home .section-title{font-size:clamp(28px,2.8vw,38px)}
.section-note{max-width:none;width:fit-content;background:rgba(247,244,236,.9);padding:2px 8px;margin-left:-8px;border-radius:6px}
@media(min-width:701px){.home-folders{padding-top:14px}}
.about-body{padding-top:26px}
.about-body .prose>h2:first-child{margin-top:0}
/* Phones retain the full title wording, omitting only the decorative Unofficial prefix. */
@media(max-width:700px){
 .section-banner .section-title{font-size:clamp(20px,5.65vw,22px);line-height:1.2;min-height:0;text-wrap:balance}
 .section-title .unofficial{display:none}
 .home-folders{padding-top:26px}
}
