::-webkit-scrollbar {
    display: none;
}

html {
    -ms-overflow-style: none;
    scrollbar-width: none;
    overflow-x: hidden;
}

body {
    background-color: #fafafa;
    overflow-x: hidden;
    max-width: 100vw;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Mobile performance optimizations */
@media (max-width: 768px) {
    .elegant-entry,
    .profile-entry {
        animation-duration: 1s;
    }
    
    .reveal-hole {
        animation-duration: 1.5s;
    }
}

.font-poppins{
  font-family: "Poppins", sans-serif;
}

.bg-hero {
    background: radial-gradient(circle at 50% 50%, #fffbf0 0%, #fde6c5 100%);
}

.hero-container {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100dvh;
    overflow: hidden;
    padding-bottom: env(safe-area-inset-bottom, 0px);
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 1rem);
}

/* Safe area padding for mobile browsers with navigation bars */
.pb-safe {
    padding-bottom: env(safe-area-inset-bottom, 0px);
    padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
}

.pb-safe-bottom {
    padding-bottom: max(1.5rem, env(safe-area-inset-bottom, 0px));
}

/* Mobile viewport fix - ensures content is fully visible */
@supports (height: 100dvh) {
    .min-h-screen-mobile {
        min-height: 100dvh;
        min-height: -webkit-fill-available;
    }
}

/* Fix for mobile browser address bar show/hide */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
    body {
        padding-bottom: env(safe-area-inset-bottom);
    }
}

/* Mobile-specific viewport height fix */
@supports (height: 100dvh) {
    .hero-container {
        min-height: 100dvh;
    }
}

/* Fallback for browsers that don't support 100dvh */
@supports not (height: 100dvh) {
    .hero-container {
        min-height: -webkit-fill-available;
        min-height: 100vh;
        min-height: 100vmax;
    }
}

.hero-image-wrapper {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    height: 75vh;
    display: flex;
    align-items: flex-end;
}

/* The Reveal "Hole" Animation */
.reveal-hole {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 0;
    height: 0;
    border-radius: 50%;
    box-shadow: 0 0 80px 100vmax #fffbf0;
    z-index: 100;
    pointer-events: none;
    animation: hole-expand 2.2s cubic-bezier(0.65, 0, 0.35, 1) forwards;
    will-change: width, height;
}

@keyframes hole-expand {
    0% {
        width: 0;
        height: 0;
    }

    100% {
        width: 300vmax;
        height: 300vmax;
    }
}

.elegant-entry {
    opacity: 0;
    transform: translateY(20px);
    animation: flow-in 1.5s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
    will-change: opacity, transform;
}

@keyframes flow-in {
    to {
        opacity: 1;
        transform: translateY(0px);
    }
}

.profile-entry {
    opacity: 0;
    transform: translate(-50%, 5%) scale(1.4);
    animation: image-flow 2s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
    will-change: opacity, transform;
}

@keyframes image-flow {
    to {
        opacity: 1;
        transform: translate(-50%, 0%) scale(1.5);
    }
}

/* Hover effects */
.pill-hover:hover {
    transform: scale(1.05) translateX(8px);
    background: white;
    transition: all 0.6s ease;
}

.card-hover:hover {
    backdrop-filter: blur(25px);
    transform: translateY(-5px);
    transition: all 0.6s ease;
}
[data-aos="grow-width"] {
    transform: scaleX(0);
    transform-origin: left;
    transition-property: transform;
}

[data-aos="grow-width"].aos-animate {
    transform: scaleX(1);
}
