/* Scoped to wandering visitors; the gallery keeps its own anatomy styles. */
.enigma-visitors{position:fixed;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));z-index:12;display:flex;flex-direction:column;align-items:flex-start;gap:5px;pointer-events:none;font:11px/1.4 system-ui,sans-serif;color:#eee8d9;isolation:isolate}
.enigma-visitors[hidden],.enigma-visitors [hidden]{display:none!important}
.enigma-visitors button,.enigma-visitors a{font:inherit;box-sizing:border-box;pointer-events:auto;touch-action:manipulation}
.enigma-visitors button{cursor:pointer;color:#e9dff2;border:1px solid #b49bc74d;background:#20172ded;border-radius:18px;padding:7px 11px;min-height:32px;box-shadow:0 3px 14px #0003}
.enigma-visitors :is(a,button):focus-visible{outline:2px solid #dfb779;outline-offset:3px}
.enigma-visitors .enigma-perch{position:relative;width:124px;pointer-events:none;animation:enigma-arrive .8s ease both}
.enigma-visitors .enigma-meet{display:block;position:relative;height:111px;width:116px;text-decoration:none;border:0;border-radius:30px;background:radial-gradient(ellipse at 50% 75%,#18122288,transparent 70%)}
.enigma-visitors .enigma-meet svg{display:block;width:116px;height:111px;overflow:visible;filter:drop-shadow(0 4px 5px #0005)}
.enigma-visitors .enigma-dismiss{position:absolute;right:-3px;top:0;padding:0;width:30px;min-height:30px;font-size:16px;opacity:0;transition:opacity .2s}
.enigma-visitors .enigma-perch:is(:hover,:focus-within) .enigma-dismiss{opacity:1}
.enigma-visitors .enigma-name{display:block;text-align:center;max-width:116px;color:#eee8d9;background:#20172de8;border-radius:12px;padding:3px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.enigma-visitors .creature-group{transform-box:fill-box;transform-origin:50% 85%;animation:enigma-breathe var(--breath-speed,4s) ease-in-out infinite}
.enigma-visitors .pupil-group{transform:translate(var(--enigma-eye-x,0px),var(--enigma-eye-y,0px))}
.enigma-visitors .creature-eyes>ellipse{transform-box:fill-box;transform-origin:center;animation:enigma-blink var(--blink-interval,6s) ease-in-out infinite}
.enigma-visitors .enigma-meet:hover .creature-group{animation-play-state:paused}
.enigma-visitors[data-paused=true] *{animation-play-state:paused!important}
body.arriving .enigma-visitors,body:has(dialog[open]) .enigma-visitors,body:has(:fullscreen) .enigma-visitors{visibility:hidden;pointer-events:none}
@keyframes enigma-breathe{50%{transform:scale(1.025,.98) rotate(.8deg)}}
@keyframes enigma-blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.08)}}
@keyframes enigma-arrive{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@media(hover:none){.enigma-visitors .enigma-dismiss{opacity:1}}
@media(max-width:600px){.enigma-visitors{left:8px;bottom:8px}.enigma-visitors .enigma-perch{width:104px}.enigma-visitors .enigma-meet,.enigma-visitors .enigma-meet svg{width:96px;height:92px}.enigma-visitors .enigma-name{max-width:96px;font-size:10px}.enigma-visitors button{font-size:10px;padding:6px 9px;min-height:30px}}
@media(prefers-reduced-motion:reduce){.enigma-visitors *{animation:none!important;transition:none!important}}
@media print{.enigma-visitors{display:none!important}}
