.site-announcement {
    --announcement-accent: #075de8;
    position: fixed;
    width: min(510px, calc(100vw - 32px));
    max-width: 510px;
    max-height: min(90vh, 700px);
    max-height: min(90dvh, 700px);
    margin: auto;
    padding: 0;
    overflow: auto;
    border: 1px solid #dce3e8;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 22px 62px rgba(16, 27, 37, .24);
    color: #26323c;
    color-scheme: light;
    text-align: left;
}

.site-announcement:focus { outline: none; }

.site-announcement::backdrop {
    background: rgba(19, 28, 37, .6);
    animation: site-announcement-backdrop-enter .42s ease-out both;
}
.site-announcement[data-effect="confetti"]::backdrop {
    background: rgba(19, 28, 37, .66) url("./site-announcement-confetti.svg") repeat;
    background-size: 420px 420px;
    animation: site-announcement-backdrop-enter .42s ease-out both, site-announcement-confetti 14s linear infinite;
}
.site-announcement[data-effect="snow"]::backdrop {
    background: rgba(19, 28, 37, .66) url("./site-announcement-snow.svg") repeat;
    background-size: 480px 480px;
    animation: site-announcement-backdrop-enter .42s ease-out both, site-announcement-snow 22s linear infinite;
}
.site-announcement[open] { animation: site-announcement-enter .48s ease-out both; }

@keyframes site-announcement-enter {
    from { opacity: 0; transform: translateY(18px) scale(.975); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes site-announcement-backdrop-enter {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes site-announcement-confetti {
    from { background-position: 0 -420px; }
    to { background-position: 0 0; }
}

@keyframes site-announcement-snow {
    from { background-position: 0 -480px; }
    to { background-position: 0 0; }
}

.site-announcement__body { padding: 28px 30px 26px; }
.site-announcement__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 20px; }
.site-announcement__icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 7px;
    background: var(--announcement-accent);
    color: #fff;
    font-size: 18px;
}

.site-announcement__party-popper {
    display: inline-block;
    width: 1.2em;
    height: 1.2em;
    background: url("./site-announcement-party-popper.svg") center / contain no-repeat;
    vertical-align: -.16em;
}

.site-announcement__close {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: #788590;
    font-size: 15px;
    cursor: pointer;
    outline: none;
}

.site-announcement__close:hover,
.site-announcement__close:focus-visible { background: #f1f4f6; color: #26323c; }
.site-announcement__close:focus-visible { box-shadow: 0 0 0 2px #aebcc7; }

.site-announcement h2 {
    margin: 0 0 10px;
    color: #202b34;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.24;
    letter-spacing: 0;
    overflow-wrap: anywhere;
}

.site-announcement p {
    margin: 0;
    color: #586671;
    font-size: 15px;
    line-height: 1.6;
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.site-announcement__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 16px 30px 20px;
    border-top: 1px solid #e8edf0;
}

.site-announcement__dismiss {
    min-height: 42px;
    margin-left: auto;
    padding: 10px 4px;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: #87939d;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}

.site-announcement__dismiss:hover,
.site-announcement__dismiss:focus-visible { background: #f5f7f8; color: #394751; }

.site-announcement__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 44px;
    max-width: 100%;
    padding: 10px 16px;
    border: 1px solid var(--announcement-accent);
    border-radius: 6px;
    background: var(--announcement-accent);
    color: #fff !important;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    text-decoration: none !important;
    overflow-wrap: anywhere;
    transition: filter .15s ease;
}

.site-announcement__action:hover,
.site-announcement__action:focus-visible { filter: brightness(.88); }
.site-announcement__action i { flex: 0 0 auto; }
.has-site-announcement .cookie-popup { visibility: hidden; }

@media (max-width: 600px) {
    .site-announcement__body { padding: 24px 22px 23px; }
    .site-announcement__footer { flex-direction: column; align-items: stretch; gap: 4px; padding: 14px 22px 20px; }
    .site-announcement h2 { font-size: 22px; }
    .site-announcement__dismiss { align-self: center; margin-left: 0; padding-inline: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .site-announcement__action { transition: none; }
    .site-announcement[open] { animation: none; }
    .site-announcement::backdrop { animation: none; }
    .site-announcement[data-effect="confetti"]::backdrop,
    .site-announcement[data-effect="snow"]::backdrop { background-image: none; animation: none; }
}
