/* chat bubble (isolated; remove the chat.css link + chat.js script before </body> on a page to disable) */
.cb{position:fixed;left:14px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:140;display:flex;align-items:center;justify-content:center;gap:7px;width:52px;height:52px;padding:0;border-radius:50%;background:var(--cherry,#d7193a);color:var(--cream,#fff4e4);border:3px solid var(--ink,#2a0a12);box-shadow:3px 3px 0 var(--ink,#2a0a12);font:700 14px/1 "DM Sans",Helvetica,sans-serif;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .22s ease,opacity .22s ease}
.cb .ic{font-size:22px;line-height:1}
.cb .cbl{display:none}
.cb:hover{background:var(--pink,#ff3d8b)}
.cb:focus-visible{outline:3px solid var(--pink,#ff3d8b);outline-offset:3px}
.cb.away{transform:translateX(calc(-100% - 24px));opacity:0;pointer-events:none}
.cb[hidden]{display:none}
@media(min-width:700px){.cb{left:18px;bottom:18px;width:auto;height:48px;padding:0 18px 0 14px;border-radius:30px}.cb .ic{font-size:19px}.cb .cbl{display:inline}}
.cp{position:fixed;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:220;display:flex;flex-direction:column;height:min(560px,calc(100vh - 90px));height:min(560px,calc(100dvh - 90px));background:var(--cream,#fff4e4);color:var(--ink,#2a0a12);border:3px solid var(--ink,#2a0a12);border-radius:22px;box-shadow:5px 5px 0 var(--ink,#2a0a12);font-family:"DM Sans",Helvetica,sans-serif;overflow:hidden;opacity:0;transform:translateY(16px);transition:opacity .2s,transform .2s}
.cp.on{opacity:1;transform:none}
.cp[hidden]{display:none}
@media(min-width:700px){.cp{left:18px;right:auto;bottom:18px;width:370px;height:min(540px,calc(100vh - 110px))}}
.cp .hd{display:flex;align-items:center;gap:10px;padding:12px 12px 10px 14px;background:var(--ink,#2a0a12);color:var(--cream,#fff4e4)}
.cp .hd b{display:block;font:400 16px/1.05 "Bowlby One",Impact,sans-serif;text-transform:uppercase;letter-spacing:.02em}
.cp .hd small{display:block;font-size:11.5px;opacity:.8;margin-top:2px}
.cp .hd .x{margin-left:auto;flex:0 0 36px;width:36px;height:36px;border-radius:50%;border:2px solid var(--cream,#fff4e4);background:var(--pink,#ff3d8b);color:var(--cream,#fff4e4);font-size:15px;font-weight:700;cursor:pointer;line-height:1}
.cp .ms{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:12px 12px 6px;display:flex;flex-direction:column;gap:8px}
.cp .m{max-width:86%;padding:9px 12px;border-radius:16px;font-size:14.5px;line-height:1.38;white-space:pre-wrap;overflow-wrap:anywhere;border:2px solid var(--ink,#2a0a12)}
.cp .m.a{align-self:flex-start;background:#fff;border-bottom-left-radius:5px}
.cp .m.u{align-self:flex-end;background:var(--blush,#ffc7dc);border-bottom-right-radius:5px}
.cp .m.s{align-self:center;background:transparent;border:0;font-size:12.5px;opacity:.75;text-align:center;padding:2px 6px}
.cp .m.t{opacity:.6;font-style:italic}
.cp .ac{display:flex;flex-wrap:wrap;gap:6px;align-self:flex-start;margin:-2px 0 2px}
.cp .ac a,.cp .ac button,.cp .qs button{display:inline-flex;align-items:center;min-height:36px;padding:6px 12px;border-radius:30px;border:2px solid var(--ink,#2a0a12);background:var(--pink,#ff3d8b);color:var(--cream,#fff4e4);font:700 13px/1.1 "DM Sans",Helvetica,sans-serif;text-decoration:none;cursor:pointer}
.cp .ac button.alt,.cp .qs button{background:#fff;color:var(--ink,#2a0a12)}
.cp .qs{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 8px}
.cp form.in{display:flex;gap:8px;align-items:flex-end;padding:8px 10px 10px;border-top:2px solid var(--ink,#2a0a12);background:var(--cream2,#ffe7cf)}
.cp textarea{flex:1;min-height:44px;max-height:110px;resize:none;font:16px/1.3 "DM Sans",Helvetica,sans-serif;background:#fff;color:var(--ink,#2a0a12);border:2px solid var(--ink,#2a0a12);border-radius:14px;padding:10px 12px}
.cp .go{flex:0 0 44px;width:44px;height:44px;border-radius:50%;border:2px solid var(--ink,#2a0a12);background:var(--cherry,#d7193a);color:var(--cream,#fff4e4);font-size:18px;cursor:pointer}
.cp .go:disabled{opacity:.5}
.cp .ft{display:flex;justify-content:space-between;gap:8px;padding:0 12px 8px;background:var(--cream2,#ffe7cf);font-size:11.5px}
.cp .ft button{background:none;border:0;padding:0;font:700 11.5px "DM Sans",Helvetica,sans-serif;color:var(--cherry,#d7193a);text-decoration:underline;cursor:pointer;min-height:24px}
.cp .ld{align-self:flex-start;background:#fff;border:2px solid var(--ink,#2a0a12);border-radius:16px;padding:10px 14px;display:flex;gap:4px}
.cp .ld i{width:7px;height:7px;border-radius:50%;background:var(--ink,#2a0a12);opacity:.35;animation:cp-d 1s infinite}
.cp .ld i:nth-child(2){animation-delay:.15s}.cp .ld i:nth-child(3){animation-delay:.3s}
@keyframes cp-d{40%{opacity:1}}
.cp .lf{align-self:stretch;background:#fff;border:2px solid var(--ink,#2a0a12);border-radius:16px;padding:10px 12px;display:grid;gap:8px}
.cp .lf p{margin:0;font-size:13.5px;font-weight:700}
.cp .lf input,.cp .lf textarea{width:100%;box-sizing:border-box;font:16px "DM Sans",Helvetica,sans-serif;border:2px solid var(--ink,#2a0a12);border-radius:12px;padding:8px 10px;min-height:42px;background:var(--cream,#fff4e4);color:var(--ink,#2a0a12)}
.cp .lf textarea{min-height:60px;max-height:none}
.cp .lf .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cp .lf .er{color:var(--cherry,#d7193a);font-size:12.5px;font-weight:700}
.cp .lf .row{display:flex;gap:8px}
.cp .lf .row button{flex:1;min-height:42px;border-radius:30px;border:2px solid var(--ink,#2a0a12);font:700 14px "DM Sans",Helvetica,sans-serif;cursor:pointer;background:var(--cherry,#d7193a);color:var(--cream,#fff4e4)}
.cp .lf .row button.alt{background:#fff;color:var(--ink,#2a0a12);flex:0 0 auto;padding:0 14px}
@media print{.cb,.cp{display:none}}
@media(prefers-reduced-motion:reduce){.cb,.cp{transition:none}.cp .ld i{animation:none;opacity:.7}}
