#fx-section-4 .map-tiles,#fx-section-4 .map-markers{position:absolute;inset:0;overflow:hidden}
#fx-section-4 .map-tiles img{position:absolute;width:256px!important;height:256px!important;max-width:none!important}
#fx-section-4 .map-markers{z-index:2}
#fx-section-4 .map-flow{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
#fx-section-4 .map-flow path{fill:none;stroke:#b99aff;stroke-width:1.5}
#fx-section-4 .map-credit{position:absolute;bottom:8px;right:8px;z-index:3;font-size:10px;background:#08080acc;padding:4px 8px;color:#fff}
body.home-digital #fx-section-4{padding-top:80px}
body.home-digital #fx-section-4 .reveal{opacity:1;transform:none}
#fx-section-4 body.home-digital .access-map{display:block!important}
#fx-section-4 .airport-note{display:flex;justify-content:space-between;align-items:center;gap:40px;padding:32px 0;color:#f4f2ee}
#fx-section-4 .airport-note span{font-size:12px;letter-spacing:.05em}
#fx-section-4 .airport-note strong{display:block;font-size:clamp(48px,6vw,80px);font-weight:500;letter-spacing:-.05em;line-height:1.2}
#fx-section-4 .airport-note p{font-size:15px;color:#c7c0d5;margin:8px 0}
#fx-section-4 .airport-link{display:grid;grid-template-columns:auto 90px auto;align-items:center;gap:16px}
#fx-section-4 .airport-link i{height:2px;background:linear-gradient(90deg,#8a4fff,#eee);position:relative}
#fx-section-4 .airport-link i:after{content:'';position:absolute;width:6px;height:6px;background:white;top:-2px;animation:travel 3s linear infinite;box-shadow:0 0 12px #8a4fff}
#fx-section-4 .airport-link small{grid-column:1/-1;color:#aaa2b8;font-size:11px}
#fx-section-4 .map-stage{height:640px!important;min-height:640px!important;border:1px solid #ffffff14;position:relative;overflow:hidden}
#fx-section-4 .map-tiles{filter:grayscale(1) invert(1) brightness(.6) contrast(.85)}
#fx-section-4 .place{position:absolute;color:#f4f2ee;background:#0b0910df;padding:8px 11px;font-size:13px;transform:translate(-50%,12px);white-space:nowrap}
#fx-section-4 .place:before{content:'';position:absolute;left:50%;top:-15px;width:6px;height:6px;border-radius:50%;background:#d9cbff;box-shadow:0 0 12px #8a4fff}
#fx-section-4 .place.campus{background:#8a4fff;transform:translate(-100%,-42px);font-weight:500}
#fx-section-4 .place.campus:before{left:100%;top:auto;bottom:-12px}
#fx-section-4 .place.minor{font-size:10px;padding:4px 6px;background:transparent;color:#ccc;transform:translate(10px,-12px)}
#fx-section-4 .place.minor:before{left:-12px;top:10px;width:4px;height:4px}
#fx-section-4 .city-times{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px}
#fx-section-4 .city-times a,#fx-section-4 .arrival a{color:#f4f2ee;text-decoration:none}
#fx-section-4 .city-times strong{display:block;font-size:27px;font-weight:400;margin-top:8px}
#fx-section-4 .travel-note{font-size:12px!important;line-height:1.6;color:#a79fb4;margin:22px 0!important;max-width:760px}
#fx-section-4 .arrival{display:flex;gap:30px;font-size:14px;padding-top:18px;border-top:1px solid #ffffff20}
@keyframes travel{from{left:0}to{left:100%}}
@media(max-width:650px){#fx-section-4 .airport-note{display:block}
#fx-section-4 .airport-link{margin-top:22px;grid-template-columns:auto 1fr auto}
#fx-section-4 .city-times{gap:12px}
#fx-section-4 .city-times strong{font-size:19px}
#fx-section-4 .arrival{flex-direction:column;gap:15px}
#fx-section-4 .map-stage{height:550px!important;min-height:550px!important}
#fx-section-4 .place{font-size:11px}
#fx-section-4 .place.minor{display:none}
}
@media(prefers-reduced-motion:reduce){#fx-section-4 .airport-link i:after,#fx-section-4 .route-moving{animation:none!important}
}
body.home-digital #fx-section-4 > .wrap{display:grid!important;grid-template-columns:1fr 1fr!important;gap:32px 56px!important;align-items:start!important}
body.home-digital #fx-section-4 .tag{grid-column:1/-1}
body.home-digital #fx-section-4 .access-map{grid-column:1/-1!important;grid-row:auto!important;width:100%!important;max-width:none!important}
body.home-digital #fx-section-4 .lead,body.home-digital #fx-section-4 .body{grid-column:auto!important;grid-row:auto!important;margin:0!important}
#fx-section-4 .airport-note strong{white-space:nowrap}
#fx-section-4 .airport-link span{white-space:nowrap}
@media(max-width:650px){body.home-digital #fx-section-4 > .wrap{grid-template-columns:1fr!important}
body.home-digital #fx-section-4 .lead,body.home-digital #fx-section-4 .body{grid-column:1!important}
}
#fx-section-4 .place.minor:nth-last-child(3){transform:translate(12px,-26px)}
#fx-section-4 .place.minor:last-child{transform:translate(-100%,-26px)}
#fx-section-4 .place.campus{transform:translate(-25%,-56px);padding:13px 17px}
#fx-section-4 .place.campus:before{left:25%;bottom:-18px;width:8px;height:8px}
#fx-section-4 .place.terminal{transform:translate(-85%,22px);padding:12px 16px}
#fx-section-4 .place.terminal:before{left:85%;top:-26px;width:8px;height:8px}
#fx-section-4 .place.car{transform:translate(-15%,22px);font-size:11px}
#fx-section-4 .place.car:before{left:15%;top:-26px}
#fx-section-4 .arrival{margin-top:26px}
@media(max-width:650px){#fx-section-4 .place.campus{transform:translate(-40%,-56px);padding:10px}
#fx-section-4 .place.campus:before{left:40%}
#fx-section-4 .place.terminal{transform:translate(-55%,22px);padding:10px}
#fx-section-4 .place.terminal:before{left:55%}
#fx-section-4 .place.car{transform:translate(-70%,40px)}
#fx-section-4 .place.car:before{left:70%;top:-44px}
}
#fx-section-4 .airport-note{justify-content:flex-start;gap:32px}
#fx-section-4 .airport-note>strong{flex:none}
#fx-section-4 .airport-note span{font-size:16px;letter-spacing:0}
#fx-section-4 .airport-note p{margin-bottom:0}
#fx-section-4 .map-markers .place{transform:none!important;padding:0!important;background:none!important;width:0;height:0}
#fx-section-4 .map-markers .place:before{left:-4px!important;top:-4px!important;bottom:auto!important;width:8px;height:8px}
#fx-section-4 .place b{display:block;position:absolute;padding:10px 12px;background:#0b0910e8;color:#f4f2ee;font-weight:400;font-size:12px;white-space:nowrap}
#fx-section-4 .place.campus b{left:24px;top:-20px;background:#8a4fff;font-weight:500}
#fx-section-4 .place.campus:after{content:'';position:absolute;width:24px;height:1px;background:#bba0ff}
#fx-section-4 .place.station b{right:20px;bottom:30px;font-size:11px}
#fx-section-4 .place.station:after{content:'';position:absolute;right:0;bottom:0;width:38px;height:1px;background:#c8bbdf;transform:rotate(48deg);transform-origin:right}
#fx-section-4 .place.terminal b{right:16px;top:12px}
#fx-section-4 .place.car b{left:18px;top:12px}
#fx-section-4 .place.hbf b{left:12px;top:12px}
@media(max-width:650px){#fx-section-4 .airport-note{display:flex;align-items:flex-start;gap:16px}
#fx-section-4 .airport-note>strong{font-size:38px}
#fx-section-4 .airport-note span{font-size:13px}
#fx-section-4 .airport-note p{font-size:12px}
#fx-section-4 .place b{font-size:10px;padding:8px}
#fx-section-4 .place.station b{right:8px;bottom:35px;font-size:9px}
#fx-section-4 .place.campus b{left:12px;top:-12px}
#fx-section-4 .place.car b{left:-90px;top:24px}
}
#fx-section-4 .place.station b{right:auto;left:24px;bottom:38px}
#fx-section-4 .place.station:after{right:auto;left:0;bottom:0;width:42px;transform:rotate(-55deg);transform-origin:left}
#fx-section-4 .airport-note .arrival{display:flex;flex-direction:column;gap:7px;margin:14px 0 0;padding:0;border:0;font-size:12px;line-height:1.5}
#fx-section-4 .airport-note .arrival a{color:#c7c0d5;width:fit-content;transition:color .2s}
#fx-section-4 .airport-note .arrival a:hover{color:#f4f2ee}
#fx-section-4 .map-flow .route-base{stroke:#8a4fff;stroke-width:1;opacity:.45}
#fx-section-4 .map-flow .route-moving{stroke:#c7b0f4;stroke-width:2;stroke-linecap:round;stroke-dasharray:3 9;opacity:.55;filter:blur(.45px) drop-shadow(0 0 2px #a478ff);animation:euref-led-flow 7s linear infinite;animation-play-state:running}
@keyframes euref-led-flow{from{stroke-dashoffset:0}to{stroke-dashoffset:-24}}
@media(prefers-reduced-motion:reduce){#fx-section-4 .map-flow .route-moving{animation:none!important}
}
@media(max-width:650px){#fx-section-4 .place.station b{left:12px;bottom:38px;font-size:9px}
#fx-section-4 .airport-note .arrival{font-size:11px}
}
body.home-digital #fx-section-4 .access-map{display:grid!important;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);gap:40px;align-items:center}
#fx-section-4 .airport-note{display:block;padding:24px 0}
#fx-section-4 .airport-note>strong{font-size:clamp(52px,6vw,80px);margin-bottom:24px}
#fx-section-4 .airport-note>div>span{display:block;font-size:16px;line-height:1.7}
#fx-section-4 .airport-note .arrival{margin-top:24px;gap:16px;font-size:13px;line-height:1.8}
body.home-digital #fx-section-4 .map-stage{height:720px!important;min-height:720px!important;width:100%}
@media(max-width:750px){body.home-digital #fx-section-4 .access-map{grid-template-columns:1fr;gap:16px}
#fx-section-4 .airport-note>strong{font-size:56px}
#fx-section-4 .airport-note .arrival{font-size:12px}
body.home-digital #fx-section-4 .map-stage{height:640px!important;min-height:640px!important}
}
body.home-digital #fx-section-4 .access-map{grid-template-columns:minmax(0,.7fr) minmax(0,1fr)!important}
@media(max-width:750px){body.home-digital #fx-section-4 .access-map{grid-template-columns:1fr!important}
}
body.home-digital #fx-section-4 .access-map{grid-template-columns:minmax(0,.7fr) minmax(0,1fr)!important}
body.home-digital #fx-section-4 .map-stage{aspect-ratio:9/16;height:auto!important;min-height:0!important;width:100%;}
@media(max-width:750px){body.home-digital #fx-section-4 .access-map{grid-template-columns:1fr!important}
}
body.home-digital #fx-section-4>.wrap{max-width:1120px!important;grid-template-columns:minmax(0,1fr) 360px!important;gap:24px 64px!important;position:relative}
body.home-digital #fx-section-4 .tag{grid-column:1!important}
body.home-digital #fx-section-4 .lead{grid-column:1!important;font-size:clamp(32px,3.4vw,48px)!important;line-height:1.1!important}
body.home-digital #fx-section-4 .body{grid-column:1!important;font-size:15px!important;line-height:1.7!important}
body.home-digital #fx-section-4 .access-map{display:contents!important}
body.home-digital #fx-section-4 .airport-note{grid-column:1;padding:0;margin-top:8px;align-self:start}
body.home-digital #fx-section-4 .airport-note>strong{font-size:52px;margin-bottom:12px}
body.home-digital #fx-section-4 .airport-note .arrival{margin-top:14px;gap:8px;font-size:12px}
body.home-digital #fx-section-4 .map-stage{grid-column:2;grid-row:1/5;width:360px!important;height:640px!important;aspect-ratio:9/16;align-self:center}
#fx-section-4 .map-markers .place b{font-size:10px;padding:8px}
#fx-section-4 .place.station b{left:12px;max-width:160px;white-space:normal;line-height:1.4}
#fx-section-4 .place.campus b{left:12px}
#fx-section-4 .place.car b{left:10px}
@media(max-width:850px){body.home-digital #fx-section-4>.wrap{grid-template-columns:minmax(0,1fr)!important;gap:24px!important;max-width:600px!important}
body.home-digital #fx-section-4 .map-stage{grid-column:1;grid-row:auto;width:min(100%,360px)!important;height:auto!important;justify-self:center}
body.home-digital #fx-section-4 .lead{font-size:36px!important}
}
body.home-digital #fx-section-4{padding:clamp(80px,9vw,144px) 0!important}
body.home-digital #fx-section-4>.wrap{max-width:var(--wrap)!important;gap:32px 8%!important}
body.home-digital #fx-section-4 .lead{font-size:clamp(2.8rem,5.4vw,6rem)!important;line-height:1!important;letter-spacing:-.055em!important;max-width:16ch!important}
body.home-digital #fx-section-4 .body{font-size:1rem!important;line-height:1.65!important;max-width:43ch!important}
body.home-digital #fx-section-4 .map-stage{border:0;background:transparent;overflow:visible}
.map-stage canvas{width:100%;height:100%;display:block}
#fx-section-4 .model-label{position:absolute;transform:translate(-50%,-50%);font-size:10px;color:#d5cde0;background:#100d19e8;padding:6px 8px;white-space:nowrap;pointer-events:none}
#fx-section-4 .campus-label{background:#8a4fff;color:white;transform:translate(-10%,-180%);font-weight:500;font-size:11px}
#fx-section-4 .terminal-label{transform:translate(-80%,-160%)}
#fx-section-4 .sky-label{color:#d5bfff;transform:translate(-100%,40%);background:transparent}
#fx-section-4 .station-label{transform:translate(0,-20%);font-size:9px}
#fx-section-4 .road-label{transform:translate(-20%,0)}
#fx-section-4 .model-note{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-size:10px;color:#aaa0b7}

#fx-section-4 .schematic-map{display:block;width:100%;height:100%;overflow:hidden;background:#100e18;border:1px solid #b9a3d51a}
#fx-section-4 .schematic-flow{animation:map-arrivals 10s linear infinite;opacity:.65}
@keyframes map-arrivals{to{stroke-dashoffset:-48}}
@media(prefers-reduced-motion:reduce){#fx-section-4 .schematic-flow{animation:none}}

body.home-digital #fx-section-4 .map-stage{overflow:hidden;background:#100e18}
#fx-section-4 .map-tiles{filter:grayscale(1) invert(1) brightness(.65) contrast(.65);opacity:.8}
#fx-section-4 .place.car-north b{left:auto;right:12px;top:-76px}
#fx-section-4 .place.car-south b{left:auto;right:12px;top:12px}
#fx-section-4 .map-markers .place:after{display:none}
#fx-section-4 .map-markers .place b{line-height:1.4}
#fx-section-4 .label-leader{fill:none;stroke:#c9bade;stroke-width:.7;opacity:.55}
#fx-section-4 .map-markers .place.campus:before{left:-6px!important;top:-6px!important;width:12px;height:12px;background:#b180ec;border:1px solid #171019;box-sizing:border-box;box-shadow:0 0 0 3px #b180ec30,0 0 16px #b180ec66;z-index:2}
#fx-section-4 .place.campus b{background:#ffe3a0;color:#21182b}
#fx-section-4 .regional-direction{fill:none;stroke:#baa6d9;stroke-width:.8;stroke-dasharray:2 5;opacity:.4}
#fx-section-4 .regional-label{position:absolute;font-size:10px;white-space:nowrap;color:#d6c9e8;background:#100e18e8;padding:5px 6px;pointer-events:none}

/* Interactive OSM vector map. */
#fx-section-4 .vector-map{position:absolute;inset:0;background:#17151d;font-family:inherit}
#fx-section-4 .vector-pin{width:14px;height:14px;padding:0;border:2px solid #e1d1ff;background:#8a4fff;box-shadow:0 0 0 5px #8a4fff25,0 0 20px #8a4fff66;cursor:pointer}
#fx-section-4 .vector-pin-campus{width:20px;height:20px;background:#a97fff}
#fx-section-4 .vector-pin span{position:absolute;left:20px;top:-8px;background:#191320e8;border:1px solid #a97fff66;color:#dfcaff;padding:5px 8px;font-size:11px;line-height:1.4;white-space:nowrap;pointer-events:none}
#fx-section-4 .vector-pin-campus span{top:16px;left:20px;background:#8a4fff;color:white}
#fx-section-4 .map-overview{position:absolute;top:12px;left:12px;padding:9px 14px;background:#21182cee;border:1px solid #a97fff88;color:#eee4ff;cursor:pointer}
#fx-section-4 .map-status{position:absolute;bottom:40px;left:12px;right:12px;background:#17121fe8;color:#ddd;padding:10px;font-size:12px;pointer-events:none}
#fx-section-4 .map-status[hidden]{display:none}
#fx-section-4 .maplibregl-popup-content{background:#21182c;color:#eee4ff;padding:16px 28px 16px 16px}
#fx-section-4 .maplibregl-popup-close-button{color:white;padding:2px 6px}
#fx-section-4 .maplibregl-ctrl-attrib{font-size:10px}
#fx-section-4 .maplibregl-ctrl-group button{border-radius:0!important}
#fx-section-4 .vector-pin:focus-visible,#fx-section-4 .map-overview:focus-visible{outline:2px solid white;outline-offset:4px}

#fx-section-4 .vector-pin.label-left span{left:auto;right:20px}
#fx-section-4 .vector-pin-campus span{top:22px}

#fx-section-4 .maplibregl-ctrl-attrib{background:#1c1724de;color:#aaa0b6;border:1px solid #a97fff25;box-shadow:none}
#fx-section-4 .maplibregl-ctrl-attrib a{color:#bcb0cc}
#fx-section-4 .maplibregl-ctrl-attrib-button{filter:invert(.8);background-color:transparent}
#fx-section-4 .map-connection-note{position:absolute;bottom:34px;left:12px;font-size:10px;color:#bdb0cc;background:#17121dcc;padding:4px 7px;pointer-events:none}

/* Keep labels below the connections, which approach the campus from the south. */
#fx-section-4 .vector-pin[data-place="terminal"] span{top:14px;left:16px;right:auto}
#fx-section-4 .vector-pin[data-place="motorway"] span{top:14px}
#fx-section-4 .vector-pin-campus span{top:16px;left:24px;right:auto}
#fx-section-4 .vector-pin[data-place="station"] span{top:-12px;left:auto;right:20px}
#fx-section-4 .maplibregl-ctrl-scale{background:#17121de6;color:#c9bdd8;border-color:#b7a8c9;font:11px/1.5 sans-serif}
#fx-section-4 .map-connection-note{bottom:60px}
#fx-section-4 .vector-pin[data-place="terminal"] span{top:12px;left:auto;right:18px}
#fx-section-4 .vector-pin-campus span{top:-32px;left:24px;right:auto}
#fx-section-4 .map-connection-note{top:54px;bottom:auto;left:12px}

#fx-section-4 .map-regional .vector-pin:not(.vector-pin-campus){display:none}

#fx-section-4 .vector-pin[data-place="a44"] span{top:-8px;left:20px;right:auto}

/* Arrival copy beside the existing vector map. */
#euref-access-map .euref-arrival-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(28px,4vw,64px);align-items:start}
#euref-access-map .euref-arrival-copy .lead{margin:0 0 20px;font-size:clamp(28px,3vw,42px)}
#euref-access-map .euref-arrival-intro{color:#bab4c4;line-height:1.6;margin:0 0 32px}
#euref-access-map .euref-arrival-way{padding-top:18px;margin-top:24px;position:relative}
#euref-access-map .euref-arrival-way:before{content:'';position:absolute;top:0;left:0;width:32px;height:1px;background:#a97fff}
#euref-access-map .euref-arrival-way h3{font-size:18px;font-weight:500;color:#f5f2ff;margin:0 0 8px}
#euref-access-map .euref-arrival-way p{font-size:16px;line-height:1.6;color:#bab4c4;margin:0}
body #euref-access-map #fx-section-4{padding-top:0;min-width:0}
body #euref-access-map #fx-section-4 .access-map{display:block!important;width:100%;margin:0}
@media(max-width:800px){#euref-access-map .euref-arrival-layout{grid-template-columns:1fr}}

/* Give the arrival block more space after the studio tiles. */
#euref-access-map{margin-top:clamp(40px,5vw,72px)}
