.sp-root,:root{--sp-gap:clamp(16px,3.5vw,26px);--sp-safe-b:calc(env(safe-area-inset-bottom, 0px) + var(--sp-gap));--sp-safe-r:calc(env(safe-area-inset-right, 0px) + var(--sp-gap));--chat-fab-size:56px;--chat-stack-gap:14px;font-family:var(--font-body)}.sp-fab{position:fixed;right:var(--sp-safe-r);bottom:var(--sp-safe-b);z-index:2147483000;display:inline-flex;align-items:center;gap:.55rem;padding:0;border:none;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.sp-fab-cup{position:relative;display:grid;place-items:center;width:var(--chat-fab-size);height:var(--chat-fab-size);border-radius:999px;background:var(--color-burgundy);border:1px solid color-mix(in srgb,var(--color-cream) 22%,transparent);box-shadow:0 6px 16px color-mix(in srgb,var(--color-burgundy) 32%,transparent),0 1px 4px rgba(31,29,29,.18);transition:transform .18s ease,box-shadow .18s ease}.sp-fab:focus-visible .sp-fab-cup,.sp-fab:hover .sp-fab-cup{transform:translateY(-2px);box-shadow:0 10px 22px color-mix(in srgb,var(--color-burgundy) 40%,transparent),0 2px 6px rgba(31,29,29,.22)}.sp-fab:focus-visible .sp-fab-cup{outline:none;box-shadow:0 0 0 3px var(--color-flame),0 8px 20px rgba(31,29,29,.16)}.sp-fab:active .sp-fab-cup{transform:translateY(0) scale(.94)}.sp-fab-glass{position:relative;display:block}.sp-fab-ring{position:absolute;inset:-6px;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--color-flame) 55%,transparent);opacity:0;pointer-events:none;animation:sp-breathe 4.8s ease-out infinite}@keyframes sp-breathe{0%{transform:scale(.86);opacity:.5}70%,to{transform:scale(1.24);opacity:0}}.sp-fab-dot{position:absolute;top:3px;right:3px;width:10px;height:10px;border-radius:999px;background:var(--color-flame);border:2px solid var(--color-cream);pointer-events:none;animation:sp-dot-pulse 2.6s ease-out infinite}@keyframes sp-dot-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--color-flame) 55%,transparent)}70%,to{box-shadow:0 0 0 6px color-mix(in srgb,var(--color-flame) 0%,transparent)}}.sp-fab-nudge{font-family:var(--font-display);font-size:.82rem;font-weight:600;color:var(--color-burgundy);background:var(--color-cream);padding:.4rem .7rem;border-radius:999px;box-shadow:0 6px 18px rgba(31,29,29,.12);white-space:nowrap;transform:translateX(6px);opacity:0;transition:transform .25s ease,opacity .25s ease;pointer-events:none}.sp-fab-nudge--show{transform:translateX(0);opacity:1}@media (max-width:400px){.sp-fab-nudge{display:none}}.sp-panel{position:fixed;right:var(--sp-safe-r);bottom:calc(var(--sp-safe-b) + 62px);z-index:2147483002;width:min(clamp(340px,25vw,460px),calc(100vw - 2 * var(--sp-gap)));max-height:min(66vh,720px);display:flex;flex-direction:column;background:var(--color-paper);border-radius:20px;overflow:hidden;box-shadow:0 24px 70px rgba(31,29,29,.28),0 4px 14px rgba(31,29,29,.14);transform-origin:bottom right;animation:sp-open .22s cubic-bezier(.22,1,.36,1)}@keyframes sp-open{0%{transform:translateY(12px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@media (max-width:520px){.sp-panel{right:0;left:0;bottom:0;width:100%;max-height:84vh;border-radius:20px 20px 0 0}}.sp-header{display:flex;align-items:center;gap:.7rem;padding:.9rem 1rem;background:var(--color-burgundy);color:var(--color-cream)}.sp-header-cup{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border-radius:999px;background:color-mix(in srgb,var(--color-cream) 14%,transparent)}.sp-header-text{min-width:0;flex:1 1 auto}.sp-title{font-family:var(--font-display);font-weight:600;font-size:1rem;line-height:1.1}.sp-subtitle{font-size:.76rem;opacity:.82;margin-top:.1rem}.sp-close{flex:0 0 auto;width:32px;height:32px;display:grid;place-items:center;border-radius:999px;border:none;background:transparent;color:var(--color-cream);cursor:pointer;font-size:1.2rem;line-height:1;transition:background .15s ease}.sp-close:focus-visible,.sp-close:hover{background:color-mix(in srgb,var(--color-cream) 18%,transparent);outline:none}.sp-body{flex:1 1 auto;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.6rem;scroll-behavior:smooth;background:radial-gradient(120% 60% at 100% 0,color-mix(in srgb,var(--color-cream) 55%,transparent),transparent 60%),var(--color-paper)}.sp-msg{max-width:82%;padding:.55rem .78rem;border-radius:14px;font-size:.9rem;line-height:1.4;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere}.sp-msg a{color:inherit;text-decoration:underline;text-underline-offset:2px}.sp-msg-host{align-self:flex-start;background:var(--color-cream);color:var(--color-charcoal);border-bottom-left-radius:4px}.sp-msg-visitor{align-self:flex-end;background:var(--color-burgundy);color:var(--color-cream);border-bottom-right-radius:4px}.sp-system{align-self:center;text-align:center;font-size:.78rem;color:color-mix(in srgb,var(--color-charcoal) 62%,transparent);padding:.2rem .6rem}.sp-typing{align-self:flex-start;display:inline-flex;gap:4px;padding:.7rem .8rem;background:var(--color-cream);border-radius:14px;border-bottom-left-radius:4px}.sp-typing span{width:6px;height:6px;border-radius:999px;background:color-mix(in srgb,var(--color-burgundy) 55%,transparent);animation:sp-blink 1.2s ease-in-out infinite both}.sp-typing span:nth-child(2){animation-delay:.18s}.sp-typing span:nth-child(3){animation-delay:.36s}@keyframes sp-blink{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-3px);opacity:1}}.sp-footer{flex:0 0 auto;display:flex;align-items:flex-end;gap:.5rem;padding:.7rem;border-top:1px solid color-mix(in srgb,var(--color-charcoal) 10%,transparent);background:var(--color-paper)}.sp-input{flex:1 1 auto;resize:none;max-height:96px;min-height:24px;border:none;outline:none;background:transparent;font-family:var(--font-body);font-size:.9rem;line-height:1.4;color:var(--color-charcoal)}.sp-input::placeholder{color:color-mix(in srgb,var(--color-charcoal) 45%,transparent)}.sp-send{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border-radius:999px;border:none;background:var(--color-flame);color:var(--color-charcoal);cursor:pointer;transition:transform .15s ease,opacity .15s ease}.sp-send:focus-visible:not(:disabled),.sp-send:hover:not(:disabled){transform:scale(1.06);outline:none}.sp-send:disabled{opacity:.45;cursor:default}.sp-footnote{text-align:center;font-size:.68rem;color:color-mix(in srgb,var(--color-charcoal) 48%,transparent);padding:0 .7rem .55rem;background:var(--color-paper)}@media (prefers-reduced-motion:reduce){.sp-fab-cup,.sp-fab-dot,.sp-fab-nudge,.sp-fab-ring,.sp-panel,.sp-send,.sp-typing span{animation:none!important;transition:none!important}}