/* Bekesi Editorial 1.2 — readable type and an isolated scroll lane. */
html{font-size:100%;scroll-padding-top:1.5rem;scroll-padding-bottom:8rem}
body{font-size:1.125rem;line-height:1.65}
.hero-description,.about-copy>p,.contact-right>p,.dossier-copy>p:not(.eyebrow):not(.feature-footnote),.media-excerpt,.article-info>p:not(.metadata),.section-intro,.berlin-grid p:not(.focus-number),.comparison>p,.method-grid p,.flow-grid p,.state-disclosure>p,.open-check>p,.metric-description,.note,dialog p{font-size:1.125rem;line-height:1.7}
.eyebrow{letter-spacing:.075em;flex-wrap:wrap}
.hero-description{max-width:34rem}
.hero-portrait figcaption{gap:1rem;align-items:flex-start}
.hero-portrait figcaption div>span{max-width:26rem;line-height:1.55}
.portrait-index{flex-shrink:0;letter-spacing:0}
.soft-text{color:#687183}
.section-top,.map-teaser-top,.map-teaser-bottom,.contact-actions,.footer,.footer>div,.dossier-facts,.state-card-top,.dossier-subnav{flex-wrap:wrap}
.section-note{max-width:26rem;line-height:1.6}
.feature-footnote{max-width:38rem}
.button{max-width:100%;gap:1rem;text-align:left}
.button,.filters button,.media-tools .filters button,.menu-toggle,.text-link,.media-links a,.copy-email,.contact-actions>a,.footer>div>a,.footer>div>button,.intro-strip>a,.period-switch button,.download-button{min-height:2.75rem;min-width:2.75rem}
.media-links a,.copy-email,.contact-actions>a,.footer>div>a,.footer>div>button,.intro-strip>a{display:inline-flex;align-items:center}
.media-search input,.map-toolbar select{min-height:2.75rem;font-size:1rem}
.hero-down{min-height:2.75rem}
.circle-arrow{width:2.75rem;height:2.75rem;flex-shrink:0}
.header{height:auto;min-height:6rem;padding-block:1rem}
.header nav{gap:1.5rem;flex-wrap:wrap;justify-content:flex-end}
.intro-strip{gap:1.5rem;flex-wrap:wrap}
.map-teaser-top,.map-teaser-bottom{letter-spacing:0;gap:.75rem}
.contact-actions{gap:.75rem 1.5rem}
.footer>div{gap:.75rem 1.25rem}
.footer>p{margin-left:0}
.footer .wordmark{white-space:normal}
.hero-copy,.dossier-copy,.about-grid>*,.contact-grid>*,.fiscal-heading>*,.flow-grid>*,.method-grid>*{min-width:0}
p,a,h1,h2,h3,h4,button,label,summary{overflow-wrap:anywhere}
.hero h1{font-size:clamp(3.5rem,7.8vw,7.25rem)}
.fiscal-hero h1{font-size:clamp(3rem,6.7vw,5.875rem)}
.evidence-badge{white-space:normal;border-radius:.25rem}
.map-credit{color:#596371}
.scope-note{flex-wrap:wrap}
.scope-note a{white-space:normal}
.map-toolbar{flex-wrap:wrap;gap:.5rem}
.map-toolbar select{flex:1 1 12rem}
.period-switch{flex-wrap:wrap}
.period-switch button{flex:1 1 7rem}
.metric-pair{grid-template-columns:repeat(2,minmax(0,1fr))}
.metric-pair strong{font-size:clamp(1.5rem,3vw,2.5rem);letter-spacing:-.04em}
.dashboard-stats>div{min-width:0}
.table-scroll{overscroll-behavior-x:contain}
.table-scroll:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
:is(a,button,summary,input,select):focus-visible{outline:3px solid var(--blue);outline-offset:4px;scroll-margin-block:8rem}
:is(.contact,.dossier-feature,.media-featured,.federal-band) :is(a,button,summary,input,select):focus-visible{outline-color:#fff}
.dialog-close{min-width:2.75rem;min-height:2.75rem}
/* The rail is confined to its own 44px lane. Content never enters it. */
.has-journey main{position:relative;isolation:isolate}
.has-journey .wrap{width:min(1320px,calc(100% - 128px))}
.has-journey{padding-bottom:6rem}
.journey-rail{position:absolute;inset:0 auto 0 8px;width:44px;overflow:hidden;pointer-events:none;z-index:2;contain:paint}
.journey-segment{position:absolute;left:21px;width:2px;background:#c1c9df;overflow:hidden}
.journey-fill{position:absolute;inset:0;background:var(--blue);transform:scaleY(0);transform-origin:top}
.journey-segment[data-tone="blue"]{background:#ffffff4d}
.journey-segment[data-tone="blue"] .journey-fill{background:#fff}
.journey-segment[data-tone="dark"]{background:#ffffff4d}
.journey-segment[data-tone="dark"] .journey-fill{background:#92adff}
.journey-point{position:absolute;left:0;width:44px;height:44px;display:grid;place-items:center;pointer-events:auto;border-radius:50%}
.journey-point::before{content:'';display:block;width:10px;height:10px;border:2px solid var(--blue);background:var(--paper);border-radius:50%}
.journey-point[aria-current="location"]::before{background:var(--blue);box-shadow:0 0 0 4px var(--paper)}
.journey-point[data-tone="blue"]::before{border-color:white;background:var(--blue)}
.journey-point[data-tone="blue"][aria-current="location"]::before{background:white;box-shadow:0 0 0 4px var(--blue)}
.journey-point[data-tone="dark"]::before{border-color:#92adff;background:#101723}
.journey-point[data-tone="dark"][aria-current="location"]::before{background:#92adff;box-shadow:0 0 0 4px #101723}
.journey-marker{position:absolute;left:15px;width:14px;height:14px;border-radius:50%;background:var(--blue);border:3px solid var(--paper);box-shadow:0 0 0 1px var(--blue);will-change:transform}
.journey-marker[data-tone="blue"]{background:#fff;border-color:var(--blue);box-shadow:0 0 0 1px #fff}
.journey-marker[data-tone="dark"]{background:#92adff;border-color:#101723;box-shadow:0 0 0 1px #92adff}
.journey-nav{position:fixed;bottom:max(1rem,env(safe-area-inset-bottom));right:1.25rem;z-index:40;display:flex;align-items:center;gap:.25rem;padding:.375rem;background:#fff;color:var(--ink);border:1px solid #bbc6e2;border-radius:.5rem;box-shadow:0 4px 24px #1017231a;font-size:1rem;max-width:calc(100% - 2.5rem)}
.journey-nav details{min-width:0}
.journey-nav summary{display:flex;align-items:center;gap:1rem;min-height:44px;padding:.25rem .625rem;list-style:none;cursor:pointer;line-height:1.5}
.journey-nav summary::-webkit-details-marker{display:none}
.journey-current{font-weight:600}
.journey-nav summary::after{content:'⌃';font-size:1.25rem;color:var(--blue)}
.journey-nav details[open] summary::after{content:'⌄'}
.journey-menu{position:absolute;bottom:calc(100% + .625rem);right:0;list-style:none;margin:0;padding:.5rem;min-width:100%;width:max-content;max-width:calc(100vw - 2.5rem);max-height:50vh;overflow:auto;background:#fff;border:1px solid #bbc6e2;border-radius:.5rem;box-shadow:0 4px 24px #1017231a}
.journey-menu a{display:flex;gap:1rem;align-items:center;min-height:44px;padding:.625rem .75rem;border-radius:.25rem}
.journey-menu a[aria-current="location"]{background:var(--pale);color:var(--blue);font-weight:800}
.journey-menu a[aria-current="location"]::after{content:'●';font-size:.75rem;margin-left:auto}
.journey-step{display:grid;place-items:center;flex-shrink:0;width:2.75rem;height:2.75rem;color:var(--blue);border:1px solid var(--line);border-radius:.25rem;font-size:1.5rem;line-height:1}
.journey-step[aria-disabled="true"]{color:#7b8393;background:#f3f5fa}
.journey-nav a:hover{background:var(--pale)}
@media(max-width:1100px){.header nav{gap:1rem}.hero{gap:2rem}.dossier-layout,.about-grid,.contact-grid{gap:2rem}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.header{padding-inline:1.25rem}.header nav{gap:1rem}.wordmark{font-size:1.25rem}.wordmark img{width:36px;height:36px}}
@media(max-width:760px){
 .header{min-height:4.875rem;flex-wrap:wrap}.header nav{top:100%;font-size:1rem;justify-content:flex-start}.menu-toggle{font-size:1rem;gap:.5rem;padding-inline:.5rem;margin-left:auto;flex-shrink:0}
 .has-journey .wrap{width:calc(100% - 64px);margin-left:44px;margin-right:20px}
 .journey-rail{left:0;width:36px}.journey-segment{left:17px}.journey-point{left:-4px}.journey-marker{left:11px}
 .hero h1{font-size:clamp(3rem,14vw,6rem);letter-spacing:-.065em}.hero .eyebrow{font-size:1rem;letter-spacing:.06em}
 .hero-subtitle,.about-copy .lead{font-size:1.25rem;line-height:1.6}.hero-portrait figcaption{padding:1rem;flex-direction:column}.hero-portrait figcaption div>span{font-size:1rem;max-width:none}.portrait-index{display:none}
 .intro-strip span:nth-child(2){display:block}.intro-strip{gap:.75rem}.intro-strip>a{margin-left:auto}
 .section-top{align-items:flex-start}.section-note{font-size:1rem;text-align:left;max-width:none}.section-top .eyebrow{font-size:1rem}
 .dossier-copy h2,.about h2,.publications-top h2,.contact h2,.section-heading h2,.methodology h2{font-size:2.25rem;line-height:1.15}
 .dossier-facts{gap:1.25rem}.dossier-facts>div{flex:1 1 8rem}.dossier-facts span{font-size:1rem}.feature-footnote{font-size:1rem}
 .media-intro{grid-template-columns:1fr;gap:1.5rem}.media-intro>p{font-size:1.125rem}.media-grid{grid-template-columns:1fr}.media-card{padding:1.25rem}.media-tools .filters button{font-size:1rem;padding:.5rem .75rem}
 .media-search{flex-basis:100%}.media-links{gap:.5rem 1rem}.media-meta{letter-spacing:.03em}.media-card h3,.media-featured h3{font-size:1.5rem}
 .contact-actions{align-items:flex-start;flex-direction:column}.email{font-size:clamp(1.375rem,6vw,1.75rem);letter-spacing:-.025em;gap:.5rem}.footer>div{justify-content:flex-start}.footer>p{margin-left:0}
 .dashboard-stats>div{display:block}.dashboard-stats span{margin-top:.5rem;font-size:1rem}.fiscal-hero h1{font-size:clamp(2.625rem,12vw,4rem)}
 .state-card-top .eyebrow,.evidence-badge,.scope-note,.map-credit,.metric-description,.note{font-size:1rem}.metric-pair{gap:1rem}.metric-pair strong{font-size:1.75rem}
 .dossier-subnav{gap:.5rem 1.25rem}.dossier-subnav a{min-height:44px;display:inline-flex;align-items:center}.map-column{position:static}
 /* The full-size state selector supplies the map labels on small screens. */
 .map-label{display:none}
 .journey-nav{right:1rem;left:1rem;max-width:none;justify-content:space-between}.journey-nav details{flex:1}.journey-nav summary{gap:.5rem;justify-content:space-between}.journey-menu{left:0;right:auto;max-width:calc(100vw - 2rem)}
 .journey-prefix{display:none}.journey-current{font-size:1rem}.journey-nav{gap:.375rem}
}
@media(max-width:360px){.wordmark img{width:30px;height:30px}.wordmark{font-size:1.125rem;letter-spacing:-.04em}.header{gap:.5rem;padding-inline:1rem}.menu-toggle{gap:.25rem}.map-teaser{padding:1rem}.state-card{padding:1rem}.metric-pair{grid-template-columns:1fr}.journey-nav summary{padding-inline:.375rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.journey-marker{display:none}}
@media(forced-colors:active){.journey-segment,.journey-fill{background:CanvasText}.journey-marker{background:Highlight;border-color:Canvas}.journey-nav,.journey-menu{border:1px solid CanvasText}.journey-point::before{border-color:CanvasText}.journey-menu a[aria-current="location"]{outline:2px solid Highlight}}
@media print{.journey-rail,.journey-nav{display:none}.has-journey{padding-bottom:0}.has-journey .wrap{width:100%;margin:0}}
