.official-map-explorer{overflow:hidden;margin-bottom:1.1rem;border:4px solid #83bd43;border-radius:16px;background:#fff;box-shadow:var(--shadow)}
.official-map-explorer .map-layout{display:grid;grid-template-columns:minmax(0,1fr) 272px;grid-template-rows:auto auto 1fr;grid-template-areas:"map toolbar" "map progress" "map note";min-width:0;background:#fff}
.official-map-explorer .map-toolbar{grid-area:toolbar;display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem;padding:1rem .9rem .85rem;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#fffef3,#f4ffdb)}
.official-map-explorer .map-toolbar div{min-width:0}
.official-map-explorer .map-toolbar strong,.official-map-explorer .map-toolbar span{display:block}
.official-map-explorer .map-toolbar strong{color:var(--green-deep);font-size:1.125rem}
.official-map-explorer .map-toolbar span{margin-top:.25rem;color:var(--muted);font-size:.94rem;line-height:1.65}
.official-map-explorer .map-toolbar button{flex:0 0 auto;border:1px solid #88b265;border-radius:999px;background:#fff;color:var(--green-dark);padding:.45rem .75rem;font-size:.94rem;font-weight:900;cursor:pointer}
.official-map-explorer .map-toolbar button:hover,.official-map-explorer .map-toolbar button:focus-visible{border-color:var(--orange);outline:3px solid rgba(244,154,26,.22)}
.official-map-explorer .map-frame{grid-area:map;position:relative;min-width:0;overflow:hidden;border-right:1px solid var(--line);background:radial-gradient(circle at 50% 35%,#faffee 0,#e1f6ff 70%,#c8edff 100%)}
.official-map-explorer #leaflet-all-map{width:100%;height:100%;min-height:460px;background:transparent;touch-action:none}
.official-map-explorer .leaflet-container{font:inherit;background:transparent}
.official-map-explorer .leaflet-control-zoom a{color:var(--green-deep)}
.official-map-explorer .leaflet-interactive:focus{outline:none}
.official-map-explorer .map-progress{grid-area:progress;align-self:start;margin:.8rem .9rem 0;padding:.62rem .7rem;border:1px solid rgba(91,135,69,.3);border-radius:9px;background:#fff;box-shadow:0 4px 14px rgba(33,70,33,.1);pointer-events:none}
.official-map-explorer .map-progress strong,.official-map-explorer .map-progress span{display:block;overflow-wrap:anywhere;line-height:1.55}
.official-map-explorer .map-progress strong{color:var(--green-deep);font-size:.94rem}
.official-map-explorer .map-progress span{color:var(--muted);font-size:.84rem}
.official-map-explorer .map-zoom-readout{display:flex;align-items:baseline;gap:.35rem;min-width:82px;justify-content:center;padding:.38rem .55rem;border:1px solid rgba(23,103,38,.38);border-radius:9px;background:rgba(255,255,255,.95);box-shadow:0 4px 14px rgba(33,70,33,.2);color:var(--green-deep);pointer-events:none;user-select:none;font-variant-numeric:tabular-nums}
.official-map-explorer .map-zoom-readout span{font-size:.5rem;font-weight:900;letter-spacing:.08em}.official-map-explorer .map-zoom-readout strong{font-size:.86rem;line-height:1}
.official-map-explorer .all-map-count-icon{display:grid!important;place-items:center;background:transparent;border:0}
.official-map-explorer .all-map-count{display:flex;min-width:58px;min-height:58px;align-items:center;justify-content:center;flex-direction:column;padding:.25rem;border:2px solid #fff;border-radius:50%;background:#fff3a5;color:#174f28;box-shadow:0 3px 11px rgba(22,67,29,.28);transform:translate(-1px,-1px);transition:.14s transform,.14s box-shadow;cursor:pointer}
.official-map-explorer .all-map-count:hover,.official-map-explorer .all-map-count:focus-visible{outline:0;transform:translate(-1px,-2px) scale(1.07);box-shadow:0 5px 15px rgba(22,67,29,.38)}
.official-map-explorer .all-map-count b{max-width:74px;overflow:hidden;font-size:.59rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}
.official-map-explorer .all-map-count strong{font-size:.83rem;line-height:1.05;font-variant-numeric:tabular-nums}
.official-map-explorer .all-map-count.is-large{min-width:68px;min-height:68px;background:#e4f78f}.official-map-explorer .all-map-count.is-heavy{min-width:76px;min-height:76px;background:#77c45a;color:#103f1c}.official-map-explorer .all-map-count.is-region{min-width:46px;min-height:38px;padding:.14rem .28rem;border-width:2px;border-radius:999px;background:#fff09a}.official-map-explorer .all-map-count.is-region b{font-size:.47rem}.official-map-explorer .all-map-count.is-region strong{font-size:.69rem}
.official-map-explorer .leaflet-character-canvas{position:absolute;z-index:480;pointer-events:none;will-change:transform}
.official-map-explorer .all-character-popup .leaflet-popup-content-wrapper{padding:0;border:2px solid #dfc83e;border-radius:14px;background:#fffef3;box-shadow:0 12px 30px rgba(29,72,31,.3)}
.official-map-explorer .all-character-popup .leaflet-popup-content{width:min(310px,calc(100vw - 58px))!important;margin:0}
.official-map-explorer .all-character-popup .leaflet-popup-tip{background:#dfc83e}
.official-map-explorer .all-character-popup .leaflet-popup-close-button{z-index:3;display:grid!important;place-items:center;width:34px!important;height:34px!important;top:5px!important;right:5px!important;border-radius:50%;background:#fff!important;color:#274a28!important;font-size:24px!important;line-height:1!important}
.official-map-explorer .character-popup-card{display:grid;grid-template-columns:82px minmax(0,1fr);gap:.75rem;padding:1rem 1rem .9rem}
.official-map-explorer .character-popup-card img,.official-map-explorer .popup-no-image{grid-row:1/5;width:82px;height:88px;object-fit:contain;border-radius:9px;background:#fff}
.official-map-explorer .popup-no-image{display:grid;place-items:center;color:#879384;font-size:.6rem}
.official-map-explorer .character-popup-card h2{margin:0;padding-right:1.7rem;color:var(--green-deep);font-size:1rem;line-height:1.35}
.official-map-explorer .character-popup-card .place{margin:0;color:#d27a0c;font-size:.68rem;font-weight:900}
.official-map-explorer .character-popup-card .description{display:-webkit-box;overflow:hidden;margin:0;color:#4e5b4c;font-size:.68rem;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.official-map-explorer .character-popup-card a{align-self:start;color:var(--green);font-size:.72rem;font-weight:950;text-decoration:none}
.official-map-explorer .map-note{grid-area:note;align-self:end;display:block;padding:.8rem .9rem;background:#f7faef;color:var(--muted);font-size:.84rem;line-height:1.7}
.official-map-explorer .map-note p{margin:0}.official-map-explorer .map-note p+p{margin-top:.55rem;padding-top:.55rem;border-top:1px dotted #c9d8be}.official-map-explorer .map-note strong{color:var(--green-deep)}
@media(max-width:700px){
  .official-map-explorer{border-width:3px;border-radius:10px;box-shadow:none}
  .official-map-explorer .map-layout{grid-template-columns:1fr;grid-template-rows:auto auto auto auto;grid-template-areas:"toolbar" "map" "progress" "note"}
  .official-map-explorer .map-toolbar{padding:.58rem .7rem}.official-map-explorer .map-toolbar span{max-width:68vw}.official-map-explorer .map-toolbar button{padding:.4rem .6rem}
  .official-map-explorer .map-frame{border-right:0;border-bottom:1px solid var(--line)}
  .official-map-explorer #leaflet-all-map{height:min(calc(100vw - 18px),430px);min-height:340px}
  .official-map-explorer .map-progress{margin:.55rem .7rem 0;padding:.45rem .6rem}.official-map-explorer .map-zoom-readout{min-width:72px;margin-right:8px!important;margin-bottom:8px!important;padding:.32rem .45rem}.official-map-explorer .map-zoom-readout strong{font-size:.78rem}
  .official-map-explorer .all-map-count{min-width:50px;min-height:50px}.official-map-explorer .all-map-count.is-large{min-width:58px;min-height:58px}.official-map-explorer .all-map-count.is-heavy{min-width:64px;min-height:64px}.official-map-explorer .all-map-count.is-region{min-width:24px;min-height:14px;padding:0 .08rem;border-width:1px;border-radius:999px;box-shadow:0 1px 4px rgba(22,67,29,.22)}.official-map-explorer .all-map-count.is-region b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.official-map-explorer .all-map-count.is-region strong{font-size:.67rem;line-height:1}
  .official-map-explorer .map-note{padding:.55rem .7rem}.official-map-explorer .map-note p+p{margin-top:.35rem;padding-top:.35rem}
}

/* Homepage map discovery header and a livelier desktop guide pane. */
.official-map-explorer .map-discovery-heading{position:relative;isolation:isolate;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:.85rem;min-height:104px;padding:.9rem 1.1rem;overflow:hidden;border-bottom:1px solid #cfe2b5;background:linear-gradient(112deg,#fff9ad 0%,#f0ffd5 54%,#dff6ff 100%)}
.official-map-explorer .map-discovery-heading:before,.official-map-explorer .map-discovery-heading:after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}
.official-map-explorer .map-discovery-heading:before{top:-62px;right:26%;width:150px;height:150px;border:28px solid rgba(255,255,255,.44)}
.official-map-explorer .map-discovery-heading:after{right:12px;bottom:-34px;width:92px;height:92px;background:radial-gradient(circle at 34% 36%,rgba(255,255,255,.78) 0 12%,transparent 13%),radial-gradient(circle,rgba(83,174,199,.14) 0 44%,transparent 45%)}
.official-map-explorer .map-discovery-pin{position:relative;display:grid;width:52px;height:52px;place-items:center;border:3px solid #fff;border-radius:50% 50% 50% 10%;background:linear-gradient(135deg,#f4aa27,#ef7527);box-shadow:0 5px 12px rgba(121,78,14,.2);transform:rotate(-45deg)}
.official-map-explorer .map-discovery-pin i{position:relative;width:23px;height:23px;border:4px solid rgba(255,255,255,.92);border-radius:50%;transform:rotate(45deg)}
.official-map-explorer .map-discovery-pin i:before,.official-map-explorer .map-discovery-pin i:after{content:"";position:absolute;background:#fff;border-radius:50%}
.official-map-explorer .map-discovery-pin i:before{top:5px;left:3px;width:3px;height:3px;box-shadow:9px 0 #fff}
.official-map-explorer .map-discovery-pin i:after{left:5px;bottom:3px;width:7px;height:3px;border-radius:0 0 7px 7px}
.official-map-explorer .map-discovery-kicker{display:block;color:#cb7412;font-size:.68rem;font-weight:950;letter-spacing:.14em}
.official-map-explorer .map-discovery-heading h2{margin:.05rem 0;color:var(--green-deep);font-size:1.6rem;line-height:1.4;text-wrap:balance}
.official-map-explorer .map-discovery-heading p{margin:.05rem 0;color:#536650;font-size:.94rem;line-height:1.65;font-weight:800}
.official-map-explorer .map-discovery-route{display:flex;align-items:center;gap:.34rem;padding:.48rem .58rem;border:1px solid rgba(86,153,67,.28);border-radius:999px;background:rgba(255,255,255,.8);box-shadow:0 3px 10px rgba(54,90,40,.08);white-space:nowrap}
.official-map-explorer .map-discovery-route span{display:inline-flex;align-items:center;gap:.22rem;color:#365c32;font-size:.94rem;font-weight:900}
.official-map-explorer .map-discovery-route span b{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:#68af48;color:#fff;font-size:.8rem}
.official-map-explorer .map-discovery-route span:nth-of-type(2) b{background:#54a9d1}.official-map-explorer .map-discovery-route span:nth-of-type(3) b{background:#ee9131}
.official-map-explorer .map-discovery-route>i{color:#d0831f;font-style:normal;font-size:1rem;font-weight:950}
.official-map-explorer .map-layout{grid-template-rows:auto auto 1fr auto;grid-template-areas:"map toolbar" "map progress" "map cheer" "map note";background:linear-gradient(180deg,#fff,#fbfff0)}
.official-map-explorer .map-toolbar{position:relative;overflow:hidden;background:linear-gradient(135deg,#fffdf1,#f0ffcf)}
.official-map-explorer .map-toolbar:after{content:"";position:absolute;right:-25px;bottom:-32px;width:76px;height:76px;border:15px solid rgba(117,188,75,.1);border-radius:50%;pointer-events:none}
.official-map-explorer .map-toolbar>*{position:relative;z-index:1}
.official-map-explorer .map-toolbar .map-toolbar-kicker{margin:0 0 .1rem;color:#d17a13;font-size:.68rem;font-weight:950;letter-spacing:.14em}
.official-map-explorer .map-progress{position:relative;padding-left:2.65rem;background:linear-gradient(105deg,#fff,#f8ffea)}
.official-map-explorer .map-progress:before{content:"✓";position:absolute;top:50%;left:.68rem;display:grid;width:25px;height:25px;place-items:center;border-radius:50%;background:#65ad49;color:#fff;font-size:.7rem;font-weight:950;transform:translateY(-50%);box-shadow:0 2px 6px rgba(41,117,50,.18)}
.official-map-explorer .map-side-cheer{grid-area:cheer;position:relative;isolation:isolate;align-self:stretch;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:116px;margin:.7rem .9rem;padding:.75rem .65rem;overflow:hidden;border:1px dashed #b8d48e;border-radius:15px;background:linear-gradient(135deg,#fff8b8,#efffd5 55%,#e5f7ff);text-align:center}
.official-map-explorer .map-side-cheer:before,.official-map-explorer .map-side-cheer:after{content:"";position:absolute;z-index:-1;border-radius:50%;background:rgba(255,255,255,.55)}
.official-map-explorer .map-side-cheer:before{top:-28px;left:-24px;width:74px;height:74px}.official-map-explorer .map-side-cheer:after{right:-18px;bottom:-26px;width:64px;height:64px}
.official-map-explorer .map-side-cheer>span{color:#d07916;font-size:.68rem;font-weight:950;letter-spacing:.15em}
.official-map-explorer .map-side-cheer>strong{margin:.12rem 0;color:#176b29;font-size:1.125rem;line-height:1.5}
.official-map-explorer .map-side-cheer>div{display:flex;align-items:center;justify-content:center;gap:.25rem;margin:.18rem 0}
.official-map-explorer .map-side-cheer>div i{min-width:39px;padding:.13rem .35rem;border:1px solid #c8dcad;border-radius:999px;background:#fff;color:#39733a;font-size:.875rem;font-style:normal;font-weight:900}
.official-map-explorer .map-side-cheer>div i:nth-of-type(2){border-color:#b7ddeb;background:#edfbff}.official-map-explorer .map-side-cheer>div i:nth-of-type(3){border-color:#efc88a;background:#fff5df}
.official-map-explorer .map-side-cheer>div b{color:#d28625;font-size:.875rem}
.official-map-explorer .map-side-cheer>small{color:#667461;font-size:.87rem;line-height:1.55}
@media(max-width:700px){
  .official-map-explorer .map-discovery-heading{grid-template-columns:43px minmax(0,1fr);min-height:0;gap:.62rem;padding:.72rem .75rem}
  .official-map-explorer .map-discovery-pin{width:39px;height:39px;border-width:2px}.official-map-explorer .map-discovery-pin i{width:18px;height:18px;border-width:3px}
  .official-map-explorer .map-discovery-pin i:before{top:4px;left:2px;box-shadow:7px 0 #fff}.official-map-explorer .map-discovery-pin i:after{left:4px;bottom:2px;width:6px}
  .official-map-explorer .map-discovery-heading h2{font-size:1.35rem}.official-map-explorer .map-discovery-heading p{font-size:.94rem;line-height:1.6}
  .official-map-explorer .map-discovery-route{grid-column:1/-1;justify-content:center;width:100%;padding:.35rem .45rem}
  .official-map-explorer .map-layout{grid-template-rows:auto auto auto auto auto;grid-template-areas:"toolbar" "map" "progress" "cheer" "note"}
  .official-map-explorer .map-toolbar .map-toolbar-kicker{font-size:.68rem}.official-map-explorer .map-side-cheer{min-height:0;margin:.55rem .7rem .1rem;padding:.62rem}
  .official-map-explorer .map-side-cheer>strong br{display:none}
}
