
/* The interactive concept map, adapted to IUNO's existing palette. */
#projects .hero-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr);gap:48px}
.project-map{min-width:0;width:100%;align-self:center}
.worldmap{display:block;width:100%;height:auto;overflow:visible}
.map-grid{stroke:var(--navy);stroke-opacity:.12;stroke-width:1;fill:none}
.map-land{fill:#d0dfe8;stroke:#91aabc;stroke-width:.8;stroke-opacity:.6}
.map-connection{stroke:var(--gold);stroke-width:1.6;fill:none;stroke-dasharray:4 6;stroke-opacity:.85}
.city-node{cursor:pointer;outline:none}
.city-node circle:first-child{fill:var(--yellow);stroke:var(--navy);stroke-width:5;transition:r .2s}
.city-node circle:nth-child(2){fill:none;stroke:var(--navy);stroke-opacity:.3}
.city-node text{font-size:19px;fill:var(--navy);font-family:Arial,Helvetica,sans-serif;letter-spacing:.02em;font-weight:600}
.city-node.active circle:nth-child(2),.city-node:hover circle:nth-child(2),.city-node:focus-visible circle:nth-child(2){stroke-opacity:1;stroke-width:2}
.city-node:focus-visible circle:first-child{stroke:var(--gold)}
.map-hint{font-size:10px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:8px;display:flex;align-items:center;gap:8px;line-height:1.5}
.map-hint span{display:block;width:5px;height:5px;border:1px solid var(--gold);border-radius:50%}
.city-detail{display:grid;grid-template-columns:95px 1fr;gap:18px;border-top:1px solid #c8d8e2;margin-top:14px;padding-top:20px;min-height:132px}
.city-detail h3{font-size:24px;color:var(--navy);line-height:1.25}
.city-detail p{font-size:14px;color:var(--ink);line-height:1.65;margin:0;text-align:left}
@media(max-width:900px){#projects .hero-grid{grid-template-columns:1fr;gap:36px;padding-block:44px}.project-map{max-width:680px;margin-inline:auto}.city-detail{min-height:110px}}
@media(max-width:520px){#projects .hero-grid{gap:28px;padding-block:34px}.city-node text{font-size:23px}.map-hint{font-size:9px}.city-detail{grid-template-columns:76px 1fr;gap:14px;min-height:160px}.city-detail h3{font-size:21px}.city-detail p{font-size:13px}}
@media(prefers-reduced-motion:reduce){.city-node circle:first-child{transition:none}}
