/* Photographic wing surfaces hinged independently around the thorax. */
.garden-butterflies{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;contain:layout style;isolation:isolate}
.garden-butterflies.has-mesh-butterflies .garden-butterfly,.garden-butterflies.has-mesh-butterflies .butterfly-contact-shadow{visibility:hidden}
.garden-butterfly-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.garden-butterfly{position:absolute;left:0;top:0;width:54px;height:54px;opacity:0;pointer-events:none;will-change:transform;transform-origin:50% 52%;perspective:300px}
.butterfly-heading,.butterfly-rig{position:absolute;inset:0;transform-origin:50% 52%;transform-style:preserve-3d}
.butterfly-wing-left,.butterfly-wing-right,.butterfly-body{position:absolute;inset:0;background-size:100% 100%;background-repeat:no-repeat;transform-origin:50% 52%}
.butterfly-wing-left,.butterfly-wing-right{transform-style:preserve-3d;will-change:transform}
.butterfly-wing-left::before,.butterfly-wing-left::after{clip-path:polygon(0 17%,28% 17%,49.6% 46%,49.6% 74%,39% 96%,0 96%)}
.butterfly-wing-right::before,.butterfly-wing-right::after{clip-path:polygon(72% 17%,100% 17%,100% 96%,61% 96%,50.4% 74%,50.4% 46%)}
.butterfly-wing-left::before,.butterfly-wing-right::before,.butterfly-wing-left::after,.butterfly-wing-right::after{content:"";position:absolute;inset:0;background:url('/assets/blue-butterfly.png') center/100% 100% no-repeat;backface-visibility:hidden}
.garden-butterfly{--wing-hue:0deg;--butterfly-brightness:.72;--butterfly-saturation:.64;--butterfly-warmth:0}
.garden-butterfly[data-variant="amber"]{--wing-hue:-170deg}
.garden-butterfly[data-variant="violet"]{--wing-hue:65deg}
.butterfly-wing-left::before,.butterfly-wing-right::before{filter:hue-rotate(var(--wing-hue)) sepia(var(--butterfly-warmth)) saturate(var(--butterfly-saturation)) brightness(var(--butterfly-brightness))}
.butterfly-wing-left::after,.butterfly-wing-right::after{transform:rotateY(180deg) scaleX(-1);filter:sepia(.85) saturate(.4) brightness(var(--butterfly-brightness))}
.butterfly-body{background-image:url('/assets/blue-butterfly.png');clip-path:polygon(37% 13%,40% 13%,49% 40%,51% 40%,61% 13%,64% 13%,53% 44%,53% 69%,50% 75%,47% 69%,47% 44%);transform:translateZ(.5px)}
.butterfly-body{filter:sepia(var(--butterfly-warmth)) brightness(var(--butterfly-brightness))}
.garden-butterfly[data-phase="perch"]{will-change:auto}
.garden-plant-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.butterfly-contact-shadow{position:absolute;left:0;top:0;opacity:0;border-radius:50%;background:radial-gradient(ellipse,#000b,transparent 72%);filter:blur(1px);pointer-events:none}
.butterfly-feet{position:absolute;left:40%;top:46%;width:20%;height:18%;opacity:0;transform:translateZ(-.4px)}
.butterfly-feet::before,.butterfly-feet::after{content:"";position:absolute;inset:0;background:linear-gradient(27deg,transparent 24%,#251b0f 26%,#251b0f 29%,transparent 31%),linear-gradient(-10deg,transparent 50%,#251b0f 52%,#251b0f 55%,transparent 57%),linear-gradient(-37deg,transparent 71%,#251b0f 73%,#251b0f 76%,transparent 78%);transform:translateX(-27%)}
.butterfly-feet::after{transform:translateX(27%) scaleX(-1)}
@media(prefers-reduced-motion:reduce){.garden-butterfly,.butterfly-wing-left,.butterfly-wing-right{will-change:auto}}

/* Controls fade without shifting the scene or interrupting its animation. */
.night-entrance .login-header,.night-entrance .login-content,.night-entrance .garden-sound{transition:opacity 180ms ease;opacity:1}
.night-entrance .login-content{animation:none}
.night-entrance.is-idle .login-header,.night-entrance.is-idle .login-content,.night-entrance.is-idle .garden-sound{opacity:0;pointer-events:none;transition-duration:550ms}
.night-entrance .garden-sound{position:absolute;right:24px;bottom:24px;z-index:4;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:9px 13px;border:1px solid #ffffff28;border-radius:24px;background:#090d0f9e;color:#dce3e6;font:500 12px/1.2 'Open Sans',sans-serif;cursor:pointer;backdrop-filter:blur(8px)}
.night-entrance .garden-sound:hover{background:#192226cc;border-color:#ffffff50}
.night-entrance .garden-sound svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7}
.night-entrance .garden-sound[aria-pressed="true"]{color:#d5f6fc}
@media(max-width:700px){.night-entrance .garden-sound{right:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){.night-entrance .login-header,.night-entrance .login-content,.night-entrance .garden-sound{transition:none}}
