* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: 'Press Start 2P', cursive;
  background: linear-gradient(135deg, #ffdde1, #ee9ca7);
  display: flex;
  justify-content: center;
  align-items: center;
}

 .container {
      padding: 20px;
      opacity: 0;
      transform: translateY(8px);
      transition: opacity 0.8s ease, transform 0.8s ease;
    }

    body.unlocked .container {
      opacity: 1;
      transform: translateY(0);
    }

    h1 { font-size: 2.3rem; margin: 0 0 8px; }
    .subtitle { margin: 0 0 30px; font-size: 1.1rem; opacity: 0.9; }

    .menu {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 20px;
      width: 90vw;
      max-width: 650px;
      margin: 0 auto;
    }

    .card {
      background: white;
      padding: 25px;
      border-radius: 22px;
      text-decoration: none;
      color: #333;
      font-size: 1.1rem;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .card:hover {
      transform: scale(1.05);
      box-shadow: 0 15px 30px rgba(0,0,0,0.18);
    }

    /* Pantalla de login encima */
    .overlay {
      position: fixed;
      inset: 0;
      display: flex;
      justify-content: center;
      align-items: center;
      padding: 20px;
      background: rgba(0,0,0,0.35);
      backdrop-filter: blur(4px);
      z-index: 999;
      transition: opacity 0.6s ease, visibility 0.6s ease;
    }

    .login-box {
      width: min(520px, 92vw);
      background: rgba(255,255,255,0.92);
      border-radius: 26px;
      padding: 26px 22px;
      box-shadow: 0 18px 40px rgba(0,0,0,0.25);
    }

    .login-title {
      font-size: 1.5rem;
      margin: 0 0 6px;
    }

    .login-text {
      margin: 0 0 16px;
      opacity: 0.85;
      line-height: 1.4;
    }

    .row {
      display: flex;
      gap: 10px;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
    }

    input[type="password"]{
      width: min(320px, 80vw);
      padding: 12px 14px;
      border-radius: 18px;
      border: 1px solid rgba(0,0,0,0.15);
      outline: none;
      font-size: 1rem;
      background: white;
    }

    button {
      padding: 12px 18px;
      border-radius: 18px;
      border: none;
      cursor: pointer;
      font-size: 1rem;
      background: #ee9ca7;
      color: white;
      transition: transform 0.15s ease, opacity 0.2s ease;
    }
    button:hover { opacity: 0.92; }
    button:active { transform: scale(0.98); }

    .hint {
      margin-top: 12px;
      font-size: 0.9rem;
      opacity: 0.7;
    }

    .error {
      margin-top: 10px;
      font-size: 0.95rem;
      color: #b00020;
      display: none;
    }

    /* Cuando desbloquea, ocultamos overlay */
    body.unlocked .overlay {
      opacity: 0;
      visibility: hidden;
    }
