.fap-root {
    position: fixed;
    left: 0;
    right: 0;
    bottom: var(--fap-bottom-offset, 24px);
    z-index: var(--fap-z-index, 50);
    --fap-safe-edge-inset: max(env(safe-area-inset-left), env(safe-area-inset-right));
    padding-left: calc(var(--fap-horizontal-padding, 16px) + var(--fap-safe-edge-inset, 0px));
    padding-right: calc(var(--fap-horizontal-padding, 16px) + var(--fap-safe-edge-inset, 0px));
    padding-inline: calc(var(--fap-horizontal-padding, 16px) + var(--fap-safe-edge-inset, 0px));
    font-family: var(--fap-font-family, inherit);
    pointer-events: none;
    box-sizing: border-box;
    --fap-button-height: var(--fap-scroll-height, 48px);
}

.fap-root,
.fap-root * {
    box-sizing: border-box;
}

.fap-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    pointer-events: none;
    width: 100%;
}

.fap-main-actions {
    display: flex;
    align-items: center;
    justify-content: var(--fap-buttons-justify-mobile, flex-start);
    gap: 8px;
    flex: 1 1 auto;
    min-width: 0;
}

.fap-order-slot {
    flex: 0 1 var(--fap-order-width-mobile, 100%);
    width: var(--fap-order-width-mobile, 100%);
    max-width: 100%;
    min-width: 0;
    display: block;
}

.fap-button {
    pointer-events: auto;
    border: 0;
    text-decoration: none;
    cursor: pointer;
    font: inherit;
}

.fap-order-btn {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: var(--fap-button-height, 48px);
    min-height: var(--fap-button-height, 48px);
    padding: 0 16px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--fap-order-bg-1, #1e2a78), var(--fap-order-bg-2, #141c4f));
    color: var(--fap-order-text-color, #ffffff);
    font-size: 14px;
    font-weight: var(--fap-font-weight, 500);
    font-style: var(--fap-font-style, normal);
    line-height: 1;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
    transform: translateZ(0);
    transition: color 0.25s ease-in-out, box-shadow 0.25s ease-in-out, transform 0.2s ease-in-out;
}

.fap-order-btn::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(90deg, var(--fap-order-hover-bg-1, #141c4f), var(--fap-order-hover-bg-2, #0f153d));
    opacity: 0;
    transition: opacity 0.25s ease-in-out;
    z-index: 0;
}

.fap-order-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background:
        radial-gradient(circle at 18% 20%, rgba(255, 255, 255, 0.32), transparent 46%),
        linear-gradient(120deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0.08) 42%, rgba(255, 255, 255, 0) 74%);
    mix-blend-mode: screen;
    opacity: 0;
    transform: translateX(-10%);
    transition: opacity 0.3s ease-in-out, transform 0.35s ease-in-out;
    z-index: 1;
}

.fap-order-btn:hover {
    color: var(--fap-order-hover-text-color, var(--fap-order-text-color, #ffffff));
    transform: translateZ(0);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.45);
}

.fap-order-btn:hover::after {
    opacity: 1;
}

.fap-order-btn:hover::before {
    opacity: 0.9;
    transform: translateX(0);
}

.fap-order-btn:active {
    transform: scale(0.97);
}

.fap-shine {
    display: none;
}

.fap-shine-enabled .fap-shine {
    display: block;
    pointer-events: none;
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 18%, rgba(255, 255, 255, 0.28) 50%, transparent 82%);
    transform: translateX(-130%);
    animation: fap-shine 2.8s linear infinite;
    z-index: 2;
}

.fap-order-btn.fap-order-effect-glow,
.fap-order-btn.fap-order-effect-glow-shine {
    animation: fap-order-glow 2.2s ease-in-out infinite;
}

.fap-order-btn.fap-order-effect-breathe {
    animation: fap-order-breathe 2.4s ease-in-out infinite;
}

.fap-order-btn.fap-order-effect-pulse-ring {
    animation: fap-order-pulse-ring 2.1s ease-out infinite;
}

.fap-order-btn.fap-order-effect-gradient-shift {
    background-size: 180% 180%;
    animation: fap-order-gradient-shift 2.8s ease-in-out infinite;
}

.fap-order-btn.fap-order-effect-neon {
    animation: fap-order-neon 2.4s steps(1, end) infinite;
}

.fap-order-btn.fap-order-effect-spotlight::before {
    opacity: 0.45;
    transform: translateX(-45%);
    animation: fap-order-spotlight 2.7s ease-in-out infinite;
}

.fap-order-btn.fap-order-effect-aurora-flow {
    background:
        linear-gradient(
            120deg,
            var(--fap-order-bg-1, #1e2a78) 0%,
            #4b64f3 32%,
            var(--fap-order-bg-2, #141c4f) 66%,
            #7d5dff 100%
        );
    background-size: 260% 260%;
    animation: fap-order-aurora-flow 3.2s ease-in-out infinite;
}

.fap-order-btn.fap-order-effect-laser-scan::after {
    background:
        linear-gradient(
            115deg,
            rgba(255, 255, 255, 0) 14%,
            rgba(255, 255, 255, 0.14) 36%,
            rgba(255, 255, 255, 0.8) 50%,
            rgba(255, 255, 255, 0.14) 64%,
            rgba(255, 255, 255, 0) 86%
        );
    opacity: 0.55;
    transform: translateX(-125%);
    animation: fap-order-laser-scan 2.35s linear infinite;
}

.fap-order-btn.fap-order-effect-magnetic-glow {
    animation: fap-order-magnetic-glow 2.9s ease-in-out infinite;
}

.fap-order-btn.fap-order-effect-liquid-wave {
    background-size: 180% 180%;
    animation: fap-order-liquid-wave 2.7s ease-in-out infinite;
}

.fap-order-btn.fap-order-effect-crystal-pulse {
    animation: fap-order-crystal-pulse 2.6s ease-in-out infinite;
}

.fap-order-btn.fap-order-effect-electric-arc {
    animation: fap-order-electric-arc 2.25s ease-in-out infinite;
}

.fap-order-btn.fap-order-effect-prism-shift {
    background-size: 220% 220%;
    animation: fap-order-prism-shift 3.1s ease-in-out infinite;
}

.fap-order-btn.fap-order-effect-meteor-sweep::after {
    background:
        linear-gradient(
            115deg,
            rgba(255, 255, 255, 0) 8%,
            rgba(255, 255, 255, 0.24) 34%,
            rgba(255, 255, 255, 0.9) 50%,
            rgba(255, 255, 255, 0.24) 66%,
            rgba(255, 255, 255, 0) 92%
        );
    opacity: 0.5;
    transform: translateX(-130%);
    animation: fap-order-meteor-sweep 2.1s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.fap-order-btn.fap-order-effect-velvet-bloom {
    animation: fap-order-velvet-bloom 2.8s ease-in-out infinite;
}

.fap-order-text,
.fap-order-icon {
    position: relative;
    z-index: 3;
}

.fap-wa-btn {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    height: var(--fap-button-height, 48px);
    min-height: var(--fap-button-height, 48px);
    padding: 0 16px;
    border-radius: 999px;
    background: var(--fap-wa-bg, #25d366);
    color: var(--fap-wa-text-color, #ffffff);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
    transition: background 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
    line-height: 1;
    white-space: nowrap;
}

.fap-wa-btn:hover {
    background: var(--fap-wa-hover-bg, #128c7e);
    color: var(--fap-wa-hover-text-color, var(--fap-wa-text-color, #ffffff));
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.34);
}

.fap-wa-label {
    font-weight: var(--fap-font-weight, 500);
    font-style: var(--fap-font-style, normal);
    white-space: nowrap;
}

.fap-custom-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: var(--fap-button-height, 48px);
    min-height: var(--fap-button-height, 48px);
    padding: 0 16px;
    border-radius: 999px;
    background: var(--fap-custom-bg, #3556d8);
    color: var(--fap-custom-text-color, #ffffff);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
    transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
    line-height: 1;
    white-space: nowrap;
}

.fap-custom-btn:hover {
    background: var(--fap-custom-hover-bg, #223a96);
    color: var(--fap-custom-hover-text-color, var(--fap-custom-text-color, #ffffff));
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.34);
}

.fap-custom-label {
    font-weight: var(--fap-font-weight, 500);
    font-style: var(--fap-font-style, normal);
    white-space: nowrap;
}

.fap-custom-icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.fap-pulse {
    position: absolute;
    top: -4px;
    right: -4px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    pointer-events: none;
}

.fap-pulse::before,
.fap-pulse::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
}

.fap-pulse::before {
    background: var(--fap-wa-pulse-color, #ffffff);
    opacity: 0.78;
    animation: fap-ping 1.55s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.fap-pulse::after {
    background: var(--fap-wa-pulse-color, #ffffff);
    opacity: 0.3;
}

.fap-pulse.fap-pulse-effect-ripple::before {
    opacity: 0.62;
    animation: fap-ping-wide 1.85s cubic-bezier(0.2, 0, 0.2, 1) infinite;
}

.fap-pulse.fap-pulse-effect-ripple::after {
    opacity: 0.35;
    animation: fap-ping-soft 1.85s cubic-bezier(0.2, 0, 0.2, 1) infinite;
}

.fap-pulse.fap-pulse-effect-double::before {
    opacity: 0.65;
    animation: fap-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.fap-pulse.fap-pulse-effect-double::after {
    opacity: 0.5;
    animation: fap-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite;
    animation-delay: 0.8s;
}

.fap-pulse.fap-pulse-effect-blink::before {
    opacity: 0.9;
    animation: fap-pulse-blink 1.05s steps(1, end) infinite;
}

.fap-pulse.fap-pulse-effect-blink::after {
    opacity: 0.25;
    animation: none;
}

.fap-pulse.fap-pulse-effect-orbit::before {
    inset: -4px;
    border: 2px solid var(--fap-wa-pulse-color, #ffffff);
    background: transparent;
    opacity: 0.7;
    animation: fap-pulse-orbit 1.8s linear infinite;
}

.fap-pulse.fap-pulse-effect-orbit::after {
    inset: 3px;
    background: var(--fap-wa-pulse-color, #ffffff);
    opacity: 0.86;
    animation: fap-pulse-core 1.8s ease-in-out infinite;
}

.fap-pulse.fap-pulse-effect-heartbeat::before {
    opacity: 0.78;
    animation: fap-pulse-heartbeat 1.2s ease-in-out infinite;
}

.fap-pulse.fap-pulse-effect-heartbeat::after {
    opacity: 0.35;
    animation: fap-pulse-heartbeat-ring 1.2s ease-out infinite;
}

.fap-pulse.fap-pulse-effect-sonar::before {
    inset: -5px;
    border: 2px solid var(--fap-wa-pulse-color, #ffffff);
    background: transparent;
    opacity: 0.74;
    animation: fap-pulse-sonar-ring 1.95s ease-out infinite;
}

.fap-pulse.fap-pulse-effect-sonar::after {
    opacity: 0.82;
    animation: fap-pulse-sonar-core 1.95s ease-in-out infinite;
}

.fap-pulse.fap-pulse-effect-comet::before {
    inset: -4px;
    background:
        conic-gradient(
            from 0deg,
            rgba(255, 255, 255, 0) 0deg,
            var(--fap-wa-pulse-color, #ffffff) 70deg,
            rgba(255, 255, 255, 0) 210deg,
            var(--fap-wa-pulse-color, #ffffff) 300deg,
            rgba(255, 255, 255, 0) 360deg
        );
    opacity: 0.86;
    animation: fap-pulse-comet-spin 1.6s linear infinite;
}

.fap-pulse.fap-pulse-effect-comet::after {
    inset: 4px;
    opacity: 0.92;
    animation: fap-pulse-comet-core 1.6s ease-in-out infinite;
}

.fap-pulse.fap-pulse-effect-sparkle::before {
    opacity: 0.95;
    animation: fap-pulse-sparkle 1.15s steps(1, end) infinite;
}

.fap-pulse.fap-pulse-effect-sparkle::after {
    opacity: 0.4;
    animation: fap-ping-soft 1.4s cubic-bezier(0.2, 0, 0.2, 1) infinite;
}

.fap-pulse.fap-pulse-effect-echo::before {
    opacity: 0.5;
    animation: fap-ping-wide 2.35s cubic-bezier(0.2, 0, 0.2, 1) infinite;
}

.fap-pulse.fap-pulse-effect-echo::after {
    opacity: 0.45;
    animation: fap-ping-wide 2.35s cubic-bezier(0.2, 0, 0.2, 1) infinite;
    animation-delay: 1.15s;
}

.fap-scroll-wrap {
    flex: 0 0 auto;
    width: 0;
    opacity: 0;
    margin-left: auto;
    overflow: hidden;
    pointer-events: none;
    transition: width 0.35s ease-in-out, opacity 0.25s ease-out;
}

.fap-scroll-wrap.fap-active {
    width: var(--fap-scroll-width, 36px);
    opacity: 1;
    margin-left: auto;
    overflow: visible;
    pointer-events: auto;
}

.fap-scroll-wrap.fap-active .fap-scroll-btn {
    animation: fap-scroll-float-up 1.6s ease-in-out infinite;
}

.fap-scroll-btn {
    width: var(--fap-scroll-width, 36px) !important;
    height: var(--fap-scroll-height, 48px) !important;
    min-width: var(--fap-scroll-width, 36px) !important;
    max-width: var(--fap-scroll-width, 36px) !important;
    min-height: var(--fap-scroll-height, 48px) !important;
    max-height: var(--fap-scroll-height, 48px) !important;
    flex: 0 0 var(--fap-scroll-width, 36px) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
    line-height: 1 !important;
    border: 0 !important;
    border-radius: 999px !important;
    -webkit-appearance: none;
    appearance: none;
    background: linear-gradient(180deg, var(--fap-scroll-bg-1, #b11226), var(--fap-scroll-bg-2, #8f0f1f));
    color: var(--fap-scroll-icon-color, #ffffff) !important;
    box-shadow: none !important;
    transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.fap-scroll-btn:hover {
    background: linear-gradient(180deg, var(--fap-scroll-hover-bg-1, #8f0f1f), var(--fap-scroll-hover-bg-2, #6f0c18));
    color: var(--fap-scroll-hover-icon-color, var(--fap-scroll-icon-color, #ffffff)) !important;
    transform: none;
}

.fap-scroll-btn:active {
    transform: scale(0.95);
}

.fap-icon {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}

.fap-order-icon {
    width: 20px;
    height: 22px;
}

.fap-wa-icon {
    width: 22px;
    height: 22px;
}

.fap-scroll-icon {
    width: 16px !important;
    height: 16px !important;
    stroke: currentColor !important;
    fill: none !important;
}

@media (max-width: 639px) {
    .fap-device-hide-mobile {
        display: none !important;
    }

    .fap-hide-text-mobile .fap-order-text,
    .fap-hide-text-mobile .fap-wa-label,
    .fap-hide-text-mobile .fap-custom-label {
        display: none;
    }

    .fap-wa-hide-mobile .fap-wa-label {
        display: none;
    }
}

@media (min-width: 640px) and (max-width: 1023px) {
    .fap-device-hide-tablet {
        display: none !important;
    }
}

@media (min-width: 640px) {
    .fap-main-actions {
        justify-content: var(--fap-buttons-justify-tablet, var(--fap-buttons-justify-mobile, flex-start));
    }

    .fap-order-slot {
        flex-basis: var(--fap-order-width-tablet, var(--fap-order-width-mobile, 100%));
        width: var(--fap-order-width-tablet, var(--fap-order-width-mobile, 100%));
    }
}

@media (min-width: 1024px) {
    .fap-device-hide-desktop {
        display: none !important;
    }

    .fap-hide-text-desktop .fap-order-text,
    .fap-hide-text-desktop .fap-wa-label,
    .fap-hide-text-desktop .fap-custom-label {
        display: none;
    }

    .fap-main-actions {
        justify-content: var(--fap-buttons-justify-desktop, var(--fap-buttons-justify-tablet, var(--fap-buttons-justify-mobile, flex-start)));
    }

    .fap-order-slot {
        flex-basis: var(--fap-order-width-desktop, var(--fap-order-width-tablet, var(--fap-order-width-mobile, 100%)));
        width: var(--fap-order-width-desktop, var(--fap-order-width-tablet, var(--fap-order-width-mobile, 100%)));
    }
}

@keyframes fap-shine {
    to {
        transform: translateX(130%);
    }
}

@keyframes fap-order-glow {
    0%,
    100% {
        box-shadow:
            0 8px 20px rgba(0, 0, 0, 0.35),
            0 0 0 0 rgba(53, 86, 216, 0.12);
    }
    50% {
        box-shadow:
            0 12px 30px rgba(0, 0, 0, 0.45),
            0 0 0 6px rgba(53, 86, 216, 0.2);
    }
}

@keyframes fap-order-breathe {
    0%,
    100% {
        filter: saturate(1) brightness(1);
    }
    50% {
        filter: saturate(1.2) brightness(1.08);
    }
}

@keyframes fap-order-pulse-ring {
    0%,
    100% {
        box-shadow:
            0 8px 20px rgba(0, 0, 0, 0.35),
            0 0 0 0 rgba(69, 116, 255, 0.18);
    }
    50% {
        box-shadow:
            0 10px 26px rgba(0, 0, 0, 0.4),
            0 0 0 7px rgba(69, 116, 255, 0.08);
    }
}

@keyframes fap-order-gradient-shift {
    0%,
    100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

@keyframes fap-order-neon {
    0%,
    100% {
        box-shadow:
            0 8px 20px rgba(0, 0, 0, 0.35),
            0 0 0 0 rgba(98, 121, 255, 0),
            0 0 12px rgba(91, 128, 255, 0.35);
    }
    35% {
        box-shadow:
            0 10px 24px rgba(0, 0, 0, 0.4),
            0 0 0 2px rgba(109, 135, 255, 0.2),
            0 0 18px rgba(109, 135, 255, 0.55);
    }
    62% {
        box-shadow:
            0 8px 20px rgba(0, 0, 0, 0.34),
            0 0 0 1px rgba(88, 121, 245, 0.12),
            0 0 10px rgba(96, 124, 240, 0.25);
    }
}

@keyframes fap-order-spotlight {
    0% {
        opacity: 0.1;
        transform: translateX(-65%);
    }
    50% {
        opacity: 0.6;
        transform: translateX(10%);
    }
    100% {
        opacity: 0.15;
        transform: translateX(70%);
    }
}

@keyframes fap-order-aurora-flow {
    0%,
    100% {
        background-position: 0% 50%;
        filter: hue-rotate(0deg) saturate(1);
    }
    50% {
        background-position: 100% 50%;
        filter: hue-rotate(14deg) saturate(1.18);
    }
}

@keyframes fap-order-laser-scan {
    0% {
        opacity: 0.35;
        transform: translateX(-125%);
    }
    15% {
        opacity: 0.62;
    }
    100% {
        opacity: 0.25;
        transform: translateX(125%);
    }
}

@keyframes fap-order-magnetic-glow {
    0%,
    100% {
        box-shadow:
            0 8px 20px rgba(0, 0, 0, 0.35),
            0 0 0 0 rgba(60, 98, 255, 0.18),
            0 0 16px rgba(61, 103, 255, 0.2);
    }
    50% {
        box-shadow:
            0 11px 28px rgba(0, 0, 0, 0.42),
            0 0 0 4px rgba(60, 98, 255, 0.12),
            0 0 24px rgba(66, 116, 255, 0.36);
    }
}

@keyframes fap-order-liquid-wave {
    0%,
    100% {
        background-position: 20% 45%;
        filter: saturate(1) brightness(1);
    }
    50% {
        background-position: 80% 55%;
        filter: saturate(1.14) brightness(1.05);
    }
}

@keyframes fap-order-crystal-pulse {
    0%,
    100% {
        filter: contrast(1) saturate(1) brightness(1);
    }
    25% {
        filter: contrast(1.08) saturate(1.2) brightness(1.04);
    }
    60% {
        filter: contrast(0.97) saturate(1.08) brightness(1.01);
    }
    85% {
        filter: contrast(1.12) saturate(1.24) brightness(1.07);
    }
}

@keyframes fap-order-electric-arc {
    0%,
    100% {
        box-shadow:
            0 9px 22px rgba(0, 0, 0, 0.36),
            0 0 0 0 rgba(92, 149, 255, 0.18),
            0 0 14px rgba(92, 149, 255, 0.2);
    }
    50% {
        box-shadow:
            0 12px 30px rgba(0, 0, 0, 0.44),
            0 0 0 5px rgba(92, 149, 255, 0.12),
            0 0 24px rgba(118, 176, 255, 0.38);
    }
}

@keyframes fap-order-prism-shift {
    0%,
    100% {
        background-position: 0% 50%;
        filter: hue-rotate(0deg) saturate(1);
    }
    50% {
        background-position: 100% 50%;
        filter: hue-rotate(22deg) saturate(1.18);
    }
}

@keyframes fap-order-meteor-sweep {
    0% {
        opacity: 0;
        transform: translateX(-130%);
    }
    20% {
        opacity: 0.66;
    }
    100% {
        opacity: 0.15;
        transform: translateX(130%);
    }
}

@keyframes fap-order-velvet-bloom {
    0%,
    100% {
        filter: saturate(1) brightness(1);
        box-shadow:
            0 9px 22px rgba(0, 0, 0, 0.36),
            0 0 0 0 rgba(99, 129, 255, 0.1);
    }
    40% {
        filter: saturate(1.2) brightness(1.07);
        box-shadow:
            0 12px 30px rgba(0, 0, 0, 0.44),
            0 0 0 6px rgba(99, 129, 255, 0.12);
    }
    75% {
        filter: saturate(1.08) brightness(1.03);
        box-shadow:
            0 10px 24px rgba(0, 0, 0, 0.39),
            0 0 0 2px rgba(99, 129, 255, 0.08);
    }
}

@keyframes fap-ping {
    75%,
    100% {
        transform: scale(1.8);
        opacity: 0;
    }
}

@keyframes fap-ping-wide {
    70%,
    100% {
        transform: scale(2.25);
        opacity: 0;
    }
}

@keyframes fap-ping-soft {
    65%,
    100% {
        transform: scale(1.55);
        opacity: 0;
    }
}

@keyframes fap-pulse-blink {
    0%,
    48%,
    100% {
        opacity: 0.95;
        transform: scale(1);
    }
    49%,
    80% {
        opacity: 0.12;
        transform: scale(0.82);
    }
}

@keyframes fap-pulse-orbit {
    0% {
        transform: rotate(0deg) scale(0.92);
    }
    50% {
        transform: rotate(180deg) scale(1.06);
    }
    100% {
        transform: rotate(360deg) scale(0.92);
    }
}

@keyframes fap-pulse-core {
    0%,
    100% {
        transform: scale(0.82);
        opacity: 0.72;
    }
    50% {
        transform: scale(1.2);
        opacity: 0.96;
    }
}

@keyframes fap-pulse-heartbeat {
    0%,
    100% {
        transform: scale(1);
    }
    20% {
        transform: scale(1.18);
    }
    40% {
        transform: scale(0.94);
    }
    60% {
        transform: scale(1.12);
    }
}

@keyframes fap-pulse-heartbeat-ring {
    0% {
        transform: scale(1);
        opacity: 0.4;
    }
    70%,
    100% {
        transform: scale(1.95);
        opacity: 0;
    }
}

@keyframes fap-pulse-sonar-ring {
    0% {
        transform: scale(0.68);
        opacity: 0.82;
    }
    72%,
    100% {
        transform: scale(2.35);
        opacity: 0;
    }
}

@keyframes fap-pulse-sonar-core {
    0%,
    100% {
        transform: scale(0.82);
        opacity: 0.8;
    }
    50% {
        transform: scale(1.18);
        opacity: 0.98;
    }
}

@keyframes fap-pulse-comet-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes fap-pulse-comet-core {
    0%,
    100% {
        transform: scale(0.82);
        opacity: 0.84;
    }
    50% {
        transform: scale(1.12);
        opacity: 1;
    }
}

@keyframes fap-pulse-sparkle {
    0%,
    30%,
    60%,
    100% {
        opacity: 0.95;
        transform: scale(1);
    }
    31%,
    45% {
        opacity: 0.2;
        transform: scale(0.78);
    }
    61%,
    75% {
        opacity: 0.34;
        transform: scale(0.72);
    }
}

@keyframes fap-scroll-float-up {
    0%,
    100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-4px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .fap-order-btn.fap-order-effect-glow,
    .fap-order-btn.fap-order-effect-breathe,
    .fap-order-btn.fap-order-effect-glow-shine,
    .fap-order-btn.fap-order-effect-pulse-ring,
    .fap-order-btn.fap-order-effect-gradient-shift,
    .fap-order-btn.fap-order-effect-neon,
    .fap-order-btn.fap-order-effect-aurora-flow,
    .fap-order-btn.fap-order-effect-laser-scan::after,
    .fap-order-btn.fap-order-effect-magnetic-glow,
    .fap-order-btn.fap-order-effect-liquid-wave,
    .fap-order-btn.fap-order-effect-crystal-pulse,
    .fap-order-btn.fap-order-effect-electric-arc,
    .fap-order-btn.fap-order-effect-prism-shift,
    .fap-order-btn.fap-order-effect-meteor-sweep::after,
    .fap-order-btn.fap-order-effect-velvet-bloom,
    .fap-order-btn.fap-order-effect-spotlight::before,
    .fap-shine-enabled .fap-shine,
    .fap-scroll-wrap.fap-active .fap-scroll-btn,
    .fap-pulse::before,
    .fap-pulse::after {
        animation: none !important;
    }
}
