.em-bee-launcher{--bee-size:96px;position:fixed;width:var(--bee-size);height:calc(var(--bee-size) + 48px);right:12px;bottom:12px;z-index:45;pointer-events:none;filter:drop-shadow(0 5px 4px #3d2b1819)}
.em-bee-button{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;padding:0;background:transparent;border:0;cursor:pointer;pointer-events:auto;color:var(--ink,#29251d);touch-action:manipulation}
.em-bee-sprite{display:block;width:var(--bee-size);height:var(--bee-size);flex-shrink:0;position:relative;background:none;animation:em-bee-hover 5s ease-in-out infinite}
.em-bee-label{font:500 12px/1.4 Arial,sans-serif;padding:3px 10px;border:1px solid #e4d6ab;background:#fff7db;border-radius:20px;color:#3b321f;white-space:nowrap;box-shadow:0 2px 7px #3025120b}
.em-bee-launcher.is-flying{transition:transform 1.85s cubic-bezier(.42,.05,.27,1);will-change:transform}.em-bee-launcher.is-flying .em-bee-sprite{animation:em-bee-hover 1.5s ease-in-out infinite}
.em-bee-launcher.is-perched{clip-path:inset(0 0 var(--bee-occlusion,30px) 0)}.em-bee-launcher.is-perched .em-bee-sprite{animation:em-bee-hover 5s ease-in-out infinite}.em-bee-launcher.is-perched .em-bee-label,.em-bee-launcher.is-flying .em-bee-label{visibility:hidden}
.em-bee-launcher.is-still .em-bee-sprite{animation:none}
.em-bee-button:focus-visible{outline:2px solid var(--ink,#222);outline-offset:3px;border-radius:16px}
.em-bee-panel,.em-bee-notice{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:168px;z-index:60;width:min(368px,calc(100vw - 28px));border:1px solid var(--line,#dfd9ca);border-radius:16px;background:var(--page,#fff);color:var(--ink,#27241d);box-shadow:0 16px 54px #18181024;font:16px/1.6 Arial,Helvetica,sans-serif}
.em-bee-panel{padding:22px;max-height:calc(100dvh - 192px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.em-bee-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.em-bee-kicker{font-size:12px;letter-spacing:.13em;color:var(--muted,#555)}.em-bee-panel h2{font:400 28px/1.2 Georgia,serif;letter-spacing:-.5px;margin:8px 0 0}.em-bee-panel h3{font:500 17px/1.5 Arial,sans-serif;margin:22px 0 0;letter-spacing:0}
.em-bee-close,.em-bee-notice-close{border:0;background:none;color:inherit;font:28px/1 Arial,sans-serif;width:40px;height:40px;padding:0;flex-shrink:0;cursor:pointer}
.em-bee-welcome{font-size:14px;line-height:1.65;margin:16px 0 10px;color:var(--muted,#555)}
.em-bee-hide{border:0;background:none;color:inherit;font:14px/1.5 Arial,sans-serif;text-decoration:underline;text-underline-offset:4px;padding:8px 0;min-height:44px;cursor:pointer}.em-bee-status{font-size:13px;color:var(--muted,#555);margin:0}.em-bee-status:empty{display:none}
.em-bee-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:17px 0}.em-bee-shortcuts a{display:flex;align-items:center;justify-content:center;text-align:center;padding:12px 9px;background:var(--surface,#f6f5f0);border:1px solid var(--line,#ddd);border-radius:7px;min-height:54px;text-decoration:none;color:inherit;font-size:14px;line-height:1.4}
.em-bee-questions{display:flex;flex-wrap:wrap;gap:6px}.em-bee-questions button{font:14px/1.4 Arial,sans-serif;min-height:42px;padding:9px 12px;background:transparent;color:inherit;border:1px solid var(--line,#ddd);border-radius:22px;cursor:pointer}
.em-bee-answer{padding:14px;margin-top:12px;border-left:3px solid var(--action,#f3e4a9);background:var(--surface,#f7f6f1);border-radius:0 6px 6px 0;font-size:14px}.em-bee-answer p{margin:8px 0}.em-bee-answer a{display:inline-block;color:inherit;text-underline-offset:3px;padding:7px 0;min-height:38px}
.em-bee-contact-note{font-size:14px;color:var(--muted,#555);margin:3px 0 10px}.em-bee-advisors{display:grid;grid-template-columns:1fr 1fr;gap:10px}.em-bee-advisor,.em-bee-notice-action{display:block;text-align:center;padding:12px 16px;min-height:46px;background:var(--action,#f3e4a9);color:var(--action-ink,#302a1b);border:0;border-radius:7px;font:500 14px/1.5 Arial,sans-serif;text-decoration:none;cursor:pointer}
.em-bee-advisor:hover,.em-bee-notice-action:hover{background:var(--action-hover,#ecda93)}
.em-bee-settings{margin-top:20px;padding-top:10px;border-top:1px solid var(--line,#ddd);font-size:13px}.em-bee-settings summary{padding:8px 0;cursor:pointer;font-size:14px}.em-bee-settings label{display:flex;align-items:center;gap:9px;min-height:44px;line-height:1.45}.em-bee-settings input{width:18px;height:18px;accent-color:#8e7027;flex:none}
.em-bee-notice{padding:18px 20px;max-width:300px;font-size:14px}.em-bee-notice p{margin:0 22px 14px 0}.em-bee-notice-close{position:absolute;right:6px;top:5px;font-size:23px}.em-bee-notice-action{width:100%}
.em-bee-restore{border:0;border-bottom:1px solid currentColor;background:none;color:inherit;font:14px/1.5 Arial,sans-serif;min-height:44px;cursor:pointer;padding:8px 0}
.em-bee-panel [hidden],.em-bee-panel[hidden],.em-bee-notice[hidden],.em-bee-launcher[hidden]{display:none!important}
.em-bee-panel :is(button,a,input,summary):focus-visible,.em-bee-notice button:focus-visible{outline:2px solid var(--ink,#222);outline-offset:3px}
@keyframes em-bee-wings{0%,100%{background-position:0 0}25%{background-position:100% 0}50%{background-position:0 100%}75%{background-position:100% 100%}}
@keyframes em-bee-hover{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}}
@media(max-width:540px){.em-bee-launcher{--bee-size:82px}.em-bee-panel,.em-bee-notice{bottom:max(154px,calc(env(safe-area-inset-bottom) + 140px))}.em-bee-panel{padding:18px;max-height:calc(100dvh - 178px)}.em-bee-panel h2{font-size:27px}.em-bee-notice{max-width:270px;padding:16px}}
@media(prefers-reduced-motion:reduce){.em-bee-sprite{animation:none!important}.em-bee-launcher{transition:none!important}}

.em-bee-panel .em-bee-shortcuts a{display:flex}.em-bee-answer a{text-decoration:underline}

.em-bee-promotion{padding:15px;border:1px solid #e4d5a8;border-radius:10px;background:#fbf5e0;color:#3b321f;margin:16px 0}.em-bee-promotion strong{font-size:17px;font-weight:600}.em-bee-promotion p{font-size:14px;line-height:1.5;margin:6px 0 12px}.em-bee-promotion div{display:flex;flex-wrap:wrap;gap:8px 16px}.em-bee-promotion a{font-size:14px;color:inherit;text-decoration:underline;text-underline-offset:4px;min-height:40px;display:inline-flex;align-items:center}.em-bee-title-front{position:relative;z-index:46}.em-bee-launcher.is-flying.is-letter-peek{transition-duration:.8s}.em-bee-launcher.is-perched .em-bee-sprite{animation:em-bee-curious 6s ease-in-out infinite}@keyframes em-bee-curious{0%,55%,100%{transform:rotate(0)}65%{transform:rotate(-9deg) translateX(-3px)}78%{transform:rotate(7deg) translateX(2px)}90%{transform:rotate(0)}}

.em-bee-quick-actions{display:flex;align-items:center;gap:20px}.em-bee-flight-demo{border:0;background:none;color:inherit;font:14px/1.5 Arial,sans-serif;text-decoration:underline;text-underline-offset:4px;padding:8px 0;min-height:44px;cursor:pointer}.em-bee-launcher.is-letter-peek .em-bee-label{visibility:hidden}.em-bee-launcher.is-flying{transition:none}.em-bee-launcher.is-still .em-bee-sprite{transform:none}.em-bee-title-front{isolation:isolate}.em-bee-panel{border-radius:8px}.em-bee-label{font-size:12px;background:#faf7ed;border-color:#d9ccb0;font-weight:400}

/* Celeste: individually aligned drawings preserve the head while the wings flutter. */
.em-bee-pose{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none;user-select:none}
.em-bee-pose-rest{opacity:1}
.em-bee-launcher.is-flying .em-bee-pose-rest{opacity:0}
.em-bee-launcher.is-flying .em-bee-pose-up{animation:em-bee-flutter-up .32s ease-in-out infinite}
.em-bee-launcher.is-flying .em-bee-pose-down{animation:em-bee-flutter-down .32s ease-in-out infinite}
.em-bee-launcher.is-speaking .em-bee-pose-rest{opacity:0}
.em-bee-launcher.is-speaking .em-bee-pose-wave{opacity:1}
.em-bee-launcher.is-speaking .em-bee-sprite{animation:em-bee-greeting 1.3s ease-in-out infinite}
.em-bee-launcher.is-still .em-bee-pose{animation:none!important;opacity:0}
.em-bee-launcher.is-still .em-bee-pose-rest{opacity:1}
@keyframes em-bee-flutter-up{0%,100%{opacity:1}50%{opacity:0}}
@keyframes em-bee-flutter-down{0%,100%{opacity:0}50%{opacity:1}}
@keyframes em-bee-greeting{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}}
@media(prefers-reduced-motion:reduce){.em-bee-pose{animation:none!important}.em-bee-launcher.is-flying .em-bee-pose-rest{opacity:1}}

.em-bee-label{position:absolute;right:0;bottom:0;display:grid;gap:1px;min-width:154px;text-align:left;border-radius:12px;padding:5px 12px;font:14px/1.3 Arial,sans-serif}.em-bee-label strong{font-size:14px;font-weight:600}.em-bee-label span{font-size:13px}

.em-bee-direction{position:absolute;inset:0;transform:scaleX(var(--bee-facing,1));transition:transform .32s ease-in-out}.em-bee-pose{transition:opacity .16s ease-in-out}.em-bee-launcher.is-letter-peek .em-bee-pose-rest{opacity:0}.em-bee-launcher.is-letter-peek .em-bee-pose-up{animation:em-bee-flutter-up .32s ease-in-out infinite}.em-bee-launcher.is-letter-peek .em-bee-pose-down{animation:em-bee-flutter-down .32s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.em-bee-direction,.em-bee-pose{transition:none}}

/* Celeste's cartoon poses are original artwork, animated as a small character. */
.em-frog-launcher{--bee-size:112px;filter:drop-shadow(0 3px 2px #26311d1c)}
.em-frog-sprite{background:none;transform-origin:50% 86%;animation:em-frog-playful 6.4s ease-in-out infinite}
.em-frog-frame{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;user-select:none}
.em-frog-idle{animation:em-frog-idle-face 6.4s steps(1,end) infinite}.em-frog-blink{animation:em-frog-blink-face 6.4s steps(1,end) infinite}.em-frog-wave{animation:em-frog-wave-face 6.4s steps(1,end) infinite}.em-frog-crouch{animation:em-frog-crouch-face 6.4s steps(1,end) infinite}.em-frog-air{animation:em-frog-jump-face 6.4s steps(1,end) infinite}
.em-frog-launcher.is-flying .em-frog-sprite{animation:none;transform:rotate(var(--frog-tilt,0deg));transform-origin:50% 34%}
.em-frog-launcher:is(.is-flying,.is-glass,.is-chatting) .em-frog-frame{animation:none;opacity:0}
.em-frog-launcher.is-flying .em-frog-air{opacity:1}
.em-frog-launcher.is-preparing .em-frog-air{opacity:0}.em-frog-launcher.is-preparing .em-frog-crouch{opacity:1}
.em-frog-launcher.is-glass .em-frog-glass{opacity:1}.em-frog-launcher.is-glass .em-frog-sprite{animation:em-frog-glass-landing 2.2s ease-out both;transform-origin:50% 60%}
.em-frog-launcher:is(.is-glass,.is-flying) .em-bee-label{visibility:hidden}
.em-frog-launcher.is-chatting .em-frog-wave{opacity:1}.em-frog-launcher.is-chatting .em-frog-sprite{animation:em-frog-wave-body 1.3s ease-in-out infinite}
.em-frog-launcher.is-paused .em-frog-sprite,.em-frog-launcher.is-paused .em-frog-frame{animation-play-state:paused!important}
.em-frog-launcher.is-still .em-frog-sprite{animation:none!important;transform:none!important}.em-frog-launcher.is-still .em-frog-frame{animation:none!important;opacity:0!important}.em-frog-launcher.is-still .em-frog-idle{opacity:1!important}
.em-frog-launcher .em-bee-label{border-color:#cbd1bd;background:#f7f8ef;color:#34402d;min-width:146px;box-shadow:0 3px 12px #2837200a;border-radius:16px;padding:6px 12px}.em-frog-launcher .em-bee-button:focus-visible{outline-color:#48523a}.em-frog-launcher.is-image-unavailable .em-bee-label{outline:1px solid #788463}
.em-frog-tongue{position:fixed;inset:0;width:100%;height:100%;z-index:46;overflow:hidden;pointer-events:none}.em-frog-tongue[hidden]{display:none!important}.em-frog-tongue svg{display:block;width:100%;height:100%}
.em-frog-tongue path{fill:none;stroke-linecap:round;stroke-linejoin:round}.em-frog-tongue-shadow{stroke:#623c3240;stroke-width:6}.em-frog-tongue-line{stroke:#df8b9c;stroke-width:4}.em-frog-anchor{fill:#efaab5;stroke:#fff5e8;stroke-width:1.5}
.em-bee-panel,.em-bee-notice{--action:#48523a;--action-hover:#35412b;--action-ink:#fffdf6;--line:#cdd3c0;border-radius:20px;border-color:#cdd3c0}.em-bee-panel{bottom:184px}.em-bee-settings input{accent-color:#48523a}.em-bee-promotion{background:#edf0e3;border-color:#ccd3bc;color:#34402d}.em-bee-advisor,.em-bee-notice-action{border-radius:24px}.em-bee-shortcuts a{border-radius:10px}
@keyframes em-frog-idle-face{0%,18%,60%,83%,100%{opacity:1}15%,40%,74%{opacity:0}}
@keyframes em-frog-blink-face{0%,18%,100%{opacity:0}15%{opacity:1}}
@keyframes em-frog-wave-face{0%,60%,100%{opacity:0}40%{opacity:1}}
@keyframes em-frog-crouch-face{0%,77%,83%,100%{opacity:0}74%,81%{opacity:1}}
@keyframes em-frog-jump-face{0%,81%,100%{opacity:0}77%{opacity:1}}
@keyframes em-frog-playful{0%,35%,60%,70%,90%,100%{transform:translateY(0) rotate(0) scale(1)}15%{transform:translateY(2px) scale(1.025,.97)}40%,51%{transform:translateY(-3px) rotate(-7deg)}46%,56%{transform:translateY(-2px) rotate(5deg)}74%{transform:translateY(3px) scale(1.06,.88)}78%{transform:translateY(-23px) rotate(-6deg) scale(.96,1.05)}82%{transform:translateY(3px) rotate(2deg) scale(1.1,.87)}86%{transform:translateY(-3px) scale(.98,1.03)}}
@keyframes em-frog-glass-landing{0%{transform:scale(.82,1.15) rotate(-9deg)}12%{transform:scale(1.24,.78) rotate(4deg)}25%{transform:scale(.94,1.08) rotate(-3deg)}39%{transform:scale(1.05,.96) rotate(2deg)}55%{transform:translateY(0) rotate(0)}78%{transform:translateY(10px) rotate(4deg)}90%{transform:translateY(5px) rotate(-3deg)}100%{transform:translateY(7px) rotate(0)}}
@keyframes em-frog-wave-body{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg) translateY(-3px)}}
@media(max-width:540px){.em-frog-launcher{--bee-size:96px}.em-bee-panel,.em-bee-notice{bottom:max(168px,calc(env(safe-area-inset-bottom) + 156px))}}
@media(prefers-reduced-motion:reduce){.em-frog-launcher .em-frog-sprite{animation:none!important;transform:none!important}.em-frog-launcher .em-frog-frame{animation:none!important;opacity:0!important}.em-frog-launcher .em-frog-idle{opacity:1!important}.em-frog-tongue{display:none!important}}
@media print{.em-frog-launcher,.em-frog-tongue,.em-bee-panel,.em-bee-notice{display:none!important}}
/* One consistent floating character: no card or changing hit area. */
.em-frog-launcher{width:var(--bee-size);height:var(--bee-size);filter:drop-shadow(0 2px 3px #26311d20)}
.em-frog-launcher .em-bee-button{display:block;width:100%;height:100%;padding:0;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0;min-height:0;transform:none!important}
.em-frog-launcher .em-frog-sprite{width:var(--bee-size);height:var(--bee-size)}
.em-frog-launcher .em-bee-label{display:none}
.em-frog-launcher.is-docked:not(.is-still) .em-frog-sprite{animation:em-celeste-breathe 7s ease-in-out infinite}
.em-frog-launcher:is(.is-flying,.is-glass,.is-returning) .em-bee-button{pointer-events:auto;cursor:default}
.em-frog-launcher .em-bee-button:focus-visible{outline:2px solid var(--action,#48523a);outline-offset:3px;border-radius:50%}
.em-bee-panel{bottom:96px;border-radius:10px;max-height:calc(100dvh - 116px)}.em-bee-shortcuts a,.em-bee-advisor,.em-bee-notice-action{border-radius:5px}.em-bee-notice{bottom:96px;border-radius:10px}.em-bee-quick-actions{display:none}.em-bee-promotion{background:var(--surface,#edf0e3);color:var(--ink,#34402d);border-color:var(--line,#ccd3bc)}
@keyframes em-celeste-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@media(max-width:540px){.em-bee-panel,.em-bee-notice{bottom:82px}}
@media(prefers-reduced-motion:reduce){.em-frog-launcher .em-frog-sprite{animation:none!important}}
