/* Variables de color RGB para efectos avanzados */
:root {
    --color-yellow-rgb: 255, 185, 0;
    --color-turquoise-rgb: 23, 165, 137;
    --color-purple-rgb: 175, 83, 154;
    --color-coral-rgb: 235, 91, 100;
    --gradient-overlay: linear-gradient(to bottom, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.2) 40%, rgba(0, 0, 0, 0.2) 60%, rgba(0, 0, 0, 0.4) 100%);
    --box-shadow-card: 0 15px 35px rgba(0, 0, 0, 0.1), 0 5px 15px rgba(0, 0, 0, 0.05);
    --box-shadow-hover: 0 25px 45px rgba(0, 0, 0, 0.15), 0 10px 20px rgba(0, 0, 0, 0.1);
    --transition-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  
  /* MEJORAS GENERALES */
  section {
    overflow: hidden;
    position: relative;
  }
  
  /* ANIMACIONES PRINCIPALES */
  @keyframes fadeIn {
      from { opacity: 0; transform: translateY(-20px); }
      to { opacity: 1; transform: translateY(0); }
  }
  
  @keyframes fadeInUp {
      from { opacity: 0; transform: translateY(20px); }
      to { opacity: 0.9; transform: translateY(0); }
  }
  
  @keyframes textPulse {
      0% {
          background-position: 0% 50%;
          transform: scale(1);
      }
      100% {
          background-position: 100% 50%;
          transform: scale(1.03);
      }
  }
  
  @keyframes patternFloat {
      0% { background-position: 0 0; }
      100% { background-position: 100px 100px; }
  }
  
  @keyframes pulse {
      0% { transform: scale(1); }
      50% { transform: scale(1.02); }
      100% { transform: scale(1); }
  }
  
  @keyframes glowPulse {
      0% {
          opacity: 0.6;
          width: 30px;
          height: 30px;
      }
      100% {
          opacity: 1;
          width: 50px;
          height: 50px;
      }
  }
  
  @keyframes shine {
      0%, 100% { left: -100%; }
      40%, 60% { left: 150%; }
  }
  
  @keyframes splashIntro {
      0% { transform: scale(0.7); opacity: 0; }
      40% { transform: scale(1.08); opacity: 1; }
      60% { transform: scale(0.96); opacity: 1; }
      80% { transform: scale(1.02); opacity: 1; }
      100% { transform: scale(1); opacity: 1; }
  }
  
  @keyframes swipeHint {
      0%, 100% { transform: translateX(0); }
      50% { transform: translateX(5px); }
  }
  
  .animated-title {
    color: white;
    text-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    font-weight: 700;
  }
  
  .divider {
    position: relative;
    overflow: visible;
  }
  
  .divider-glow {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 30px;
    height: 30px;
    background: radial-gradient(circle, rgba(var(--color-yellow-rgb), 0.9) 0%, rgba(var(--color-yellow-rgb), 0) 70%);
    border-radius: 50%;
    animation: glowPulse 2s infinite alternate;
  }
  
  /* Estilos mejorados para el Splash Screen */
  .splash-screen {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(135deg, var(--color-turquoise) 0%, rgba(23, 165, 137, 0.92) 100%);
      display: flex;
      justify-content: center;
      align-items: center;
      z-index: 10000;
      transition: opacity 0.8s ease;
      opacity: 1;
    }
    
    body.dark-mode .splash-screen {
      background: linear-gradient(135deg, var(--color-purple) 0%, rgba(175, 83, 154, 0.92) 100%);
    }
    
    .splash-logo {
      width: 50%;
      max-width: 280px;
      animation: splashIntro 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      will-change: transform;
      filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.3));
    }