html.iw-storefront-loading::before {
    position: fixed;
    z-index: 2147483646;
    inset: 0;
    content: "";
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(8px);
    pointer-events: none;
}

.iw-storefront-loading-card {
    position: fixed;
    z-index: 2147483647;
    top: 50%;
    left: 50%;
    width: min(330px, calc(100vw - 40px));
    padding: 28px 30px 24px;
    display: grid;
    justify-items: center;
    gap: 10px;
    overflow: hidden;
    border: 1px solid #eee9e4;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 28px 75px rgba(23, 32, 43, .13);
    color: #1b2834;
    font-family: inherit;
    text-align: center;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.iw-storefront-loading-emblem {
    width: 65px;
    height: 65px;
    margin-bottom: 9px;
    border: 4px solid color-mix(in srgb, var(--iw-primary, #d90a0a) 18%, #fff);
    border-top-color: var(--iw-primary, #d90a0a);
    border-right-color: color-mix(in srgb, var(--iw-primary, #d90a0a) 65%, #fff);
    border-radius: 50%;
    background: radial-gradient(circle, color-mix(in srgb, var(--iw-primary, #d90a0a) 11%, #fff) 0 37%, transparent 38%);
    animation: iw-storefront-spin .95s cubic-bezier(.5, .15, .45, .85) infinite;
}

.iw-storefront-loading-card strong { font-size: 17px; font-weight: 800; line-height: 1.6; }
.iw-storefront-loading-card small { color: #7d8994; font-size: 12px; line-height: 1.7; }
.iw-storefront-loading-progress { width: 100%; height: 4px; margin-top: 10px; overflow: hidden; border-radius: 99px; background: #f1f3f5; }
.iw-storefront-loading-progress::after { display: block; width: 40%; height: 100%; border-radius: inherit; background: var(--iw-primary, #d90a0a); content: ""; animation: iw-storefront-progress 1.4s ease-in-out infinite alternate; }

@keyframes iw-storefront-spin { to { transform: rotate(360deg); } }
@keyframes iw-storefront-progress { from { transform: translateX(-100%); } to { transform: translateX(250%); } }

@media (prefers-reduced-motion: reduce) {
    html.iw-storefront-loading::before,
    .iw-storefront-loading-card { display: none; }
}
