/* Palette — hardcoded equivalents of the popup's CSS vars (shadow DOM cannot inherit :root variables from the host page). */ .peach-passkey-toast { position: fixed; top: 16px; right: 16px; z-index: 2147483647; width: 260px; background: #0C0A06; border: 0.5px solid rgba(240, 232, 216, 0.07); border-radius: 14px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.4), 0 12px 32px rgba(0, 0, 0, 0.55), 0 0 0 0.5px rgba(0, 0, 0, 0.6); overflow: hidden; /* Initial state — hidden before animation */ opacity: 0; transform: translateY(-12px) scale(0.96); pointer-events: none; /* Font reset — page styles must not bleed in */ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 14px; line-height: 1.4; -webkit-font-smoothing: antialiased; box-sizing: border-box; } .peach-passkey-toast * { box-sizing: border-box; margin: 0; padding: 0; } .peach-passkey-toast.is-visible { animation: peach-passkey-in 280ms cubic-bezier(0, 0, 0, 1) forwards; pointer-events: auto; } .peach-passkey-toast.is-exiting { animation: peach-passkey-out 200ms cubic-bezier(0.3, 0, 1, 1) forwards; pointer-events: none; } @keyframes peach-passkey-in { from { opacity: 0; transform: translateY(-12px) scale(0.96); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes peach-passkey-out { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(-12px) scale(0.96); } } /* Body — centered column */ .peach-passkey-toast-body { display: flex; flex-direction: column; align-items: center; padding: 16px 16px 14px; gap: 8px; text-align: center; } /* Headline */ .peach-passkey-toast-headline { font-family: 'Cormorant Garamond', 'Georgia', 'Times New Roman', serif; font-style: italic; font-size: 18px; font-weight: 300; color: #F0E8D8; line-height: 1.1; margin: 1px 0; } /* User pill */ .peach-passkey-toast-user { font-family: 'IBM Plex Mono', 'SFMono-Regular', Menlo, monospace; font-size: 0.6875rem; color: rgba(240, 232, 216, 0.50); background: #1A1710; border: 1px solid rgba(240, 232, 216, 0.07); border-radius: 4px; padding: 3px 8px; } /* Countdown bar */ .peach-passkey-toast-countdown { width: 100%; height: 2px; background: rgba(240, 232, 216, 0.06); border-radius: 1px; overflow: hidden; margin-top: 2px; } .peach-passkey-toast-countdown-bar { height: 100%; background: var(--peach-accent, #F49C70); border-radius: 1px; transform-origin: left; animation: peach-passkey-countdown linear forwards; /* animation-duration set inline */ } @keyframes peach-passkey-countdown { from { width: 100%; } to { width: 0%; } } /* Actions */ .peach-passkey-toast-actions { display: flex; gap: 8px; width: 100%; } .peach-passkey-toast-btn { flex: 1; min-height: 32px; padding: 6px 9px; border-radius: 8px; border: none; font-size: 0.6875rem; font-weight: 500; cursor: pointer; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; letter-spacing: -0.01em; transition: filter 120ms ease, opacity 120ms ease, transform 120ms ease; } .peach-passkey-toast-btn:focus { outline: none; } .peach-passkey-toast-btn:focus-visible { outline: none; box-shadow: 0 0 0 2px #0C0A06, 0 0 0 4px color-mix(in srgb, var(--peach-accent, #F49C70) 50%, transparent); } .peach-passkey-toast-btn:active { opacity: 0.75; transform: scale(0.97); } .peach-passkey-toast-btn--deny { background: transparent; color: rgba(240, 232, 216, 0.50); border: 1px solid rgba(240, 232, 216, 0.07); } .peach-passkey-toast-btn--deny:hover { color: rgba(240, 232, 216, 0.80); border-color: rgba(240, 232, 216, 0.12); } .peach-passkey-toast-btn--signin { background: var(--peach-accent, #F49C70); color: rgba(0, 0, 0, 0.92); font-weight: 500; box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset, 0 3px 16px color-mix(in srgb, var(--peach-accent, #F49C70) 16%, transparent); } .peach-passkey-toast-btn--signin:hover { filter: brightness(1.10) saturate(1.05); }