*{box-sizing:border-box}
:root{--ink:#142033;--muted:#727d8d;--line:#e4e9f0;--blue:#1677e8;--bg:#f6f8fb}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif}
a{color:inherit}.shell{width:min(1180px,92%);margin:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line)}
.header-inner{height:68px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;text-decoration:none;font-size:1.48rem;font-weight:900}.play{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--blue);color:#fff;font-size:.7rem;margin-right:8px}
.nav{display:flex;gap:22px}.nav a{text-decoration:none;font-size:.85rem;color:#566171}

.hero{text-align:center;padding:56px 0 34px}.kicker,.eyebrow{margin:0;font-size:.7rem;letter-spacing:.16em;font-weight:900;color:var(--blue)}
.hero h1{font-size:clamp(2.9rem,6vw,5.3rem);line-height:1.04;letter-spacing:-.04em;margin:11px 0 18px}.lead{max-width:720px;margin:auto;color:var(--muted);line-height:1.8}
.searchbar{max-width:760px;margin:26px auto 0;display:flex;background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:0 10px 32px rgba(25,40,62,.08)}
.searchbar input{flex:1;min-width:0;border:0;outline:0;padding:16px 19px;font-size:16px}.searchbar button{border:0;background:var(--blue);color:#fff;font-weight:900;padding:0 28px}

.map-section{padding:4px 0 30px}.map-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:17px;box-shadow:0 16px 50px rgba(25,40,62,.08)}
.map-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:3px 4px 15px}.map-head h2{margin:4px 0 5px;font-size:1.4rem}.map-head p{margin:0;color:var(--muted);font-size:.8rem}
.legend{display:flex;gap:13px;font-size:.72rem;color:#667284}.dot{display:inline-block;border-radius:50%;background:var(--blue);vertical-align:middle;margin-right:4px}.d3{width:15px;height:15px}.d2{width:11px;height:11px}.d1{width:7px;height:7px}

.static-map{position:relative;border-radius:18px;overflow:hidden;background:#dff1ff}
.static-map>img{display:block;width:100%;height:auto}
.map-markers{position:absolute;inset:0}
.map-marker{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;padding:0;cursor:pointer;z-index:5}
.marker-dot{display:grid;place-items:center;border-radius:50%;background:#1677e8;color:#fff;border:3px solid #fff;box-shadow:0 5px 14px rgba(15,83,165,.38);font-size:9px;font-weight:900;transition:.15s}
.map-marker:hover .marker-dot{background:#ff5b45;transform:scale(1.12)}
.marker-name{position:absolute;left:50%;top:100%;transform:translateX(-50%);white-space:nowrap;margin-top:3px;background:rgba(255,255,255,.93);padding:2px 5px;border-radius:5px;font-size:10px;font-weight:800;color:#172033;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.map-count{position:absolute;left:15px;bottom:15px;background:rgba(255,255,255,.95);border-radius:13px;padding:11px 14px;box-shadow:0 8px 25px rgba(20,40,60,.14);display:grid}
.map-count span{font-size:.62rem;color:var(--muted);font-weight:800}.map-count strong{font-size:1.55rem;line-height:1.1}.map-count small{color:var(--muted)}
.map-credit{margin:8px 4px 0;text-align:right;font-size:.62rem;color:#9aa3af}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:2px 0 38px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.stat b{display:block;font-size:1.6rem}.stat span{font-size:.75rem;color:var(--muted)}
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:24px;padding-bottom:60px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:14px}.section-head h2{margin:4px 0 0;font-size:1.5rem}.section-head a,.section-head span{font-size:.8rem;color:var(--blue);text-decoration:none}
.country-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.country-card{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px;text-decoration:none}.country-card b{display:block}.country-card small{color:var(--muted)}
.video-head{margin-top:36px}.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.video-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none}.video-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.video-copy{padding:12px}.creator-tag{display:inline-block;background:#eaf4ff;color:#0a64bb;border-radius:999px;padding:4px 7px;font-size:.66rem;font-weight:900}.video-copy h3{font-size:.9rem;line-height:1.45;margin:7px 0}.meta{font-size:.71rem;color:var(--muted)}
.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px;margin-bottom:16px}.panel h3{margin:0 0 12px}.side-list,.creator-list{display:grid;gap:7px}.side-list a,.creator-list a{display:flex;justify-content:space-between;gap:8px;text-decoration:none;background:#f7f9fc;border-radius:10px;padding:9px 10px;font-size:.79rem}.side-list span:last-child,.creator-list span:last-child{color:var(--muted)}
footer{background:#fff;border-top:1px solid var(--line);padding:24px 0;color:var(--muted);font-size:.78rem}

@media(max-width:980px){.content-grid{grid-template-columns:1fr}.country-grid{grid-template-columns:repeat(2,1fr)}.video-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.header-inner{height:58px}.nav{display:none}.hero{text-align:left;padding:36px 0 22px}.hero h1{font-size:2.5rem}.lead{font-size:.9rem}.searchbar{margin-top:18px}.searchbar input{padding:14px}.searchbar button{padding:0 17px}.map-card{padding:10px}.map-head{display:block}.legend{display:none}.marker-name{display:none}.map-count{left:8px;bottom:8px}.video-grid{grid-template-columns:1fr}.country-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.hero h1{font-size:2.25rem}.country-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.stat{padding:13px}.stat b{font-size:1.35rem}}
