.entrance-fairy{position:fixed;left:16px;top:40%;width:64px;height:64px;z-index:900;pointer-events:none;filter:none;--fairy-color:#80deff}
.entrance-fairy[hidden],.entrance-fairy-bubble[hidden]{display:none!important}
.entrance-fairy .entrance-fairy-trigger{all:unset;box-sizing:border-box;display:block;position:relative;width:64px;height:64px;cursor:pointer;pointer-events:auto;border-radius:50%;touch-action:manipulation;isolation:isolate}
.entrance-fairy-trigger:focus-visible{outline:2px solid #173949;outline-offset:5px}
/* The fairy is light first, shape second: no hard circular edge. */
.entrance-fairy-trigger::before,.entrance-fairy-trigger::after{content:"";position:absolute;pointer-events:none;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1}
.entrance-fairy-trigger::before{width:35px;height:35px;background:radial-gradient(circle,rgba(255,255,255,.98) 0 11%,rgba(255,255,255,.9) 24%,color-mix(in srgb,var(--fairy-color) 54%,white) 43%,color-mix(in srgb,var(--fairy-color) 24%,transparent) 62%,transparent 76%);filter:blur(4.8px);opacity:.94;animation:entrance-fairy-breathe 3.2s ease-in-out infinite}
.entrance-fairy-trigger::after{width:50px;height:50px;background:radial-gradient(circle,rgba(255,255,255,.2) 0 9%,color-mix(in srgb,var(--fairy-color) 23%,transparent) 36%,transparent 70%);filter:blur(8px);opacity:.58;animation:entrance-fairy-aura 4.6s ease-in-out infinite}
.entrance-fairy-trigger svg{display:block;position:relative;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 4px rgba(255,255,255,.82)) drop-shadow(0 0 7px color-mix(in srgb,var(--fairy-color) 70%,transparent));animation:none}
.entrance-fairy .fairy-core-soft{fill:url(#entrance-fairy-core-gradient);stroke:none;filter:blur(3.4px);transform-box:fill-box;transform-origin:center;animation:entrance-fairy-core 3.2s ease-in-out infinite}
.entrance-fairy .fairy-core-hot{fill:#fff;stroke:none;filter:blur(1.15px);opacity:.94;transform-box:fill-box;transform-origin:center;animation:entrance-fairy-hot 3.2s ease-in-out infinite}
.entrance-fairy.is-moving .entrance-fairy-trigger{filter:drop-shadow(-7px 3px 5px color-mix(in srgb,var(--fairy-color) 26%,transparent)) drop-shadow(-13px 6px 10px color-mix(in srgb,var(--fairy-color) 15%,transparent))}
.entrance-fairy.is-speaking .entrance-fairy-trigger{animation:entrance-fairy-talk-flash .52s ease-out 1}
@keyframes entrance-fairy-breathe{0%,100%{transform:translate(-50%,-50%) scale(.9);opacity:.76}50%{transform:translate(-50%,-50%) scale(1.16);opacity:1}}
@keyframes entrance-fairy-aura{0%,100%{transform:translate(-50%,-50%) scale(.88);opacity:.42}50%{transform:translate(-50%,-50%) scale(1.18);opacity:.8}}
@keyframes entrance-fairy-core{0%,100%{opacity:.8;transform:scale(.96)}50%{opacity:.98;transform:scale(1.04)}}
@keyframes entrance-fairy-hot{0%,100%{opacity:.86;transform:scale(.97)}50%{opacity:.98;transform:scale(1.035)}}
@keyframes entrance-fairy-talk-flash{0%{filter:brightness(1)}45%{filter:brightness(1.12) drop-shadow(0 0 6px rgba(255,255,255,.68))}100%{filter:brightness(1)}}
.entrance-fairy-bubble{position:fixed;box-sizing:border-box;width:min(330px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px 16px 16px;background:#fffbed;color:#173949;border:2px solid color-mix(in srgb,var(--fairy-color) 75%,#fff);border-radius:12px;box-shadow:0 8px 28px #10273540,0 0 18px color-mix(in srgb,var(--fairy-color) 20%,transparent);pointer-events:auto;overscroll-behavior:contain}
.entrance-fairy .entrance-fairy-close{position:absolute;right:5px;top:3px;border:0;background:transparent;color:#173949;font-size:25px;cursor:pointer;width:36px;height:36px;padding:0}
.entrance-fairy h2{font-size:18px;margin:4px 0 12px}.entrance-fairy p{font-size:15px;line-height:1.8;overflow-wrap:anywhere;margin:8px 0}.entrance-fairy header small{font-size:10px;letter-spacing:.1em}
.entrance-fairy footer{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.entrance-fairy footer small{flex-basis:100%;font-size:12px}.entrance-fairy form{margin:0}.entrance-fairy footer button{padding:7px 14px;background:#173949;color:#fffbed;border:0;border-radius:4px;cursor:pointer}

/* In-place like feedback: no navigation. */
.entrance-shopkeeper-thought footer{position:relative}
.entrance-thought-like-count b,.entrance-shopkeeper-thought [data-thought-like-total] b{font:inherit}
.entrance-thought-plus-one{position:absolute;right:58px;bottom:34px;z-index:3;font-weight:800;font-size:17px;line-height:1;color:#173949;text-shadow:0 1px 0 #fff,0 0 7px color-mix(in srgb,var(--fairy-color) 45%,transparent);pointer-events:none;animation:entrance-thought-plus-one .9s cubic-bezier(.18,.72,.28,1) forwards}
@keyframes entrance-thought-plus-one{0%{opacity:0;transform:translateY(5px) scale(.82)}18%{opacity:1;transform:translateY(0) scale(1.08)}100%{opacity:0;transform:translateY(-30px) scale(.98)}}
.entrance-shopkeeper-thought [data-thought-like-form].is-saving button{opacity:.62;pointer-events:none}
