.h-map3d{font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;color:#424b3d;background:transparent;font-synthesis:none}
.h-map3d *{box-sizing:border-box}
.h-map3d{margin:0;background:transparent;line-height:normal}
.h-map3d button,.h-map3d a,.h-map3d summary{-webkit-tap-highlight-color:transparent}
.h-map3d button{font:inherit;cursor:pointer}
.h-map3d button:focus-visible,.h-map3d a:focus-visible,.h-map3d summary:focus-visible{outline:3px solid #2455a5;outline-offset:5px}
.h-map3d header{position:absolute;z-index:3;top:30px;left:4%;right:4%;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.h-map3d header a{pointer-events:auto}
.h-map3d header img{width:145px;height:60px;object-fit:contain}
.h-map3d header>span{font-size:10px;letter-spacing:.15em}
.h-map3d header b{display:block;text-align:right;font-weight:400;margin-top:8px}
.h-map3d{position:relative;height:max(760px,90svh);min-height:660px}
.h-map3d .intro{position:absolute;top:135px;left:6%;pointer-events:none;z-index:2}
.h-map3d .eyebrow{font-size:11px;letter-spacing:.18em}
.h-map3d h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(28px,3.5vw,48px);font-weight:500;line-height:1.6;letter-spacing:.1em;margin:20px 0}
.h-map3d .intro>p:nth-of-type(2){font-size:12px;letter-spacing:.05em}
.h-map3d #map{position:absolute;inset:100px 0 80px}
.h-map3d canvas{display:block;width:100%;height:100%;touch-action:pan-y}
.h-map3d #pins,.h-map3d #leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}
.h-map3d .pin{position:absolute;width:60px;height:60px;border:2px solid var(--ink);border-radius:50%;color:var(--ink);background:#fffcf0ed;box-shadow:inset 0 0 0 3px #fff9ed,inset 0 0 0 4px var(--ink),0 3px 8px #3a423a16;display:flex;flex-direction:column;align-items:center;justify-content:center;white-space:pre-line;font-weight:800;line-height:1.2;pointer-events:auto;transform:translate(-50%,-50%) rotate(-9deg) scale(var(--petal-scale,1));transition:opacity .4s ease-out}
.h-map3d .pin-stamp{font-size:9px}
.h-map3d .city-pin{gap:3px}
.h-map3d .pin-city-name{font-size:9px;line-height:1}
.h-map3d .pin-count{font-size:14px;line-height:1}
.h-map3d .child-pin{width:46px;height:46px;z-index:2;transition:none}
.h-map3d .mountain-label{position:absolute;color:#565d4c;background:#fffcf0bf;padding:2px 5px;border-radius:2px;font-size:10px;letter-spacing:.08em;transform:translate(-50%,-50%);white-space:nowrap}
.h-map3d .pin.now{animation:h-map3d-pulse 2.6s infinite}
.h-map3d .pin.soon{border-style:dashed;animation:h-map3d-pulse 3.2s infinite;box-shadow:0 2px 8px #3a423a12}
.h-map3d .pin.past{background:#f4f0e5ed}
.h-map3d .pin:hover{z-index:10;filter:brightness(.94)}
@keyframes h-map3d-pulse{50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--ink) 13%,transparent),0 0 20px color-mix(in srgb,var(--ink) 25%,transparent)}
}
.h-map3d #loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:320px;padding:20px;background:#f4f0e5ee;font-size:13px}
.h-map3d .legend{position:absolute;bottom:58px;left:6%;display:flex;gap:20px;font-size:11px}
.h-map3d .legend span{display:flex;align-items:center;gap:7px}
.h-map3d .legend i{width:12px;height:12px;border:1px solid #a98b83;border-radius:50%}
.h-map3d .legend i.now{background:#f1a9b5;border-color:#f1a9b5}
.h-map3d .legend i.soon{border:1px dashed #8b7bab}
.h-map3d .controls{position:absolute;right:5%;bottom:52px;display:flex;gap:8px}
.h-map3d .controls button{border:1px solid #2455a5;background:#f9f6ed;border-radius:30px;font-size:11px;padding:10px 14px}
.h-map3d .gesture{position:absolute;bottom:16px;right:5%;font-size:10px;color:#7a806e;letter-spacing:.08em}
.h-map3d .gesture-touch{display:none}
.h-map3d .spot-list{position:absolute;right:5%;top:125px;z-index:4;width:240px;background:#f9f6edee;border:1px solid #2455a5;border-radius:4px;font-size:12px}
.h-map3d .spot-list summary{cursor:pointer;padding:14px}
.h-map3d .spot-list summary span{float:right;color:#2455a5}
.h-map3d .spot-list #list{max-height:300px;overflow:auto}
.h-map3d .spot-list button{display:block;width:100%;border:0;border-top:1px solid #2455a5;padding:12px;text-align:left;background:transparent;color:inherit;font-size:11px;line-height:1.6}
.h-map3d footer{text-align:center;padding:22px 12px 25px;border-top:1px solid #d4d7c6;margin:0 5%}
.h-map3d footer p{font-size:clamp(12px,1.4vw,17px);letter-spacing:.12em;margin:0 0 15px}
.h-map3d footer small{font-size:9px;line-height:1.8;color:#858977}
.h-map3d dialog{border:1px solid #d5d5c7;border-radius:12px;background:#fffdf6;color:#414b3e;padding:24px;width:min(440px,calc(100% - 32px));max-height:88svh;overflow:auto;box-shadow:0 20px 90px #29312440}
.h-map3d dialog::backdrop{background:#333f3659;backdrop-filter:blur(4px)}
.h-map3d #close-card{position:sticky;top:0;float:right;z-index:1;border:0;background:#fffdf6;width:34px;height:34px;border-radius:50%;font-size:25px}
.h-map3d #card-content img{width:100%;max-height:43svh;object-fit:contain;margin-top:10px}
.h-map3d #card-content h2{font-size:19px;line-height:1.7}
.h-map3d #card-content p{font-size:13px;line-height:1.8}
.h-map3d .card-release{display:block;margin-top:8px;color:#2455a5;font-size:13px;text-decoration:underline}
.h-map3d .card-release:hover{color:#1c4687}
.h-map3d .badge{font-size:11px;letter-spacing:.1em;color:#817b6d}
/* v4: text and map occupy separate layout tracks. */
.h-map3d header{position:relative;top:auto;left:auto;right:auto;height:100px;margin:0 4%}
.h-map3d{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);height:auto;min-height:0}
.h-map3d .sidebar{padding:20px 24px 32px clamp(20px,4vw,64px);min-width:0}
.h-map3d .intro{position:static;pointer-events:auto;container-type:inline-size}
.h-map3d h1{font-size:clamp(20px,8.8cqw,34px)}
.h-map3d h1 span{display:block;white-space:nowrap}
.h-map3d .spot-list{position:static;width:100%;margin:28px 0 24px}
.h-map3d .legend{position:static;flex-wrap:wrap;gap:12px}
.h-map3d #map{position:relative;inset:auto;height:calc(100svh - var(--header-h));min-height:360px;isolation:isolate;overflow:hidden}
.h-map3d #terrain{position:absolute;inset:0}
.h-map3d #leaders{z-index:1}
.h-map3d #pins{z-index:2}
.h-map3d #active-leaders{z-index:6}
.h-map3d #active-pins{z-index:7}
.h-map3d #active-pins,.h-map3d #active-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}
.h-map3d #leaders line,.h-map3d #active-leaders line{transition:opacity .4s ease-out}
.h-map3d .controls{z-index:5;bottom:38px;right:20px}
.h-map3d .gesture{z-index:5;bottom:8px;right:20px;pointer-events:none}
.h-map3d .pin{width:64px;height:64px}
.h-map3d .pin-city-name{font-size:11px}
.h-map3d .pin-count{font-size:15px}
.h-map3d .child-pin{width:48px;height:48px}
.h-map3d .pin-stamp{font-size:10px}
.h-map3d .pin:disabled{pointer-events:none}
@media(max-width:899px){
/* v7: overlap the map's blank upper band behind the sidebar; keep sidebar above it, pass sidebar-gap touches through, and contain summary floats. */
.h-map3d .sidebar{display:flow-root;position:relative;z-index:8;pointer-events:none}
.h-map3d .sidebar>*{pointer-events:auto}
.h-map3d #map{margin-top:-28vw}
.h-map3d header{height:84px;margin:0 6%}
.h-map3d header img{width:110px;height:48px}
.h-map3d header>span{font-size:8px}
.h-map3d{display:block}
.h-map3d .sidebar{padding:6px 7% 20px}
.h-map3d h1{font-size:clamp(20px,8.8cqw,30px);margin:10px 0}
.h-map3d .intro>p:nth-of-type(2){font-size:10px}
.h-map3d .spot-list{margin:20px 0 16px}
.h-map3d #map{height:70svh;min-height:0}
.h-map3d .controls{right:0;width:100%;justify-content:center}
.h-map3d .gesture{right:0;width:100%;text-align:center}
.h-map3d .pin{width:48px;height:48px}
.h-map3d .pin-city-name{font-size:10px;letter-spacing:-.05em}
.h-map3d .pin-count{font-size:13px}
.h-map3d .child-pin{width:46px;height:46px}
.h-map3d .pin-stamp{font-size:9px}
.h-map3d footer{padding-top:24px}
}
@media(pointer:coarse){
.h-map3d .gesture-mouse{display:none}
.h-map3d .gesture-touch{display:inline}
}
@media(prefers-reduced-motion:reduce){.h-map3d .pin,.h-map3d .pin.now,.h-map3d .pin.soon,.h-map3d #leaders line,.h-map3d #active-leaders line{animation:none;transition:none}}

/* Preserve prototype paragraph spacing despite the host page's reset. */
.h-map3d .intro>p{margin:1em 0}
.h-map3d .gesture{margin:1em 0}
.h-map3d .h-map3d-lead{font-size:12px;line-height:1.8;letter-spacing:.05em}
.h-map3d .h-map3d-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:20px}
.h-map3d .h-map3d-credit{grid-column:1 / -1;text-align:center;font-size:9px;line-height:1.8;color:#858977;margin:0;padding:22px 12px 25px}
