.grove-entrance{position:absolute;left:20%;top:32%;width:44px;height:44px;transform:translate(-50%,-50%);z-index:5;display:grid;place-items:center;border:0;border-radius:4px;text-decoration:none;background:transparent;-webkit-tap-highlight-color:transparent}
.grove-entrance::before{content:'';width:40px;height:45px;background:url('/fairy-founders/assets/dream-bubble.png?v=1') center/contain no-repeat;opacity:1;transition:opacity .2s}
.grove-entrance span{display:none}
.grove-entrance:focus-visible{outline:1px solid #b3cbc5;outline-offset:3px}
.grove-entrance:hover::before{opacity:1}
[data-dream-entrance]{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .8s ease,visibility .8s}
[data-dream-entrance][data-dream-state="visible"]{opacity:1;visibility:visible;pointer-events:auto}
#dream-bubble[data-dream-entrance]:not([data-dream-state="visible"]){opacity:0}
@media(prefers-reduced-motion:reduce){[data-dream-entrance]{transition:none}}

/* Head anchor in the unchanged 1536x1024 painting: (318,422), just above the hat.
   Scale the original pixel sprite with the painting, retaining a usable touch target. */
#world,#lake-frame{container-type:inline-size}
.grove-entrance,#dream-bubble{--dream-size:clamp(24px,3.125vw,48px);left:20.703125%;top:41.2109375%;width:max(44px,var(--dream-size));height:max(44px,calc(var(--dream-size)*1.166667));transform:translate(-50%,-100%)}
.grove-entrance::before,#dream-bubble::before{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:var(--dream-size);height:calc(var(--dream-size)*1.166667);image-rendering:pixelated}
@supports(width:1cqw){.grove-entrance,#dream-bubble{--dream-size:clamp(24px,3.125cqw,48px)}}