/* Raster artwork carries every secret reveal and all physical hiding props. */
.discovery-painted{pointer-events:none;transform-box:fill-box;transform-origin:center;image-rendering:auto;filter:drop-shadow(0 0 1px #ffdc8d70)}
.discovery-illustration{animation:discovery-appear .32s ease-out}
.painted-boat{animation:painted-boat-drift 7s ease-in-out infinite}
.painted-fish{animation:painted-fish-greeting 4.6s ease-in-out infinite}
.painted-lily{animation:painted-lily-bob 7s ease-in-out infinite}
.painted-reeds{animation:painted-reed-sway 6s ease-in-out infinite;transform-origin:50% 90%}
.painted-berries,.painted-star{animation:painted-shimmer 4s ease-in-out infinite}
.painted-cottage,.painted-window{animation:painted-lily-bob 5s ease-in-out infinite}
.painted-butterfly{animation:painted-butterfly-flight 6s ease-in-out infinite}
.painted-waterfall,.painted-flower{animation:painted-shimmer 5s ease-in-out infinite}
@keyframes painted-boat-drift{0%,100%{transform:translate(-5px,0) rotate(-2deg)}50%{transform:translate(7px,-3px) rotate(2deg)}}
@keyframes painted-fish-greeting{0%,100%{transform:translateY(3px) rotate(-2deg)}45%{transform:translateY(-7px) rotate(3deg)}}
@keyframes painted-lily-bob{0%,100%{transform:translateY(1px) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}
@keyframes painted-reed-sway{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(2deg)}}
@keyframes painted-shimmer{0%,100%{filter:brightness(1) drop-shadow(0 0 2px #ffe7a342)}50%{filter:brightness(1.13) drop-shadow(0 0 8px #ffe7a380)}}
@keyframes painted-butterfly-flight{0%,100%{transform:translate(0,-6px) rotate(-5deg)}40%{transform:translate(-12px,-22px) rotate(5deg)}70%{transform:translate(5px,-16px) rotate(-3deg)}}
.world-cache .painted-prop{width:100%;height:100%;display:block;object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 3px #0825336b)}
.world-cache.bench-box{width:13.2%;height:16.5%;min-width:44px;min-height:44px;border-radius:24% 30% 15% 18%}
.world-cache.tree-hollow{width:31%;height:26%;min-width:44px;min-height:44px;border-radius:38% 40% 27% 30%}
.square-puzzle.is-interactive button.world-cache:not(.open){outline:none;box-shadow:none;filter:none;background:transparent}
.square-puzzle.is-interactive button.world-cache:hover{outline:1px solid #f1d38926;outline-offset:1px;box-shadow:0 0 2px #f1d3890d;filter:none;background:transparent}
.square-puzzle.is-interactive button.world-cache.hint-target{outline:2px solid #ffe19b8c;outline-offset:3px;box-shadow:none;filter:none}
.square-puzzle.is-interactive button.world-cache:focus-visible{outline:2px solid #fff0ac;outline-offset:4px;box-shadow:none;filter:none}
.cache-reveal{position:absolute;display:block;pointer-events:none;object-fit:fill;filter:none;mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 4%,#000 96%,transparent);mask-composite:intersect}
.cache-reveal-box{left:51.944444%;top:47.261905%;width:15.694444%;height:25.595238%}
.cache-reveal-stump{left:26.805556%;top:69.047619%;width:13.472222%;height:17.619048%}
.cache-opening{animation:cache-opening .32s ease-out both}
@keyframes cache-opening{from{opacity:0}to{opacity:1}}
.world-cache.cottage-door.open{left:28.5%!important;top:43%!important;width:10%;height:21%}
.cottage-door.open .painted-prop{object-fit:fill}
.scene.quest-complete .scene-changes{z-index:5}
.scene[data-location=marsh] .scribbit-button{left:.6%;width:13.4%;height:38%;bottom:7%}
.scene[data-location=marsh] .scribbit-button span{display:none}
.world-stone{width:8.5%;height:10%;min-width:44px;min-height:44px;max-height:none;background:transparent;filter:none;border-radius:42%}
.world-stone.missing{opacity:1}
.world-stone-number{top:42%;font-family:Georgia,serif;font-size:clamp(18px,2.4vw,29px);font-weight:bold;color:#233d3b;text-shadow:0 1px 1px #f9f3cf,0 -1px 2px #fff8dd80}
.world-stone:hover,.crossing-ready .world-stone{filter:none}
.world-stone.selected,.world-stone.hint-target{outline:2px solid #ffeab1;outline-offset:2px;box-shadow:0 0 11px #ffd77580;background:#fff0ab10}
.world-stone.missing:hover{background:#ffeb9b18;box-shadow:0 0 12px #ffe3a282}
.painted-moonstone{position:absolute;left:86%;top:45%;width:5.5%;height:10%;transform:translate(-50%,-50%);object-fit:contain;filter:drop-shadow(0 0 7px #d5f9e9b3);pointer-events:none}
.scene-changes .friend-home img{background:transparent}
@media(max-width:650px){.world-stone{width:8.5%;height:10%;min-width:44px;min-height:44px;max-height:none}.world-stone-number{font-size:19px;top:43%}.painted-moonstone{min-width:21px;min-height:26px}.scene[data-location=marsh] .scene-tip{display:none}.scene[data-location=square] .hotspot[data-action=lanternInfo] .hotspot-label{position:absolute;top:auto;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);width:max-content}}
@media(prefers-reduced-motion:reduce){.discovery-painted,.discovery-illustration,.cache-opening{animation:none!important;transition:none!important}}
