.cinematic-home .legacy-opening{display:none!important}.cinematic-home #cinematic-track{position:relative;padding:0;min-height:100svh;background:var(--paper,#fff);color:var(--ink,#211a30);z-index:4}.scene-viewport{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate;background:var(--paper,#fff)}#scene-particles{position:absolute;inset:0;width:100%;height:100%;z-index:1}.scene-copy{position:absolute;z-index:2;top:50%;left:max(48px,calc((100vw - 1044px)/2));width:min(48%,620px);transform:translateY(-50%);opacity:0;pointer-events:none;will-change:transform,opacity}.scene-copy>div{transform:translateY(-50%)}.scene-copy a{pointer-events:auto}.scene-copy h1,.scene-copy h2{font:500 clamp(36px,4.3vw,68px)/1.14 Manrope,sans-serif;letter-spacing:-.045em;text-transform:uppercase;margin:20px 0 28px}.scene-copy p{font:400 14px/1.9 Manrope,sans-serif;color:var(--subtle,#655d73)}.scene-copy p+p{margin-top:20px}.scene-copy .eyebrow{font-size:9px;letter-spacing:2px;color:var(--accent,#493184);margin:0 0 18px}.scene-copy em{color:var(--accent,#493184)}.scene-intro{width:min(58%,780px);top:50%}.scene-intro .hero-actions{margin-top:30px}.scene-about{left:53%;width:min(40%,540px);top:50%}.scene-about h2{font-size:52px}.scene-about::before,.scene-objectives::before{content:"";position:absolute;inset:-35vh -50px;background:radial-gradient(ellipse,var(--paper,#fff) 10%,color-mix(in srgb,var(--paper,#fff) 92%,transparent) 60%,transparent 80%);z-index:-1;pointer-events:none}.scene-objectives{width:min(43%,565px);top:50%}.scene-objectives h2{font-size:52px}.scene-objectives p{font-size:13px;line-height:1.85}.scene-progress{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;color:var(--subtle,#655d73);font:500 8px/1.4 Manrope,sans-serif;letter-spacing:1.5px;z-index:3;white-space:nowrap}.scene-progress i{position:relative;display:block;width:80px;height:1px;background:var(--border,#ddd)}.scene-progress i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--progress,0%);background:var(--accent,#493184)}.scene-motion{position:absolute;bottom:22px;right:30px;border:1px solid var(--border,#ddd);color:var(--subtle,#655d73);background:var(--paper,#fff);padding:12px 16px;border-radius:28px;font:11px Manrope,sans-serif;z-index:3}.cinematic-home #fist-particles,.cinematic-home #people-dust{display:none!important}.cinematic-home.scene-opening-visible #map-stage{visibility:hidden;pointer-events:none}.cinematic-home #site-content{overflow-x:clip}.scene-copy .section-rule{margin-block:24px!important}.scene-copy .intro{max-width:630px;font-size:17px;line-height:1.8}
@media(max-width:991px){.scene-copy{left:36px;width:calc(100% - 72px)}.scene-intro{top:43%;text-align:center}.scene-intro .eyebrow{justify-content:center}.scene-intro .hero-actions{justify-content:center}.scene-about,.scene-objectives{top:28%;width:calc(100% - 72px)}.scene-copy>div{transform:translateY(-20%)}.scene-copy h1,.scene-copy h2{font-size:clamp(30px,5.5vw,48px)}.scene-copy p{font-size:13px;line-height:1.8}.scene-about::before,.scene-objectives::before{inset:-130px -40px -50px;background:linear-gradient(var(--paper,#fff) 55%,color-mix(in srgb,var(--paper,#fff) 90%,transparent) 90%,transparent)}}
@media(max-width:600px){.scene-copy{left:24px;width:calc(100% - 48px)}.scene-copy h1{font-size:30px}.scene-copy h2{font-size:34px}.scene-about,.scene-objectives{top:116px}.scene-about>div,.scene-objectives>div{transform:none}.scene-about p,.scene-objectives p{font-size:12px;line-height:1.8}.scene-copy h2{margin:0 0 22px}.scene-objectives .eyebrow{font-size:8px}.scene-objectives .section-rule{margin-block:18px!important}.scene-copy .intro{font-size:13px}.scene-copy .hero-actions{gap:18px;flex-wrap:wrap}.scene-progress{left:24px;transform:none;bottom:24px;gap:10px;font-size:6px;letter-spacing:1px}.scene-progress i{width:40px}.scene-motion{right:16px;bottom:16px;font-size:9px;padding:12px}.scene-about::before,.scene-objectives::before{inset:-40px -24px -30px}}

/* Visual titles dissolve separately from the persistent content headings. */
.scene-visual-label{position:absolute;z-index:3;transform:translateX(-50%);opacity:0;pointer-events:none;white-space:nowrap;text-align:center;font:500 25px/1.25 Manrope,sans-serif;text-transform:uppercase;letter-spacing:.04em;color:var(--ink,#211a30);will-change:opacity,filter}
@media(max-width:600px){.scene-visual-label{font-size:21px;letter-spacing:.02em}}
/* Fourth scene: keep the map pinned while the portfolio advances by state. */
.cinematic-home #map-stage{display:none!important}.scene-portfolio{position:absolute;inset:0;z-index:3;opacity:0;pointer-events:none}.scene-work-heading{position:absolute;left:max(48px,calc((100vw - 1044px)/2));top:120px}.scene-work-heading .eyebrow{font-size:9px;letter-spacing:2px;color:var(--accent);margin:0 0 12px}.scene-work-heading h2{font:500 44px/1.1 Manrope,sans-serif;letter-spacing:-.04em;text-transform:uppercase;color:var(--ink);margin:0}.scene-portfolio .state-panel{position:absolute;left:54%;top:130px;width:min(40%,530px);display:block;margin:0;pointer-events:auto;padding:0}.scene-portfolio .portfolio-selector{margin:0 0 12px}.scene-portfolio .portfolio-selector label{font-size:8px}.scene-portfolio .state-panel select{width:100%;min-height:42px;font:12px Manrope,sans-serif;color:var(--ink);background:var(--paper);border:1px solid var(--border);padding:9px 12px}.scene-portfolio .state-image{height:190px;margin:0 0 18px;overflow:hidden;border-radius:3px}.scene-portfolio .state-image img{width:100%;height:100%;object-fit:cover}.scene-portfolio .state-image figcaption{font-size:7px}.scene-portfolio .state-detail{padding:0}.scene-portfolio .state-detail>.eyebrow{font-size:8px;margin:0 0 8px}.scene-portfolio .state-detail h3{font-size:27px;margin:0 0 12px;line-height:1.15}.scene-portfolio .state-detail>p:not(.eyebrow){font-size:12px;line-height:1.7;color:var(--subtle);margin-bottom:16px}.scene-portfolio .state-detail h4{font-size:12px;margin:0 0 10px;line-height:1.4}.scene-portfolio #state-projects{font-size:10px;line-height:1.7}.scene-portfolio .portfolio-controls{margin-top:16px;gap:18px}.scene-portfolio .portfolio-controls button{width:40px;height:40px;pointer-events:auto}.scene-portfolio .portfolio-source{font-size:8px;margin-top:12px}.scene-portfolio-tabs{position:absolute;bottom:65px;left:max(48px,calc((100vw - 1044px)/2));right:max(48px,calc((100vw - 1044px)/2));pointer-events:auto}.scene-portfolio .state-tabs{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0 0;border-top:1px solid var(--border)}.scene-portfolio .state-tabs button{font:10px Manrope,sans-serif;min-height:40px;white-space:nowrap;color:var(--subtle);background:none;border:0;padding:8px;cursor:pointer}.scene-portfolio .state-tabs button[aria-pressed=true]{color:var(--accent)}
@media(max-height:760px) and (min-width:768px){.scene-portfolio .state-panel{top:110px}.scene-portfolio .state-image{height:130px;margin-bottom:14px}.scene-portfolio .state-detail h3{font-size:24px}.scene-portfolio .state-detail>p:not(.eyebrow){font-size:11px;margin-bottom:10px}.scene-portfolio #state-projects{font-size:9px}.scene-portfolio .portfolio-controls{margin-top:10px}.scene-work-heading{top:110px}}
@media(max-width:767px){.scene-work-heading{left:24px;top:101px}.scene-work-heading .eyebrow{font-size:7px;margin-bottom:8px}.scene-work-heading h2{font-size:30px}.scene-portfolio .state-panel{left:24px;right:24px;width:auto;top:55%;display:grid;grid-template-columns:88px minmax(0,1fr);gap:0 16px}.scene-portfolio .portfolio-selector{display:none}.scene-portfolio .state-image{grid-column:1;grid-row:1/3;height:164px;margin:0}.scene-portfolio .state-image figcaption{display:none}.scene-portfolio .state-detail{grid-column:2;grid-row:1;padding:0}.scene-portfolio .state-detail>.eyebrow{font-size:6px;letter-spacing:1px;margin-bottom:7px}.scene-portfolio .state-detail h3{font-size:21px;margin-bottom:8px}.scene-portfolio .state-detail>p:not(.eyebrow){font-size:10px;line-height:1.65;margin-bottom:8px}.scene-portfolio .state-detail h4{font-size:9px;line-height:1.5;margin-bottom:6px}.scene-portfolio #state-projects{font-size:8px;line-height:1.6}.scene-portfolio .portfolio-controls{grid-column:2;grid-row:2;margin-top:8px;gap:14px}.scene-portfolio .portfolio-controls button{width:36px;height:36px}.scene-portfolio .portfolio-source{grid-column:1/-1;grid-row:3;font-size:7px;margin-top:8px}.scene-portfolio-tabs{left:16px;right:16px;bottom:58px}.scene-portfolio .state-tabs{gap:4px;padding-top:8px}.scene-portfolio .state-tabs button{font-size:8px;padding:5px;min-height:34px}.scene-portfolio .state-tabs button::before{display:none}}

/* Mobile work cards: image first, then the complete state information. */
@media(max-width:767px){
 .scene-portfolio .state-panel{top:calc(var(--site-header-height,88px) + (100svh - var(--site-header-height,88px) - 80px)*.36);left:24px;right:24px;display:flex;flex-direction:column;gap:0;width:auto}
 .scene-portfolio .state-image{width:100%;height:clamp(100px,17svh,160px);flex:none;margin:0 0 12px;grid-column:auto;grid-row:auto}
 .scene-portfolio .state-detail{width:100%;grid-column:auto;grid-row:auto;text-align:left}
 .scene-portfolio .state-detail>.eyebrow{font-size:8px;margin-bottom:7px}
 .scene-portfolio .state-detail h3{font-size:24px;margin:0 0 8px}
 .scene-portfolio .state-detail>p:not(.eyebrow){font-size:11px;line-height:1.55;margin-bottom:10px}
 .scene-portfolio .state-detail h4{font-size:11px;line-height:1.45;margin-bottom:6px}
 .scene-portfolio #state-projects{font-size:9px;line-height:1.5}
 .scene-portfolio .portfolio-controls{margin-top:7px;font-size:8px}
 .scene-portfolio .portfolio-source{font-size:7px;margin-top:5px}
 .scene-portfolio-tabs{bottom:42px}
}
@media(max-width:767px) and (max-height:700px){
 .scene-portfolio .state-image{height:100px;margin-bottom:8px}
 .scene-portfolio .state-detail h3{font-size:21px;margin-bottom:6px}
 .scene-portfolio .state-detail>p:not(.eyebrow){font-size:10px;line-height:1.45;margin-bottom:7px}
 .scene-portfolio .state-detail h4{font-size:10px}
 .scene-portfolio #state-projects{font-size:8px}
 .scene-portfolio .portfolio-source{display:none}
}

/* Our Work on phones presents the image and details without the map. */
@media(max-width:767px){
 .scene-portfolio .state-panel{top:calc(var(--site-header-height,88px) + 104px)}
 .scene-portfolio .state-image{height:clamp(140px,26svh,240px);margin-bottom:16px}
 .scene-portfolio .state-detail>p:not(.eyebrow){font-size:12px;line-height:1.65}
 .scene-portfolio .state-detail h4{font-size:12px}
}
@media(max-width:767px) and (max-height:700px){
 .scene-portfolio .state-panel{top:calc(var(--site-header-height,88px) + 92px)}
 .scene-portfolio .state-image{height:clamp(110px,21svh,150px);margin-bottom:10px}
 .scene-portfolio .state-detail>p:not(.eyebrow){font-size:11px;line-height:1.5}
}

#scene-original-map{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}#scene-particles{z-index:2}.scene-copy,.scene-visual-label{z-index:3}

/* Political agency: editorial portrait index and disciplined typography. */
:is(.scene-about,.scene-objectives) .agency-copy h2{font-size:clamp(36px,4.1vw,66px);line-height:1.05;letter-spacing:-.045em;text-transform:none;margin:18px 0 24px;font-weight:600}:is(.scene-about,.scene-objectives) .agency-copy h2 em{font-family:Manrope,Arial,sans-serif;font-weight:400;color:var(--accent,#493184)}:is(.scene-about,.scene-objectives) .agency-copy .eyebrow{color:#d5ad68;font-size:10px;letter-spacing:2px}.agency-copy .agency-lead{font-size:19px;line-height:1.55;color:var(--ink)}.agency-copy>p:not(.eyebrow):not(.agency-lead){font-size:14px;line-height:1.8;max-width:460px}.agency-disciplines{display:flex;gap:16px;flex-wrap:wrap;border-top:1px solid #d5ad6840;padding-top:20px;margin:26px 0;font:600 9px/1.5 Manrope,sans-serif;letter-spacing:1.5px;color:#d5ad68}.agency-copy small{display:block;font:9px/1.6 Manrope,sans-serif;color:var(--subtle);margin-top:24px}.scene-portrait-label{font-size:14px!important;letter-spacing:4px!important;color:#d5ad68!important}
@media(max-width:767px){:is(.scene-about,.scene-objectives) .agency-copy h2{font-size:34px;margin:10px 0 14px}.agency-copy .agency-lead{font-size:14px}.agency-copy>p:not(.eyebrow):not(.agency-lead){font-size:11px;line-height:1.65}.agency-disciplines{margin:15px 0;padding-top:12px;gap:10px;font-size:8px}.agency-copy small{margin-top:12px;font-size:8px}:is(.scene-about,.scene-objectives) .agency-copy .eyebrow{font-size:8px}.scene-about{top:105px}.scene-portrait-label{font-size:10px!important;letter-spacing:2px!important}}

.agency-copy .agency-lead{font-weight:600}.scene-objectives .agency-copy>p:not(.eyebrow):not(.agency-lead){font-size:14px;line-height:1.8}
@media(max-width:767px){.scene-objectives .agency-copy>p:not(.eyebrow):not(.agency-lead){font-size:11px;line-height:1.65}}

/* Portfolio introduction shares the editorial hierarchy of About and Approach. */
.scene-work-heading.agency-copy{left:calc((100vw - min(100vw,var(--content-max)))/2 + var(--content-gutter));top:calc(var(--site-header-height,88px) + 28px);width:min(42%,520px)}
.scene-work-heading.agency-copy h2{font:600 clamp(30px,3.2vw,48px)/1.08 Manrope,Arial,sans-serif;letter-spacing:-.04em;margin:14px 0 18px}
.scene-work-heading.agency-copy h2 em{font-family:Manrope,Arial,sans-serif;font-weight:400;color:var(--accent)}
.scene-work-heading.agency-copy .agency-lead{font-size:15px;line-height:1.55;color:var(--ink);margin:0 0 10px}
.scene-work-heading.agency-copy>p:not(.eyebrow):not(.agency-lead){font-size:12px;line-height:1.7;color:var(--subtle);margin:0;max-width:420px}
@media(max-width:767px){.scene-work-heading.agency-copy{top:calc(var(--site-header-height,80px) + 20px);width:calc(min(100vw,var(--content-max)) - var(--content-gutter)*2)}.scene-work-heading.agency-copy h2{margin:10px 0 12px}.scene-work-heading.agency-copy .agency-lead{font-size:12px}.scene-work-heading.agency-copy>p:not(.eyebrow):not(.agency-lead){font-size:11px}.scene-portfolio .state-panel{top:max(340px,48svh)}}

/* One-screen portfolio: compact title, taller map and larger case-study image. */
.scene-work-heading.agency-copy{width:calc(min(100vw,var(--content-max)) - var(--content-gutter)*2);top:calc(var(--site-header-height,88px) + 18px)}
.scene-work-heading.agency-copy h2{font-size:clamp(24px,2.6vw,40px);white-space:nowrap;margin:10px 0 0}
@media(min-width:768px){
 .scene-portfolio .state-panel{top:calc(var(--site-header-height,88px) + 116px);bottom:126px;width:min(42%,560px);display:flex;flex-direction:column;min-height:0;overflow:auto}
 .scene-portfolio .state-image{height:auto;flex:1 1 300px;min-height:110px;max-height:340px;margin:0 0 16px}
 .scene-portfolio .state-detail,.scene-portfolio .portfolio-controls,.scene-portfolio .portfolio-source{flex:none}
 .scene-portfolio .state-detail>p:not(.eyebrow){margin-bottom:10px}
 .scene-portfolio .portfolio-controls{margin-top:10px}
}
@media(max-width:767px){
 .scene-work-heading.agency-copy h2{white-space:normal}
 .scene-portfolio .state-panel{top:calc(var(--site-header-height,80px) + 92px);bottom:112px;min-height:0;overflow:auto}
 .scene-portfolio .state-image{height:clamp(130px,28svh,260px);flex-shrink:1;min-height:100px}
}

/* Align the portfolio image with the title while reserving the map/banner gutter. */
@media(min-width:768px){
 .scene-work-heading.agency-copy{width:calc(54vw - ((100vw - min(100vw,var(--content-max)))/2 + var(--content-gutter)) - 10px)}
 .scene-work-heading.agency-copy h2{font-size:clamp(20px,2.1vw,34px)}
 .scene-portfolio .state-panel{top:calc(var(--site-header-height,88px) + 18px)}
}
/* Full-width state navigation and readable project chips. */
.scene-portfolio-tabs{left:calc((100vw - min(100vw,var(--content-max)))/2 + var(--content-gutter))!important;right:calc((100vw - min(100vw,var(--content-max)))/2 + var(--content-gutter))!important;bottom:60px}
.scene-portfolio .state-tabs{width:100%;display:flex;gap:10px;justify-content:stretch;border-top:0;padding-top:0}
.scene-portfolio .state-tabs button{flex:1 1 0;min-width:0;min-height:48px;padding:12px 10px;border:1px solid var(--border);border-radius:5px;background:var(--soft);color:var(--ink);font:600 12px/1.3 Manrope,Arial,sans-serif;letter-spacing:.8px;text-transform:uppercase;white-space:normal;text-align:center}
.scene-portfolio .state-tabs button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--button-ink)}
.scene-portfolio .state-tabs button:hover{border-color:var(--accent)}
.scene-portfolio .portfolio-source{display:none!important}
html body .scene-portfolio #state-projects{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px;line-height:1.5}
html body .scene-portfolio #state-projects li{display:inline-flex;align-items:center;max-width:100%;padding:7px 11px;border:1px solid var(--border);border-radius:999px;background:var(--soft);color:var(--ink);font:500 12px/1.45 Manrope,Arial,sans-serif;list-style:none;overflow-wrap:anywhere}
html body .scene-portfolio #state-projects li::before{display:none}
@media(max-width:767px){.scene-portfolio-tabs{bottom:52px}.scene-portfolio .state-tabs{gap:5px}.scene-portfolio .state-tabs button{font-size:9px;letter-spacing:.25px;padding:9px 4px;min-height:44px}html body .scene-portfolio #state-projects li{font-size:11px;padding:6px 9px}}
/* State navigation stays text-only, including selected and hover states. */
.scene-portfolio .state-tabs button,.scene-portfolio .state-tabs button[aria-pressed="true"],.scene-portfolio .state-tabs button:hover{background:transparent!important;border:0!important;border-radius:0;box-shadow:none;color:#fff!important}
.scene-portfolio .state-tabs button[aria-pressed="true"]{text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}
/* Portfolio details use the same readable emphasis as the approach lead. */
html body .scene-portfolio .state-detail h3,html body .scene-portfolio .state-detail h4,html body .scene-portfolio .state-detail>p:not(.eyebrow),html body .scene-portfolio #state-projects li{font-family:Manrope,Arial,sans-serif;font-size:16px!important;font-weight:600!important;line-height:1.55!important}
html body .scene-portfolio .state-detail h3{font-weight:700!important;margin-bottom:10px}
html body .scene-portfolio .state-detail>.eyebrow{font-size:12px;line-height:1.5}
.scene-portfolio #state-step{display:none!important}
/* State and election metadata share one heading row. */
.scene-portfolio .state-detail{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:12px}
html body .scene-portfolio .state-detail h3{order:0;flex:0 0 auto;text-transform:uppercase!important;margin:0 0 10px}
html body .scene-portfolio .state-detail>.eyebrow{order:1;flex:1 1 auto;margin:0 0 10px;font-weight:600;text-transform:uppercase}
.scene-portfolio .state-detail>p:not(.eyebrow),.scene-portfolio .state-detail>#state-content{order:2;flex:0 0 100%;width:100%}
/* Phone gestures scroll the page, never a nested portfolio card. */
@media(max-width:767px){
 html body .scene-portfolio .state-panel{overflow:visible!important;overscroll-behavior:auto!important;max-height:none;touch-action:pan-y}
 html body .scene-portfolio,html body .scene-portfolio-tabs,html body .scene-portfolio .state-tabs,html body .scene-portfolio .state-tabs button{overscroll-behavior:auto!important;touch-action:pan-y}
}
