.mph-offer {
    --mph-ink: #553044;
    --mph-violet: #8b1e5a;
    --mph-purple: #8b1e5a;
    --mph-coral: #ff5f6d;
    --mph-gold: #ffcb55;
    display: contents;
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.mph-offer__trigger {
    position: absolute;
    right: 12%;
    bottom: 18px;
    width: 164px;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    padding: 22px;
    color: #fff;
    cursor: pointer;
    background:
        radial-gradient(circle at 30% 22%, rgba(255, 255, 255, .34), transparent 28%),
        linear-gradient(145deg, var(--mph-coral) 0%, var(--mph-purple) 48%, #8b1e5a 100%);
    box-shadow: 0 24px 55px rgba(104,19,63, .26), inset 0 1px 1px rgba(255, 255, 255, .5);
    transition: transform .28s ease, box-shadow .28s ease;
    font: inherit;
    z-index: 4;
}

.mph-offer__trigger::before,
.mph-offer__trigger::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.mph-offer__trigger::before {
    inset: -13px;
    border: 1px dashed rgba(139,30,90, .58);
    animation: mph-orbit 15s linear infinite;
}

.mph-offer__trigger::after {
    inset: -5px;
    border: 2px solid rgba(255, 255, 255, .7);
    box-shadow: 0 0 0 1px rgba(139,30,90, .12);
}

.mph-offer__trigger:hover {
    transform: translateY(-7px) rotate(-1deg);
    box-shadow: 0 32px 70px rgba(104,19,63, .34), inset 0 1px 1px rgba(255, 255, 255, .5);
}

.mph-offer__trigger:focus-visible,
.mph-offer__close:focus-visible,
.mph-offer__cta:focus-visible {
    outline: 4px solid rgba(255, 203, 85, .72);
    outline-offset: 5px;
}

.mph-offer__trigger.is-waiting {
    animation: mph-heartbeat 1.05s ease-in-out infinite;
}

.mph-offer__sparkle {
    position: absolute;
    right: 20px;
    top: 22px;
    width: 22px;
    height: 22px;
    color: var(--mph-gold);
    filter: drop-shadow(0 3px 8px rgba(0, 0, 0, .16));
    animation: mph-twinkle 1.8s ease-in-out infinite;
}

.mph-offer__icon {
    display: block;
    width: 34px;
    height: 34px;
    margin: 0 auto 8px;
}

.mph-offer__eyebrow,
.mph-offer__title,
.mph-offer__hint {
    display: block;
    text-align: center;
}

.mph-offer__eyebrow {
    margin-bottom: 3px;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    opacity: .84;
}

.mph-offer__title {
    font-size: 1.1rem;
    line-height: 1.1;
    font-weight: 850;
}

.mph-offer__hint {
    margin-top: 8px;
    font-size: .72rem;
    font-weight: 650;
    opacity: .8;
}

.mph-offer__dialog[hidden] {
    display: none;
}

.mph-offer__dialog {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(35,25,33, .58);
    backdrop-filter: blur(8px);
    animation: mph-fade-in .28s ease both;
}

.mph-offer__card {
    position: relative;
    width: min(100%, 470px);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 28px;
    padding: 38px 34px 32px;
    text-align: center;
    color: var(--mph-ink);
    background:
        radial-gradient(circle at 88% 10%, rgba(255, 203, 85, .24), transparent 25%),
        radial-gradient(circle at 10% 90%, rgba(193,92,138, .16), transparent 30%),
        #fff;
    box-shadow: 0 36px 100px rgba(35,25,33, .34);
    animation: mph-card-in .58s cubic-bezier(.18, .89, .32, 1.28) both;
}

.mph-offer__badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 16px;
    border-radius: 999px;
    padding: 8px 13px;
    color: #8b1e5a;
    background: #fff8fa;
    font-size: .75rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.mph-offer__card h2 {
    margin: 0;
    font-size: clamp(2rem, 8vw, 3.25rem);
    line-height: .98;
    letter-spacing: -.045em;
}

.mph-offer__card h2 span {
    color: var(--mph-violet);
}

.mph-offer__card p {
    max-width: 360px;
    margin: 17px auto 0;
    color: #756b72;
    font-size: 1rem;
    line-height: 1.65;
}

.mph-offer__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    margin-top: 23px;
    border-radius: 15px;
    padding: 0 25px;
    color: #fff;
    background: linear-gradient(135deg, var(--mph-coral), var(--mph-violet));
    box-shadow: 0 14px 30px rgba(139,30,90, .24);
    text-decoration: none;
    font-weight: 800;
    transition: transform .2s ease, box-shadow .2s ease;
}

.mph-offer__cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 19px 38px rgba(139,30,90, .31);
}

.mph-offer__terms {
    display: block;
    margin-top: 13px;
    color: #9b8f98;
    font-size: .75rem;
    line-height: 1.45;
}

.mph-offer__close {
    position: absolute;
    top: 15px;
    right: 15px;
    width: 38px;
    height: 38px;
    border: 1px solid #fff8fa;
    border-radius: 50%;
    color: #756b72;
    background: rgba(255, 255, 255, .88);
    cursor: pointer;
    font-size: 1.35rem;
    line-height: 1;
}

.mph-offer__confetti {
    position: fixed;
    inset: 0;
    z-index: 10000;
    overflow: hidden;
    pointer-events: none;
}

.mph-offer__petal {
    position: absolute;
    left: var(--x);
    top: -30px;
    width: var(--w);
    height: calc(var(--w) * 1.6);
    border-radius: 80% 10% 80% 20%;
    background: var(--color);
    box-shadow: 0 2px 4px rgba(56,42,36, .12);
    transform: rotate(var(--r));
    animation: mph-petal-fall var(--duration) var(--delay) cubic-bezier(.2, .6, .4, 1) forwards;
}

html.mph-page-nudge body {
    animation: mph-page-nudge .46s ease-in-out both;
}

@keyframes mph-orbit { to { transform: rotate(360deg); } }
@keyframes mph-twinkle { 50% { transform: scale(.72) rotate(20deg); opacity: .62; } }
@keyframes mph-heartbeat { 50% { transform: scale(1.035); } }
@keyframes mph-fade-in { from { opacity: 0; } }
@keyframes mph-card-in { from { opacity: 0; transform: translateY(24px) scale(.91); } }
@keyframes mph-page-nudge {
    0%, 100% { transform: translateX(0); }
    22% { transform: translateX(-3px); }
    44% { transform: translateX(3px); }
    66% { transform: translateX(-2px); }
    82% { transform: translateX(2px); }
}
@keyframes mph-petal-fall {
    0% { opacity: 0; transform: translate3d(0, -20px, 0) rotate(var(--r)); }
    10% { opacity: 1; }
    100% { opacity: 0; transform: translate3d(var(--drift), 105vh, 0) rotate(calc(var(--r) + 540deg)); }
}

@media (max-width: 720px) {
    .mph-offer__trigger {
        position: relative;
        right: auto;
        bottom: auto;
        grid-column: 1 / -1;
        justify-self: center;
        width: 158px;
        margin: 8px auto 2px;
    }
    .mph-offer__card { padding: 34px 22px 28px; border-radius: 23px; }
}

@media (prefers-reduced-motion: reduce) {
    .mph-offer *,
    .mph-offer *::before,
    .mph-offer *::after,
    html.mph-page-nudge body {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
    }
}
