/* Editorial refinement; main and miniature diagrams keep separate geometry and styling. */
:root{--link:#216c9d}
a{color:var(--link)}
.map-card .map-support a,.map-card .map-file-link a{color:var(--link)}
.current-route h2{color:var(--ink)}
.home .home-metro{padding-top:42px;min-height:0;justify-content:flex-start}
.home .map-heading{margin-bottom:18px}
.home .map-heading h1{position:static;width:auto;height:auto;clip-path:none;white-space:normal;font:400 clamp(42px,5.4vw,66px)/1.08 var(--serif);letter-spacing:-.035em;color:var(--ink);margin:0 0 8px}
.home .map-heading .studio-subtitle{font:400 clamp(20px,2.4vw,28px)/1.3 var(--serif);letter-spacing:0;color:var(--ink);margin:0 0 12px}
.home .map-heading .studio-description{font:400 17px/1.5 var(--sans);letter-spacing:0;color:var(--muted);margin:0;max-width:700px}
.home .restored-main-map>.map-legend{position:static;display:flex;flex-wrap:wrap;gap:10px 26px;max-width:none;width:100%;padding:12px 0;margin:0 0 5px}
.home .map-legend>span{font-size:13px}
.home .map-wrap{margin:0;aspect-ratio:1040 / 650}
.home .station[data-stop=business]>b{max-width:250px;width:250px;font-size:17px}
.home .station[data-stop=infrastructure]>b{max-width:190px;font-size:17px}
.station-status{display:block;font:400 12px/1.4 var(--sans);color:var(--muted);margin-top:4px}
.restored-reference .reference-status{font-size:11px;fill:var(--muted)}
.home .station:focus-visible{outline:0}
.home .station:focus-visible>b{outline:2px solid var(--blue);outline-offset:6px;border-radius:2px}
.station:hover>b,.station:focus-visible>b,.station.project-stop:hover>b,.station.project-stop:focus-visible>b{scale:1;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.restored-reference .network-line,.restored-reference .network-line.active-line,.restored-reference .network-line.route-hover{stroke-width:5}
.restored-reference a:focus-visible .reference-label{text-decoration:underline;stroke-width:4px}
.restored-reference a:hover .reference-label,.restored-reference a:focus-visible .reference-label{transform:none}
.inner .page-layout main h1{font-size:clamp(38px,4.2vw,64px);line-height:1.08;letter-spacing:-.035em;max-width:850px;text-wrap:balance}
.inner .page-layout main{padding-top:42px}
.inner .current-route{padding-top:42px}
.inner main h2{font:500 25px/1.3 var(--sans);letter-spacing:0}
.inner main h3{font:500 21px/1.35 var(--serif);margin:26px 0 10px}
.inner main p{font-size:17px;line-height:1.7}
.inner .lead{font-size:19px;line-height:1.65;margin:24px 0 30px}
.inner main .deliverables{padding-left:20px;list-style:disc;max-width:760px}
.inner main .deliverables li{padding:5px 0;font-size:17px;line-height:1.6;border:0}
.inner main .deliverables li:before{content:none}
.home .about-contact{padding-top:40px!important;padding-bottom:65px!important}
.home .about-contact h2{font-size:34px;margin-bottom:20px}
.home .about-contact p{font-size:21px;line-height:1.65}
.about-intro{color:var(--ink);text-decoration:none}
.about-intro:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.quiet-link,.enquiry-link{display:inline-block;font:400 16px/1.5 var(--sans);margin:12px 0 0;min-height:32px}
.contact-address a{font:400 clamp(24px,3vw,36px)/1.4 var(--serif);overflow-wrap:anywhere}
.personal-narrative{max-width:760px}
.inner main .personal-narrative h2{font-family:var(--serif);font-size:32px}
.project-meta{max-width:760px;margin:24px 0 34px;display:grid;gap:12px}
.project-meta>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:18px}
.project-meta dt{font:500 13px/1.6 var(--sans);color:var(--muted)}
.project-meta dd{margin:0;font:400 15px/1.6 var(--sans);color:var(--ink)}
.map-support{font-size:13px;gap:10px 22px}
.documentation-pending{color:var(--muted)}
.map-card .map-file-link,.map-card .map-support{font-size:14px;line-height:1.5}
.map-card .map-title{font-size:20px;line-height:1.45}
.portfolio{gap:44px;margin-top:30px}
.map-card img,.selected-work img{height:auto;max-width:100%;object-fit:contain;display:block}
.selected-work{display:grid;grid-template-columns:1.3fr .7fr;gap:36px;margin:24px 0 40px;align-items:start}
.selected-work article{min-width:0}
.selected-work h2{font-size:22px;line-height:1.35;margin:0 0 20px}
.selected-work a{color:var(--ink)}
.selected-work article p{font-size:15px;line-height:1.6}
.other-work{margin:32px 0}
.other-work>summary,.destination-index>summary{cursor:pointer;font:500 16px/1.5 var(--sans);color:var(--ink);padding:10px 0;min-height:44px}
.other-work>summary:focus-visible,.destination-index>summary:focus-visible{outline:2px solid var(--blue);outline-offset:5px}
.dissertation-evaluations blockquote{font-size:16px;color:var(--muted)}
.directory-footer{display:block;max-width:1370px;margin:auto;padding-top:6px}
.home .destination-index{max-width:1100px;width:100%;margin:0 auto 10px}
.destination-groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;padding:14px 0 18px}
.destination-group h3{font:500 14px/1.5 var(--sans);color:var(--muted);margin:0 0 12px}
.destination-group a{display:block;color:var(--ink);font:400 15px/1.5 var(--sans);padding:6px 0;min-height:36px}
.viewer-tools{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}
.viewer-tools a{font-size:14px}
.viewer-tools button{border:1px solid var(--ink);background:var(--paper);padding:9px 18px;min-height:44px;color:var(--ink)}
dialog img{max-width:90vw;max-height:80vh}
footer a{color:var(--muted)}
@media(max-width:1100px){
 .home .restored-main-map{overflow-x:auto;overflow-y:hidden}
 .home .restored-main-map>.map-legend{position:sticky;left:0;max-width:calc(100vw - 40px);margin:0;padding:12px 0}
 .destination-groups{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:780px){
 .home .home-metro{padding-top:26px;padding-bottom:12px}
 .home .map-heading{padding-bottom:0;margin-bottom:12px;order:0}
 .home .restored-main-map{margin:0;order:2}
 .home .map-wrap{width:1000px;min-width:1000px;height:625px;margin:0}
 .home .station.position-lower-right>b{left:26px;transform:none;text-align:left}
 .home .station[data-stop=visualization]>b{transform:translateX(-50%);text-align:center}
 .home .destination-index{margin-top:12px;order:1}
 .destination-groups{gap:22px 18px}
 .destination-group a{min-height:44px}
 .inner .page-layout main{padding-top:28px}
 .selected-work{grid-template-columns:1fr;gap:36px}
 .selected-work article:nth-child(2) img{max-width:440px;margin-inline:auto}
 .project-meta>div{grid-template-columns:90px minmax(0,1fr);gap:12px}
 .inner .network-shell{display:none}
 .current-route nav{flex-wrap:wrap;overflow:visible;gap:0;padding:8px 0}
 .current-route nav a{flex:0 0 50%;min-width:0;min-height:78px;padding:8px 20px 12px 0}
 .current-route nav a:not(:last-child):before{display:none}
 .current-route nav a>span{margin-top:8px}
 .current-route h2{margin-bottom:14px}
}
@media(max-width:420px){.destination-groups{grid-template-columns:1fr}.project-meta>div{grid-template-columns:1fr;gap:2px}.viewer-tools{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* October 2026 content and map catalogue */
.beta-badge{display:inline-block;border:1px solid #b96529;background:#fff4df;color:#80501c;border-radius:30px;padding:3px 12px;font-size:12px;letter-spacing:.06em;margin-bottom:14px}
.home-jumps{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;font-size:15px}.home-jumps a{text-underline-offset:4px}.home-jumps span{color:var(--muted)}
.start-here{display:block;font:600 12px/1.4 var(--sans);white-space:nowrap;margin-bottom:8px;letter-spacing:.03em}
.home .station[data-stop=travel]>b{transform:translate(24px,-50%)}
.home .recent-works{padding:42px clamp(22px,6vw,90px) 60px;border-top:1px solid var(--rule);max-width:1150px;margin:auto}.recent-works .catalog-card{max-width:690px;margin:25px auto}.recent-works h2{font:400 38px/1.2 var(--serif)}
.eyebrow{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.catalog-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}.catalog-card{border:1px solid var(--rule);border-radius:9px;overflow:hidden;box-shadow:0 4px 14px #172a3a06}.catalog-card .map-title{font:500 21px/1.25 var(--serif);padding:20px;color:var(--ink);border:0;min-height:85px}.catalog-card .enlarge{padding:18px;background:#f1f0ea;position:relative}.catalog-card img{height:300px;object-fit:contain;background:#f1f0ea}.catalog-card .map-description{padding:0 20px;font-size:15px}.catalog-links{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--rule);padding:17px 20px;font-size:14px}.catalog-card .catalog-links a{color:var(--link)}
.map-detail>.catalog-card{max-width:100%}.map-detail>.catalog-card .map-title{display:none}.map-detail>.catalog-card img{height:auto;max-height:760px}.map-detail>.catalog-card .catalog-links{display:none}.map-detail .map-actions{display:flex;gap:18px;flex-wrap:wrap;margin:22px 0}.restricted-map>img{padding:18px;filter:blur(1px)}
.methodology{border:1px solid var(--rule);border-radius:8px;background:white;margin:30px 0;overflow:hidden}.methodology>summary{padding:20px;cursor:pointer;font-size:20px;font-family:var(--serif);background:#f1f3ee}.documentation{padding:clamp(12px,3vw,26px);font-size:15px}.documentation>p{white-space:pre-wrap}.documentation-table{overflow-x:auto;margin:18px 0}.documentation table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.5}.documentation td{border:1px solid #d6ddd7;padding:10px;vertical-align:top;min-width:90px;overflow-wrap:anywhere}.documentation tr:first-child{background:#eff2ee}.documentation td p{margin:0 0 5px}.document-download{display:inline-block;margin-bottom:22px}.citation-panel{background:#f0f3ef;padding:26px!important;border-radius:8px}.citation-text{font-family:var(--serif);font-size:19px}.citation-downloads{display:flex;gap:18px;flex-wrap:wrap;margin:20px 0}.permalink{overflow-wrap:anywhere;font-size:13px}.citation-panel h3{margin-top:28px}
.about-portrait{float:right;width:clamp(140px,22vw,230px);height:auto;margin:0 0 24px 30px;border-radius:5px;box-shadow:0 8px 25px #172a3a15}.opening-quote{font:400 30px/1.4 var(--serif);margin:20px 0 35px;padding-left:22px;border-left:3px solid var(--blue)}.opening-quote cite{display:block;font:14px var(--sans);margin-top:12px}.value-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.value-grid>div{padding:22px;background:#f0f3ef;border-top:3px solid var(--blue)}.value-grid dt{font:500 23px var(--serif);margin-bottom:10px}.value-grid dd{margin:0;font-size:15px}.database-example{margin:26px 0}.database-example img{height:auto}.blog-callout{display:grid;gap:9px;background:#edf3ec;border-left:5px solid var(--green);padding:26px;text-decoration:none;color:var(--ink);margin:30px 0}.blog-callout strong{font:500 30px var(--serif)}.blog-callout:hover{background:#e3edde}.coming-soon{color:var(--muted);font-size:13px}.progress-stage{padding:16px 0!important;border-top:1px solid var(--rule)}.progress-stage ul{list-style:none;padding:0}.progress-stage li{display:flex;justify-content:space-between;align-items:start;gap:20px;padding:14px 0;border-bottom:1px solid #e9eae6}.progress-stage li>span{flex:1}.progress-stage small{display:block;color:var(--muted);margin-top:5px}.status{font:500 12px/1.4 var(--sans);padding:5px 9px;border-radius:4px;max-width:180px;min-width:75px}.status.done{background:#e3eee0;color:#315d36}.status.planned{background:#efeeeb;color:#616969}.blog-empty{border:1px solid var(--rule);padding:28px!important;margin-top:30px}
.viewer-context{display:flex;gap:20px;flex-wrap:wrap;background:var(--paper);padding:12px 20px}.viewer-context a{font-size:14px}.viewer-tools{flex-wrap:wrap}
@media(max-width:760px){.catalog-grid,.value-grid{grid-template-columns:1fr}.catalog-card img{height:340px}.about-portrait{float:none;width:180px;margin:0 0 24px}.home-jumps{flex-direction:column;gap:5px}.progress-stage li{gap:12px}.status{max-width:125px}.home .station[data-stop=infrastructure]>b{font-size:14px;max-width:160px}.catalog-card .map-title{min-height:0}.documentation{padding:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
