.notification-deck{z-index:75;left:16px;bottom:max(16px, env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;gap:8px;width:min(384px,100vw - 32px);display:flex;position:fixed}.notification-card{border-radius:var(--avatar-radius);background:var(--pop);box-shadow:0 12px 32px -8px var(--bg), 0 0 0 1px var(--ctl-hi);pointer-events:auto;position:relative;overflow:hidden}.notification-open.contact-entry{border-radius:var(--avatar-radius);align-items:start;min-height:104px;padding:16px;transition:background .16s}.notification-open.contact-entry:hover,.notification-open.contact-entry:focus-visible{background:var(--ctl)}.notification-card .contact-preview{-webkit-line-clamp:2;white-space:normal;overflow-wrap:anywhere;color:var(--ink2);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.notification-card .contact-time{color:var(--ink3);margin:0}.notification-card .contact-side{gap:6px;min-width:39px}.notification-card .contact-copy{justify-content:flex-start}.notification-close.btn{opacity:0;pointer-events:none;transition:opacity .16s,background .16s;position:absolute;bottom:8px;right:12px}.notification-card:hover .notification-close,.notification-card:focus-within .notification-close{opacity:1;pointer-events:auto}.notification-overflow.btn{pointer-events:auto;background:var(--pop);align-self:flex-start}.notification-card .unread{min-width:22px;height:22px}.notification-card:has(.notification-close:hover) .notification-open{background:var(--ctl)}@media (width<=1359px){.notification-deck{top:var(--notification-top,calc(84px + env(safe-area-inset-top)));left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));width:auto;bottom:auto}.notification-open.contact-entry{min-height:116px;padding:12px}.notification-card .contact-preview{font-size:16px;line-height:1.5}.notification-card .contact-side{padding-bottom:44px}.notification-close.btn{opacity:1;pointer-events:auto;bottom:4px;right:8px}}@media (prefers-reduced-motion:reduce){.notification-open.contact-entry,.notification-close.btn{transition:none}}
