
:root{font-family:"Open Sans",Arial,sans-serif;color:#171b29;background:white}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,a{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #2c2ebc;outline-offset:4px}.logo{display:block;width:min(210px,38vw);max-height:51px;object-fit:contain;object-position:left}.scene-shell{position:relative;height:clamp(680px,62vw,960px);overflow:hidden;isolation:isolate;background:#eaf0f3}.scene-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 52%;z-index:-3}.scene-shell:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.75) 20%,rgba(255,255,255,.04) 46%,rgba(255,255,255,0) 72%,rgba(255,255,255,.38));z-index:-2;pointer-events:none}.intro{position:absolute;top:4%;left:50%;transform:translateX(-50%);width:min(800px,94%);text-align:center;z-index:2}.intro h1{font-weight:400;letter-spacing:-.055em;line-height:1.04;font-size:clamp(42px,5.4vw,82px);margin:0}.intro h1 span{color:#2c2ebc}.intro p{color:#525b6b;font-size:clamp(13px,1.2vw,17px);max-width:540px;margin:17px auto 0;line-height:1.55}.intro .hint{display:block;margin-top:15px;font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#616b7a}.marker{position:absolute;z-index:3;display:flex;align-items:center;gap:8px;border:0;background:transparent;color:#202633;padding:5px;transform:translate(-50%,-50%);white-space:nowrap}.marker .pin{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:#fff;border:2px solid #2c2ebc;box-shadow:0 2px 0 5px #ffffff88,0 5px 22px #17234728;color:#2c2ebc;font-size:17px;transition:transform .2s ease,background .2s ease}.marker .name{font-size:12px;font-weight:700;background:#fffffff0;border:1px solid #ffffff;padding:9px 12px;border-radius:4px;box-shadow:0 2px 14px #17234718;letter-spacing:.01em}.marker:hover .pin,.marker[aria-pressed=true] .pin,.marker:focus-visible .pin{transform:scale(1.16);background:#2c2ebc;color:#fff}.marker[aria-pressed=true] .name{background:#2c2ebc;color:#fff}.marker.individuals{left:20%;top:45%}.marker.enterprises{left:76%;top:43%}.marker.financial{left:83%;top:64%}.marker.national{left:13%;top:67%}.marker.library{left:49%;top:79%}.marker.developers{left:34%;top:59%}.marker.researchers{left:63%;top:61%}.marker[data-planned=true] .pin{border-color:#68717e;color:#68717e}.marker[data-planned=true][aria-pressed=true] .pin{background:#68717e;color:white}.connection-layer{position:absolute;inset:0;pointer-events:none;z-index:1;width:100%;height:100%;overflow:visible}.connection-layer line{stroke:#2c2ebc;stroke-width:.17;stroke-dasharray:.6 .6;opacity:.28;vector-effect:non-scaling-stroke}.connection-layer circle{fill:#2c2ebc;opacity:.55}.detail{position:absolute;z-index:6;bottom:4%;left:50%;transform:translateX(-50%);width:min(610px,calc(100% - 32px));padding:23px 26px 20px;background:#fffffff5;border:1px solid #e5e7ee;box-shadow:0 12px 50px #16233926;backdrop-filter:blur(14px);border-radius:7px}.detail[hidden]{display:none}.detail-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.detail h2{font-size:23px;font-weight:500;margin:0;letter-spacing:-.025em}.detail p{font-size:14px;line-height:1.6;color:#515a68;margin:11px 0 17px}.detail-actions{display:flex;gap:14px;align-items:center}.enter{display:inline-block;background:#2c2ebc;color:#fff;font-size:13px;padding:11px 19px;border-radius:3px}.enter[hidden]{display:none}.planned-label{color:#555f6e;font-size:12px}.close{background:transparent;border:0;color:#59616f;font-size:23px;line-height:1;padding:2px 5px}.bottom-hint{position:absolute;z-index:2;bottom:16px;right:28px;font-size:11px;color:#253044;background:#ffffffbd;padding:7px 10px}.below{padding:42px 6% 48px;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:25px;border-top:1px solid #e5e7ed}.below h2{font-size:25px;line-height:1.2;letter-spacing:-.03em;font-weight:400;margin:0}.below article{border-left:1px solid #e1e3e9;padding-left:18px}.below strong{display:block;font-size:13px}.below p{color:#697181;font-size:12px;line-height:1.6}.skip{position:absolute;top:-100px;left:12px;z-index:20;background:#fff;padding:10px}.skip:focus{top:10px}
@media(max-width:900px){.scene-shell{height:850px}.intro{top:4%}.intro h1{font-size:clamp(39px,6vw,56px)}.marker .name{font-size:11px;padding:8px}.marker .pin{width:31px;height:31px}.marker.individuals{left:23%;top:44%}.marker.enterprises{left:72%;top:42%}.marker.financial{left:78%;top:61%}.marker.national{left:20%;top:64%}.marker.library{left:51%;top:76%}.marker.developers{left:33%;top:56%}.marker.researchers{left:63%;top:55%}.below{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.logo{width:165px}.nav{gap:14px;font-size:11px}.nav a:nth-child(2){display:none}.scene-shell{height:760px}.scene-image{object-position:51% center}.scene-shell:before{background:linear-gradient(180deg,#fffffff7,#ffffffc7 23%,#ffffff12 48%,#ffffff22 75%,#ffffff77)}.intro{top:4%;width:calc(100% - 24px)}.intro h1{font-size:clamp(35px,9vw,46px)}.intro p{font-size:12px;max-width:300px;margin-top:12px}.intro .hint{font-size:9px}.marker{gap:4px;flex-direction:column;transform:translate(-50%,-50%)}.marker .pin{width:34px;height:34px;font-size:16px}.marker .name{font-size:9px;line-height:1.1;padding:6px 7px;max-width:116px;white-space:normal;text-align:center}.marker.individuals{left:22%;top:43%}.marker.enterprises{left:75%;top:42%}.marker.financial{left:78%;top:62%}.marker.national{left:22%;top:62%}.marker.library{left:51%;top:75%}.marker.developers{left:28%;top:53%}.marker.researchers{left:70%;top:53%}.detail{bottom:10px;padding:17px 19px}.detail h2{font-size:19px}.detail p{font-size:12px;margin:8px 0 12px}.bottom-hint{display:none}.below{padding:28px 20px;gap:18px}.below h2{font-size:22px}.below article{padding-left:12px}.below strong{font-size:11px}.below p{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marker .pin{transition:none}}

/* Final integrated destination wayfinding: no plus icons or circular controls. */
.marker{flex-direction:column;gap:5px;min-width:100px}.marker .pin{display:block;width:5px;height:5px;min-width:5px;border:0;border-radius:50%;background:#2c2ebc;box-shadow:0 0 0 4px #ffffffb8,0 0 0 5px #2c2ebc44;font-size:0;transform:none!important}.marker .name{font-size:12px;font-weight:600;background:#fffffff0;border:1px solid #e6e9f0;box-shadow:0 3px 12px #15203a18;transition:background .18s,color .18s}.marker:hover .name,.marker:focus-visible .name,.marker[aria-pressed=true] .name{background:#2c2ebc;color:#fff}.marker:hover .pin,.marker[aria-pressed=true] .pin{background:#2c2ebc}.marker[data-planned=true] .pin{background:#6b7280}.marker:focus-visible{outline:2px solid #2c2ebc;outline-offset:3px;border-radius:4px}.marker:focus:not(:focus-visible){outline:0}.scene-shell{margin:0}.intro h1{color:#171b29}.below{background:#fff}@media(max-width:600px){.marker{min-width:74px}.marker .name{font-size:10px;max-width:118px}.marker .pin{width:4px;height:4px;min-width:4px}}

/* Integrated visual QA corrections: legible footer, usable mobile nav and marker focus. */
footer .footer__tagline,footer .footer__tagline *,footer .footer__brand{color:#e3e5eb!important}footer .footer__col-title{color:#d1d5df!important}footer .footer__links a{color:#e1e4ec!important}footer .footer__links a:hover{color:#fff!important}footer .footer__grid p{color:#c9ceda!important}.marker:focus:not(:focus-visible){outline:none!important}.marker .name{max-width:170px;white-space:normal;text-align:center}.scene-shell{overflow:hidden}@media(max-width:600px){.nav__inner{min-height:64px}.nav__brand-logo{max-width:150px;height:auto}.nav__brand{max-width:45vw}.nav__links{max-width:50vw;overflow-x:auto;scrollbar-width:none}.nav__links::-webkit-scrollbar{display:none}.nav__inner{gap:8px}.marker .name{max-width:120px}}

/* Owner correction: destinations are typography within the landscape, never white labels/cards. */
.scene-shell .marker{background:transparent!important;border:0!important;box-shadow:none!important;padding:6px 3px;gap:7px;max-width:185px;white-space:normal}
.scene-shell .marker .name{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;color:#17202b!important;font-size:clamp(11px,1.05vw,15px);font-weight:700;line-height:1.3;letter-spacing:.005em;text-shadow:0 1px 2px #ffffff,0 0 8px #ffffff,0 0 16px #ffffff;transition:color .18s ease,text-shadow .18s ease}
.scene-shell .marker .pin{background:#2c2ebc!important;border:1px solid #fff!important;box-shadow:0 0 0 1px #2c2ebc88!important;width:6px!important;height:6px!important;min-width:6px!important;transform:none!important}
.scene-shell .marker:hover .name,.scene-shell .marker[aria-pressed=true] .name,.scene-shell .marker:focus-visible .name{color:#2c2ebc!important;text-shadow:0 1px 3px #fff,0 0 12px #fff}
.scene-shell .marker:focus-visible{outline:2px solid #2c2ebc!important;outline-offset:5px;border-radius:2px}
.scene-shell .marker[data-planned=true] .name{color:#3c4855!important}
.scene-shell .marker[data-planned=true] .pin{background:#68717e!important}
@media(max-width:600px){.scene-shell .marker{max-width:120px;gap:5px}.scene-shell .marker .name{font-size:11px;line-height:1.2}.scene-shell .marker .pin{width:5px!important;height:5px!important;min-width:5px!important}}

/* Legibility pass: destination labels stay as typography in the landscape (no cards),
   but get a crisp light outline plus soft halo so they read over dark foliage and clothing. */
.scene-shell .marker .name{
  color:#0f1623!important;
  font-weight:700;
  -webkit-text-stroke:3px rgba(255,255,255,.92);
  paint-order:stroke fill;
  text-shadow:0 0 3px #fff,0 0 6px #fff,0 0 12px rgba(255,255,255,.95),0 0 22px rgba(255,255,255,.8)!important;
}
.scene-shell .marker[data-planned=true] .name{color:#27313f!important}
.scene-shell .marker:hover .name,.scene-shell .marker[aria-pressed=true] .name,.scene-shell .marker:focus-visible .name{
  color:#2127a8!important;
  text-shadow:0 0 3px #fff,0 0 6px #fff,0 0 12px rgba(255,255,255,.95),0 0 22px rgba(255,255,255,.8)!important;
}
.scene-shell .marker .pin{width:8px!important;height:8px!important;min-width:8px!important;border:2px solid #fff!important;box-shadow:0 0 0 1px #2c2ebc,0 2px 8px rgba(15,22,35,.35)!important}
@media(max-width:600px){.scene-shell .marker .name{-webkit-text-stroke:2.5px rgba(255,255,255,.92)}.scene-shell .marker .pin{width:7px!important;height:7px!important;min-width:7px!important}}
/* Selected-destination panel is positioned by connected-world-home.js beside the chosen marker. */
.detail{max-height:calc(100% - 24px)}
