/* A quiet silver pointer accent; the operating system cursor stays intact. */
.msg-cursor,
.msg-cursor::before,
.msg-cursor::after,
.msg-atmosphere,
.msg-atmosphere *{pointer-events:none!important}
.msg-cursor{position:fixed;left:0;top:0;width:0;height:0;z-index:120;opacity:0;transition:opacity .18s;will-change:transform}
.msg-cursor.is-visible{opacity:1}
.msg-cursor::before,.msg-cursor::after{content:"";position:absolute;left:0;top:0;box-sizing:border-box;border-radius:50%;transform:translate(-50%,-50%)}
.msg-cursor::before{width:26px;height:26px;border:1.3px solid #e0e7e9db;background:radial-gradient(circle,#eef5f5cc 0 1.25px,transparent 1.9px);box-shadow:0 0 0 1px #14202670,0 1px 8px #0710144d;transition:width .2s,height .2s,border-color .2s}
.msg-cursor.is-interactive::before{width:35px;height:35px;border-color:#f3f8f8;box-shadow:0 0 0 1px #14202680,0 1px 12px #c8dde024}
.msg-cursor::after{width:26px;height:26px;border:1px solid #dcebed;opacity:0}
.msg-cursor.is-clicking::after{animation:msg-pointer-ripple .55s ease-out both}
@keyframes msg-pointer-ripple{0%{opacity:.65;transform:translate(-50%,-50%) scale(.8)}100%{opacity:0;transform:translate(-50%,-50%) scale(2.1)}}

/* At most one small mist patch and one drop, confined to the outer edges. */
.msg-atmosphere{position:fixed;inset:0;overflow:hidden;z-index:75;contain:strict}
.msg-atmosphere-mist,.msg-atmosphere-drop{position:absolute;opacity:0;animation-duration:var(--effect-duration,10s);animation-timing-function:ease-in-out;animation-fill-mode:both}
.msg-atmosphere-mist{width:180px;height:260px;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,#d9e6e8 0,#c4d6da90 30%,#c4d6da20 56%,transparent 72%);filter:blur(13px);animation-name:msg-edge-mist}
.msg-atmosphere-mist.is-left{left:-135px}
.msg-atmosphere-mist.is-right{right:-135px}
@keyframes msg-edge-mist{0%,100%{opacity:0;transform:translateY(0) scale(.94)}35%,60%{opacity:.075}85%{opacity:.022}100%{transform:translateY(16px) scale(1.05)}}
.msg-atmosphere-drop{width:11px;height:16px;border-radius:62% 38% 58% 42% / 70% 64% 36% 30%;background:radial-gradient(ellipse at 31% 22%,#efffff80 0,transparent 25%),linear-gradient(135deg,#e6f7ff0a,#c0dce517 50%,#e5f7ff08);border:1px solid #e0f4ff35;box-shadow:inset -1px -1px 2px #c8e4ee33,1px 2px 3px #0d171c29;animation-name:msg-edge-drop}
.msg-atmosphere-drop.is-left{left:8px}
.msg-atmosphere-drop.is-right{right:8px}
@keyframes msg-edge-drop{0%{opacity:0;transform:translateY(0) scale(.75)}12%{opacity:.45}45%{opacity:.4;transform:translateY(calc(var(--drop-travel,360px)*.3)) scale(.9,1.13)}85%{opacity:.29}100%{opacity:0;transform:translateY(var(--drop-travel,360px)) scale(.85,1.17)}}
.atmosphere-toggle{appearance:none;border:0;background:none;color:inherit;padding:0;font:inherit;line-height:inherit;text-align:left;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#b8c4ca55;opacity:.75;min-height:24px}
.atmosphere-toggle:hover{opacity:1;text-decoration-color:currentColor}
.atmosphere-toggle:focus-visible{opacity:1;outline:2px solid #e1e4e6;outline-offset:5px}
.atmosphere-toggle:disabled{cursor:default;text-decoration:none;opacity:.55}
@media(hover:none),(pointer:coarse){.msg-cursor{display:none!important}}

@media(prefers-reduced-motion:reduce){.msg-cursor,.msg-atmosphere{display:none!important}.msg-cursor::before,.msg-cursor::after,.msg-atmosphere-mist,.msg-atmosphere-drop{animation:none!important;transition:none!important}}
