/* Homepage route map: preserve the composition, refine its spacing and hierarchy. */
.home .map-heading h1{font-size:clamp(38px,4.2vw,60px)}
.home-metro{padding-top:28px;padding-bottom:52px}
.restored-main-map{direction:ltr;overflow:visible;position:relative;max-width:1220px;margin:auto}
.map-wrap{width:min(1220px,100%);aspect-ratio:1200 / 700;position:relative;margin:18px auto 0}
.metro-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.track,.network-line{fill:none;stroke-width:6.5;stroke-linecap:round;stroke-linejoin:round;transition:opacity .3s ease;filter:none}
.route-halo{fill:none;stroke-width:17;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .3s ease;pointer-events:none}
.route-halo.route-hover{opacity:.11}
.route-halo.route-hover.service-priority{opacity:.14}
.track.route-hover{opacity:1}
.network-pointed .track:not(.route-hover){opacity:.24}
.map-legend{position:absolute;left:0;top:18px;z-index:2;display:grid;gap:10px;padding:0;border:0;background:none}
.map-legend>span{display:flex;align-items:center;gap:9px;color:var(--ink);font:400 14px/1.3 var(--sans);letter-spacing:0}
.map-legend i{width:24px;height:5px;border-radius:4px;background:currentColor;flex-shrink:0}
.station{position:absolute;width:0;height:0;z-index:3;color:var(--ink);text-decoration:none;transition:opacity .3s ease}
.station-hit{position:absolute;left:-19px;top:-23px;width:44px;height:44px}
.station>b{position:absolute;width:max-content;max-width:190px;color:var(--ink);font:400 17px/1.35 var(--sans);letter-spacing:0;transition:scale .3s ease,color .3s ease;scale:1}
.station.featured-stop>b{font-weight:600;font-size:18px}
.station.project-stop>b{font-family:var(--serif);font-size:20px;font-weight:400;letter-spacing:.01em}
.station.featured-stop.project-stop>b{font-size:21px;font-weight:600}
.station.information-stop>b{font-size:16px;color:var(--muted)}
.station.end-stop>b{font-weight:400;font-size:17px}
.position-up>b{bottom:27px;transform:translateX(-50%);transform-origin:50% 100%;text-align:center}
.position-down>b{top:27px;transform:translateX(-50%);transform-origin:50% 0;text-align:center}
.position-left>b{right:27px;top:0;transform:translateY(-50%);transform-origin:100% 50%;text-align:right}
.position-right>b{left:27px;top:0;transform:translateY(-50%);transform-origin:0 50%;text-align:left}
.position-lower-right>b{left:26px;top:27px;transform-origin:0 0;text-align:left}
.station:hover>b,.station:focus-visible>b{font-style:normal;text-decoration:none;scale:1.045;color:var(--ink)}
.station.project-stop:hover>b,.station.project-stop:focus-visible>b{scale:1.035}
.map-stop,.restored-reference .network-stop{fill:var(--port-color);stroke:var(--paper);stroke-width:2.5;transition:stroke-width .3s ease}
.map-stop.junction-port,.restored-reference .network-stop.junction-port{fill:var(--paper);stroke:var(--ink);stroke-width:2}
.station-node{transition:opacity .3s ease;pointer-events:none}
.junction-container{fill:var(--paper);stroke:var(--ink);stroke-width:1.25;stroke-linejoin:round;transition:stroke-width .3s ease}
.station-node.end-stop .junction-container{stroke-width:1.1}
.station-node.station-pointed .junction-container{stroke-width:1.6}
.node-halo{opacity:0;transition:opacity .3s ease}
.station-node.route-highlight .node-halo{opacity:.12}
.station-node.station-pointed .node-halo{opacity:.19}
.station-node.station-pointed .map-stop,.station-node.station-pointed .network-stop{stroke-width:3}
.network-pointed .station:not(.route-highlight),.network-pointed .station-node:not(.route-highlight){opacity:.38}
/* Local route diagrams have their own layout and only show adjacent connections. */
.network-shell{height:auto;padding:0;border:0;overflow:visible}
.restored-reference{max-width:1040px;height:auto;margin:0 auto;padding:16px 24px 12px;overflow:hidden;direction:ltr;border:0}
.reference-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 auto 6px}
.restored-reference .network-title{position:static;flex-shrink:0;padding:0;background:none;color:var(--ink);text-decoration:none}
.restored-reference .network-title>b{font:400 22px/1.2 var(--serif);margin:0}
.reference-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px 16px}
.reference-legend>a{display:flex;align-items:center;gap:7px;color:var(--muted);font:400 14px/1.3 var(--sans);text-decoration:none}
.reference-legend i{width:19px;height:4px;background:var(--legend-color);border-radius:3px;flex-shrink:0}
.reference-legend .selected-route{color:var(--ink);font-weight:600}
.reference-legend a:hover,.reference-legend a:focus-visible{color:var(--ink)}
.reference-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;direction:ltr}
.restored-reference .reference-scroll svg{display:block;width:var(--mini-width,950px);min-width:var(--mini-width,950px);height:var(--mini-height,200px);max-height:none;margin:0 auto;transform:none;overflow:visible}
.restored-reference .network-line{stroke-width:5;opacity:.36;filter:none}
.restored-reference .network-line.active-line{stroke-width:5;opacity:.9;filter:none}
.restored-reference .network-line.route-hover{stroke-width:5;opacity:1;filter:none}
.restored-reference.network-pointed .network-line:not(.route-hover){opacity:.24}
.restored-reference .route-halo{stroke-width:14}
.reference-hit{fill:transparent;stroke:none}
.restored-reference a{outline:none;transition:opacity .3s ease}
.restored-reference .reference-label{fill:var(--ink);font:400 14px/1.3 var(--sans);stroke:var(--paper);stroke-width:3;stroke-linejoin:round;paint-order:stroke;opacity:1;transform:scale(1);transform-origin:0 0;transition:transform .3s ease}
.restored-reference .featured-stop .reference-label{font-weight:600}
.restored-reference .project-stop .reference-label{font-family:var(--serif);font-size:16px}
.restored-reference .featured-stop.project-stop .reference-label{font-weight:600}
.restored-reference .information-stop .reference-label{fill:var(--muted)}
.restored-reference a.current .reference-label{font-weight:500;opacity:1}
.restored-reference a.current.featured-stop .reference-label{font-weight:600}
.restored-reference a:hover .reference-label,.restored-reference a:focus-visible .reference-label{font-size:14px;text-decoration:none;transform:scale(1.045)}
.restored-reference a.project-stop:hover .reference-label,.restored-reference a.project-stop:focus-visible .reference-label{font-size:16px}
.restored-reference .current-halo{stroke:none;opacity:.12}
.restored-reference a.current .network-stop{filter:none}
.restored-reference a:focus-visible .network-stop{stroke:var(--ink);stroke-width:3}
.restored-reference.network-pointed a[data-stop]:not(.route-highlight){opacity:.4}
/* Current-route station links end cleanly at their first and last nodes. */
.current-route nav:before{display:none}
.current-route nav a:not(:last-child):before{content:'';position:absolute;left:9px;top:11px;width:3px;height:100%;background:var(--route-color);z-index:0}
.current-route a>span{display:block;transition:transform .3s ease;transform-origin:left top}
.current-route a:hover>span,.current-route a:focus-visible>span{transform:scale(1.04);text-decoration:none}
.current-route a:hover span,.current-route a:focus-visible span{text-decoration:none}
.current-route a i{display:block;width:20px;height:20px;border:4px solid var(--paper);outline:2px solid var(--route-color);background:var(--route-color);transition:box-shadow .3s ease}
.current-route a.active i{background:var(--paper);box-shadow:inset 0 0 0 3px var(--route-color),0 0 0 5px color-mix(in srgb,var(--route-color) 12%,transparent)}
.current-route a.route-highlight i{box-shadow:0 0 0 5px color-mix(in srgb,var(--route-color) 12%,transparent)}
.current-route a{transition:opacity .3s ease}
body.network-pointed .current-route a:not(.route-highlight){opacity:.4}
/* Preserve the existing galleries, atlas introduction, and section trams. */
.branch-tram{padding-left:16px;padding-top:24px;padding-bottom:26px}
.branch-stops:before{right:145px}
.branch-stops>a:hover,.branch-stops>a:focus-visible{text-decoration:none}
.tram-stops a span{transition:transform .3s ease;transform-origin:left top}
.tram-stops a:hover span,.tram-stops a:focus-visible span{transform:scale(1.04);text-decoration:none}
body[data-station=visualization] main>.map-card{width:min(100%,640px);margin:28px auto}
.atlas-introduction{max-width:760px;margin:30px 0 34px}
.atlas-introduction>p{font:400 18px/1.65 var(--sans);color:var(--muted);margin:0 0 16px}
.atlas-introduction>p:last-child{margin-bottom:0}
footer nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px 22px;font-size:14px}
footer nav a{text-decoration:none}
header nav{flex-wrap:wrap;justify-content:flex-end;gap:10px 20px}
@media(max-width:1100px){
 header{flex-wrap:wrap}header nav{order:3;width:100%;justify-content:flex-start;margin-inline-start:0}
 .restored-main-map{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
 .map-wrap{width:1080px;min-width:1080px;height:630px;aspect-ratio:1200 / 700;transform:none;margin-bottom:0}
 .map-legend{transform:none}
}
@media(max-width:780px){
 .home-metro{padding-inline:20px}
 .restored-main-map>.map-legend{position:sticky;left:0;top:auto;width:100%;max-width:100%;margin:18px 0 4px;padding:12px 0 6px}
 .station.position-lower-right>b{left:0;transform:translateX(-50%);transform-origin:50% 0;text-align:center}
 .station[data-stop=visualization]>b{transform:none;transform-origin:0 0;text-align:left}
 .restored-reference{padding-inline:16px}
 .reference-heading{align-items:flex-start;flex-direction:column;gap:8px}
 .reference-legend{justify-content:flex-start;gap:7px 13px}
 .current-route nav{gap:0;padding:12px 12px 20px;direction:ltr}
 .current-route nav a{display:block;flex:0 0 180px;min-width:180px;min-height:78px;padding-right:18px}
 .current-route nav a>span{margin-top:14px;max-width:160px}
 .current-route nav a:not(:last-child):before{left:10px;top:9px;width:180px;height:3px}
 footer{flex-direction:column}footer nav{justify-content:flex-start}
}
@media(prefers-reduced-motion:reduce){}
/* The English revision keeps the existing map, palette and type families. */
.home .map-heading h1.site-identity{font:400 16px/1.4 var(--sans);letter-spacing:0;max-width:900px;margin:0 0 10px;color:var(--muted)}
.home .map-heading .destination-title{font:400 clamp(38px,4.2vw,60px)/1.05 var(--serif);color:var(--ink);letter-spacing:-.035em;margin:0}
.map-heading-links{display:flex;align-items:baseline;gap:20px;margin-bottom:8px}
.home .map-heading-links p{margin:0}
.map-heading-links a{font:400 14px/1.4 var(--sans);letter-spacing:0;text-decoration:none;pointer-events:auto}
.map-heading-links a:hover,.map-heading-links a:focus-visible{color:var(--ink)}
.site-directory{display:block;margin:22px auto 0;max-width:1220px;padding:8px 0 0}
.site-directory>p{font:500 14px/1.4 var(--sans);color:var(--muted);margin:0 0 12px}
.site-directory>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px 24px}
.site-directory a{font:400 14px/1.45 var(--sans);letter-spacing:0;color:var(--ink);text-decoration:none}
.site-directory a:hover,.site-directory a:focus-visible{color:var(--blue)}
.directory-footer{padding:0 clamp(22px,6vw,90px) 36px}
.directory-footer .site-directory{margin-top:0}
.research-entry{padding:18px 0;border-top:1px solid var(--rule)}
.research-entry h3{font:400 24px/1.3 var(--serif);margin:0}
.research-entry h3 small{font:400 16px/1.4 var(--sans);color:var(--muted)}
.research-entry p{margin:18px 0 6px;padding-left:23px;line-height:1.65}
.research-projects summary,.conference-presentations summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:10px}
.research-projects summary::-webkit-details-marker,.conference-presentations summary::-webkit-details-marker{display:none}
.research-projects summary:before,.conference-presentations summary:before{content:'▸';color:var(--muted);display:inline-block;flex:0 0 13px;transition:transform .2s ease}
.research-projects details[open]>summary:before,.conference-presentations details[open]>summary:before{transform:rotate(90deg)}
.conference-presentations summary h2{margin:0}
.conference-list{padding:8px 0 0;list-style:none}
.conference-list li{padding:20px 0}
.conference-list li:before{content:none}
.conference-list p{margin:0;line-height:1.55;color:var(--muted)}
.conference-list .presentation-title{font-weight:500;color:var(--ink);margin-bottom:6px}
.dissertation-evaluations blockquote{margin:26px 0;padding-left:24px;border-left:2px solid var(--rule)}
.dissertation-evaluations blockquote p{line-height:1.7}
.project-index section h2 a,.project-index section p a{color:inherit;text-decoration:none}
.project-index section h2 a:hover,.project-index section p a:hover{color:var(--blue)}
.image-action{display:block;padding:9px 14px;color:var(--muted);font:400 13px/1.4 var(--sans);text-align:right}
.map-card a.enlarge{text-decoration:none}
.map-card.photo-preview{max-width:620px}
body[data-station=visualization] main>.map-card{width:min(100%,560px)}
.branch-stops>a>.tram-label{display:inline-block;transform-origin:left top;transition:transform .3s ease}
.branch-stops>a:hover>.tram-label,.branch-stops>a:focus-visible>.tram-label{transform:scale(1.04);text-decoration:none}
.branch-stops>.disabled>.tram-label{display:inline-block}
.tram-docked .branch-stops>a>.tram-label{max-width:160px}
@media(max-width:780px){
 .site-directory>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
 .home .map-heading h1.site-identity{font-size:14px;max-width:500px}
 .map-heading-links{gap:16px}
 .directory-footer{padding-inline:22px}
}
@media(prefers-reduced-motion:reduce){.junction-container,.research-projects summary:before,.conference-presentations summary:before,.branch-stops>a>.tram-label{transition:none}}

/* Focused front page and quieter continuous page layouts. */
.home .home-metro{padding-top:20px;padding-bottom:24px;min-height:calc(100svh - 80px);display:flex;flex-direction:column;justify-content:center}
.home .map-heading{width:100%;max-width:1100px}
.home .map-heading-links{justify-content:flex-end;margin:0}
.home .map-heading-links a{font:500 clamp(22px,2.2vw,30px)/1.3 var(--serif);color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:7px}
.home .site-identity{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.home .restored-main-map{width:100%;max-width:1100px}
.home .map-wrap{width:100%;aspect-ratio:1040 / 650;margin:0 auto}
.track{stroke-width:9}
.route-halo{stroke-width:22}
.map-legend i{height:7px}
.restored-reference .network-line,.restored-reference .network-line.active-line,.restored-reference .network-line.route-hover{stroke-width:7}
.junction-container{stroke:var(--muted);stroke-width:.85}
.station-node.end-stop .junction-container{stroke-width:.85}
.station-node.station-pointed .junction-container{stroke-width:1.2}
.junction-node .route-port,.junction-node .node-halo{visibility:hidden}
.home .about-contact{display:block;max-width:1100px;margin:0 auto;padding:56px clamp(20px,5vw,60px) 80px!important;border:0}
.home .about-contact>div:first-child{border:0;padding:0;max-width:760px;margin:0 auto}
.home .about-contact h2{font:500 clamp(38px,4vw,52px)/1.15 var(--serif);margin:0 0 30px}
.home .about-contact p{max-width:none;font:400 clamp(19px,1.65vw,22px)/1.65 var(--serif);margin:0 0 24px}
.home #about{scroll-margin-top:32px}
.inner main section,.inner main section.map-type,.inner main section.tram-intro{border:0;padding:12px 0 20px;margin-top:26px}
.inner main section h2,.inner .conference-presentations h2{font:500 clamp(22px,2.2vw,28px)/1.35 var(--sans);letter-spacing:0;margin:0 0 18px}
.inner .lead{font:400 19px/1.65 var(--sans);color:var(--ink);margin:28px 0 30px;max-width:760px}
.inner main li,.inner .research-entry{border:0}
.inner .map-card{border:0;background:transparent}
.inner .map-card figcaption{border:0;padding:12px 0}
.inner .directory-footer{display:none}
@media(max-width:1100px){.home .map-wrap{width:1000px;min-width:1000px;height:625px;aspect-ratio:1040 / 650}.home .home-metro{min-height:0}.home .map-heading{padding-bottom:10px}}
@media(max-width:780px){.home .map-heading-links{justify-content:flex-start}.home .map-wrap{margin-top:0}.home .about-contact{padding-top:32px!important}.home .about-contact p{font-size:20px}.inner main section{margin-top:20px}}

/* Uploaded maps retain their full composition and original files. */
.map-card .map-title{font:500 clamp(18px,2vw,23px)/1.4 var(--sans);color:var(--ink);padding:0 0 16px}
.map-file-link{margin:10px 0 0;font:400 14px/1.5 var(--sans)}
.map-card .map-file-link a{display:inline;cursor:pointer;color:var(--blue);text-underline-offset:3px}
body[data-station=atlas] main>.map-card{max-width:760px;margin:30px auto}
body[data-station=maps] .portfolio>.map-card:first-child,body[data-station=vilna] main>.map-card{max-width:680px;margin-inline:auto;width:100%}

/* Shared map documentation and feedback controls. */
.map-support{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 24px;margin:18px 0 4px;font:400 14px/1.5 var(--sans)}
.map-card .map-support a{display:inline;cursor:pointer;color:var(--blue);text-underline-offset:3px}
.map-support [aria-disabled]{color:var(--muted)}
.map-support small{display:block;font-size:12px}
.map-support a:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
@media(max-width:600px){.map-support{display:grid;gap:14px}.map-support small{display:inline;margin-left:6px}}
