/* IPPA v21: luminous interactive nationwide master network */
.v21-map-section{isolation:isolate}
.v21-map-stage{height:820px;max-width:1160px;isolation:isolate;border:1px solid #4e9dd86e;border-radius:24px;background:radial-gradient(ellipse at 49% 52%,#10477d9c 0,#08254888 38%,transparent 67%),radial-gradient(ellipse at 45% 60%,#0b327a 0,transparent 70%),linear-gradient(132deg,#040d21 4%,#061a38 45%,#08172d 100%);box-shadow:0 26px 90px #0007,inset 0 0 60px #0a467a39;overflow:hidden}
.v21-map-stage:before{background:linear-gradient(#72c9fa13 1px,transparent 1px),linear-gradient(90deg,#72c9fa13 1px,transparent 1px);background-size:42px 42px;opacity:.52;mask-image:linear-gradient(90deg,transparent,#000 17%,#000 85%,transparent)}
.v21-map-stage:after{content:"";pointer-events:none;z-index:0;position:absolute;inset:-40%;background:radial-gradient(circle at 50% 50%,transparent 36%,#63d0ff10 37%,transparent 38%);animation:v21-breathe 8s ease-in-out infinite alternate}
.v21-network-canvas{position:absolute;z-index:1;inset:0;width:100%;height:100%;display:block;overflow:visible;pointer-events:none}
.v21-orbits ellipse{stroke-width:1;opacity:.14;stroke-dasharray:3 11}
.v21-country-halo{fill:#25bef3;fill-opacity:.32}
.v21-country-shape{fill:url(#v21-mapfill);stroke:#4ac9fa;stroke-opacity:.13;stroke-width:1}
.v21-country-outline{fill:none;stroke:url(#v21-outline);stroke-width:2.6;stroke-linejoin:round;filter:drop-shadow(0 0 11px #50c8ff80)}
.v21-country-hatch path{stroke:#54bdf1;stroke-opacity:.07;stroke-width:1}
.v21-mesh-lines line{stroke:#3eaee3;stroke-width:.82;stroke-opacity:.27}
.v21-mesh-dot{fill:#a5ecff;opacity:.48;filter:drop-shadow(0 0 5px #84dfff77)}
.v21-pulsar-arcs path{stroke:#8ddfff;stroke-width:1.2;stroke-opacity:.37;stroke-dasharray:3 10}
.v21-hub-graphic circle:first-child{filter:drop-shadow(0 0 20px #5ed6fb90)}
.v21-map-stage .v10-map-heading{top:38px;left:40px;z-index:4;max-width:270px}
.v21-map-stage .v10-map-heading>span{font-size:.66rem;letter-spacing:.19em;color:#7dd7ff}
.v21-map-stage .v10-map-heading b{font-size:2.13rem;color:#f1d9a6;line-height:1.07;text-shadow:0 0 23px #6cbbf744}
.v21-map-stage .v10-map-heading small{display:block;margin-top:17px;letter-spacing:.08em;font-size:.71rem;color:#bed9e9}
.v21-map-stage .v21-map-person{display:flex;z-index:5;width:210px;min-height:95px;gap:12px;padding:10px;background:linear-gradient(120deg,#12385de8,#09223de5);border:1px solid #67c1ec8c;border-left:3px solid #d0ac78;border-radius:13px;box-shadow:0 10px 32px #0007,0 0 17px #39bdf517;backdrop-filter:blur(13px);text-align:left;cursor:pointer;font-family:inherit;transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease,background .3s ease;outline-offset:5px}
.v21-map-person:before{content:"";position:absolute;right:12px;top:12px;width:6px;height:6px;border-radius:50%;background:#76d7fb;box-shadow:0 0 0 4px #45c8f923,0 0 12px 3px #65c8ff}
.v21-map-person img{width:65px;height:74px;flex:0 0 65px;border-radius:8px;border:1px solid #aed6f644;object-fit:cover;object-position:center top}
.v21-map-person strong{font-size:.79rem;color:#f2d6a3;line-height:1.5}
.v21-map-person span{font-size:1.24rem;color:#fff;letter-spacing:-.04em;margin-top:2px}
.v21-map-person:hover,.v21-map-person:focus-visible,.v21-map-person.is-active{border-color:#d7c089;border-left-color:#e5c78d;background:linear-gradient(120deg,#174575ed,#0e3559ed);box-shadow:0 10px 40px #0009,0 0 26px #4dbffb6b;transform:translate(-50%,-50%) scale(1.05)}
.v21-map-person:focus-visible{outline:2px solid #e0c790}
.v21-route .v21-link-glow{fill:none;stroke:#55d1ff;stroke-width:9;opacity:.23;filter:url(#v21-glow)}
.v21-route .v21-link-main{fill:none;stroke:#7fd4fa;stroke-width:1.3;opacity:.5}
.v21-route .v21-link-flow{fill:none;stroke:#b2f9ff;stroke-width:2.6;stroke-linecap:round;stroke-dasharray:1.5 25;opacity:.93;animation:v21-flow 9s linear infinite}
.v21-route:nth-child(even) .v21-link-flow{animation-direction:reverse;animation-duration:10.4s}
.v21-terminal-halo{fill:#6be2ff;fill-opacity:.10;stroke:#7de8ff;stroke-opacity:.27;stroke-width:1;animation:v21-node 3s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}
.v21-terminal-orbit{fill:#0e4f78;stroke:#b6edfe;stroke-width:1.5;filter:drop-shadow(0 0 9px #41c9ff)}
.v21-terminal-core,.v21-link-end{fill:#f1d8a6;filter:drop-shadow(0 0 9px #65e2ff)}
.v21-map-stage.has-active .v21-route:not(.is-active){opacity:.35;transition:opacity .28s}
.v21-route.is-active .v21-link-main{stroke:#fff2cc;stroke-width:2.7;opacity:1}
.v21-route.is-active .v21-link-flow{stroke:#ffffff;stroke-width:3.8;opacity:1}
.v21-route.is-active .v21-terminal-halo{fill:#e5c98f;fill-opacity:.18;stroke:#f3db9b;stroke-opacity:1}
.v21-route.is-active .v21-terminal-orbit{fill:#b7a262;stroke:#fff6d7}
.v21-map-status{position:absolute;z-index:3;right:38px;top:40px;font-size:.72rem;font-weight:750;letter-spacing:.18em;color:#97e1ff;text-align:right}
.v21-map-stage .v10-map-signature{bottom:24px;z-index:3;color:#b9d9ec;font-size:.65rem;letter-spacing:.27em}
.v21-map-stage .region-incheon{left:17%;top:28.8%}
.v21-map-stage .region-gangwon{left:82%;top:22%}
.v21-map-stage .region-chungbuk{left:83%;top:44.8%}
.v21-map-stage .region-chungnam{left:17%;top:48.2%}
.v21-map-stage .region-jeolla{left:17%;top:74.3%}
.v21-map-stage .region-gyeongnam{left:83%;top:73%}
@keyframes v21-flow{to{stroke-dashoffset:-424}}
@keyframes v21-node{to{transform:scale(1.4);opacity:.65}}
@keyframes v21-breathe{to{opacity:.25;transform:scale(1.04)}}
@media(max-width:900px){.v21-map-stage{height:740px}.v21-map-stage .v21-map-person{width:170px;min-height:73px;gap:8px;padding:7px}.v21-map-person img{width:50px;height:56px;flex-basis:50px}.v21-map-person strong{font-size:.68rem}.v21-map-person span{font-size:1.04rem}.v21-map-stage .region-incheon,.v21-map-stage .region-chungnam,.v21-map-stage .region-jeolla{left:14%}.v21-map-stage .region-gangwon,.v21-map-stage .region-chungbuk,.v21-map-stage .region-gyeongnam{left:86%}.v21-map-stage .v10-map-heading{left:22px;top:25px}.v21-map-stage .v10-map-heading b{font-size:1.6rem}.v21-map-status{right:22px;top:28px}}
@media(max-width:650px){
 .v21-map-stage{height:390px;border-radius:16px;margin-top:25px;background:radial-gradient(ellipse at 50% 50%,#14477c,#04122b 72%)}
 .v21-network-canvas{width:660px;height:483px;max-width:none;left:50%;top:50%;transform:translate(-50%,-49%)}
 .v21-map-stage .v21-map-person{display:none}
 .v21-map-stage .v10-map-heading{top:18px;left:19px;max-width:190px}
 .v21-map-stage .v10-map-heading>span{font-size:.49rem;letter-spacing:.1em}
 .v21-map-stage .v10-map-heading b{font-size:1.13rem;margin-top:6px}
 .v21-map-stage .v10-map-heading small{font-size:.52rem;margin-top:7px}
 .v21-map-status{top:22px;right:14px;font-size:.55rem;letter-spacing:.06em}
 .v21-map-stage .v10-map-signature{bottom:14px;font-size:.5rem;letter-spacing:.12em}
 .v10-region-mobile{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:18px}
 .v10-mobile-region{position:relative;display:flex;gap:10px;align-items:center;min-width:0;padding:9px 10px;border:1px solid #62c0ef67;border-left:3px solid #d7b47d;border-radius:11px;background:linear-gradient(130deg,#0e3156,#081d39);box-shadow:0 8px 24px #0004}
 .v10-mobile-region:before{content:"";position:absolute;right:9px;top:9px;width:5px;height:5px;background:#7fe5ff;border-radius:50%;box-shadow:0 0 10px #62d5ff}
 .v10-mobile-region img{width:49px;height:61px;flex:0 0 49px;border-radius:7px;object-fit:cover;object-position:center top}
 .v10-mobile-region small{display:block;color:#e7c993;font-size:.66rem;font-weight:750}
 .v10-mobile-region strong{display:block;margin-top:3px;color:#f5f8fc;font-size:.95rem}
}
@media(max-width:390px){.v10-region-mobile{gap:7px}.v10-mobile-region{padding:7px 5px;gap:6px}.v10-mobile-region img{width:41px;height:53px;flex-basis:41px}.v10-mobile-region strong{font-size:.87rem}.v10-mobile-region small{font-size:.59rem}}
@media(prefers-reduced-motion:reduce){.v21-route .v21-link-flow,.v21-terminal-halo,.v21-map-stage:after{animation:none!important}.v21-map-person{transition:none}}
