/* Homepage announcement popup. */
body.sf-popup-open { overflow: hidden; }
.sf-popup[hidden] { display: none; }
.sf-popup { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 22px; opacity: 0; visibility: hidden; transition: opacity .22s ease, visibility .22s ease; }
.sf-popup.is-visible { opacity: 1; visibility: visible; }
.sf-popup-backdrop { position: absolute; inset: 0; border: 0; background: rgba(5, 8, 18, .68); backdrop-filter: blur(8px); cursor: pointer; }
.sf-popup-dialog { position: relative; z-index: 1; width: min(470px, 100%); max-height: min(800px, calc(100dvh - 44px)); overflow: auto; border: 1px solid color-mix(in srgb, var(--border) 74%, var(--main) 26%); border-radius: 26px; background: color-mix(in srgb, var(--surface) 94%, var(--background)); box-shadow: 0 30px 90px rgba(0,0,0,.35); transform: translateY(16px) scale(.97); transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.sf-popup.is-visible .sf-popup-dialog { transform: translateY(0) scale(1); }
.sf-popup-close { position: absolute; top: 12px; right: 12px; z-index: 2; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; color: #fff; background: rgba(0,0,0,.42); font-size: 25px; line-height: 1; cursor: pointer; transition: transform .18s ease, background .18s ease; }
.sf-popup-close:hover { transform: rotate(90deg); background: rgba(0,0,0,.68); }
.sf-popup-image-link { display: block; }
.sf-popup-image { display: block; width: 100%; max-height: min(58dvh, 520px); object-fit: contain; background: color-mix(in srgb, var(--background) 82%, var(--main) 18%); }
.sf-popup-content { padding: 18px 20px 20px; }
.sf-popup-content h2 { margin: 0; color: var(--font); font-size: clamp(18px, 3vw, 23px); font-weight: 650; }
.sf-popup-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; }
.sf-popup-action { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 10px 15px; border: 1px solid transparent; border-radius: 13px; text-decoration: none; font: inherit; font-size: 13px; cursor: pointer; transition: transform .18s ease, filter .18s ease, background .18s ease; }
.sf-popup-action:hover { transform: translateY(-2px); filter: brightness(1.06); }
.sf-popup-action--primary { color: var(--on-primary); background: linear-gradient(135deg, var(--main), var(--sub)); }
.sf-popup-action--muted { color: var(--font); border-color: var(--border); background: color-mix(in srgb, var(--surface) 78%, var(--font) 6%); }
@media (max-width: 520px) {
    .sf-popup { padding: 14px; }
    .sf-popup-dialog { border-radius: 21px; max-height: calc(100dvh - 28px); }
    .sf-popup-image { max-height: 58dvh; }
    .sf-popup-actions { display: grid; }
    .sf-popup-action { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .sf-popup, .sf-popup-dialog, .sf-popup-close, .sf-popup-action { transition: none; }
}
