body {
    background-color: #F8FAFC;
    background-image:
        radial-gradient(at 0% 0%, rgba(16, 185, 129, 0.05) 0px, transparent 50%),
        radial-gradient(at 100% 0%, rgba(56, 189, 248, 0.04) 0px, transparent 50%);
    background-attachment: fixed;
    scroll-behavior: smooth;
}

.glass-nav {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.6);
}

.bento-card {
    background: #FFFFFF;
    border-radius: 24px;
    border: 1px solid #E2E8F0;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    overflow: hidden;
}

.bento-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px -4px rgba(16, 185, 129, 0.08);
    border-color: rgba(16, 185, 129, 0.3);
}

.mockup-phone {
    box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25),
                0 10px 10px -6px rgb(0 0 0 / 0.1),
                0 0 0 12px #0F172A,
                0 0 0 16px #1E2937;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
                box-shadow 0.3s ease;
}

.mockup-panel {
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1),
                0 8px 10px -6px rgb(0 0 0 / 0.1);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.mockup-panel:hover {
    transform: translateY(-4px);
    box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.15),
                0 10px 10px -6px rgb(0 0 0 / 0.1);
}

.mockup-phone:hover {
    transform: scale(1.02) rotate(0.5deg);
}

@keyframes chatSlideIn {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes chatSlideInLeft {
    from { opacity: 0; transform: translateX(-20px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes popIn {
    0% { transform: scale(0.6); opacity: 0; }
    70% { transform: scale(1.15); }
    100% { transform: scale(1); opacity: 1; }
}

@keyframes typingBounce {
    0%, 80%, 100% { transform: translateY(0); }
    40% { transform: translateY(-4px); }
}

.chat-slide-right {
    animation: chatSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.chat-slide-left {
    animation: chatSlideInLeft 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.success-pop {
    animation: popIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.typing-dot {
    animation: typingBounce 1.2s infinite ease-in-out;
}

.typing-dot:nth-child(2) { animation-delay: 0.15s; }
.typing-dot:nth-child(3) { animation-delay: 0.3s; }

.stat-number {
    font-variant-numeric: tabular-nums;
}

.matte-glass {
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border: 1px solid rgba(255, 255, 255, 0.9);
    box-shadow: 0 8px 32px -8px rgba(15, 23, 42, 0.08),
                0 4px 16px -4px rgba(15, 23, 42, 0.04);
}

@media (prefers-reduced-motion: reduce) {
    .chat-slide-right,
    .chat-slide-left,
    .success-pop,
    .mockup-phone:hover,
    .mockup-panel:hover {
        animation: none !important;
        transition: none !important;
        transform: none !important;
    }

    .typing-dot {
        animation: none !important;
    }
}

.waitlist-form input,
.waitlist-form select {
    transition: all 0.2s ease;
}

.waitlist-form input:focus,
.waitlist-form select:focus {
    outline: none;
    border-color: #10B981;
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
}
