body {
    background-color: #0E4E91;
    color: #0E4E91;
}
    .bg-intro {
    background-image: url('../img/bg-1.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    }
    .bg-other {
    background-image: url('../img/bg-2.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    /* background-attachment: fixed; */
    }
    .text-primary {
    color: #0E4E91 !important;
    }
    .text-blue {
    color: #008fc7 !important;
    }

/* form */
    .custom-input {
            background: rgba(255, 255, 255, 0.95);
            border: 1px solid rgba(0, 0, 0, 0.06);
            border-radius: 999px;
            height: 64px;
            padding: 0 28px;
            font-size: 1.25rem;
        }
        .custom-input::placeholder { color: #b8b8b8; }
        .custom-input:focus { box-shadow: 0 0 0 0.15rem rgba(101, 205, 216, 0.25); border-color: transparent; background: rgba(255, 255, 255, 0.95);}
        .phone-shell {
            background: rgba(255, 255, 255, 0.95);
            border: 1px solid rgba(0, 0, 0, 0.06);
            border-radius: 999px;
            height: 64px;
            padding: 0 22px;
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .phone-shell input {
            border: 0;
            background: transparent;
            outline: none;
            font-size: 1.25rem;
            color: #333;
            width: 100%;
        }
        .phone-shell input::placeholder { color: #b8b8b8; }

/* gift box */
        .floating-gift-1 {
            position: fixed;
            bottom: 5%;
            right: -100px;
            width: 400px;
            max-width: 60vw;
            z-index: 1;
            pointer-events: none;
            filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.25));
            animation: floatX 2.5s ease-in-out infinite alternate;
        }
        @keyframes floatX {
            0% { transform: translateX(0); }
            100% { transform: translateX(-14px); }
        }

        /* Second floating gift (right side, slight horizontal movement) */
        .floating-gift-2 {
            position: fixed;
            bottom: -10%;
            left: -80px;
            width: 320px;
            max-width: 48vw;
            z-index: 1;
            pointer-events: none;
            filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.25));
            animation: floatX2 3.2s ease-in-out infinite alternate;
            animation-delay: .6s;
        }
        @keyframes floatX2 {
            0% { transform: translateX(0); }
            100% { transform: translateX(-12px); }
        }

        @media (max-width: 576px) {
            .floating-gift { width: 250px; bottom: -2%; right: -100px; }
            .floating-gift-2 { width: 200px; bottom: -5%; right: -70px; }
        }
        @media (prefers-reduced-motion: reduce) {
            .floating-gift, .floating-gift-2 { animation: none; }
        }


/* game */
