  :root {
      --font-banner: 'Fredoka', sans-serif;
    }
    
    body {
      background-image: url('../assets/images/fondo.png');
      background-size: cover;
      background-attachment: fixed;
    }

    .navbar-custom {
      background: rgba(255, 255, 255, 0.95);
      backdrop-filter: blur(10px);
      border-bottom: 5px dashed var(--color-primary);
      border-radius: 0 0 2.5rem 2.5rem;
      box-shadow: var(--shadow-sm);
    }

    .navbar-brand {
      font-family: var(--font-title);
      font-weight: 700;
      font-size: 1.8rem;
      color: var(--color-primary) !important;
    }

    .btn-back-home {
      background: var(--color-accent);
      border: 3px solid #fff;
      font-family: var(--font-title);
      font-size: 1.1rem;
      padding: 0.6rem 1.5rem;
      border-radius: var(--radius-md);
      box-shadow: var(--shadow-md);
      color: #fff !important;
      text-decoration: none;
      transition: all 0.2s ease;
    }
    .btn-back-home:hover {
      background: var(--color-primary);
      transform: scale(1.06);
    }

    .text-secondary {
      color: white !important;
    }

    .font-banner-vocales span {
      font-family: var(--font-banner);
      font-size: clamp(2.5rem, 8vw, 5.5rem);
      text-shadow: 4px 4px 0px rgba(0, 0, 0, 0.1);
      margin: 0 5px;
      display: inline-block;
      animation: bounce-letters 2s ease-in-out infinite alternate;
    }

    .font-banner-vocales span:nth-child(1) { animation-delay: 0.1s; }
    .font-banner-vocales span:nth-child(2) { animation-delay: 0.2s; }
    .font-banner-vocales span:nth-child(3) { animation-delay: 0.3s; }
    .font-banner-vocales span:nth-child(4) { animation-delay: 0.4s; }
    .font-banner-vocales span:nth-child(5) { animation-delay: 0.5s; }
    .font-banner-vocales span:nth-child(6) { animation-delay: 0.6s; }
    .font-banner-vocales span:nth-child(7) { animation-delay: 0.7s; }
    .font-banner-vocales span:nth-child(8) { animation-delay: 0.8s; }

    @keyframes bounce-letters {
      0% { transform: translateY(0) rotate(0deg); }
      100% { transform: translateY(-15px) rotate(5deg); }
    }

    .section-title {
      font-family: var(--font-title);
      color: var(--color-primary);
      text-shadow: 2px 2px 0px rgba(0,0,0,0.05);
      margin-bottom: 2rem;
      font-weight: 700;
    }

    /* Vowel Card */
    .vowel-card {
      background: white;
      border-radius: 2rem;
      border: 4px dashed var(--color-border);
      padding: 1.5rem;
      cursor: pointer;
      transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
      position: relative;
      overflow: hidden;
      box-shadow: var(--shadow-sm);
    }

    .vowel-card:hover {
      transform: translateY(-8px) scale(1.05);
      box-shadow: var(--shadow-lg);
    }

    .vowel-letter {
      font-family: var(--font-banner);
      font-size: 4rem;
      font-weight: 900;
      line-height: 1;
      margin-bottom: 0.5rem;
      text-shadow: 3px 3px 0px rgba(0,0,0,0.1);
      display: inline-block;
      transition: transform 0.3s ease;
    }

    .vowel-card:hover .vowel-letter {
      transform: scale(1.15) rotate(-5deg);
    }

    .vowel-example {
      font-family: var(--font-title);
      font-size: 1.2rem;
      font-weight: 700;
      margin: 0;
    }

    /* Interactive Showcase Display */
    .vowel-display-canvas {
      background: #fff;
      border: 6px dashed var(--color-primary);
      border-radius: 2.5rem;
      min-height: 320px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      transition: all 0.5s ease;
      box-shadow: var(--shadow-md);
      position: relative;
      overflow: hidden;
      padding: 2rem;
    }

    .vowel-display-emoji {
      font-size: 5.5rem;
      animation: float-deco 3s ease-in-out infinite;
      display: inline-block;
    }

    .vowel-display-letter {
      font-family: var(--font-banner);
      font-size: 5rem;
      font-weight: 900;
      color: #333;
      margin: 0.5rem 0;
      text-shadow: 4px 4px 0px rgba(0,0,0,0.06);
    }

    .vowel-display-word {
      font-family: var(--font-title);
      font-size: 2rem;
      font-weight: 700;
      color: #555;
    }

    /* Tracing Chalkboard / Pizarra */
    .tracing-container {
      background: #2e3d30; /* School chalkboard color */
      border-radius: 2.5rem;
      border: 10px solid #8d6e63; /* Wooden frame */
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2), inset 0 0 30px rgba(0, 0, 0, 0.5);
      padding: 1.5rem;
      position: relative;
    }

    .chalkboard-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 1rem;
      border-bottom: 2px dashed rgba(255, 255, 255, 0.2);
      padding-bottom: 0.5rem;
    }

    .chalkboard-title {
      font-family: var(--font-title);
      color: #fafafa;
      font-size: 1.3rem;
      margin: 0;
      font-weight: 700;
    }

    .chalk-colors {
      display: flex;
      gap: 10px;
    }

    .chalk-btn {
      width: 25px;
      height: 25px;
      border-radius: 50%;
      border: 2px solid #fff;
      cursor: pointer;
      transition: all 0.2s ease;
      box-shadow: 0 3px 6px rgba(0,0,0,0.2);
    }

    .chalk-btn.selected {
      transform: scale(1.25);
      box-shadow: 0 0 0 3px rgba(255,255,255,0.4);
    }

    .tracing-canvas-wrapper {
      position: relative;
      width: 100%;
      height: 300px;
      background: transparent;
      border-radius: 1rem;
      overflow: hidden;
      touch-action: none; /* Prevent scrolling on mobile while drawing */
    }

    #tracingCanvas {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      cursor: crosshair;
      z-index: 2;
    }

    .tracing-guide {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-banner);
      font-size: 14rem;
      color: rgba(255, 255, 255, 0.18); /* Semi-transparent guide */
      user-select: none;
      z-index: 1;
      pointer-events: none;
    }

    .btn-clear-chalk {
      background: #d32f2f;
      color: #fff;
      font-family: var(--font-title);
      border: none;
      padding: 0.5rem 1.5rem;
      border-radius: var(--radius-sm);
      font-size: 1rem;
      box-shadow: 0 4px 10px rgba(0,0,0,0.15);
      transition: all 0.2s ease;
      font-weight: 700;
    }

    .btn-clear-chalk:hover {
      background: #b71c1c;
      transform: scale(1.05);
    }

    /* Word Vowel Quiz */
    .quiz-container {
      background: #fff;
      border-radius: 2.5rem;
      border: 5px dashed var(--color-secondary);
      padding: 2.5rem 2rem;
      box-shadow: var(--shadow-md);
      text-align: center;
    }

    .quiz-word-box {
      font-family: var(--font-banner);
      font-size: clamp(1.8rem, 8vw, 3.5rem);
      letter-spacing: clamp(3px, 1.2vw, 8px);
      margin: 1.5rem 0;
      color: #333;
      font-weight: 900;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: clamp(5px, 1.8vw, 15px);
      flex-wrap: wrap; /* Evita desbordamiento en pantallas muy chicas */
    }

    .quiz-letter-slot {
      border-bottom: clamp(3px, 0.8vw, 6px) solid var(--color-primary);
      width: clamp(32px, 8vw, 60px);
      height: clamp(40px, 10vw, 75px);
      display: inline-flex;
      justify-content: center;
      align-items: center;
      color: var(--color-accent);
      animation: flash-slot 1.5s infinite alternate;
    }

    @keyframes flash-slot {
      0% { border-color: var(--color-primary); }
      100% { border-color: var(--color-accent); }
    }

    .quiz-letter-slot.filled {
      border-bottom: none;
      animation: none;
      color: var(--color-success);
    }

    .quiz-word-emoji {
      font-size: 5rem;
      animation: float-deco 3s ease-in-out infinite;
      display: block;
      margin-bottom: 0.5rem;
    }

    .quiz-vowel-btn {
      width: 70px;
      height: 70px;
      border-radius: 50%;
      border: 4px solid #fff;
      font-family: var(--font-banner);
      font-size: 2rem;
      font-weight: 900;
      color: #fff;
      box-shadow: 0 6px 15px rgba(0,0,0,0.12);
      cursor: pointer;
      transition: all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    }

    .quiz-vowel-btn:hover {
      transform: scale(1.15) rotate(5deg);
      box-shadow: 0 8px 20px rgba(0,0,0,0.18);
    }

    .font-banner-vocales span:nth-child(1) { animation-delay: 0.1s; color: #ff1744; }
    .font-banner-vocales span:nth-child(2) { animation-delay: 0.2s; color: #0288d1; }
    .font-banner-vocales span:nth-child(3) { animation-delay: 0.3s; color: #f57f17; }
    .font-banner-vocales span:nth-child(4) { animation-delay: 0.4s; color: #2e7d32; }
    .font-banner-vocales span:nth-child(5) { animation-delay: 0.5s; color: #9c27b0; }
    .font-banner-vocales span:nth-child(6) { animation-delay: 0.6s; color: #ff1744; }
    .font-banner-vocales span:nth-child(7) { animation-delay: 0.7s; color: #0288d1; }

    .speech-badge {
      background: var(--color-primary);
      color: white;
      border-radius: 20px;
      padding: 5px 12px;
      font-size: 0.85rem;
      font-family: var(--font-body);
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin-top: 10px;
      transition: all 0.2s ease;
      box-shadow: var(--shadow-sm);
      animation: palpitar 1.2s infinite;
    }

    @keyframes palpitar {
      0% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(255, 214, 0, 0.7);
      }
      50% {
        transform: scale(1.12);
        box-shadow: 0 0 25px rgba(255, 214, 0, 0.9);
      }

      100% {
          transform: scale(1);
          box-shadow: 0 0 0 rgba(255, 214, 0, 0.7);
      }
    }

    .speech-badge:hover {
      background: var(--color-accent);
      transform: scale(1.05);
    }

    /* Drag & Drop Classification Game */
    .drag-game-container {
      background: #fff;
      border-radius: 2.5rem;
      border: 5px dashed var(--color-primary);
      padding: 2.5rem 2rem;
      box-shadow: var(--shadow-md);
      text-align: center;
      position: relative;
    }

    .drag-surprise-box {
      width: 170px;
      height: 170px;
      border-radius: 2rem;
      border: 4px dashed #ddd;
      background: #fbfbfb;
      margin: 0 auto 2rem;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
    }

    .draggable-card {
      width: 140px;
      height: 140px;
      border-radius: 1.5rem;
      background: #fff;
      border: 4px solid var(--color-primary);
      box-shadow: var(--shadow-md);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      cursor: grab;
      position: absolute;
      user-select: none;
      touch-action: none;
      z-index: 10;
    }

    .draggable-card.dragging {
      cursor: grabbing;
      transform: scale(1.1);
      box-shadow: var(--shadow-lg);
      z-index: 100;
    }

    .draggable-card-emoji {
      font-size: 4rem;
      line-height: 1;
      margin-bottom: 5px;
    }

    .draggable-card-label {
      font-family: var(--font-title);
      font-size: 1.1rem;
      font-weight: 700;
      color: #333;
      margin: 0;
    }

    /* Baskets Grid */
    .basket-slot {
      width: 100px;
      height: 100px;
      border-radius: 2rem;
      border: 4px solid var(--color-border);
      background: #fff;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
      cursor: pointer;
      box-shadow: var(--shadow-sm);
      margin: 0 auto;
    }

    .basket-slot:hover, .basket-slot.drag-over {
      transform: scale(1.12);
      box-shadow: var(--shadow-md);
      background: rgba(255, 255, 255, 0.95);
    }

    .basket-slot.correct-snap {
      animation: success-pulse 0.6s ease-in-out;
    }

    .basket-letter {
      font-family: var(--font-banner);
      font-size: 3rem;
      font-weight: 900;
      line-height: 1;
      color: var(--color-border);
      text-shadow: 2px 2px 0px rgba(0,0,0,0.05);
    }

    .basket-slot.incorrect {
      border-color: var(--color-danger) !important;
      background: #ffebee;
      animation: shake 0.5s ease-in-out;
    }