/* 🦁 RESIDENTE - CORE STYLES v1.0 */

/* 1. RESET & BASICS DE LUJO */
:root {
    --r-accent: #00f0ff; /* Tu color cyan neon */
    --r-black: #0a0a0a;
}

body {
    background-color: black;
    color: white;
    -webkit-font-smoothing: antialiased; 
    -moz-osx-font-smoothing: grayscale;
    overscroll-behavior-y: none; 
    /* Eliminar cualquier scroll por defecto en body para dejar que el app-container controle todo */
    margin: 0; 
    padding: 0;
}

/* --- 1. EXPERIENCIA PC (Mobile Container) --- */
/* Si la pantalla es grande, centramos la app como un celular */
@media (min-width: 768px) {
    body {
        background-color: #050505; /* Fondo oscuro exterior */
        background-image: radial-gradient(circle at center, #1a1a1a 0%, #000 100%);
        display: flex;
        justify-content: center;
        align-items: center;
        min-height: 100vh;
    }
    /* Esta clase envolverá todo tu contenido HTML */
    .app-container {
        width: 100%;
        max-width: 430px; /* Ancho de un iPhone Max */
        height: 100vh; /* Altura completa */
        max-height: 932px;
        background-color: #000;
        position: relative; /* CRUCIAL para que los hijos absolutos se queden dentro */
        overflow: hidden;
        box-shadow: 0 0 50px rgba(0, 240, 255, 0.1); /* Brillo sutil */
        border: 1px solid #333;
        border-radius: 20px; /* Bordes redondeados en PC */
    }
}
@media (max-width: 767px) {
    .app-container { width: 100%; height: 100dvh; position: relative; overflow: hidden; }
}

/* Ocultar scrollbars globalmente para look "App Nativa" */
::-webkit-scrollbar { display: none; }
* { -ms-overflow-style: none; scrollbar-width: none; }

/* 2. LA FÍSICA DEL SCROLL (VIRAL MODE) */
#film-roll {
    height: 100%; 
    width: 100%;
    overflow-y: scroll;
    scroll-snap-type: y mandatory;
    scroll-behavior: smooth;
    transform: translate3d(0,0,0);
}

.product-card-reel {
    height: 100%;
    width: 100%;
    position: relative;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    overflow: hidden; 
}

/* 3. UTILIDADES DE VIDRIO (GLASSMORPHISM) */
.glass {
    background: rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

/* 4. ANIMACIONES */
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.animate-in { animation: fadeIn 0.6s ease-out forwards; }

@keyframes popUp { 0% { transform: scale(0.8); opacity: 0; } 50% { transform: scale(1.1); } 100% { transform: scale(1); opacity: 1; } }
.animate-pop { animation: popUp 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; }

@keyframes slideUp { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.animate-slide-up { animation: slideUp 0.4s ease-out forwards; }

@keyframes robotBreath {
    0% { box-shadow: 0 0 15px rgba(0,240,255,0.2); border-color: rgba(0,240,255,0.4); }
    50% { box-shadow: 0 0 25px rgba(0,240,255,0.6); border-color: rgba(0,240,255,0.9); transform: scale(1.05); }
    100% { box-shadow: 0 0 15px rgba(0,240,255,0.2); border-color: rgba(0,240,255,0.4); }
}
.robot-alive { animation: robotBreath 3s infinite ease-in-out; }

.shadow-text { text-shadow: 0 2px 4px rgba(0,0,0,0.8); }

/* 5. AJUSTES PARA IPHONE (SAFE AREAS) */
.pb-safe { padding-bottom: env(safe-area-inset-bottom, 20px); }
.pt-safe { padding-top: env(safe-area-inset-top, 20px); }

/* 6. HELPERS VISUALES */
.hidden-screen { display: none !important; }

.custom-scroll::-webkit-scrollbar { width: 4px; display: block; }
.custom-scroll::-webkit-scrollbar-track { background: #111; }
.custom-scroll::-webkit-scrollbar-thumb { background: #333; border-radius: 4px; }

#info-gallery {
    scroll-snap-type: x mandatory; 
    scroll-behavior: smooth;
    display: flex;
    overflow-x: auto;
}
#info-gallery > div { scroll-snap-align: center; scroll-snap-stop: always; flex-shrink: 0; }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

@keyframes bounceSlow { 0%, 100% { transform: translateY(-5%); } 50% { transform: translateY(5%); } }
.animate-bounce-slow { animation: bounceSlow 2s infinite ease-in-out; }

/* --- BADGES DE IMPACTO --- */
.badge-sold-out {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%) rotate(-15deg);
    border: 4px solid white;
    padding: 1rem 2rem;
    font-size: 2rem;
    font-weight: 900;
    color: white;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    background: rgba(0,0,0,0.7);
    backdrop-filter: blur(5px);
    z-index: 50;
    white-space: nowrap;
    box-shadow: 0 0 30px rgba(0,0,0,0.5);
}

.badge-offer-lg {
    background: #00f0ff;
    color: black;
    font-weight: 900;
    font-size: 0.8rem;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    text-transform: uppercase;
    box-shadow: 0 0 10px rgba(0, 240, 255, 0.6);
    animation: pulse 2s infinite;
}

.price-strike {
    text-decoration: line-through;
    color: #666;
    font-size: 0.8em;
    margin-right: 0.5rem;
}

.bg-video-wrapper {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    z-index: 0;
    overflow: hidden;
}
.bg-video-wrapper::after {
    content: ''; position: absolute; inset: 0;
    background: rgba(0,0,0,0.6);
    z-index: 1;
}