/* Login-only, decorative vector network. No live map service or frame loop. */
.login-page.login-network{isolation:isolate;position:relative;grid-template-columns:minmax(0,1.3fr) minmax(360px,440px);gap:clamp(24px,5vw,90px);padding:40px max(24px,calc((100vw - 1360px)/2));overflow:hidden;background:radial-gradient(ellipse at 30% 45%,#0b3150 0,transparent 53%),radial-gradient(ellipse at 88% 10%,#103650 0,transparent 46%),#040d1b}
.login-network::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(#6bdcff05 1px,transparent 1px),linear-gradient(90deg,#6bdcff05 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(transparent,#000 25%,#000 75%,transparent)}
.login-network .login-card{position:relative;width:100%;box-sizing:border-box;border-color:#d6e9fa;box-shadow:0 30px 90px #0007,0 0 45px #00bfff0d}
.login-map-slot{position:relative;width:100%;min-width:0;align-self:stretch;display:grid;place-items:center}
.login-network-scene{position:relative;width:100%;height:min(820px,calc(100dvh - 80px));min-height:680px;max-width:760px}
.network-heading{position:absolute;left:0;top:30px;z-index:1;pointer-events:none}
.network-eyebrow{color:#71cee9;font:600 10px/1.5 Inter,system-ui,sans-serif;letter-spacing:3px}
.network-heading h2{color:#f4faff;font-size:clamp(28px,2.8vw,43px);font-weight:550;line-height:1.16;letter-spacing:-1.5px;margin:14px 0}
.network-heading h2 span{color:#6bdcff}.network-heading p{color:#91aac2;font-size:13px;letter-spacing:.3px;margin:0}
.login-map-stage{position:absolute;inset:0 -24px 0 8px;transform:perspective(1200px) rotateY(-7deg) rotateX(4deg);transform-origin:55% 60%;pointer-events:none}
.uk-network-svg{display:block;width:100%;height:100%;overflow:visible}
.route-base{stroke:#218bc5;stroke-width:1.3;opacity:.48;fill:none}
.route-trail{stroke:#7feaff;stroke-width:2.8;stroke-linecap:round;fill:none;stroke-dasharray:45 955;stroke-dashoffset:1000;animation:uk-route-travel 14s linear infinite;animation-delay:var(--trail-delay);filter:drop-shadow(0 0 3px #28c6ff)}
.route-9 .route-base{stroke-dasharray:3 5;opacity:.35}.route-9 .route-trail{stroke-width:1.8}
.city-point{fill:#c1f7ff}.city-halo{fill:#19baff;opacity:.15}.city-pulse{fill:none;stroke:#71e1ff;stroke-width:1;opacity:.1;animation:uk-city-glow 24s ease-in-out infinite;animation-delay:var(--city-delay);transform-box:fill-box;transform-origin:center}
.key-city .city-point{fill:white}.key-city .city-halo{opacity:.3}.key-city .city-pulse{stroke-width:1.5}
.city-label{fill:#94bfd6;font:12px/1 Inter,system-ui,sans-serif;letter-spacing:.1px;paint-order:stroke;stroke:#06172a;stroke-width:3px;stroke-linejoin:round}
.key-city .city-label{fill:#e5f8ff;font-weight:600}
.network-caption{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#7697b0;font-size:10px;letter-spacing:1px}
.network-motion-toggle{min-height:36px;padding:8px 12px;background:#10304880;border:1px solid #41688180;border-radius:20px;color:#b9daec;font:11px Inter,system-ui,sans-serif;cursor:pointer}
.network-motion-toggle:hover{background:#173e59}.network-motion-toggle:focus-visible{outline:2px solid #70dfff;outline-offset:3px}
.network-paused .route-trail,.network-paused .city-pulse{animation-play-state:paused}
@keyframes uk-route-travel{to{stroke-dashoffset:0}}
@keyframes uk-city-glow{0%,2%{opacity:.8;transform:scale(1.1)}6%{opacity:.1;transform:scale(1.45)}10%,100%{opacity:.1;transform:scale(.65)}}
.route-0 .route-trail{animation-name:uk-route-0;animation-duration:24s;animation-delay:0s}@keyframes uk-route-0{0%{stroke-dashoffset:1000;opacity:.9}37.500%{stroke-dashoffset:0;opacity:.9}37.550%,100%{stroke-dashoffset:0;opacity:0}}
.route-1 .route-trail{animation-name:uk-route-1;animation-duration:24s;animation-delay:0s}@keyframes uk-route-1{0%,3.333%{stroke-dashoffset:1000;opacity:0}3.383%{stroke-dashoffset:1000;opacity:.9}24.167%{stroke-dashoffset:0;opacity:.9}24.217%,100%{stroke-dashoffset:0;opacity:0}}
.route-2 .route-trail{animation-name:uk-route-2;animation-duration:24s;animation-delay:0s}@keyframes uk-route-2{0%,6.667%{stroke-dashoffset:1000;opacity:0}6.717%{stroke-dashoffset:1000;opacity:.9}44.167%{stroke-dashoffset:0;opacity:.9}44.217%,100%{stroke-dashoffset:0;opacity:0}}
.route-3 .route-trail{animation-name:uk-route-3;animation-duration:24s;animation-delay:0s}@keyframes uk-route-3{0%,10.000%{stroke-dashoffset:1000;opacity:0}10.050%{stroke-dashoffset:1000;opacity:.9}64.167%{stroke-dashoffset:0;opacity:.9}64.217%,100%{stroke-dashoffset:0;opacity:0}}
.route-4 .route-trail{animation-name:uk-route-4;animation-duration:24s;animation-delay:0s}@keyframes uk-route-4{0%{stroke-dashoffset:1000;opacity:.9}37.500%{stroke-dashoffset:0;opacity:.9}37.550%,100%{stroke-dashoffset:0;opacity:0}}
.route-5 .route-trail{animation-name:uk-route-5;animation-duration:24s;animation-delay:0s}@keyframes uk-route-5{0%,37.500%{stroke-dashoffset:1000;opacity:0}37.550%{stroke-dashoffset:1000;opacity:.9}50.000%{stroke-dashoffset:0;opacity:.9}50.050%,100%{stroke-dashoffset:0;opacity:0}}
.route-6 .route-trail{animation-name:uk-route-6;animation-duration:24s;animation-delay:0s}@keyframes uk-route-6{0%,37.500%{stroke-dashoffset:1000;opacity:0}37.550%{stroke-dashoffset:1000;opacity:.9}83.333%{stroke-dashoffset:0;opacity:.9}83.383%,100%{stroke-dashoffset:0;opacity:0}}
.route-7 .route-trail{animation-name:uk-route-7;animation-duration:24s;animation-delay:0s}@keyframes uk-route-7{0%,37.500%{stroke-dashoffset:1000;opacity:0}37.550%{stroke-dashoffset:1000;opacity:.9}87.500%{stroke-dashoffset:0;opacity:.9}87.550%,100%{stroke-dashoffset:0;opacity:0}}
.route-8 .route-trail{animation-name:uk-route-8;animation-duration:24s;animation-delay:0s}@keyframes uk-route-8{0%,62.500%{stroke-dashoffset:1000;opacity:0}62.550%{stroke-dashoffset:1000;opacity:.9}70.833%{stroke-dashoffset:0;opacity:.9}70.883%,100%{stroke-dashoffset:0;opacity:0}}
.route-9 .route-trail{animation-name:uk-route-9;animation-duration:24s;animation-delay:0s}@keyframes uk-route-9{0%,50.000%{stroke-dashoffset:1000;opacity:0}50.050%{stroke-dashoffset:1000;opacity:.9}70.833%{stroke-dashoffset:0;opacity:.9}70.883%,100%{stroke-dashoffset:0;opacity:0}}
.route-10 .route-trail{animation-name:uk-route-10;animation-duration:24s;animation-delay:0s}@keyframes uk-route-10{0%,25.500%{stroke-dashoffset:1000;opacity:0}25.550%{stroke-dashoffset:1000;opacity:.9}46.333%{stroke-dashoffset:0;opacity:.9}46.383%,100%{stroke-dashoffset:0;opacity:0}}
.route-11 .route-trail{animation-name:uk-route-11;animation-duration:24s;animation-delay:0s}@keyframes uk-route-11{0%,25.500%{stroke-dashoffset:1000;opacity:0}25.550%{stroke-dashoffset:1000;opacity:.9}42.167%{stroke-dashoffset:0;opacity:.9}42.217%,100%{stroke-dashoffset:0;opacity:0}}
@media(max-width:1000px){.login-page.login-network{grid-template-columns:minmax(0,1fr) minmax(340px,410px);gap:16px;padding:28px 24px}.network-heading h2{font-size:29px}.network-heading{top:10px}.network-eyebrow{font-size:9px;letter-spacing:2px}.login-map-stage{inset:40px -16px 0 -20px}}
@media(max-width:760px){.login-page.login-network{grid-template-columns:minmax(0,1fr);gap:8px;padding:20px 16px 28px}.login-network .login-card{width:min(100%,440px);justify-self:center}.login-map-slot{max-width:440px;justify-self:center}.login-network-scene{height:210px;min-height:0}.network-heading{left:4px;top:35px;width:48%}.network-heading h2{font-size:27px;letter-spacing:-.8px}.network-heading p{display:none}.login-map-stage{inset:-12px -5px -15px 40%;transform:none}.network-caption{left:4px;right:auto;bottom:12px;gap:12px}.network-caption>span{display:none}.network-motion-toggle{font-size:10px;min-height:32px;padding:6px 10px}.city-label{display:none}.key-city .city-label{display:none}.route-trail{filter:none;stroke-width:3.5}.network-route:not(.route-0):not(.route-4):not(.route-7) .route-trail{animation:none;opacity:.2}.network-city:not(.key-city) .city-pulse{animation:none}.login-network .login-logo{width:200px}.login-network .login-card{padding:24px}}
@media(max-width:360px){.login-page.login-network{padding-inline:12px}.login-network-scene{height:185px}.network-heading{top:26px}.network-heading h2{font-size:23px}.network-eyebrow{font-size:8px;letter-spacing:1.4px}.network-heading p{font-size:10px}.network-motion-toggle{font-size:9px}.login-network .login-card{padding:22px 18px}.login-map-stage{left:43%}}
@media(prefers-reduced-motion:reduce){.login-network .route-trail,.login-network .city-pulse{animation:none;filter:none}.login-network .route-trail{stroke-dasharray:none;opacity:.45}.network-motion-toggle{display:none}}
