.soho-ai-launcher { position: fixed; right: 24px; bottom: 24px; z-index: 2147482000; display: flex; align-items: center; gap: 12px; width: 216px; height: 64px; }
.soho-ai-launcher__button { flex: 0 0 64px; width: 64px; height: 64px; padding: 0; border: 0; background: transparent; cursor: pointer; border-radius: 50%; transition: transform .2s; }
.soho-ai-launcher__figure { position: relative; display: block; width: 100%; height: 100%; filter: drop-shadow(0 4px 6px rgba(0,0,0,.22)); animation: soho-ai-float 3.2s ease-in-out infinite; }
.soho-ai-launcher__figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.soho-ai-launcher__figure .is-open { animation: soho-ai-open-eye 5.4s step-end infinite; }
.soho-ai-launcher__figure .is-closed { opacity: 0; animation: soho-ai-closed-eye 5.4s step-end infinite; }
.soho-ai-launcher__button:hover { transform: translateY(-3px); }
.soho-ai-launcher__button:focus-visible { outline: 2px solid #c52b14; outline-offset: 3px; }
.soho-ai-overlay { position: fixed; inset: 0; z-index: 2147483000; display: flex; justify-content: center; align-items: center; background: rgba(0,0,0,.38); padding: 24px; }
.soho-ai-overlay[hidden], .soho-ai-frame[hidden], .soho-ai-fallback-close[hidden] { display: none !important; }
.soho-ai-window { position: relative; width: min(920px, 100%); height: min(760px, calc(100vh - 48px)); height: min(760px, calc(100dvh - 48px)); border-radius: 8px; overflow: hidden; background: #fff; box-shadow: 0 12px 40px rgba(0,0,0,.2); }
.soho-ai-frame { display: block; width: 100%; height: 100%; border: 0; }
.soho-ai-fallback-close { position: absolute; top: 10px; right: 10px; z-index: 2; border: 0; background: #fff; color: #666; width: 36px; height: 36px; font: 28px/36px sans-serif; cursor: pointer; }
@keyframes soho-ai-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes soho-ai-open-eye { 0%, 88%, 92%, 100% { opacity: 1; } 89%, 91% { opacity: 0; } }
@keyframes soho-ai-closed-eye { 0%, 88%, 92%, 100% { opacity: 0; } 89%, 91% { opacity: 1; } }
@media (max-width: 720px) {
  .soho-ai-launcher { right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); gap: 8px; width: 172px; height: 52px; }
  .soho-ai-launcher__button { flex-basis: 52px; width: 52px; height: 52px; }
  .soho-ai-overlay { padding: 8px; }
  .soho-ai-window { height: calc(100vh - 16px); height: calc(100dvh - 16px); }
}
@media print { .soho-ai-launcher, .soho-ai-overlay { display: none !important; } }
@media (prefers-reduced-motion: reduce) { .soho-ai-launcher__figure, .soho-ai-launcher__figure img { animation: none; } .soho-ai-launcher__figure .is-closed { opacity: 0; } }
