:root{--ink:#212b3b;--muted:#717780;--blue:#17315d;--line:#e5e7ea;--paper:#f8f9fc;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #93a3bf;outline-offset:3px}a{color:var(--blue)}.site-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);background:#fff;position:relative;z-index:1100}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);font-size:19px;font-weight:750;letter-spacing:.025em}.brand small{display:block;font-size:10px;letter-spacing:.16em;color:var(--muted);font-weight:500;margin-top:4px}.brand-mark{background:var(--blue);height:43px;width:43px;border-radius:13px;display:grid;place-items:center}.brand-mark svg{width:25px;height:25px;fill:none;stroke:white;stroke-width:1.6}.header-right{display:flex;gap:30px;align-items:center}.coverage{font-size:12px;color:#616874;display:flex;align-items:center;gap:8px}.coverage i{height:6px;width:6px;border-radius:50%;background:#57709b}.text-button{border:0;background:none;font-size:12px;color:#4c5563;padding:10px 0}.text-button span{margin-left:12px}.app-layout{display:grid;grid-template-columns:350px minmax(0,1fr);height:calc(100dvh - 76px);min-height:540px}.explore-panel{display:flex;flex-direction:column;background:var(--paper);border-right:1px solid var(--line);min-height:0;z-index:500}.panel-intro{padding:27px 27px 20px}.eyebrow{font-size:10px;letter-spacing:.21em;color:#7b818c;font-weight:700;margin:0 0 13px}h1{font-family:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif;font-size:29px;letter-spacing:.04em;line-height:1.65;font-weight:600;margin:0}.intro-copy{font-size:11px;line-height:1.95;color:var(--muted);margin:13px 0 0}.filters{padding:0 22px 17px;border-bottom:1px solid var(--line)}.search-box{height:43px;display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #dcdfe3;border-radius:9px;padding:0 6px 0 12px}.search-box>svg{width:17px;height:17px;fill:none;stroke:#7d838c;stroke-width:1.6;flex-shrink:0}.search-box input{min-width:0;flex:1;border:0;background:none;font-size:12px;color:var(--ink);height:36px;outline:none}.search-box input::placeholder{color:#92969c}.search-box button{border:0;background:#edeff3;border-radius:6px;color:var(--blue);font-size:10px;padding:8px}.region-row{display:flex;align-items:center;gap:9px;margin-top:13px;font-size:11px}.region-row label{color:var(--muted)}.region-row select{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font-size:12px;font-weight:600;padding:6px 0}.clear-button{border:0;background:none;padding:6px 0;font-size:10px;color:#898e96}.category-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.category-chip{border:1px solid #dfe2e6;background:#fff;color:#656c77;border-radius:6px;padding:7px 9px;font-size:10px;display:flex;align-items:center;gap:5px;white-space:nowrap}.category-chip[aria-pressed=true]{background:var(--blue);color:#fff;border-color:var(--blue)}.cat-dot{width:5px;height:5px;border-radius:50%;background:var(--category-color,var(--muted))}.category-chip[aria-pressed=true] .cat-dot{background:#fff}.results-section{flex:1;min-height:0;overflow:auto;padding:19px 22px 12px;scrollbar-width:thin;scrollbar-color:#d7dadf transparent}.results-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.results-heading h2{font-size:12px;font-weight:650;margin:0}.results-heading>span{font-size:12px;color:var(--blue);font-weight:700}.result-note{font-size:10px;color:#93969b;margin:8px 0 13px;line-height:1.6}.spot-list{display:flex;flex-direction:column;gap:9px}.spot-card{display:flex;align-items:center;text-align:left;gap:12px;background:#fff;border:1px solid #e4e7eb;border-radius:10px;padding:13px 11px;width:100%;color:var(--ink);transition:transform .15s,box-shadow .15s}.spot-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #29364b10;border-color:#c8ced8}.spot-symbol{width:43px;height:43px;border-radius:9px;background:color-mix(in srgb,var(--category-color) 10%,white);color:var(--category-color);display:grid;place-items:center;flex-shrink:0}.spot-symbol svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}.spot-card-text{min-width:0;flex:1}.spot-card strong{font-size:12px;font-weight:650;display:block;line-height:1.5;overflow-wrap:anywhere}.spot-card small{display:block;color:#878b92;font-size:10px;margin-top:4px;line-height:1.5}.card-arrow{color:#a7acb4;font-size:18px}.panel-footer{display:flex;justify-content:space-between;align-items:center;padding:13px 23px;border-top:1px solid var(--line);font-size:10px;color:#888d95;background:#f1f3f7}.footer-decoration{font-size:22px;color:#808999}
.map-section{position:relative;min-width:0;min-height:0;background:#e6e9ee}#map{width:100%;height:100%;background:#e4e7ec}.leaflet-container{font-family:inherit}.map-hint{position:absolute;top:20px;left:20px;z-index:500;background:#fffffff2;padding:11px 14px;border-radius:8px;box-shadow:0 2px 14px #26324612;font-size:10px;color:#626976;pointer-events:none;display:flex;align-items:center;gap:8px}.hint-dot{width:8px;height:8px;border:2px solid #586f95;border-radius:50%}.leaflet-control-zoom{border:1px solid #e0e3e7!important;box-shadow:0 3px 12px #23304513!important;border-radius:9px!important;overflow:hidden}.leaflet-control-zoom a{color:var(--ink)!important;width:36px!important;height:36px!important;line-height:36px!important;font-size:20px!important;font-weight:400!important}.leaflet-top.leaflet-right{top:9px;right:10px}.home-button{position:absolute;top:108px;right:20px;z-index:500;border:1px solid #e0e3e7;background:white;border-radius:8px;box-shadow:0 3px 12px #23304513;color:var(--ink);width:38px;min-height:38px;display:grid;place-items:center;padding:8px}.home-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}.home-button span{position:absolute;right:46px;background:#fff;padding:6px 9px;white-space:nowrap;font-size:10px;border-radius:5px;opacity:0;pointer-events:none}.home-button:hover span,.home-button:focus span{opacity:1}.map-status{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);z-index:500;border:1px solid #e1e4e8;background:#ffffffee;color:#686f7c;box-shadow:0 4px 20px #2933430b;padding:9px 15px;border-radius:20px;font-size:11px;max-width:85%;text-align:center;pointer-events:none}.map-status.error{color:#385e9e;background:#f4f7fd}.retry-button{position:absolute;left:50%;bottom:70px;transform:translateX(-50%);z-index:600;border:0;border-radius:8px;padding:10px 16px;background:var(--blue);color:white;font-size:12px}.cluster-icon{background:none;border:0}.cluster-bubble{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:#28426de8;border:4px solid #fff9;color:#fff;box-shadow:0 2px 9px #15294c2c;font-size:12px;font-weight:700;letter-spacing:-.035em}.cluster-bubble.large{background:#17315dec;font-size:13px;border-width:5px}.pin-icon{background:transparent;border:0}.pin-shape{width:29px;height:29px;border-radius:50% 50% 50% 5px;transform:rotate(-45deg);background:var(--category-color,#38578c);border:2px solid #fff;box-shadow:0 2px 5px #18243950;display:grid;place-items:center}.pin-shape:after{content:"";height:7px;width:7px;border-radius:50%;background:white}.leaflet-popup-content-wrapper{border-radius:12px;box-shadow:0 6px 30px #19263d20}.leaflet-popup-content{margin:20px;max-height:400px;overflow:auto;font-size:12px;line-height:1.8}.popup-category{color:#7c828b;font-size:10px;margin:0 0 5px}.popup-title{font-size:18px;line-height:1.6;margin:0 0 7px;color:var(--ink);font-weight:700;overflow-wrap:anywhere}.popup-location{font-size:11px;color:#7f848d;margin:0 0 13px}.popup-description{color:#535a67;margin:12px 0;white-space:pre-line}.popup-facts{margin:12px 0;font-size:11px}.popup-facts dt{font-weight:650;color:#485366;margin-top:7px}.popup-facts dd{margin:0;color:#777b83;white-space:pre-line}.popup-link{display:inline-block;text-decoration:none;background:#edf0f4;color:var(--blue)!important;border-radius:6px;padding:7px 11px;font-size:11px;margin-top:8px}.popup-source{border-top:1px solid var(--line);margin-top:13px;padding-top:9px;font-size:9px;color:#8a8d93}.popup-source a{color:#6f7683}.popup-image{width:100%;max-height:170px;object-fit:cover;border-radius:8px}.empty-state{font-size:12px;line-height:1.9;color:#848992;text-align:center;padding:25px 12px}.leaflet-control-attribution{font-size:10px!important;background:#fffffff0!important;padding:3px 7px!important}.leaflet-control-attribution a{color:#4b5971}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}dialog{border:0;border-radius:16px;max-width:470px;width:calc(100% - 36px);padding:34px;color:var(--ink);box-shadow:0 20px 100px #15203333}dialog::backdrop{background:#16233860}dialog h2{font-family:"Yu Mincho",serif;font-size:23px;margin:15px 0}dialog p{font-size:13px;line-height:1.95;color:#707680}dialog>a{font-size:12px}.dialog-close{position:absolute;right:13px;top:8px;border:0;background:none;color:#848992;font-size:27px}.data-credit{font-size:10px!important}noscript{position:fixed;inset:80px 20px auto;z-index:2000;background:#fff;padding:20px}
@media(max-height:780px) and (min-width:761px){.panel-intro{padding:19px 25px 14px}h1{font-size:25px;line-height:1.5}.intro-copy{margin-top:8px;font-size:10px}.eyebrow{margin-bottom:8px}.filters{padding-bottom:12px}.category-list{gap:5px}.category-chip{padding:6px 8px}}
@media(max-width:1000px){.app-layout{grid-template-columns:310px minmax(0,1fr)}.panel-intro{padding-left:22px;padding-right:22px}h1{font-size:26px}.site-header{padding:0 22px}.header-right{gap:18px}}
@media(max-width:760px){.site-header{height:62px;padding:0 15px}.brand{font-size:14px;gap:9px}.brand small{font-size:8px;letter-spacing:.09em}.brand-mark{width:35px;height:35px;border-radius:10px}.brand-mark svg{width:22px;height:22px}.coverage{display:none}.text-button{font-size:10px}.text-button span{display:none}.app-layout{display:flex;flex-direction:column;height:calc(100dvh - 62px);min-height:550px}.explore-panel{flex:none;border:0;border-bottom:1px solid var(--line)}.panel-intro,.results-section,.panel-footer{display:none}.filters{padding:13px 14px 10px;border:0}.search-box{height:38px}.region-row{margin-top:5px}.category-list{flex-wrap:nowrap;overflow:auto;scrollbar-width:none;margin-top:6px;padding-bottom:2px;gap:6px}.category-chip{padding:6px 10px;font-size:10px}.map-section{flex:1;min-height:350px}.map-hint{top:12px;left:12px;font-size:9px;padding:9px 10px}.leaflet-top.leaflet-right{top:1px;right:3px}.home-button{right:13px;top:100px}.map-status{font-size:10px;padding:8px 12px;bottom:26px}.leaflet-popup-content{max-height:260px;max-width:260px;margin:16px}.popup-title{font-size:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Editorial selection and named tourism areas */
.selection-modes{display:flex;background:#edeef1;border-radius:9px;padding:3px;gap:3px;margin-bottom:8px}
.selection-modes button{flex:1;border:0;border-radius:7px;background:transparent;color:#5b616b;padding:10px 4px;font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}
.selection-modes button[aria-pressed=true]{background:#17315d;color:white;box-shadow:0 2px 5px #17253e20}
.selection-note{font-size:10px;line-height:1.5;color:#6f7379;margin:0 0 12px}
.area-row{display:flex;align-items:center;gap:10px;margin:10px 0;font-size:12px}
.area-row label{color:#686d76;white-space:nowrap}.area-row select{min-width:0;flex:1;border:1px solid #dcdfe3;border-radius:7px;background:white;padding:8px;color:#253248;font:inherit}
.area-summary{background:#e7eefb;border:1px solid #b6c8e6;border-radius:8px;padding:10px;margin:8px 0;font-size:11px;line-height:1.6}.area-summary p{margin:4px 0}.area-summary a{color:#244379}
.area-list{display:grid;gap:8px;margin-bottom:10px}.area-card{display:flex;flex-direction:column;gap:6px;text-align:left;background:#f0f5fd;border:1px solid #b6c9e9;border-radius:10px;padding:14px;cursor:pointer;color:#244379}.area-card small{font-size:11px;font-weight:normal}
.area-pin{display:block;padding:7px 10px;background:#e0eafa;color:#18386f;border:2px solid #416cb6;border-radius:9px;text-align:center;font-size:12px;font-weight:bold;white-space:nowrap;box-shadow:0 3px 8px #0f2d5f35}
.featured-badge{display:inline-block;background:#d1e0f8;color:#1d4385;padding:4px 8px;border-radius:5px;font-size:11px}.area-open{display:block;border:1px solid #9db7e2;background:#e3ecfb;color:#244379;border-radius:6px;padding:8px;margin:8px 0;cursor:pointer}
@media(max-width:760px){.selection-modes button{padding:7px 3px;font-size:11px}.selection-note{font-size:9px;margin-bottom:8px}.area-row{margin:7px 0}.area-row select{padding:5px}.area-summary{max-height:90px;overflow:auto;padding:7px}.area-summary p{font-size:10px}.map-hint{display:none}}

@media(max-height:850px) and (min-width:761px){.panel-intro{padding:14px 22px 12px}.panel-intro h1{font-size:22px;line-height:1.35}.panel-intro .intro-copy,.panel-intro .eyebrow{display:none}.results-section{min-height:115px}.explore-panel{overflow:auto}.filters{flex-shrink:0}.panel-footer{padding:8px 22px}}
/* The map occupies the viewport; search is an optional overlay. */
.site-header{height:56px;padding:0 18px;gap:10px}.brand{font-size:16px}.brand small{display:none}.brand-mark{width:34px;height:34px;border-radius:10px}.header-right{gap:15px}.coverage{display:none}
.panel-toggle{border:0;border-radius:8px;background:#17315d;color:#fff;padding:9px 13px;white-space:nowrap;font-size:12px}
.app-layout{display:block;height:calc(100dvh - 56px);min-height:0}.map-section{height:100%;min-height:0}.explore-panel{position:absolute;top:70px;left:14px;bottom:18px;width:340px;max-height:calc(100dvh - 88px);border:1px solid #d8dce2;border-radius:14px;box-shadow:0 10px 40px #202b3d29;z-index:900;overflow:auto;display:flex}.map-wide .explore-panel{display:none}.panel-intro{display:none}.filters{padding:16px;flex-shrink:0}.results-section{display:block;min-height:160px;padding:16px;flex:1;overflow:auto}.panel-footer{display:none}.map-hint{display:none}
.spot-entry{border:1px solid #dfe2e8;border-radius:11px;overflow:hidden;background:white}.spot-entry .spot-card,.spot-entry .area-card{border:0;border-radius:0;width:100%}.spot-photo{margin:0;background:#eff1f4}.spot-photo img{display:block;width:100%;height:155px;object-fit:contain}.photo-credit{font-size:9px;line-height:1.6;color:#646972;background:white;padding:7px 10px;overflow-wrap:anywhere}.photo-credit a{color:#344666}.photo-missing{padding:24px 8px;text-align:center;color:#8b8f96;font-size:11px;background:#eff1f4}.popup-body .spot-photo{border-radius:8px;overflow:hidden;margin:12px 0}.popup-body .spot-photo img{height:200px}.popup-body .photo-credit{font-size:9px}.leaflet-popup-content{max-height:min(560px,calc(100dvh - 150px))}
@media(max-width:760px){.site-header{height:54px;padding:0 12px}.brand{font-size:13px;gap:7px}.header-right{gap:8px}.panel-toggle{font-size:11px;padding:8px 10px}.text-button{font-size:0;width:20px}.text-button:after{content:'?';font-size:16px}.app-layout{height:calc(100dvh - 54px);min-height:0;display:block}.map-section{height:100%;min-height:0}.explore-panel{top:65px;left:10px;bottom:12px;width:calc(100% - 20px);max-height:calc(100dvh - 77px)}.filters{padding:12px}.results-section{display:block;min-height:140px;padding:12px}.area-summary{max-height:80px}.leaflet-popup-content{max-height:min(480px,calc(100dvh - 190px));max-width:270px}.popup-body .spot-photo img{height:160px}}

/* Japan palette: porcelain white, deep blue and a restrained vermilion accent. */
:root{--ink:#172d4d;--muted:#62738a;--blue:#234e89;--red:#c63e49;--line:#dfe6ef;--paper:#f7f9fc}
.site-header{background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 14px #172d4d08}
.site-header:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red)}
.brand{font-weight:650;letter-spacing:.06em}.brand-mark{background:#fff;border:1px solid #dfe6ef;border-radius:50%;position:relative}
.brand-mark svg{stroke:var(--blue);width:23px;height:23px}.brand-mark svg circle{fill:var(--red);stroke:var(--red);stroke-width:1}
.panel-toggle{background:var(--blue);border:1px solid var(--blue);border-radius:6px;box-shadow:0 3px 8px #234e8915}
.panel-toggle:hover{background:#193c6e}.panel-toggle[aria-expanded=true]{background:#fff;color:var(--blue);border-color:#c6d3e4}
.text-button{color:var(--muted)}.text-button:hover{color:var(--red)}
.explore-panel{background:#fff;border-color:var(--line);border-radius:12px;box-shadow:0 12px 40px #172d4d20}
.filters{background:#fff}.results-section{background:var(--paper);scrollbar-color:#c4cfdd transparent}
.selection-modes{background:#f0f3f8;border:1px solid #e8edf3;border-radius:8px;padding:4px}
.selection-modes button{color:#516780;font-weight:550}.selection-modes button[aria-pressed=true]{background:var(--blue);box-shadow:0 2px 6px #172d4d16}
.selection-note,.result-note,.spot-card small{color:var(--muted)}
.search-box{border-color:#cfd9e6;border-radius:7px}.search-box:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #234e8910}
.search-box button{background:var(--red);color:#fff;border-radius:5px;padding:8px 11px}.search-box button:hover{background:#ae303e}
.category-chip{border-color:var(--line);color:#52677f;border-radius:5px}.category-chip[aria-pressed=true]{background:#edf2fa;color:var(--blue);border-color:#aebfd7;font-weight:650}.category-chip[aria-pressed=true] .cat-dot{background:var(--blue)}
.area-row select{border-color:#d6dfeb;color:var(--ink);border-radius:6px}
.area-card{background:#fff;color:var(--blue);border-left:3px solid var(--red)!important}.area-card:hover{background:#f1f5fb}.area-card small{color:var(--muted)}
.area-summary{background:#f5f7fc;border-color:#d9e2ef;border-left:3px solid var(--red);color:var(--ink)}.area-summary a{color:var(--blue)}
.area-pin{background:#fff;color:var(--blue);border:1px solid #bacbe1;border-left:3px solid var(--red);border-radius:6px;box-shadow:0 3px 10px #172d4d22;overflow:hidden;text-overflow:ellipsis}
.cluster-bubble{background:#28558fec;border:3px solid #fff;box-shadow:0 3px 12px #172d4d33}.cluster-bubble.large{background:#193e73f0;border-width:4px}
.pin-shape{box-shadow:0 3px 8px #172d4d40;border-width:2px}
.spot-entry{border-color:#e0e7f0;border-radius:9px;box-shadow:0 2px 5px #172d4d04}.spot-card:hover{border-color:#c5d2e2;box-shadow:0 3px 10px #172d4d12}
.spot-photo,.photo-missing{background:#f1f4f8}.photo-missing{color:#6a7a8f}.photo-credit{color:#596c84}.photo-credit a{color:var(--blue)}
.featured-badge{background:#fff0f1;color:#ad303f;border:1px solid #f3d5d9;border-radius:4px}.area-open{background:#f1f5fb;border-color:#ccd9e9;color:var(--blue)}
.map-status{background:#fffffff5;color:#425d7e;border-color:#dce5ef;box-shadow:0 4px 18px #172d4d12}.map-status.error{color:#ac2f3d;background:#fff1f2}
.leaflet-popup-content-wrapper{border:1px solid #dfe6ef;border-radius:10px;box-shadow:0 8px 30px #172d4d25}.popup-title{font-weight:650}.popup-description{color:#53667f}.popup-category,.popup-location{color:#657892}.popup-facts dt{color:#334f73}.popup-facts dd{color:#65758b}.popup-link{background:#edf3fb}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline-color:#4676b6}
@media(max-width:760px){.brand{letter-spacing:.015em}.panel-toggle{padding:7px 10px}.area-pin{font-size:11px}}

/* Search overlay must cover Leaflet controls (z-index 1000). */
.explore-panel{z-index:1050}

.history-back{border:1px solid #d6dfeb;border-radius:6px;background:#fff;color:var(--blue);width:32px;height:32px;font-size:19px;line-height:1;padding:0;flex-shrink:0}.history-back:disabled{opacity:.3;cursor:default}.history-back:not(:disabled):hover{background:#edf3fb}
@media(max-width:760px){.header-right{gap:6px}.header-right .text-button{display:block;width:16px}.brand{font-size:12px}.history-back{width:28px;height:30px}}

.spot-overview{margin:12px 0 16px;padding:12px 14px;background:#f3f6fb;border-left:3px solid var(--blue);border-radius:4px}.spot-overview h3{font-size:11px;color:var(--blue);margin:0 0 6px;font-weight:650}.spot-overview .popup-description{margin:0;font-size:12px;line-height:1.9;overflow-wrap:anywhere}.description-empty{font-size:11px;color:var(--muted);margin:0;line-height:1.8}.spot-excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;line-height:1.7;color:#53667f;margin-top:7px;font-weight:400;overflow-wrap:anywhere}

/* Always-visible reset label and compact, uncropped photo pins. */
.home-button{width:auto;display:flex;gap:7px;padding:8px 11px;min-height:36px}.home-button span{position:static;opacity:1;background:none;padding:0;font-size:11px;color:var(--blue);white-space:nowrap}.home-button svg{width:17px;height:17px}
.photo-pin-icon{background:none;border:0}.photo-pin{display:block;width:46px;height:46px;border:3px solid white;border-radius:10px;background:#fff;box-shadow:0 3px 10px #172d4d55;position:relative}.photo-pin:after{content:"";position:absolute;bottom:-9px;left:14px;border:5px solid transparent;border-top-color:white;border-bottom:0}.photo-pin img{width:100%;height:100%;object-fit:contain;border-radius:6px;display:block}.photo-pin-missing{color:var(--blue);text-align:center;line-height:40px}
.pin-credits{position:absolute;left:10px;bottom:10px;z-index:700;background:#ffffffed;border:1px solid #dfe6ef;border-radius:5px;color:#425d7e;font-size:10px;padding:5px 8px;max-width:min(330px,calc(100% - 20px))}.pin-credits summary{cursor:pointer}.pin-credits[hidden]{display:none}.pin-credits>div{max-height:180px;overflow:auto}.pin-credits p{line-height:1.7;overflow-wrap:anywhere;border-top:1px solid #e2e8f0;padding-top:7px}.pin-credits p span{display:block}.map-status{bottom:43px}
@media(max-width:760px){.home-button{right:13px;top:100px}.home-button span{font-size:10px}.pin-credits{bottom:23px}.map-status{bottom:55px}}

.description-credit{font-size:10px;line-height:1.7;color:#62738a;padding:6px 12px;overflow-wrap:anywhere}.spot-overview .description-credit{padding:6px 0 0;border-top:1px solid #dfe6ef;margin-top:8px}.description-credit a{color:#234e89}

/* Information completeness: discreet dot, blue description, prominent red photo. */
.content-pin{background:none;border:0}.content-pin-body{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;border:2px solid white;font-weight:700;box-shadow:0 2px 5px #17365c30;box-sizing:border-box}.pin-basic .content-pin-body{background:#4b8dcc;border:2px solid #fff;box-shadow:0 0 0 1px #336b9e,0 2px 5px #17365c45}.pin-described .content-pin-body{background:#285c9e;color:white;font-size:20px}.pin-rich .content-pin-body{background:#bf3547;color:white;border-width:3px;font-size:24px;box-shadow:0 3px 10px #9d263b55}.pin-rich .photo-pin{border-color:#c1394c;box-shadow:0 4px 12px #9d263b66}.pin-rich .photo-pin:after{border-top-color:#c1394c}.pin-legend{position:absolute;right:10px;bottom:86px;z-index:600;display:flex;gap:10px;padding:7px 10px;border-radius:6px;background:#fffffff2;color:#43566f;font-size:10px;box-shadow:0 2px 8px #17365c15;pointer-events:none}.pin-legend span{display:flex;align-items:center;gap:4px}.pin-legend i{display:inline-block;border-radius:50%;width:10px;height:10px}.legend-basic{background:#4b8dcc;border:1px solid #336b9e}.legend-described{background:#285c9e}.legend-rich{background:#bf3547}
/* Region overview is the first step; spot emphasis returns after selection. */
.region-navigation{position:absolute;top:14px;left:14px;right:65px;z-index:700;display:flex;flex-wrap:wrap;gap:6px;align-items:center;pointer-events:none}.region-navigation button{pointer-events:auto;background:#fff;border:1px solid #c8d6e8;border-radius:6px;color:#284b7b;padding:8px 11px;font-size:11px;box-shadow:0 2px 8px #17365c18;cursor:pointer}.region-navigation button:disabled{background:#edf3fa;color:#365879;cursor:default}.region-navigation button[hidden]{display:none}.region-navigation span{font-size:11px;background:#fffffff0;color:#475b77;border-radius:4px}.region-intro{position:absolute;top:60px;left:16px;z-index:600;pointer-events:none;background:#fffffff0;padding:13px 16px;border-radius:8px;max-width:calc(100% - 90px);box-shadow:0 3px 14px #17365c12}.region-intro strong,.region-intro span,.region-intro small{display:block}.region-intro strong{font-size:19px;color:#244d83}.region-intro span{font-size:11px;margin-top:6px;color:#586e8a}.region-intro small{font-size:9px;color:#7a8799;margin-top:6px}.region-intro[hidden]{display:none}.region-marker{background:none;border:0}.region-label{display:block;border-radius:7px;background:#fff;border:1px solid var(--region-color);border-left:4px solid var(--region-color);color:var(--region-color);box-shadow:0 3px 12px #17365c25;padding:7px 4px;text-align:center;font-size:12px;font-weight:700;white-space:nowrap}.region-outline{cursor:pointer}.region-card{display:block;width:100%;padding:12px;text-align:left;background:white;border:1px solid #d7e2ef;border-radius:8px;cursor:pointer;color:#284b7b;margin:7px 0}.region-card small{display:block;line-height:1.7;color:#687d97;font-size:10px;margin-top:5px}.region-overview .pin-legend,.region-overview .pin-credits{display:none}.region-overview .map-hint{display:none}.region-overview .map-status{bottom:38px}.region-navigation button:focus-visible,.region-card:focus-visible,.region-marker:focus-visible{outline:3px solid #c63e49;outline-offset:3px}
@media(max-width:760px){.region-intro{top:59px;padding:10px 12px}.region-intro strong{font-size:16px}.region-navigation{top:10px;left:10px}.region-label{font-size:11px}.region-overview .home-button{display:none}}

/* Category is encoded by shape and color; completeness by size and photo badge. */
.attribute-pin{background:none;border:0}.attribute-pin-body{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;border:2px solid #fff;box-sizing:border-box;background:var(--category-color);color:#fff;box-shadow:0 0 0 1px var(--category-color),0 2px 6px #172d4d45;position:relative}.attribute-pin-body>svg{width:66%;height:66%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.attribute-basic .attribute-pin-body{background:#fff;color:var(--category-color);border-color:var(--category-color);box-shadow:0 1px 5px #172d4d40}.attribute-rich .attribute-pin-body{border-width:3px;box-shadow:0 0 0 2px var(--category-color),0 3px 10px #172d4d55}.attribute-photo-badge{position:absolute;right:-5px;bottom:-3px;background:white;color:var(--category-color);border:1px solid var(--category-color);border-radius:4px;font-size:11px;line-height:14px;width:16px;text-align:center}.pin-legend{flex-wrap:wrap;max-width:310px;gap:7px 10px}.attribute-legend-item svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.pin-legend small{width:100%;font-size:9px;color:#617087}.area-selection .pin-legend,.area-selection .pin-credits{display:none}.category-chip:disabled{opacity:.45;cursor:default}
/* Small photos retain their original proportions; the colored badge identifies category. */
.attribute-with-photo .attribute-pin-body{border-radius:9px;border:3px solid var(--category-color);background:#fff}
.leaflet-container .leaflet-marker-pane .pin-thumbnail{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border-radius:5px;background:#fff}
.pin-category-badge{position:absolute;right:-7px;bottom:-6px;width:18px;height:18px;border:2px solid white;border-radius:50%;background:var(--category-color);color:white;display:grid;place-items:center;z-index:1}
.pin-category-badge svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.attribute-with-photo .attribute-pin-body>svg{color:var(--category-color)}
/* Fixed country overview: stays above photo credits and away from zoom controls. */
.overview-map-box{position:absolute;left:10px;bottom:88px;width:200px;height:235px;background:#fff;border:1px solid #d4dfeb;border-radius:9px;box-shadow:0 3px 14px #17365c26;z-index:650;overflow:hidden;pointer-events:none}.overview-map-box[hidden]{display:none}.overview-map-title{height:26px;padding:6px 9px;color:#345778;font-size:10px;font-weight:600;border-bottom:1px solid #e2e9f1}#overview-map{width:100%;height:calc(100% - 26px);background:#dcecf4}.overview-map-title:before{content:"";display:inline-block;width:9px;height:7px;border:2px solid #c63e49;margin-right:6px;vertical-align:-1px}
@media(max-width:760px){.overview-map-box{width:145px;height:175px;bottom:95px}.overview-map-title{font-size:9px;padding-left:6px}}

.area-guides{display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px 20px;border-bottom:1px solid #e0e6ee;font-size:12px}.area-guides a{color:#285c9e}

/* Keep every published guide available from the header, including on small screens. */
.header-guides{margin-left:auto;color:var(--blue);font-size:12px}
.header-guides>summary{cursor:pointer;list-style:none;padding:9px 12px;border:1px solid #cbd8e7;border-radius:7px;background:#f1f5fb;font-weight:650;white-space:nowrap}
.header-guides>summary::-webkit-details-marker{display:none}
.header-guides>summary span{display:inline-block;margin-left:6px}.header-guides[open]>summary span{transform:rotate(180deg)}
.header-guides>summary:focus-visible{outline:3px solid #93a3bf;outline-offset:3px}
.header-guide-menu{position:absolute;top:calc(100% - 1px);right:18px;width:min(620px,calc(100vw - 36px));max-height:min(70dvh,560px);overflow:auto;padding:18px;background:#fff;border:1px solid #dce4ee;border-radius:0 0 12px 12px;box-shadow:0 12px 28px #233d6026}
.header-guide-index{display:block;padding:10px 12px;margin-bottom:10px;font-weight:700;background:#f2f5fa;border-radius:6px;text-decoration:none}
.header-guide-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.header-guide-links a{display:flex;align-items:center;min-height:44px;padding:9px 10px;border-radius:5px;text-decoration:none;overflow-wrap:anywhere;line-height:1.6}
.header-guide-links a:hover,.header-guide-index:hover{background:#e7eef8}
@media(max-width:760px){
	.site-header{height:98px;flex-wrap:wrap;align-content:center;gap:6px 8px;padding:7px 12px}
	.header-right{margin-left:auto}.header-guides{order:3;flex-basis:100%;margin:0}
	.header-guides>summary{padding:7px 10px;text-align:center;font-size:12px}
	.header-guide-menu{right:12px;width:calc(100vw - 24px);padding:12px;max-height:calc(100dvh - 118px)}
	.header-guide-links{grid-template-columns:repeat(2,minmax(0,1fr))}
	.app-layout{height:calc(100dvh - 98px)}.explore-panel{top:109px;max-height:calc(100dvh - 121px)}
}
@media(max-width:359px){.brand{font-size:11px;gap:4px}.brand-mark{width:26px;height:28px}.header-right{gap:4px}.panel-toggle{padding:7px 6px}}

.header-guide-prefectures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;align-items:start}
.header-guide-prefecture{border:1px solid #e0e6ef;border-radius:6px}.header-guide-prefecture>summary{cursor:pointer;padding:12px;font-weight:650;min-height:44px}.header-guide-prefecture small{font-size:10px;font-weight:400;color:#66768a}.header-guide-prefecture .header-guide-links{display:flex;flex-direction:column;padding:0 5px 6px}.header-guide-prefecture[open]{background:#f7f9fc}

/* Anchor both overview aids at the bottom corners, above the OSM attribution. */
.overview-map-box{left:10px;bottom:calc(24px + env(safe-area-inset-bottom,0px))}
.pin-legend{right:10px;bottom:calc(24px + env(safe-area-inset-bottom,0px));max-width:min(310px,calc(100% - 230px))}
.pin-credits{left:10px;bottom:calc(267px + env(safe-area-inset-bottom,0px));max-width:200px}
.map-status{bottom:calc(24px + env(safe-area-inset-bottom,0px));max-width:calc(100% - 560px)}
@media(max-width:760px){
	.overview-map-box{bottom:calc(24px + env(safe-area-inset-bottom,0px))}
	.pin-legend{right:10px;bottom:calc(24px + env(safe-area-inset-bottom,0px));max-width:calc(100% - 175px);font-size:9px;gap:5px;padding:7px}
	.pin-credits{bottom:calc(207px + env(safe-area-inset-bottom,0px));max-width:145px}
	.map-status{bottom:calc(246px + env(safe-area-inset-bottom,0px));max-width:calc(100% - 24px)}
}

/* Nearby facility controls and icons: photos are deliberately excluded. */
.facility-controls{border:1px solid #dce4ef;border-radius:12px;padding:12px;margin:18px 0 4px;display:flex;flex-wrap:wrap;gap:10px}
.facility-controls legend{font-size:13px;font-weight:700;color:#234e89;padding:0 6px}
.facility-toggle{display:flex;align-items:center;gap:5px;font-size:12px;cursor:pointer}
.facility-toggle input{accent-color:#234e89}
.facility-key{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:21px;border-radius:5px;color:#fff;font-size:10px;font-style:normal;line-height:1}
.facility-notice{display:block;flex-basis:100%;color:#66788f;font-size:11px;line-height:1.6}
.facility-pin>span{display:flex;width:32px;height:32px;align-items:center;justify-content:center;background:var(--facility-color);border:2px solid white;border-radius:8px;color:white;box-shadow:0 2px 6px #16345455;font-size:12px;font-weight:800;position:relative}
.facility-pin small{position:absolute;top:-10px;right:-12px;background:white;color:var(--facility-color);border:1px solid var(--facility-color);border-radius:9px;padding:1px 4px;font-size:10px}
.facility-popup strong{font-size:15px}.facility-popup p{margin:8px 0;font-size:12px}.facility-popup a{font-size:11px}

.facility-toggle{border:1px solid #cbd5e1;background:#fff;color:#43536b;border-radius:8px;padding:8px 10px;min-height:40px;font-family:inherit}
.facility-toggle[aria-pressed="true"]{border-color:#234e89;background:#eaf2ff;color:#173f78}
.facility-toggle:focus-visible{outline:3px solid #478ade;outline-offset:2px}
.facility-switch-state{font-size:10px;font-weight:800;margin-left:3px;color:#6b7280}
.facility-toggle[aria-pressed="true"] .facility-switch-state{color:#174f98}

/* Compact map controls, aligned below the area navigation without a large panel. */
.facility-controls{position:absolute;z-index:710;top:56px;left:10px;margin:0;padding:0;border:0;display:flex;flex-wrap:nowrap;gap:5px;background:none;max-width:calc(100% - 75px)}
.facility-controls[hidden]{display:none}
.facility-controls .facility-toggle{border-radius:20px;min-height:36px;padding:6px 9px;gap:4px;font-size:11px;white-space:nowrap;box-shadow:0 2px 8px #17365c20}
.facility-controls .facility-key{display:none}.facility-controls .facility-switch-state{font-size:9px}
.detail-sheet{position:absolute;z-index:850;left:50%;bottom:24px;transform:translateX(-50%);width:min(460px,calc(100% - 24px));height:min(360px,44%);display:flex;flex-direction:column;background:#fff;border:1px solid #dce4ef;border-radius:20px 20px 12px 12px;box-shadow:0 -5px 30px #17365c30;animation:sheet-in .18s ease-out}
.detail-sheet[hidden]{display:none}.detail-sheet.expanded{height:min(650px,78%)}
.detail-sheet-bar{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;padding:6px 10px 3px;border-bottom:1px solid #eef2f6}
.sheet-expand,.sheet-close{border:0;background:white;color:#284b7b;cursor:pointer;min-height:40px;font-family:inherit}
.sheet-expand{flex:1;font-size:11px;text-align:center}.sheet-expand:before{content:'';display:block;width:34px;height:4px;background:#c8d2df;border-radius:4px;margin:0 auto 4px}.sheet-close{font-size:25px;width:40px;border-radius:50%}
.sheet-expand:focus-visible,.sheet-close:focus-visible{outline:2px solid #478ade;outline-offset:-2px}
.detail-sheet-body{overflow:auto;overscroll-behavior:contain;padding:14px 18px 20px;min-height:0;flex:1}.detail-sheet-body .popup-body{padding:0}.detail-sheet-body .popup-title{margin:4px 0 8px;font-size:20px}.detail-sheet-body .popup-description{line-height:1.8}.detail-sheet-body .spot-photo img{height:180px}
.detail-open .map-status{visibility:hidden}
@keyframes sheet-in{from{opacity:0;translate:0 35px}to{opacity:1;translate:0 0}}
@media(max-width:760px){.detail-sheet{bottom:0;left:0;transform:none;width:100%;height:43%;border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}.detail-sheet.expanded{height:76%}.detail-open .overview-map-box,.detail-open .pin-legend,.detail-open .pin-credits{visibility:hidden}.facility-controls{top:53px;gap:4px}.facility-controls .facility-toggle{padding:6px 7px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.detail-sheet{animation:none}}

.basemap-controls{position:absolute;z-index:710;right:12px;top:154px;display:flex;gap:3px;background:#fffffff5;border:1px solid #d8e2ef;border-radius:12px;padding:4px;box-shadow:0 2px 10px #17365c22}
.basemap-button{display:flex;flex-direction:column;align-items:center;justify-content:center;width:38px;min-height:44px;padding:3px;border:0;border-radius:8px;background:transparent;color:#52657c;cursor:pointer;font:10px inherit}
.basemap-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.basemap-button span{font-size:9px;margin-top:2px}.basemap-button[aria-pressed="true"]{color:#fff;background:#234e89}.basemap-button:focus-visible{outline:3px solid #c63e49;outline-offset:1px}.basemap-button:disabled{opacity:.5}
.basemap-credit{position:absolute;right:12px;top:212px;z-index:711;background:#fffffff5;border:1px solid #d8e2ef;border-radius:6px;color:#3d526e;font-size:10px;max-width:min(300px,calc(100% - 24px));box-shadow:0 2px 8px #17365c18}.basemap-credit[hidden]{display:none}.basemap-credit summary{cursor:pointer;padding:5px 8px}.basemap-credit>div{padding:0 10px 8px;max-height:180px;overflow:auto;line-height:1.6}.basemap-credit a{color:#234e89}

/* Right-top basemap selector; zoom follows the legend's responsive height. */
.basemap-controls{top:12px;right:12px}.basemap-credit{top:72px;right:12px}.region-navigation{right:150px}
.map-zoom-controls{position:absolute;right:10px;z-index:720}.map-zoom-controls .leaflet-control-zoom{margin:0!important;float:none}
.facility-controls .facility-toggle{width:42px;min-height:48px;padding:4px!important;border-radius:9px;flex-direction:column;gap:2px}
.facility-controls .facility-key{display:inline-flex;width:25px;height:25px;font-size:11px;border-radius:5px}
.facility-controls .facility-switch-state{font-size:8px;margin:0;line-height:10px}
.facility-controls .facility-toggle[aria-pressed="false"]{background:#fff}.facility-controls .facility-toggle[aria-pressed="false"] .facility-key{opacity:.65}
.facility-controls .facility-toggle[aria-pressed="true"]{background:#eaf2ff;border:2px solid #234e89;box-shadow:0 0 0 1px #fff,0 2px 8px #17365c22}

/* Drag the header with mouse, pen or touch; the detail content keeps native scrolling. */
.detail-sheet-bar{touch-action:none;user-select:none;cursor:ns-resize}
.detail-sheet-bar .sheet-expand{touch-action:none;cursor:ns-resize}
.detail-sheet.resizing{animation:none;transition:none;user-select:none}
.detail-sheet.resizing .detail-sheet-bar,.detail-sheet.resizing .sheet-expand{cursor:grabbing}
