:root{--tg-out-bg:#dce7fb;--tg-in-bg:#fff}.dark{--tg-out-bg:#23375f;--tg-in-bg:#1e293b}.tg-bubble{position:relative}@media (pointer:coarse){.tg-bubble{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}.tg-tail-out:after{content:"";background:var(--tg-out-bg);width:11px;height:16px;clip-path:path("M0 0 C0 7 1 13 11 16 C5 15 1 12 0 8 Z");pointer-events:none;position:absolute;bottom:0;right:-7px}.tg-tail-in:after{content:"";background:var(--tg-in-bg);width:11px;height:16px;clip-path:path("M11 0 C11 7 10 13 0 16 C6 15 10 12 11 8 Z");pointer-events:none;position:absolute;bottom:0;left:-7px}.tg-send-btn{background:var(--glass-accent);color:#fff}.tg-send-btn:hover{background:var(--glass-accent-dim)}@keyframes tgTypingDot{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.tg-typing-dot{background:currentColor;border-radius:9999px;width:4px;height:4px;animation:1.2s ease-in-out infinite tgTypingDot;display:inline-block}.tg-typing-dot:nth-child(2){animation-delay:.15s}.tg-typing-dot:nth-child(3){animation-delay:.3s}@keyframes tgSendPop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.tg-send-pop{animation:.15s ease-out tgSendPop}.tg-swipe-reply-hint{background:var(--glass-accent);color:#fff;pointer-events:none;border-radius:9999px;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.tg-msg-content{display:flow-root}.tg-meta-spacer{vertical-align:baseline;pointer-events:none;height:1px;display:inline-block}.tg-meta-float{white-space:nowrap;align-items:center;gap:4px;line-height:1;display:inline-flex;position:absolute;bottom:7px;right:12px}.tg-meta-overlay{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;background:#0000006b;border-radius:9999px;align-items:center;gap:4px;padding:2px 7px;display:inline-flex;position:absolute;bottom:8px;right:8px}.tg-meta-overlay,.tg-meta-overlay *{color:#fff}@keyframes tgBubbleIn{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:none}}.tg-bubble-in{animation:.22s cubic-bezier(.22,1,.36,1) tgBubbleIn}@keyframes tgReactionPop{0%{opacity:0;transform:scale(.2)}55%{opacity:1;transform:scale(1.25)}to{transform:scale(1)}}.tg-reaction-pop{animation:.34s cubic-bezier(.34,1.56,.64,1) tgReactionPop}@keyframes tgHeartBurst{0%{opacity:0;transform:scale(.3)}30%{opacity:1;transform:scale(1.35)}to{opacity:0;transform:scale(1.1)translateY(-26px)}}.tg-heart-burst{pointer-events:none;z-index:5;margin:-18px 0 0 -18px;font-size:34px;line-height:1;animation:.7s ease-out forwards tgHeartBurst;position:absolute;top:50%;left:50%}@keyframes tgCtxBackdropIn{0%{opacity:0}to{opacity:1}}.tg-ctx-backdrop{-webkit-backdrop-filter:blur(14px)saturate(120%);backdrop-filter:blur(14px)saturate(120%);background:#00000047;animation:.18s ease-out tgCtxBackdropIn}@keyframes tgCtxRaise{0%{transform:scale(.94)}to{transform:scale(1)}}.tg-ctx-raised{transform-origin:var(--tg-ctx-origin,center);animation:.2s cubic-bezier(.22,1,.36,1) tgCtxRaise}@keyframes tgCtxMenuIn{0%{opacity:0;transform:scale(.86)translateY(-6px)}to{opacity:1;transform:none}}.tg-ctx-menu{transform-origin:var(--tg-ctx-menu-origin,top center);-webkit-backdrop-filter:blur(24px)saturate(180%);backdrop-filter:blur(24px)saturate(180%);background:#ffffffd1;border-radius:14px;animation:.2s cubic-bezier(.22,1,.36,1) tgCtxMenuIn;overflow:hidden;box-shadow:0 12px 40px #00000038}.dark .tg-ctx-menu{background:#1c212cdb}.tg-ctx-reactions{-webkit-backdrop-filter:blur(24px)saturate(180%);backdrop-filter:blur(24px)saturate(180%);background:#ffffffd1;border-radius:9999px;animation:.22s cubic-bezier(.22,1,.36,1) tgCtxMenuIn;box-shadow:0 8px 28px #0003}.dark .tg-ctx-reactions{background:#1c212cdb}@keyframes tgCtxEmojiIn{0%{opacity:0;transform:scale(.3)translateY(8px)}to{opacity:1;transform:none}}.tg-ctx-emoji{animation:.26s cubic-bezier(.34,1.56,.64,1) backwards tgCtxEmojiIn}.tg-ptr-spinner{transition:opacity .15s ease-out}@media (prefers-reduced-motion:reduce){.tg-bubble-in,.tg-reaction-pop,.tg-heart-burst,.tg-ctx-backdrop,.tg-ctx-raised,.tg-ctx-menu,.tg-ctx-reactions,.tg-ctx-emoji{animation:none}}@keyframes msgJumpFlash{0%{background-color:#0000}20%{background-color:var(--glass-accent-faint)}to{background-color:#0000}}.msg-jump-flash{animation:1.1s ease-out msgJumpFlash}