html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Inter', sans-serif;
}

.pattern-overlay {
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.65) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.65) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(circle at center, black 45%, transparent 80%);
    -webkit-mask-image: radial-gradient(circle at center, black 45%, transparent 80%);
}

.plan-card {
    transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.plan-card:hover {
    transform: translateY(-4px);
    border-color: rgba(108, 92, 231, 0.55);
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.34);
}

.wallet-card, .plan-card {
    backdrop-filter: blur(18px);
}

.reveal-on-scroll {
    opacity: 0;
    transform: translateY(28px) scale(0.985);
    transition:
        opacity 700ms ease,
        transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform, opacity;
}

.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.delay-1 {
    transition-delay: 90ms;
}

.delay-2 {
    transition-delay: 180ms;
}

.delay-3 {
    transition-delay: 270ms;
}

.hero-typing-line {
    min-height: 10rem;
    display: flex;
    align-items: center;
}

@media (min-width: 640px) {
    .hero-typing-line {
        min-height: 11rem;
    }
}

@media (min-width: 1024px) {
    .hero-typing-line {
        min-height: 12rem;
    }
}

.hero-caret {
    display: inline-block;
    margin-left: 4px;
    color: #a29bfe;
    animation: caretBlink 0.9s step-end infinite;
}

@keyframes caretBlink {
    50% {
        opacity: 0;
    }
}

@media (max-width: 640px) {
    .hero-typing-line {
        min-height: 7.75rem;
        font-size: 2rem !important;
        line-height: 1.05 !important;
        letter-spacing: -0.04em;
    }

    .reveal-on-scroll {
        transform: translateY(18px) scale(0.99);
    }

    header .max-w-7xl > div {
        gap: 0.5rem;
    }

    .hero-caret {
        margin-left: 2px;
    }
}

@media (max-width: 480px) {
    .plan-card {
        padding: 1.15rem;
        border-radius: 1.35rem;
    }

    .plan-card h4 {
        font-size: 1.35rem;
    }

    .plan-card .text-3xl {
        font-size: 1.55rem;
        line-height: 1.1;
    }

    .hero-typing-line {
        min-height: 7rem;
        font-size: 1.75rem !important;
    }

    .wallet-card {
        border-radius: 1.35rem;
    }

    .rounded-\[2rem\] {
        border-radius: 1.35rem !important;
    }

    .sm\:grid-cols-3 {
        gap: 0.75rem;
    }

    .home-mobile-tight {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
}

@media (max-width: 640px) {
    #plans .grid.md\:grid-cols-3,
    #how-it-works .grid.lg\:grid-cols-3 {
        gap: 0.9rem;
    }

    #plans .plan-card {
        padding: 1.15rem;
    }

    #plans .plan-card .mt-6 {
        margin-top: 1rem;
    }

    #plans .plan-card .rounded-2xl {
        padding: 0.85rem;
    }

    #how-it-works .rounded-\[2rem\] {
        padding: 1rem;
    }

    #how-it-works h4 {
        font-size: 1.05rem;
    }

    #how-it-works p {
        line-height: 1.65;
    }
}
