﻿:root {
            --gold: #D4AF37;
            --champagne: #F7E7CE;
            --deep-blue: #1B1F3B;
            --soft-white: #FDFBF7;
        }

        body {
            background-color: var(--deep-blue);
            font-family: 'Playfair Display', serif;
            overflow-x: hidden;
            color: var(--soft-white);
            margin: 0;
            padding: 0;
        }

        /* --- ESTILOS PARA LIGHTBOX Y ROTACIÓN INTELIGENTE --- */
       .rotate-mobile {
            transform: rotate(90deg);
            width: 100vh !important; 
            height: 100vw !important;
            max-width: 100vh !important;
            max-height: 100vw !important;
            object-fit: contain;
        }

        .pointer-events-auto {
            pointer-events: auto;
        }
        
        #lightbox-modal {
            transition: opacity 0.3s ease-in-out, visibility 0.3s;
        }

/* Ocultar flechas en móvil para limpieza visual */
        @media (max-width: 768px) {
            #btn-prev, #btn-next {
                display: none !important;
            }
        }

        /* --- PANTALLA DE INTRODUCCIÓN (EL MARCO DE FOTOS) --- */
        #intro-screen {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            background: radial-gradient(circle at center, #2a2e4d 0%, #1B1F3B 100%);
            z-index: 100;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            transition: opacity 1s ease-in-out, visibility 1s;
        }

        .intro-frame-container {
            position: relative;
            cursor: pointer;
            transition: transform 0.5s ease;
        }

        .intro-frame-container:hover {
            transform: scale(1.03);
        }

        .frame-enter-anim {
            animation: enterFrameAnim 1.8s forwards cubic-bezier(0.645, 0.045, 0.355, 1);
        }

        @keyframes enterFrameAnim {
            0% { transform: scale(1); opacity: 1; }
            40% { transform: scale(0.9); opacity: 1; }
            100% { transform: scale(5); opacity: 0; }
        }

        .photo-frame-intro {
            width: 300px;
            height: 400px;
            background: #fff;
            padding: 15px;
            box-shadow: 0 20px 50px rgba(0,0,0,0.6);
            position: relative;
            border: 2px solid var(--gold);
            display: flex;
            flex-direction: column;
            align-items: center;
            background-image: linear-gradient(45deg, #b88a44 0%, #e8c778 25%, #b88a44 50%, #e8c778 75%, #b88a44 100%);
            border-radius: 4px;
        }

        .photo-inner {
            width: 100%;
            height: 85%;
            background-color: #000;
            overflow: hidden;
            border: 2px solid #fff;
            position: relative;
        }

        .photo-inner img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 5s ease;
        }
        
        .intro-frame-container:hover .photo-inner img {
            transform: scale(1.1);
        }

        .frame-plate {
            margin-top: 15px;
            background: #fff;
            padding: 5px 20px;
            border: 1px solid #ccc;
            box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
            font-family: 'Dancing Script', cursive;
            color: #333;
            font-size: 1.5rem;
            text-align: center;
            width: 90%;
        }

        .tap-hint {
            margin-top: 2rem;
            color: var(--champagne);
            font-family: 'Lato', sans-serif;
            letter-spacing: 2px;
            text-transform: uppercase;
            font-size: 0.8rem;
            animation: pulse 2s infinite;
        }

        /* --- FONDO DE PALOMAS Y ESTRELLAS --- */
        .stars {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: -2;
            background-image: radial-gradient(white, rgba(255,255,255,.2) 2px, transparent 3px);
            background-size: 550px 550px;
            opacity: 0.3;
        }
        
        .floating-container {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: -1;
            overflow: hidden;
        }

        .floating-element {
            position: absolute;
            pointer-events: none;
            will-change: transform, opacity;
        }

        @keyframes floatDown {
            0% { transform: translateY(-10vh) rotate(0deg) translateX(0); opacity: 0; }
            20% { opacity: 0.8; }
            100% { transform: translateY(110vh) rotate(360deg) translateX(50px); opacity: 0; }
        }

        @keyframes floatUp {
            0% { transform: translateY(110vh) rotate(0deg) translateX(0); opacity: 0; }
            20% { opacity: 0.8; }
            100% { transform: translateY(-10vh) rotate(-360deg) translateX(-50px); opacity: 0; }
        }
        
        .dove {
            position: absolute;
            color: rgba(255, 255, 255, 0.6);
            filter: drop-shadow(0 0 5px rgba(255,255,255,0.4));
        }

        @keyframes flyRight {
            0% { transform: translateX(-100px) translateY(0) scale(0.5); opacity: 0; }
            20% { opacity: 0.8; }
            80% { opacity: 0.8; }
            100% { transform: translateX(100vw) translateY(-100px) scale(0.8); opacity: 0; }
        }

        @keyframes flyLeft {
            0% { transform: translateX(100vw) translateY(0) scale(0.5); opacity: 0; }
            20% { opacity: 0.8; }
            80% { opacity: 0.8; }
            100% { transform: translateX(-100px) translateY(-100px) scale(0.8); opacity: 0; }
        }

        /* --- CONTENIDO PRINCIPAL --- */
        .main-content-hidden {
            opacity: 0;
            pointer-events: none;
            transition: opacity 2s ease-in;
            transform: translateY(20px);
        }
        
        .reveal-content {
            opacity: 1;
            pointer-events: auto;
            transform: translateY(0);
        }

        .gold-text {
            color: var(--gold);
            text-shadow: 0 2px 4px rgba(0,0,0,0.3);
        }

        .script-font {
            font-family: 'Dancing Script', cursive;
        }

        .glass-card {
            background: rgba(255, 255, 255, 0.05);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(212, 175, 55, 0.3);
            box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
        }

        .btn-gold {
            background: linear-gradient(to right, #D4AF37, #C5A059);
            color: #1B1F3B;
            transition: all 0.3s ease;
            font-family: 'Lato', sans-serif;
            text-transform: uppercase;
            letter-spacing: 1px;
        }
        
        .btn-gold:hover {
            box-shadow: 0 0 20px rgba(212, 175, 55, 0.6);
            transform: translateY(-2px);
            color: #fff;
        }

/* Música */
        .music-playing {
            animation: spinSlow 4s linear infinite;
            box-shadow: 0 0 15px var(--gold);
            background: var(--gold); 
            color: var(--deep-blue);
            border-color: #fff;
        }

        @keyframes spinSlow {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }
        
        @keyframes pulse {
            0% { opacity: 0.6; }
            50% { opacity: 1; }
            100% { opacity: 0.6; }
        }

        .countdown-box {
            background: rgba(255,255,255,0.1);
            border-top: 2px solid var(--gold);
            padding: 15px;
            border-radius: 4px;
            min-width: 80px;
        }

        /* --- CORRECCIÓN: ESTILOS GHOST DOT (PREMIUM UX) --- */
        .ghost-container {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 15px;
        }

        .ghost-ring {
            width: 60px;
            height: 60px;
            border: 1px solid rgba(212, 175, 55, 0.4); 
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(255, 255, 255, 0.05);
            backdrop-filter: blur(4px);
            box-shadow: 0 0 20px rgba(212, 175, 55, 0.1);
        }

        .ghost-dot {
            width: 12px;
            height: 12px;
            background-color: var(--soft-white);
            border-radius: 50%;
            box-shadow: 0 0 8px var(--gold);
            opacity: 0.9;
        }

        .ghost-text {
            font-family: 'Lato', sans-serif;
            font-size: 0.75rem;
            letter-spacing: 0.25em;
            text-transform: uppercase;
            color: var(--champagne);
            text-shadow: 0 2px 4px rgba(0,0,0,0.5);
            font-weight: 300;
        }

/* CORRECCIÓN: Animación del CONTENEDOR (Opacidad Global) */
        @keyframes hint-container-fade {
            0% { opacity: 0; }
            10% { opacity: 1; }
            80% { opacity: 1; }
            100% { opacity: 0; }
        }

/* CORRECCIÓN: Animación del PUNTO (Movimiento) */
        @keyframes hint-dot-move {
            0% { transform: translate(0, 0); }
            /* Movimiento Horizontal */
            20% { transform: translate(-25px, 0); } 
            40% { transform: translate(0, 0); }
            /* Movimiento Vertical */
            60% { transform: translate(0, 25px); } 
            80% { transform: translate(0, 0); }
            100% { transform: translate(0, 0); }
        }

        /* Clases activadas por JS */
        .run-swipe-anim {
            /* Esto fuerza la visibilidad del padre */
            animation: hint-container-fade 4s ease-in-out forwards;
        }
        
        .run-swipe-anim .ghost-dot {
            /* Esto mueve el punto hijo */
            animation: hint-dot-move 4s ease-in-out infinite;
        }

        .run-swipe-anim .ghost-ring {
            animation: pulse 2s infinite;
        }
