*{box-sizing:border-box}body{margin:0;color:#f5f7ff;font-family:system-ui,sans-serif;background:radial-gradient(ellipse at 50% 65%,#18335c,transparent 58%),radial-gradient(ellipse at 10% 30%,#281747,transparent 35%),#050c1b;min-height:100vh}body:before{content:'';position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(circle,#a9c9ff 1px,transparent 1.5px),radial-gradient(circle,#fff 1px,transparent 1.5px);background-size:83px 97px,137px 119px;opacity:.2}header{position:relative;display:flex;justify-content:space-between;align-items:center;padding:16px 6%;border-bottom:1px solid #ffffff20}a{color:inherit;text-decoration:none}.brand{font-size:13px;font-weight:800;letter-spacing:1.5px}.brand b{color:#45dfff;font-size:24px;margin-right:12px}main{position:relative;max-width:1500px;margin:auto;padding:12px 24px}.intro{text-align:center}.intro p,.hint,.eyebrow{color:#55dfff;letter-spacing:5px;font-size:11px;font-weight:800}.intro h1{font-size:clamp(28px,4vw,58px);margin:5px 0;line-height:1.1}.intro h1 span{background:linear-gradient(90deg,#ff72bd,#a68aff,#43dfff);background-clip:text;color:transparent}.intro div{color:#b7c9e4;font-size:14px}.map{position:relative;height:clamp(480px,65vh,720px);max-width:1200px;margin:auto}.links{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 0 7px #67caff)}.hub{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);width:23%;text-align:center;padding:10px;border:2px solid #a984ff;border-radius:22px;background:#08152b;box-shadow:0 0 35px #8464ff88}.hub img{width:100%;display:block;border-radius:12px;object-fit:contain}.hub strong{display:block;font-size:clamp(10px,1.3vw,17px);margin-top:6px}.hub small{font-size:10px;color:#b8c9e9}.world{position:absolute;width:25%;transform:translate(-50%,-50%);border:0;background:none;color:white;cursor:pointer;padding:0;text-align:center;z-index:2}.world img{width:100%;height:clamp(105px,19vh,205px);object-fit:contain;display:block;filter:drop-shadow(0 0 13px var(--accent));animation:float 4s ease-in-out infinite;animation-delay:var(--delay)}.world:hover img,.world:focus-visible img{animation-play-state:paused;transform:scale(1.09);filter:drop-shadow(0 0 25px var(--accent))}.label{display:inline-block;background:#0a1529ed;border:1px solid var(--accent);border-radius:12px;padding:7px 12px;box-shadow:0 0 16px color-mix(in srgb,var(--accent) 30%,transparent)}.label strong,.label small{display:block}.label strong{font-size:clamp(12px,1.25vw,18px)}.label small{color:var(--accent);font-size:11px;margin-top:3px}.hint{text-align:center;margin:4px 0 12px}@keyframes float{50%{translate:0 -9px}}dialog{color:white;background:#101d34;border:1px solid var(--accent);border-radius:24px;padding:25px;width:min(90vw,440px);box-shadow:0 0 60px color-mix(in srgb,var(--accent) 35%,transparent)}dialog::backdrop{background:#020713c9;backdrop-filter:blur(7px)}dialog img{width:100%;height:180px;object-fit:contain}dialog h2{margin:6px 0;font-size:30px}dialog li{margin:8px 0}#close{position:absolute;right:12px;top:8px;background:none;color:white;border:0;font-size:28px;cursor:pointer}#back{background:var(--accent);border:0;padding:12px 18px;border-radius:9px;font-weight:700;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid white;outline-offset:4px}@media(max-width:700px){header{padding:12px}.brand{font-size:10px;letter-spacing:0}header>a:last-child{font-size:12px}main{padding:14px}.map{height:auto;display:flex;flex-direction:column;gap:20px;margin-top:20px}.links{display:none}.hub{position:static;transform:none;width:min(260px,80%);margin:auto}#worlds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 8px}.world{position:static;transform:none;width:100%}.world:last-child{grid-column:1/-1;width:50%;justify-self:center}.world img{height:130px}.label{padding:7px}.hint{margin-top:24px}}@media(prefers-reduced-motion:reduce){.world img{animation:none}}

.hub{border:0;padding:0;background:transparent;box-shadow:none;width:23%;top:59%}.hub img{border-radius:18px;filter:drop-shadow(0 0 22px #8464ff88)}@media(max-width:700px){.hub{width:min(260px,80%)}}
