/* AeonBridge floating Sphinx intake. Initial state is a tiny static WebP;
   the single 3D viewer exists only after explicit user interaction. */
.ab-mascot-intake{position:fixed;right:clamp(14px,2vw,28px);bottom:clamp(14px,2vw,28px);z-index:90;font-family:var(--font-sans,system-ui,sans-serif)}
.ab-mascot-launcher{position:relative;width:112px;height:112px;padding:0;border:1px solid color-mix(in srgb,var(--color-border,#c9c9c5) 70%,transparent);border-radius:50%;background:color-mix(in srgb,var(--color-surface,#fff) 88%,transparent);box-shadow:0 20px 60px rgba(0,0,0,.16);backdrop-filter:blur(18px);cursor:pointer;isolation:isolate;transition:transform .25s ease,box-shadow .25s ease;overflow:visible}
.ab-mascot-launcher:hover,.ab-mascot-launcher:focus-visible{transform:translateY(-4px) scale(1.02);box-shadow:0 24px 72px rgba(0,0,0,.22);outline:none}
.ab-mascot-static,.ab-mascot-viewer{display:block;width:100%;height:100%;border-radius:50%;background:transparent}
.ab-mascot-static{object-fit:cover;object-position:center;transition:opacity .24s ease}
.ab-mascot-viewer{position:absolute;inset:0;opacity:0;pointer-events:none;--poster-color:transparent;transition:opacity .28s ease}
.ab-mascot-orbit{position:absolute;inset:-7px;border:1px solid color-mix(in srgb,var(--color-accent,#7f5af0) 44%,transparent);border-radius:50%;animation:ab-orbit 8s linear infinite;z-index:-1}
.ab-mascot-orbit:after{content:"";position:absolute;top:-3px;left:50%;width:6px;height:6px;border-radius:50%;background:var(--color-accent,#7f5af0);box-shadow:0 0 18px currentColor}
.ab-mascot-launch-label{position:absolute;right:90px;bottom:3px;width:max-content;max-width:220px;padding:8px 11px;border:1px solid var(--color-border,#d7d7d2);border-radius:999px;background:var(--color-surface,#fff);color:var(--color-text,#161616);font-size:12px;font-weight:650;box-shadow:0 8px 24px rgba(0,0,0,.1);opacity:0;transform:translateX(8px);pointer-events:none;transition:.2s ease}
.ab-mascot-launcher:hover .ab-mascot-launch-label,.ab-mascot-launcher:focus-visible .ab-mascot-launch-label{opacity:1;transform:none}
.ab-mascot-panel{position:absolute;right:0;bottom:128px;width:min(560px,calc(100vw - 28px));max-height:min(760px,calc(100vh - 160px));overflow:auto;border:1px solid var(--color-border,#d7d7d2);border-radius:22px;background:color-mix(in srgb,var(--color-surface,#fff) 96%,transparent);color:var(--color-text,#161616);box-shadow:0 26px 90px rgba(0,0,0,.24);backdrop-filter:blur(24px);overscroll-behavior:contain}
.ab-mascot-head{display:grid;grid-template-columns:84px 1fr auto;gap:14px;align-items:center;padding:20px 20px 16px;border-bottom:1px solid var(--color-border,#ddd)}
.ab-mascot-head h2{font-size:clamp(20px,2.7vw,28px);line-height:1.1;margin:5px 0 7px}
.ab-mascot-head p{font-size:13px;line-height:1.45;color:var(--color-text-muted,#656565);margin:0}
.ab-mascot-mini{position:relative;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 50% 55%,color-mix(in srgb,var(--color-accent,#7f5af0) 16%,transparent),transparent 65%);overflow:hidden;isolation:isolate}
.ab-mascot-mini[data-loading="true"]:after{content:"";position:absolute;inset:4px;border:1px solid transparent;border-top-color:color-mix(in srgb,var(--color-accent,#7f5af0) 70%,transparent);border-radius:50%;animation:ab-orbit 1.1s linear infinite;pointer-events:none}
.ab-mascot-mini[data-ready="true"] .ab-mascot-viewer{opacity:1}
.ab-mascot-mini[data-ready="true"] .ab-mascot-static{opacity:0}
.ab-mascot-close{align-self:start;border:0;background:transparent;color:inherit;font-size:28px;line-height:1;padding:2px 5px;cursor:pointer}
.ab-mascot-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:14px 20px 0}
.ab-mascot-progress span{padding:8px 4px;border-bottom:2px solid var(--color-border,#ddd);font:600 10px/1.2 var(--font-mono,ui-monospace,monospace);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted,#777)}
.ab-mascot-progress span.active{color:var(--color-text,#111);border-color:var(--color-accent,#7f5af0)}
.ab-mascot-form{padding:18px 20px 20px}
.ab-mascot-step{display:grid;gap:14px}
.ab-mascot-step label{display:grid;gap:7px;font-size:12px;font-weight:650}
.ab-mascot-step input,.ab-mascot-step textarea,.ab-mascot-step select{width:100%;box-sizing:border-box;border:1px solid var(--color-border,#d2d2cc);border-radius:12px;background:var(--color-bg,#fff);color:var(--color-text,#111);padding:11px 12px;font:inherit;resize:vertical}
.ab-mascot-step input:focus,.ab-mascot-step textarea:focus,.ab-mascot-step select:focus{outline:2px solid color-mix(in srgb,var(--color-accent,#7f5af0) 35%,transparent);outline-offset:1px}
.ab-mascot-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ab-mascot-review{border:1px solid var(--color-border,#ddd);border-radius:12px;padding:12px;background:color-mix(in srgb,var(--color-bg-subtle,#f7f7f4) 80%,transparent)}
.ab-mascot-review strong{font-size:11px;text-transform:uppercase;letter-spacing:.07em}.ab-mascot-review pre{white-space:pre-wrap;font:500 12px/1.5 var(--font-sans,system-ui,sans-serif);margin:8px 0 0;color:var(--color-text-muted,#555)}
.ab-mascot-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;margin-top:18px}.ab-mascot-actions .btn{min-width:110px}
.ab-mascot-status{min-height:18px;margin:10px 0 0;font-size:12px;line-height:1.45}.ab-mascot-status[data-state="success"]{color:var(--color-success,#147a47)}.ab-mascot-status[data-state="error"]{color:var(--color-danger,#b42318)}
@keyframes ab-orbit{to{transform:rotate(360deg)}}
@media(max-width:640px){.ab-mascot-intake{right:12px;bottom:12px}.ab-mascot-launcher{width:82px;height:82px}.ab-mascot-panel{position:fixed;inset:12px;width:auto;max-height:none;border-radius:18px}.ab-mascot-head{grid-template-columns:66px 1fr auto;padding:16px}.ab-mascot-mini{width:66px;height:66px}.ab-mascot-form{padding:16px}.ab-mascot-grid{grid-template-columns:1fr}.ab-mascot-launch-label{display:none}}
@media(prefers-reduced-motion:reduce){.ab-mascot-orbit,.ab-mascot-mini[data-loading="true"]:after{animation:none}.ab-mascot-static,.ab-mascot-viewer{transition:none}}
