@import url("vendor/fonts/fonts.css");
:root{--paper:#f7f8f3;--ink:#193036;--muted:#69767a;--line:#d8ded8;--purple:#79569d;--purple-pale:#ede8f2}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 "DM Sans",sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button,select,input{accent-color:var(--purple)}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid #458993;outline-offset:4px}.skip{position:absolute;left:24px;top:-80px;z-index:100;padding:10px;background:white}.skip:focus{top:8px}.subway-main{max-width:1600px;margin:auto;padding:0 clamp(20px,4.8vw,80px)}.subway-intro{display:flex;align-items:end;justify-content:space-between;gap:35px;padding:48px 0 30px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;color:var(--purple);margin:0 0 13px}h1,h2,h3{font-family:"Bricolage Grotesque",Manrope,sans-serif;letter-spacing:-.05em;line-height:1.06;margin:0;font-weight:500}h1{font-size:clamp(40px,4.8vw,70px)}h1 span{color:var(--ink)}.intro-copy{max-width:385px;padding-bottom:5px}.intro-copy p{font-size:20px;line-height:1.5;margin:0 0 18px}.concept-tag{font-size:11px;display:inline-flex;gap:9px;align-items:center;border:1px solid #d8cce5;border-radius:4px;padding:7px 10px;color:var(--muted)}.concept-tag i{display:none}.map-section{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line);font-size:12px}.map-toolbar>label{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--muted)}select{font-size:13px;color:var(--ink);background:#f6f7f2;border:1px solid var(--line);border-radius:7px;padding:7px 29px 7px 10px;min-height:36px}.map-toggle{display:flex;gap:21px}.map-toggle label{display:inline-flex;align-items:center;gap:7px}.map-toggle input{width:15px;height:15px;margin:0}.subway-map{height:clamp(440px,50vw,660px);position:relative;overflow:hidden;background:#e9ede5;isolation:isolate}.subway-map canvas{width:100%;height:100%;display:block;touch-action:none}.subway-map #routeOverlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.route-halo{fill:none;stroke:#fff;stroke-width:9;stroke-linejoin:round;opacity:.8}.route-line{fill:none;stroke:#80529e;stroke-width:4;stroke-dasharray:10 5;stroke-linejoin:round;stroke-linecap:round}.area-label rect{fill:#fffffff2;stroke:#cbb9d9;stroke-width:1}.area-label text{font-size:12px;fill:#442f52;font-weight:600;font-family:"DM Sans",sans-serif}.area-label circle{fill:#79569d;stroke:#fff;stroke-width:2}.area-label line{stroke:#79569d;stroke-width:1}.map-badge{position:absolute;top:20px;left:20px;font-size:10px;display:flex;gap:9px;align-items:center;border:1px solid #d5c9e0;background:#fffffff0;color:#69487f;border-radius:4px;padding:8px 12px;pointer-events:none}.legend-route{display:block;width:22px;border-top:3px dashed var(--purple)}.map-tools{position:absolute;top:20px;right:20px;display:grid;gap:7px}.map-tools button{display:grid;place-items:center;background:#fffefbf0;color:var(--ink);border:1px solid #cad1c9;border-radius:50%;width:40px;height:40px;padding:0;box-shadow:0 2px 8px #263b3512}.map-tools svg,summary svg{width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.map-tools button:hover{background:#ede7f3;color:var(--purple)}.map-bottom{position:absolute;bottom:0;left:0;right:0;padding:17px 20px;display:flex;justify-content:space-between;gap:20px;background:linear-gradient(transparent,#f2f4eaeF);font-size:10px;color:#415250;pointer-events:none}.map-help{color:#68766f}.map-loading{position:absolute;inset:0;background:#e9ede5;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;color:#557064;font-size:13px;z-index:3}.map-loading[hidden]{display:none}.loading-orb{width:25px;height:25px;border:2px solid #c7d5c7;border-radius:50%;background:#d2dfcd;animation:breathe 1.8s ease-in-out infinite}.map-loading p{margin:0}.map-loading button{border:1px solid #96aa9b;border-radius:7px;background:#fff;padding:8px 15px}.map-caption{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:16px 20px;font-size:11px;color:var(--muted)}.map-caption p{max-width:730px;margin:0;line-height:1.7}.map-caption a{white-space:nowrap;color:var(--ink);font-size:12px}.connection-strip{display:grid;grid-template-columns:220px 1fr;gap:40px;padding:42px 0 30px;align-items:center}.connection-strip h2{font-size:27px}.connection-strip .eyebrow{margin-bottom:9px}.connection-strip ol{padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;list-style:none}.connection-strip li{position:relative;padding-top:16px}.connection-strip li:before{content:"";height:2px;left:0;right:-18px;position:absolute;top:0;background:#d6c6e2}.connection-strip li:after{content:"";position:absolute;left:0;top:-3px;border:1px solid #bca7cf;background:var(--paper);border-radius:50%;width:8px;height:8px}.connection-strip li:last-child:before{right:0}.connection-strip strong{display:block;font-size:13px;font-weight:600}.connection-strip span{display:block;font-size:10px;color:var(--muted);margin-top:5px;line-height:1.5}.independence{margin:0 0 40px;max-width:850px;font-size:11px;color:var(--muted);line-height:1.8}.subway-details{display:grid;gap:12px;margin-bottom:60px}.subway-details>details{border:1px solid var(--line);border-radius:12px;background:#fffefa;overflow:hidden}.subway-details summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px 24px;font-size:15px;font-weight:500}.subway-details summary::-webkit-details-marker{display:none}.subway-details summary>span{display:flex;align-items:center;gap:22px}.subway-details summary small{font-size:10px;letter-spacing:.04em;color:var(--purple)}.subway-details details[open] summary svg{transform:rotate(180deg)}.details-content{padding:0 24px 28px;font-size:13px;color:var(--muted)}.details-content h3{font-size:22px;color:var(--ink)}.history-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding-top:12px}.history-grid article>span{display:block;font-size:9px;color:var(--purple);letter-spacing:.7px;margin-bottom:10px}.history-grid p{line-height:1.7}.details-content figure{margin:30px 0 0}.details-content figure img{width:100%;height:auto;display:block;border-radius:8px}.details-content figcaption{font-size:11px;margin-top:14px}.short-copy{max-width:920px;line-height:1.8}.subway-sources{display:grid;grid-template-columns:1fr 1fr;gap:22px 35px;list-style:none;padding:0}.subway-sources a{font-size:13px;color:var(--ink);display:block}.subway-sources span{display:block;font-size:11px;margin-top:5px}.source-date{margin-top:0}.source-download{display:inline-block;margin-top:10px}.subway-footer{border-top:1px solid var(--line);padding:28px clamp(20px,4.8vw,80px);display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.subway-footer>a{display:flex;align-items:center;gap:10px;text-decoration:none}.subway-footer img{display:block}.subway-footer p{margin:0}.noscript{position:absolute;inset:40% 10%;background:white;padding:20px}
@keyframes breathe{50%{transform:scale(.75);opacity:.5}}@media(max-width:850px){.connection-strip{grid-template-columns:1fr;gap:28px}.connection-strip h2 br{display:none}.subway-intro{gap:20px}.intro-copy{max-width:280px}.intro-copy p{font-size:17px}.map-help{display:none}.history-grid{gap:24px}.history-grid h3{font-size:20px}}
@media(max-width:600px){.subway-main{padding:0 16px}.subway-intro{display:block;padding:32px 0 23px}.subway-intro h1{font-size:45px}.intro-copy{max-width:none;margin-top:19px}.intro-copy p{font-size:16px;margin-bottom:12px}.map-section{border-radius:12px}.map-toolbar{display:block;padding:12px}.map-toggle{margin-top:11px;gap:15px;font-size:11px}.map-toolbar>label{justify-content:space-between}.map-toolbar select{min-width:190px}.subway-map{height:490px}.map-badge{top:12px;left:12px;font-size:9px;padding:7px 9px}.map-tools{right:12px;top:52px}.map-tools button{width:36px;height:36px}.map-bottom{padding:13px;font-size:9px}.map-caption{display:block;padding:13px}.map-caption a{display:inline-block;margin-top:9px}.connection-strip{padding-top:30px;padding-bottom:24px}.connection-strip ol{grid-template-columns:repeat(5,1fr);gap:10px}.connection-strip li:before{right:-10px}.connection-strip strong{font-size:11px}.connection-strip span{font-size:9px}.independence{font-size:10px;margin-bottom:25px}.subway-details{gap:9px;margin-bottom:35px}.subway-details summary{padding:17px 15px;font-size:13px}.subway-details summary>span{gap:13px}.details-content{padding:0 15px 22px}.history-grid,.subway-sources{grid-template-columns:1fr}.subway-footer{display:block}.subway-footer p{margin-top:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.loading-orb{animation:none}}

/* Summary controls remain native; JavaScript animates measured panel heights. */
.subway-details summary svg{transition:transform 220ms ease}
.subway-details details[data-expanded="false"] summary svg{transform:none}
.subway-details details[data-expanded="true"] summary svg{transform:rotate(180deg)}
@media(prefers-reduced-motion:reduce){.subway-details summary svg{transition:none}}

/* Keep the clicked question stable while a previous answer contracts above it. */
html.disclosure-transition{scroll-behavior:auto;overflow-anchor:none}
.subway-details{overflow-anchor:none}
.subway-details>details{align-self:start}
.subway-details summary{scroll-margin-block:24px}
.details-content{display:flow-root}
.details-content img{object-fit:contain;background:#f2f4ee}

/* Public source maps sit beside their dates and outcomes, rather than a redrawn timeline. */
.concept-status{display:inline-block;font-size:11px;color:var(--muted);margin-left:10px}
.history-note{max-width:76ch;margin:2px 0 22px;line-height:1.8;font-size:14px}
.history-visuals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.details-content .source-figure{margin:0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fbfcf8}
.source-figure>a{display:grid;place-items:center;aspect-ratio:8/5;padding:12px;background:#eef1e9}
.details-content .source-figure>a img{width:100%;height:100%;object-fit:contain;border-radius:0;background:transparent}
.details-content .source-figure figcaption{margin:0;padding:19px 20px 21px;font-size:13px;line-height:1.75}
.source-figure figcaption .eyebrow{font-size:10px;margin-bottom:10px;letter-spacing:1px}
.source-figure figcaption h3{font-size:23px;line-height:1.14;letter-spacing:-.035em}
.source-figure figcaption p:not(.eyebrow){margin:12px 0}
.source-figure figcaption>a{font-size:12px;color:var(--ink)}
.source-figure-wide{grid-column:1/-1}
.source-figure-wide>a{aspect-ratio:4/1}
.details-content .network-figure{margin:5px 0 25px}
.network-figure>a{display:block}
.details-content .network-figure img{width:100%;height:auto;max-height:560px;object-fit:contain;border:1px solid var(--line);border-radius:9px;background:#edf0e8}
.details-content .network-figure figcaption{margin-top:12px;font-size:12px;max-width:88ch;line-height:1.7}
.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin:22px 0}
.case-grid article{min-width:0}
.case-grid h3{font-size:22px;line-height:1.15;letter-spacing:-.035em}
.case-grid p{line-height:1.8;margin:11px 0}
.case-grid a{font-size:12px;color:var(--ink)}
.study-question{max-width:85ch;font-size:14px;line-height:1.8;margin:26px 0 0;padding:18px 20px;border:1px solid var(--line);border-radius:8px;background:#f1f4ed;color:var(--ink)}
.source-group{margin:8px 0 30px}
.source-group:last-child{margin-bottom:0}
.source-group>h3{font-size:21px;letter-spacing:-.025em}
.source-group .subway-sources{margin:18px 0 0}
@media(max-width:800px){.history-visuals{gap:16px}.case-grid{grid-template-columns:1fr;gap:15px}.case-grid article{max-width:74ch}.case-grid h3{font-size:21px}}
@media(max-width:600px){.concept-status{margin-left:8px;font-size:10px}.history-note{font-size:13px}.history-visuals{grid-template-columns:1fr}.source-figure-wide{grid-column:auto}.source-figure-wide>a{aspect-ratio:4/1}.details-content .source-figure figcaption{padding:16px}.source-figure figcaption h3{font-size:21px}.source-figure>a{padding:8px}.study-question{padding:15px;font-size:13px}.source-group>h3{font-size:20px}}
/* Fixed viewing areas reserve the entire map before lazy loading completes. */
.source-figure>a{position:relative;display:block;aspect-ratio:4/3;padding:0}
.details-content .source-figure>a img{position:absolute;inset:12px;width:calc(100% - 24px);height:calc(100% - 24px)}
.source-figure-wide>a{aspect-ratio:16/5}
@media(max-width:600px){.details-content .source-figure>a img{inset:8px;width:calc(100% - 16px);height:calc(100% - 16px)}}

/* The original City Centre study is the first visual, outside the questions. */
.historic-feature{margin:6px 0 54px}
.feature-heading,.interactive-heading{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:25px}
.feature-heading h2{font-size:clamp(34px,3.8vw,54px)}
.feature-heading>p,.interactive-heading>p{max-width:56ch;margin:0 0 3px;font-size:15px;line-height:1.75;color:var(--muted)}
.feature-heading strong{font-weight:600;color:var(--ink)}
.historic-map-figure{margin:0}
.historic-map-link{display:block;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:8px;cursor:zoom-in}
.historic-map-link img{display:block;width:100%;height:auto;aspect-ratio:2401/1805;object-fit:contain}
.historic-map-figure figcaption{display:flex;justify-content:space-between;align-items:start;gap:30px;margin-top:16px;font-size:12px;line-height:1.65}
.historic-map-figure figcaption strong{display:block;font-size:14px;font-weight:600}
.historic-map-figure figcaption div>span{display:block;margin-top:3px;color:var(--muted)}
.historic-map-figure figcaption>a{flex-shrink:0;margin-top:2px}
.interactive-heading{margin-bottom:24px}
.interactive-heading h2{font-size:clamp(29px,3vw,42px)}
.history-comparison{padding:18px 8px 0 6px}
.history-comparison h3{font-size:27px;line-height:1.15;letter-spacing:-.035em}
.history-comparison p:not(.eyebrow){max-width:52ch;font-size:14px;line-height:1.8;margin:16px 0}
.history-comparison>a{display:block;width:fit-content;color:var(--ink);font-size:12px;margin-top:14px}
@media(max-width:850px){.feature-heading,.interactive-heading{gap:30px}.feature-heading>p,.interactive-heading>p{font-size:14px}.historic-map-figure figcaption{gap:18px}.historic-feature{margin-bottom:42px}}
@media(max-width:600px){.historic-feature{margin-top:12px;margin-bottom:35px}.feature-heading,.interactive-heading{grid-template-columns:1fr;gap:16px;margin-bottom:18px}.feature-heading h2 br{display:none}.feature-heading h2{font-size:34px}.feature-heading>p,.interactive-heading>p{font-size:13px;line-height:1.75}.historic-map-figure figcaption{display:block;font-size:11px;margin-top:12px}.historic-map-figure figcaption strong{font-size:12px}.historic-map-figure figcaption>a{display:inline-block;margin-top:10px}.interactive-heading h2{font-size:29px}.history-comparison{padding:6px 0 2px}.history-comparison h3{font-size:24px}.history-comparison p:not(.eyebrow){font-size:13px}}


/* A shared reading grid connects the introduction, maps and supporting text. */
.subway-intro,
.feature-heading,
.interactive-heading {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(32px, 4.4vw, 64px);
  align-items: start;
}
.subway-intro { padding: 56px 0 64px; }
.subway-intro h1 { font-size: clamp(46px, 4.8vw, 68px); line-height: 1.07; }
.eyebrow { font-size: 11px; line-height: 1.55; letter-spacing: .11em; margin-bottom: 14px; }
.intro-copy { max-width: 60ch; padding: 0; }
.intro-copy p { font-size: 23px; line-height: 1.45; margin: 0 0 18px; text-wrap: pretty; }
.intro-copy .intro-context { font-size: 16px; line-height: 1.7; color: #536569; margin-bottom: 20px; }
.concept-note { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; font-size: 13px; }
.concept-tag { display: inline; font-size: inherit; color: var(--ink); font-weight: 600; padding: 0; border: 0; border-radius: 0; }
.concept-status { font-size: inherit; color: #536569; margin: 0; }
.historic-feature { margin: 0 0 64px; }
.feature-heading,
.interactive-heading { margin-bottom: 28px; }
.feature-heading h2,
.interactive-heading h2 { max-width: 24ch; font-size: clamp(30px, 2.8vw, 40px); line-height: 1.14; letter-spacing: -.035em; text-wrap: balance; }
.feature-heading > p,
.interactive-heading > p { max-width: 62ch; margin: 0; font-size: 16px; line-height: 1.7; color: #536569; text-wrap: pretty; }
.historic-map-figure figcaption { gap: 24px; margin-top: 18px; font-size: 14px; line-height: 1.65; }
.historic-map-figure figcaption strong { font-size: 15px; }
.historic-map-figure figcaption div > span { max-width: 75ch; color: #536569; margin-top: 5px; }
.historic-map-figure figcaption > a { font-size: 14px; }
.map-caption { padding: 22px 24px; align-items: start; gap: 32px; font-size: 14px; }
.map-caption p { max-width: 84ch; line-height: 1.7; color: #536569; }
.map-caption p a { font-size: inherit; white-space: normal; }
.map-caption > a { flex-shrink: 0; font-size: 14px; margin-top: 2px; }
.connection-strip { grid-template-columns: 240px minmax(0, 1fr); gap: 40px; padding: 40px 0 32px; }
.connection-strip h2 { font-size: 25px; line-height: 1.2; letter-spacing: -.035em; }
.areas-note { max-width: 25ch; margin: 8px 0 0; font-size: 13px; line-height: 1.6; color: #536569; }
.connection-strip strong { font-size: 15px; }
.connection-strip span { font-size: 12px; line-height: 1.6; }
.independence { max-width: 94ch; margin: 0 0 48px; font-size: 14px; line-height: 1.7; color: #536569; }

/* Supporting sections read as one document, without boxes inside boxes. */
.subway-details { gap: 0; margin-bottom: 72px; border-top: 1px solid var(--line); }
.subway-details > details { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; overflow: visible; }
.disclosure-transition .subway-details > details { overflow: hidden; }
.subway-details summary { padding: 27px 0; gap: 24px; font-family: "Bricolage Grotesque", sans-serif; font-size: 23px; line-height: 1.3; font-weight: 500; letter-spacing: -.02em; }
.subway-details summary > span { gap: 24px; align-items: baseline; }
.subway-details summary small { min-width: 22px; font: 13px/1.5 "DM Sans", sans-serif; letter-spacing: 0; color: #536569; }
.subway-details summary svg { flex: 0 0 20px; width: 20px; height: 20px; }
.details-content { padding: 0 0 40px 46px; font-size: 16px; line-height: 1.75; color: #536569; }
.details-content h3 { font-size: 27px; line-height: 1.22; letter-spacing: -.035em; text-wrap: balance; }
.history-note { max-width: 73ch; margin: 0 0 30px; font-size: 16px; line-height: 1.75; }
.details-content a { color: var(--ink); }
.history-visuals { display: block; }
.details-content .source-figure { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 40px; margin: 0; border: 0; border-radius: 0; background: transparent; }
.source-figure > a { aspect-ratio: 4/3; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #eef1e9; }
.details-content .source-figure figcaption { padding: 0; margin: 0; font-size: 16px; line-height: 1.75; }
.source-figure figcaption .eyebrow { font-size: 11px; letter-spacing: .11em; margin-bottom: 12px; }
.source-figure figcaption h3 { max-width: 26ch; font-size: 27px; line-height: 1.22; }
.source-figure figcaption p:not(.eyebrow) { max-width: 60ch; margin: 16px 0; }
.source-figure figcaption > a { font-size: 14px; }
.history-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; margin-top: 34px; padding: 32px 0 0; border-top: 1px solid var(--line); }
.history-comparison h3 { max-width: 25ch; font-size: 27px; }
.history-comparison p:not(.eyebrow) { max-width: 60ch; font-size: 16px; line-height: 1.75; margin: 0 0 16px; }
.history-comparison-copy > a { display: block; width: fit-content; font-size: 14px; margin-top: 12px; }
.history-followup { margin: 32px 0 0; max-width: 85ch; }
.details-content .network-figure { margin: 0 0 36px; }
.details-content .network-figure figcaption { font-size: 14px; line-height: 1.7; max-width: 90ch; margin-top: 14px; }
.case-grid { gap: 36px; margin: 0; }
.case-grid article { display: flex; flex-direction: column; }
.case-grid h3 { font-size: 26px; line-height: 1.22; min-height: 0; text-wrap: balance; }
.case-grid p { flex-grow: 1; font-size: 16px; line-height: 1.75; margin: 16px 0; }
.case-grid a { width: fit-content; font-size: 14px; }
.study-question { display: grid; grid-template-columns: .8fr 1.2fr; gap: 48px; max-width: none; padding: 32px 0 0; margin: 36px 0 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; color: #536569; font-size: 16px; line-height: 1.75; }
.study-question h3 { max-width: 23ch; }
.study-question p { max-width: 65ch; margin: 0 0 16px; }
.study-question a { font-size: 14px; }
.source-intro { margin-bottom: 30px; }
.source-intro > p:first-child { max-width: 72ch; margin: 0 0 10px; }
.source-date { font-size: 13px; margin: 0; }
.source-group { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; margin: 0; padding: 30px 0; border-top: 1px solid var(--line); }
.source-group > h3 { font-size: 23px; line-height: 1.25; letter-spacing: -.025em; text-wrap: pretty; }
.source-group .subway-sources { margin: 0; gap: 28px 36px; }
.subway-sources li { min-width: 0; scroll-margin-top: 32px; }
.subway-sources a { font-size: 15px; font-weight: 500; line-height: 1.55; text-wrap: pretty; }
.subway-sources span { font-size: 14px; line-height: 1.7; margin-top: 8px; }
#sources .history-note { margin: 8px 0 12px; font-size: 14px; max-width: 85ch; }
.source-download { font-size: 14px; margin-top: 0; }

@media (max-width: 1050px) {
  .subway-intro { padding: 44px 0 48px; }
  .intro-copy p { font-size: 21px; }
  .map-caption { display: block; }
  .map-caption > a { display: inline-block; margin-top: 14px; }
  .connection-strip { grid-template-columns: 1fr; gap: 28px; }
  .areas-note { max-width: none; }
  .source-group { grid-template-columns: 1fr; gap: 22px; }
  .case-grid { gap: 24px; }
  .case-grid h3 { font-size: 23px; }
  .historic-map-figure figcaption { display: block; }
  .historic-map-figure figcaption > a { display: inline-block; margin-top: 12px; }
}
@media (max-width: 760px) {
  .subway-intro, .feature-heading, .interactive-heading { grid-template-columns: 1fr; gap: 22px; }
  .subway-intro { padding: 36px 0 44px; }
  .subway-intro h1 { font-size: clamp(44px, 7vw, 56px); }
  .intro-copy { max-width: 65ch; margin-top: 0; }
  .intro-copy p { font-size: 21px; }
  .intro-copy .intro-context, .feature-heading > p, .interactive-heading > p { font-size: 16px; }
  .historic-feature { margin-bottom: 44px; }
  .feature-heading, .interactive-heading { margin-bottom: 22px; gap: 18px; }
  .feature-heading h2, .interactive-heading h2 { font-size: 32px; }
  .details-content { padding-left: 0; }
  .details-content .source-figure { grid-template-columns: 1fr; gap: 24px; }
  .history-comparison { grid-template-columns: 1fr; gap: 20px; }
  .case-grid { grid-template-columns: 1fr; gap: 30px; }
  .case-grid h3 { min-height: 0; font-size: 26px; text-wrap: pretty; }
  .case-grid p { margin: 12px 0; }
  .study-question { grid-template-columns: 1fr; gap: 18px; }
  .study-question h3 { max-width: none; }
}
@media (max-width: 600px) {
  .subway-main { padding: 0 20px; }
  .eyebrow { font-size: 10px; margin-bottom: 12px; }
  .subway-intro h1 { font-size: 46px; }
  .intro-copy p { font-size: 20px; margin-bottom: 16px; }
  .intro-copy .intro-context { margin-bottom: 16px; }
  .concept-note { font-size: 13px; }
  .concept-status { font-size: inherit; margin: 0; }
  .feature-heading h2, .interactive-heading h2 { font-size: 30px; text-wrap: pretty; }
  .historic-map-figure figcaption { font-size: 13px; line-height: 1.65; margin-top: 16px; }
  .historic-map-figure figcaption strong { font-size: 14px; }
  .map-caption { padding: 18px 16px; }
  .map-caption p { font-size: 14px; }
  .connection-strip { padding: 30px 0; gap: 24px; }
  .connection-strip h2 { font-size: 25px; }
  .connection-strip ol { grid-template-columns: 1fr; gap: 18px; }
  .connection-strip li { padding: 0 0 0 22px; line-height: 1.6; }
  .connection-strip li::before { width: 1px; height: auto; left: 3px; top: 9px; bottom: -27px; right: auto; }
  .connection-strip li:last-child::before { display: none; }
  .connection-strip li::after { top: 8px; left: 0; }
  .connection-strip strong { display: inline-block; min-width: 94px; font-size: 14px; }
  .connection-strip span { display: inline; font-size: 13px; margin: 0; }
  .independence { font-size: 14px; margin-bottom: 32px; }
  .subway-details { margin-bottom: 44px; }
  .subway-details summary { padding: 23px 0; font-size: 21px; gap: 14px; }
  .subway-details summary > span { gap: 13px; }
  .subway-details summary small { min-width: 18px; font-size: 12px; }
  .details-content { padding: 0 0 30px; }
  .history-note { font-size: 16px; margin-bottom: 26px; }
  .details-content h3, .source-figure figcaption h3, .history-comparison h3 { font-size: 25px; }
  .details-content .source-figure figcaption { padding: 0; font-size: 16px; }
  .history-comparison { margin-top: 28px; padding-top: 28px; }
  .history-comparison p:not(.eyebrow) { font-size: 16px; }
  .history-followup { margin: 30px 0 0; }
  .details-content .network-figure { margin-bottom: 28px; }
  .details-content .network-figure figcaption { font-size: 13px; }
  .study-question { padding: 28px 0 0; margin-top: 30px; font-size: 16px; }
  .source-group { gap: 22px; padding: 28px 0; }
  .source-group > h3 { font-size: 23px; }
  .source-group .subway-sources { grid-template-columns: 1fr; gap: 24px; }
  .subway-sources a { font-size: 16px; }
  .subway-sources span { font-size: 14px; }
}

/* Transit layer controls share the model toolbar and wrap on narrow screens. */
.map-toolbar{flex-wrap:wrap}.map-toggle{flex-wrap:wrap;gap:10px 18px}.map-toggle label{min-height:28px}.transit-key{width:18px;height:3px;flex:0 0 18px;background:currentColor}.go-key{color:#25825e}.lrt-key{color:#d6ac39}#goToggle{accent-color:#25825e}#lrtToggle{accent-color:#ad841d}


/* Route choices use native selects and a stable, shared reading area. */
.map-selects{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;min-width:0}
.map-selects label{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;min-width:0}
.map-selects select{max-width:100%;min-width:0}
.route-summary{padding:20px 24px 0;min-height:98px;color:var(--ink);font-size:14px;line-height:1.65}
.route-summary p{max-width:100ch;margin:0 0 6px;text-wrap:pretty}
.route-summary a{font-size:13px}
.route-summary+.map-caption{padding-top:16px}
.connection-strip #connectionAreas{grid-template-columns:repeat(var(--area-count,5),minmax(0,1fr))}
@media(max-width:600px){
 .map-selects{display:grid;gap:10px}
 .map-selects label{display:grid;grid-template-columns:40px minmax(0,1fr);gap:8px}
 .map-selects select{width:100%;min-width:0}
 .route-summary{padding:16px 16px 0;min-height:175px;font-size:13px}
 .route-summary a{font-size:12px}
}
