/* Original expedition character. Only internal art moves; Leaflet owns the GPS anchor. */
.explorer-sculpted{display:block;overflow:visible;isolation:isolate}
.explorer-sculpted .explorer-facing{transform-box:view-box;transform-origin:90px 115px}
.player-figure[data-facing="left"] .explorer-sculpted .explorer-facing{transform:scaleX(-1)}
.player-figure[data-facing="right"] .explorer-sculpted .explorer-facing{transform:scaleX(1)}
/* The grounded contact shadow is in the SVG; a strong drop shadow flattens the materials. */
.explorer-avatar .player-figure:has(.explorer-sculpted){filter:drop-shadow(0 2px 1px #173a302b)}
.explorer-sculpted .explorer-arm-left,.explorer-sculpted .explorer-arm-right,
.explorer-sculpted .explorer-leg-left,.explorer-sculpted .explorer-leg-right{transform-box:fill-box;transform-origin:50% 8%}
.player-figure.is-walking .explorer-sculpted .explorer-figure{animation:ww-explorer-rise .64s ease-in-out infinite}
.player-figure.is-walking .explorer-sculpted .explorer-arm-left,
.player-figure.is-walking .explorer-sculpted .explorer-leg-right{animation:ww-explorer-stride .64s ease-in-out infinite alternate}
.player-figure.is-walking .explorer-sculpted .explorer-arm-right,
.player-figure.is-walking .explorer-sculpted .explorer-leg-left{animation:ww-explorer-stride .64s ease-in-out infinite alternate-reverse}
.player-figure.is-walking .explorer-sculpted .explorer-ground-shadow{transform-origin:90px 215px;animation:ww-explorer-contact .64s ease-in-out infinite}
@keyframes ww-explorer-rise{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.4px)}}
@keyframes ww-explorer-stride{from{transform:rotate(-3deg) translateY(-.8px)}to{transform:rotate(3deg) translateY(.8px)}}
@keyframes ww-explorer-contact{0%,100%{opacity:1;transform:scaleX(1)}50%{opacity:.84;transform:scaleX(.96)}}
@media(prefers-reduced-motion:reduce){
 .player-figure .explorer-sculpted *{animation:none!important;transition:none!important}
}
@media(forced-colors:active){.explorer-sculpted{forced-color-adjust:none}}

/* Expedition character: grounded animation and a real rear view, not a rotated face. */
.explorer-view-back{display:none}.player-figure[data-view="back"] .explorer-view-front{display:none}.player-figure[data-view="back"] .explorer-view-back{display:block}
.explorer-expedition-v2 .explorer-head{transform-box:fill-box;transform-origin:50% 90%;animation:ww-look-around 9s ease-in-out infinite}
.explorer-expedition-v2 .explorer-backpack{transform-box:fill-box;transform-origin:60% 15%}
.player-figure.is-walking .explorer-backpack{animation:ww-pack-sway .64s ease-in-out infinite}
.player-figure.is-walking .explorer-head{animation:ww-head-step .64s ease-in-out infinite}
.player-figure.is-walking .explorer-arm-left,.player-figure.is-walking .explorer-leg-right{animation:ww-expedition-stride .64s ease-in-out infinite alternate}
.player-figure.is-walking .explorer-arm-right,.player-figure.is-walking .explorer-leg-left{animation:ww-expedition-stride .64s ease-in-out infinite alternate-reverse}
@keyframes ww-expedition-stride{from{transform:rotate(-8deg) translateY(-1px)}to{transform:rotate(8deg) translateY(1px)}}
@keyframes ww-pack-sway{0%,100%{transform:rotate(-1deg) translateY(0)}50%{transform:rotate(1.4deg) translateY(1.2px)}}
@keyframes ww-head-step{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}
@keyframes ww-look-around{0%,76%,100%{transform:rotate(0)}82%,90%{transform:rotate(-3deg)}}
.explorer-preview{background:linear-gradient(180deg,#dbe9d9 0,#f6e9c7 64%,#9ab18b 64%,#789970 100%)!important;box-shadow:inset 0 0 0 8px #fff8,0 18px 45px #213d3526!important;border:1px solid #b9c8a5!important}
.explorer-preview:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 75% 12%,#fff8cf99,transparent 48%);z-index:0}
.explorer-preview>*{position:relative;z-index:1}.explorer-preview #explorer-art{filter:drop-shadow(0 12px 6px #243e3433)!important;padding-top:18px}
.explorer-preview #explorer-art:before{inset:auto 5% -4%;height:18%;border:0;background:radial-gradient(ellipse,#263e3733,transparent 65%);border-radius:50%}
@media(prefers-reduced-motion:reduce){.explorer-expedition-v2 *{animation:none!important}}
.explorer-preview{background:#f8f4e5!important}
.explorer-preview #explorer-art{width:100%!important;height:290px!important;max-height:none!important;box-sizing:border-box;display:flex;justify-content:center;align-items:center;left:auto;top:auto;padding:10px 0 18px!important;background:radial-gradient(circle at 77% 18%,#fff7c7 0,transparent 36%),linear-gradient(180deg,#d6e6d5 0,#ece7c9 79%,#a4ba8d 80%,#839e73 100%);border-radius:18px;margin:0 auto 18px;overflow:hidden;filter:none!important}
.explorer-preview #explorer-art svg{width:auto!important;height:100%!important;max-width:100%!important;flex:none}

.explorer-pose-controls{display:flex;justify-content:center;gap:7px;margin:16px 0}.explorer-pose-controls button{min-height:44px;min-width:68px;padding:9px 12px;background:#fffbed;border:1px solid #9bad86;border-radius:999px;color:#284d3c;font:650 13px system-ui;cursor:pointer}.explorer-pose-controls button[aria-pressed=true]{background:#294f3d;color:#fffbed;border-color:#294f3d}.explorer-pose-controls button:focus-visible{outline:3px solid #c29442;outline-offset:3px}.map-tools-content .map-sample{width:100%;min-height:44px;border:1px solid #b8c8a5;background:#f4f7e8;color:#315743;border-radius:10px;padding:12px;font:650 12px system-ui;cursor:pointer}

.explorer-scene-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}.explorer-scene-controls button{min-height:44px;border:1px solid #9bad86;border-radius:9px;padding:9px 12px;background:#fffbed;color:#284d3c;font:600 12px system-ui;cursor:pointer}.explorer-scene-controls button[aria-pressed=true]{background:#d8e5ce;border-color:#456b50}.explorer-scene-controls button:focus-visible{outline:3px solid #c29442;outline-offset:3px}
.explorer-preview #explorer-art{position:relative;isolation:isolate;background:radial-gradient(ellipse at 10% 48%,#6d95755c 0 19%,transparent 20%),radial-gradient(ellipse at 93% 45%,#3e71574a 0 24%,transparent 25%),radial-gradient(circle at 77% 18%,#fff7c7 0,transparent 36%),linear-gradient(180deg,#cee2d0 0,#e5e6c7 74%,#a4ba8d 75%,#839e73 100%)}
.explorer-preview #explorer-art[data-scene=coast]{background:radial-gradient(circle at 78% 19%,#fff1ba 0 7%,transparent 7.5%),linear-gradient(180deg,#a7d6e2 0,#e0f0e8 55%,#629ea2 56%,#8cc7bd 66%,#e6e1ba 67%,#ccb887 100%)}
.explorer-preview #explorer-art[data-scene=night]{background:radial-gradient(circle at 79% 18%,#fff4c6 0 5%,transparent 5.5%),radial-gradient(circle at 22% 22%,#fff7dd 0 1px,transparent 2px),radial-gradient(circle at 65% 35%,#fff7dd 0 1px,transparent 2px),radial-gradient(circle at 36% 12%,#fff7dd 0 1px,transparent 2px),linear-gradient(180deg,#1c3045 0,#46636b 74%,#3f6151 75%,#294638 100%)}
.explorer-preview #explorer-art:after{content:"";position:absolute;z-index:-1;bottom:-18%;left:25%;width:50%;height:40%;background:#e4c99e55;border-radius:50%;transform:perspective(70px) rotateX(35deg)}

/* Compact field explorer: a clear silhouette without expensive SVG filters. */
.explorer-map-v3{overflow:visible}.explorer-map-v3 .explorer-ground-shadow{opacity:.82}
.explorer-map-v3 .explorer-head{transform-box:fill-box;transform-origin:50% 90%}
.player-figure.is-walking .explorer-map-v3 .explorer-head{animation:ww-head-step .64s ease-in-out infinite}
.player-figure.is-walking .explorer-map-v3 .explorer-backpack{animation:ww-pack-sway .64s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 15%}
@media(prefers-reduced-motion:reduce){.player-figure .explorer-map-v3 *{animation:none!important;transition:none!important}}
