.japan-map{position:relative;background:radial-gradient(120% 120% at 40% 30%,#0d2236,#060d18 70%);border:1px solid rgba(90,200,235,.25);border-radius:.5rem;padding:1rem;overflow:hidden;contain:paint}.japan-map__svg{display:block;width:100%;aspect-ratio:1000 / 1084.62;max-height:80vh;touch-action:none;user-select:none;cursor:grab}.japan-map__svg:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}.japan-map__svg:active{cursor:grabbing}.japan-map__svg .pref{cursor:pointer}.japan-map__svg:active .pref{cursor:grabbing}.japan-map__tip{position:fixed;left:0;top:0;pointer-events:none;opacity:0;transform:translate(-9999px,-9999px);background:#06121eeb;border:1px solid rgba(90,200,235,.55);border-radius:4px;padding:6px 10px;font-size:12px;letter-spacing:.5px;color:#d6f6ff;font-family:var(--font-body);white-space:nowrap;transition:opacity .12s;z-index:1000;line-height:1.35;max-width:220px}.japan-map__tip b{color:#eafdff;font-size:13px;font-weight:700;letter-spacing:1px}.japan-map--journey .japan-map__svg .hud{opacity:1!important}.japan-map .journey-overlay .route{fill:none;stroke:#36e3ff;stroke-width:2;stroke-linecap:round;filter:url(#glow-strong);stroke-dasharray:4 6;animation:japan-map-route-march 8s linear infinite}.japan-map .journey-overlay .journey-origin{fill:#7ef9ff99;stroke:#7ef9ff;stroke-width:1;filter:url(#glow-strong)}@keyframes japan-map-route-march{to{stroke-dashoffset:-100}}@media(prefers-reduced-motion:reduce){.japan-map .journey-overlay .route{animation:none;stroke-dasharray:0}}.japan-map__controls{position:absolute;top:1.2rem;right:1.2rem;display:flex;flex-direction:column;gap:.3rem;z-index:2}.japan-map__controls button{width:2rem;height:2rem;border:1px solid rgba(90,200,235,.55);background:#081624b8;color:#7ef9ff;font-family:var(--font-display);font-size:1rem;line-height:1;cursor:pointer;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:background .15s ease,color .15s ease,transform .05s}.japan-map__controls button:hover,.japan-map__controls button:focus-visible{background:#36e3ff2e;color:#eafdff;outline:none}.japan-map__controls button:active{transform:translateY(1px)}.japan-map__hint{position:absolute;bottom:.8rem;left:1.2rem;right:1.2rem;margin:0;font-size:.7rem;letter-spacing:.08em;color:#78dcf58c;font-family:var(--font-body);pointer-events:none;max-width:none}@media(max-width:540px){.japan-map{padding:.6rem}.japan-map__controls{top:.6rem;right:.6rem}.japan-map__hint{font-size:.62rem;bottom:.4rem;left:.6rem;right:.6rem}}.japan-map__region-filter{position:absolute;top:1.2rem;left:1.2rem;z-index:3;font-family:var(--font-display);font-size:.75rem;letter-spacing:.05em;user-select:none}.japan-map__region-filter>summary{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .7rem;background:#081624d9;border:1px solid rgba(90,200,235,.55);border-radius:3px;color:#d6f6ff;cursor:pointer;list-style:none;white-space:nowrap;transition:background .15s ease,border-color .15s ease}.japan-map__region-filter>summary::-webkit-details-marker{display:none}.japan-map__region-filter>summary:hover,.japan-map__region-filter>summary:focus-visible{background:#36e3ff2e;border-color:#7ef9ff;outline:none}.japan-map__region-filter__label{color:#78dcf5b3;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}.japan-map__region-filter__value{color:#eafdff;font-weight:700}.japan-map__region-filter__chevron{color:#7ef9ff;font-size:.6rem;margin-left:.2rem;transition:transform .15s}.japan-map__region-filter[open] .japan-map__region-filter__chevron{transform:rotate(180deg)}.japan-map__region-filter>ul{list-style:none;margin:.4rem 0 0;padding:.3rem;background:#081624f2;border:1px solid rgba(90,200,235,.55);border-radius:3px;display:flex;flex-direction:column;gap:.1rem;min-width:11rem;max-height:60vh;overflow-y:auto;backdrop-filter:blur(4px)}.japan-map__region-filter button[data-region]{display:block;width:100%;text-align:left;padding:.4rem .6rem;background:transparent;border:1px solid transparent;border-radius:2px;color:#d6f6ff;font-family:inherit;font-size:inherit;letter-spacing:inherit;cursor:pointer;transition:background .12s,color .12s}.japan-map__region-filter button[data-region]:hover,.japan-map__region-filter button[data-region]:focus-visible{background:#36e3ff2e;color:#eafdff;outline:none}.japan-map__region-filter button[data-region][aria-selected=true]{background:#36e3ff47;color:#eafdff;border-color:#7ef9ff8c}.japan-map__svg .pref.is-lit{fill:#d4a64a6b;stroke:var(--gold-hot);stroke-width:1.4;filter:url(#glow-strong)}.japan-map__svg .pref.is-lit:hover{fill:#f0c0608c;stroke:var(--gold-hot);stroke-width:1.6}.japan-map__svg .pref.just-lit{animation:japan-map-just-lit 1.4s ease-out 1}@keyframes japan-map-just-lit{0%{stroke-width:1.4;filter:drop-shadow(0 0 0 rgba(240,192,96,0))}35%{stroke-width:3.2;filter:drop-shadow(0 0 14px rgba(240,192,96,.95)) drop-shadow(0 0 4px rgba(255,220,140,.8))}to{stroke-width:1.4;filter:url(#glow-strong)}}@media(prefers-reduced-motion:reduce){.japan-map__svg .pref.is-lit{transition:none}.japan-map__svg .pref.just-lit{animation:none}}.japan-map[data-hl=hokkaido] .reg-hokkaido,.japan-map[data-hl=tohoku] .reg-tohoku,.japan-map[data-hl=kanto] .reg-kanto,.japan-map[data-hl=chubu] .reg-chubu,.japan-map[data-hl=kansai] .reg-kansai,.japan-map[data-hl=chugoku] .reg-chugoku,.japan-map[data-hl=shikoku] .reg-shikoku,.japan-map[data-hl=kyushu] .reg-kyushu{fill:#7ef9ff6b!important;stroke:#bffcff!important;stroke-width:1.5!important}.japan-map[data-hl=hokkaido] .pref:not(.reg-hokkaido),.japan-map[data-hl=tohoku] .pref:not(.reg-tohoku),.japan-map[data-hl=kanto] .pref:not(.reg-kanto),.japan-map[data-hl=chubu] .pref:not(.reg-chubu),.japan-map[data-hl=kansai] .pref:not(.reg-kansai),.japan-map[data-hl=chugoku] .pref:not(.reg-chugoku),.japan-map[data-hl=shikoku] .pref:not(.reg-shikoku),.japan-map[data-hl=kyushu] .pref:not(.reg-kyushu){opacity:.3}.japan-map .journey-overlay .journey-arrow{filter:url(#glow-strong)}.japan-map .journey-overlay .pin-halo{animation:japan-map-halo-pulse 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes japan-map-halo-pulse{0%,to{opacity:.25;r:9px}50%{opacity:.7;r:13px}}@media(prefers-reduced-motion:reduce){.japan-map .journey-overlay .pin-halo{animation:none}}
