.xp-toast-stack {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 1800;
    display: grid;
    gap: 10px;
    width: min(370px, calc(100vw - 24px));
    pointer-events: none;
}

.xp-toast {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 28px;
    gap: 11px;
    align-items: center;
    padding: 13px 12px;
    color: #f8f7ff;
    background: linear-gradient(135deg, rgba(25, 29, 56, .98), rgba(11, 22, 39, .98));
    border: 1px solid rgba(160, 127, 255, .62);
    border-radius: 14px;
    box-shadow: 0 16px 42px rgba(0, 0, 0, .42), 0 0 26px rgba(123, 92, 239, .16);
    pointer-events: auto;
    animation: xp-toast-enter .28s ease-out both;
}

.xp-toast.is-leaving {
    animation: xp-toast-leave .22s ease-in both;
}

.xp-toast__icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    color: #101a2c;
    font-size: 20px;
    font-weight: 900;
    background: linear-gradient(145deg, #ffe080, #f0ac37);
    border-radius: 50%;
    box-shadow: 0 0 18px rgba(248, 190, 65, .28);
}

.xp-toast__content {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.xp-toast__content small {
    color: #bda8ff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.xp-toast__content strong {
    overflow-wrap: anywhere;
    font-size: 14px;
    line-height: 1.3;
}

.xp-toast__reward {
    color: #ffd369;
    font-size: 13px;
    font-weight: 800;
}

.xp-toast__reward b {
    color: #79efbd;
}

.xp-toast__close {
    align-self: start;
    width: 28px;
    height: 28px;
    padding: 0;
    color: #abb4c8;
    font: 22px/1 sans-serif;
    background: transparent;
    border: 0;
    border-radius: 7px;
    cursor: pointer;
}

.xp-toast__close:hover,
.xp-toast__close:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, .08);
    outline: none;
}

@keyframes xp-toast-enter {
    from { opacity: 0; transform: translate3d(24px, -6px, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes xp-toast-leave {
    to { opacity: 0; transform: translate3d(22px, 0, 0); }
}

@media (max-width: 600px) {
    .xp-toast-stack {
        top: 12px;
        right: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .xp-toast,
    .xp-toast.is-leaving {
        animation: none;
    }
}
