* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    width: 100%;
    height: 100%;
    background: #000;
    overflow: hidden;
}

body {
    display: flex;
    justify-content: center;
    align-items: center;
}

.wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Clear, rigid constraints that Safari, Chrome, and Instagram all parse identically */
.carousel-container {
    position: relative;
    
    /* 1. Force the layout to lock into standard portrait proportions */
    width: 320px; 
    height: 435px;
    
    /* 2. Scale down perfectly for smaller mobile screens so it never overflows horizontally */
    max-width: 85vw;
    
    /* 3. Scale down vertically for cramped spaces like Instagram's webview */
    max-height: 65vh;
    max-height: 65svh;
    
    filter: drop-shadow(0 20px 40px rgba(255, 255, 255, .06));
    animation: fade 1.2s ease, float 8s ease-in-out infinite;
}

/* 4. Force EVERY image to behave identically inside that frame */
.hero {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain; /* Keeps the full image visible without stretching it */
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.hero.active {
    opacity: 1;
}

.social-icons {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 38px;
}

.instagram, .youtube, .email {
    color: #fff;
    opacity: .3;
    transition: .3s;
    text-decoration: none;
    display: inline-block;
}

/* Gives even spacing between all items on the line */
.youtube, .email {
    margin-left: 28px;
}

.instagram:visited, .youtube:visited, .email:visited {
    color: #fff;
}

.instagram:hover, .youtube:hover, .email:hover {
    opacity: 1;
    transform: scale(1.08);
}

.instagram svg, .youtube svg, .email svg {
    display: block;
}

@keyframes fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes float {
    0% { transform: translateY(0); }
    50% { transform: translateY(-5px); }
    100% { transform: translateY(0); }
}