/* ============================================================
   CAZA DE PALABRAS — Estilos
   Colección EL TÍO IA · eltioia.cl
   Estética: cuaderno + marcador fluorescente. Tema claro.
   ============================================================ */

:root{
  --paper:      #fdf8ec;   /* fondo cuaderno */
  --card:       #ffffff;
  --ink:        #23323f;   /* texto principal */
  --ink-soft:   #6b7c8c;
  --teal:       #0e9c8f;   /* color principal */
  --teal-dark:  #0a7a70;
  --coral:      #ff6b6b;   /* errores */
  --grape:      #6c5ce7;   /* acentos */
  --marker:     #ffe066;   /* marcador amarillo */
  --marker-ok:  #a8f0c6;   /* marcador verde */
  --marker-bad: #ffc2c2;   /* marcador rojo */
  --line:       #e6dfcd;
  --radius:     20px;
  --shadow:     0 14px 34px rgba(35,50,63,.13);
  --font-title: "Fredoka", "Trebuchet MS", system-ui, sans-serif;
  --font-body:  "Nunito", "Segoe UI", system-ui, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }

body{
  min-height:100dvh;
  font-family:var(--font-body);
  color:var(--ink);
  background:
    linear-gradient(180deg, rgba(14,156,143,.07) 0%, transparent 260px),
    repeating-linear-gradient(180deg, transparent 0 33px, var(--line) 33px 34px),
    var(--paper);
  overflow-x:hidden;
  -webkit-text-size-adjust:100%;
}

/* ---------- Palabras flotando de fondo ---------- */
.floating-words{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.floating-words span{
  position:absolute;
  font-family:var(--font-title);
  font-size:clamp(18px,3.4vw,34px);
  color:var(--teal);
  opacity:.09;
  white-space:nowrap;
  animation:drift 22s ease-in-out infinite;
}
.floating-words span:nth-child(1){ top:9%;  left:4%;  animation-delay:0s; }
.floating-words span:nth-child(2){ top:23%; right:6%; animation-delay:-3s; }
.floating-words span:nth-child(3){ top:44%; left:2%;  animation-delay:-6s; }
.floating-words span:nth-child(4){ top:63%; right:4%; animation-delay:-9s; }
.floating-words span:nth-child(5){ top:80%; left:7%;  animation-delay:-12s; }
.floating-words span:nth-child(6){ top:34%; left:46%; animation-delay:-15s; }
.floating-words span:nth-child(7){ top:92%; right:22%;animation-delay:-18s; }
.floating-words span:nth-child(8){ top:15%; left:52%; font-size:clamp(30px,7vw,64px); animation-delay:-8s; }

@keyframes drift{
  0%,100%{ transform:translate(0,0) rotate(-3deg); }
  50%    { transform:translate(16px,-24px) rotate(4deg); }
}

/* ---------- Pantallas ---------- */
#app{ position:relative; z-index:1; }

.screen{ display:none; min-height:100dvh; padding:clamp(14px,3.5vw,36px); place-items:center; }
.screen.is-active{ display:grid; animation:screenIn .4s ease both; }
@keyframes screenIn{
  from{ opacity:0; transform:translateY(16px); }
  to  { opacity:1; transform:none; }
}

.card{
  width:min(780px,100%);
  background:var(--card);
  border:2px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:clamp(20px,4.5vw,42px);
  text-align:center;
  position:relative;
}

/* ---------- Inicio ---------- */
.lupa{
  font-size:clamp(56px,14vw,92px); line-height:1;
  animation:sweep 4.5s ease-in-out infinite;
  display:inline-block;
}
@keyframes sweep{
  0%,100%{ transform:translateX(-10px) rotate(-10deg) scale(1); }
  50%    { transform:translateX(10px)  rotate(10deg) scale(1.08); }
}

.title{
  font-family:var(--font-title); font-weight:700;
  font-size:clamp(30px,8vw,58px);
  margin:.06em 0 .12em;
  color:var(--teal);
  letter-spacing:.01em;
}
.tagline{ font-size:clamp(15px,3.5vw,19px); color:var(--ink-soft); line-height:1.6; margin:0 auto 22px; max-width:42ch; }
.tagline strong{ color:var(--ink); }

/* Ejemplo de la portada */
.sample{
  background:#fffdf5; border:2px dashed var(--line);
  border-radius:16px; padding:14px 16px; margin-bottom:24px; text-align:left;
}
.sample-ask{ margin:0 0 8px; font-family:var(--font-title); color:var(--grape); font-size:15px; }
.sample-text{ margin:0; font-size:clamp(15px,3.6vw,18px); line-height:1.7; }
.sample-text mark{
  background:linear-gradient(180deg, transparent 52%, var(--marker) 52%);
  padding:0 3px; border-radius:3px; color:inherit;
}

.how-to{
  text-align:left; background:#f7fbfa;
  border:1px solid #ddeeeb; border-radius:16px;
  padding:16px 20px; margin:24px 0 6px;
}
.how-to h2{ font-family:var(--font-title); font-size:17px; color:var(--teal-dark); margin:0 0 8px; }
.how-to ol{ margin:0; padding-left:20px; line-height:1.75; font-size:15px; color:#4a5b6a; }

.brand{
  margin:22px 0 12px; font-size:12.5px; letter-spacing:.09em;
  text-transform:uppercase; color:var(--ink-soft);
}
.brand strong{ color:var(--teal); }

/* ---------- Botones ---------- */
.btn{
  font-family:var(--font-body); font-weight:900; cursor:pointer;
  border:none; border-radius:14px; padding:13px 24px; font-size:16px;
  text-decoration:none; display:inline-block;
  transition:transform .12s ease, box-shadow .2s, background .2s, color .2s, border-color .2s;
}
.btn:active{ transform:translateY(2px); }
.btn:focus-visible{ outline:3px solid var(--grape); outline-offset:3px; }

.btn-primary{
  background:linear-gradient(180deg, #16b3a3 0%, var(--teal-dark) 100%);
  color:#fff; box-shadow:0 6px 0 #075f57, 0 12px 22px rgba(10,122,112,.28);
}
.btn-primary:hover{ filter:brightness(1.06); }
.btn-primary:active{ box-shadow:0 2px 0 #075f57; }

.btn-xl{ font-size:clamp(17px,4.2vw,21px); padding:17px 34px; }

.btn-ghost{
  background:#fff; color:var(--ink-soft);
  border:2px solid var(--line); font-weight:700; font-size:14.5px; padding:10px 18px;
}
.btn-ghost:hover{ border-color:var(--teal); color:var(--teal-dark); }

.btn-back{
  background:#f1ede1; color:#7a6f5c; font-size:14px; padding:9px 15px; font-weight:700;
}
.btn-back:hover{ background:#e7e1d2; }

/* ---------- Selección de nivel ---------- */
#screen-difficulty .btn-back{ position:absolute; top:clamp(14px,3vw,22px); left:clamp(14px,3vw,22px); }
#screen-difficulty .card{ padding-top:clamp(62px,13vw,72px); }

.panel-title{ font-family:var(--font-title); color:var(--teal); font-size:clamp(24px,6vw,36px); margin:0 0 6px; }
.panel-sub{ color:var(--ink-soft); margin:0 0 24px; font-size:15px; }

.level-grid{ display:grid; gap:14px; }
@media (min-width:720px){ .level-grid{ grid-template-columns:repeat(3,1fr); } }

.level-card{
  font-family:var(--font-body); text-align:center; cursor:pointer;
  background:#fffdf6; border:2px solid var(--line); border-radius:18px;
  padding:20px 16px; color:var(--ink);
  transition:transform .15s, border-color .2s, box-shadow .2s;
}
.level-card:hover{ transform:translateY(-4px); border-color:var(--teal); box-shadow:0 12px 24px rgba(14,156,143,.18); }
.level-card:focus-visible{ outline:3px solid var(--grape); outline-offset:3px; }
.level-icon{ font-size:34px; display:block; line-height:1; }
.level-name{ font-family:var(--font-title); font-size:22px; display:block; margin:8px 0 6px; color:var(--teal-dark); }
.level-desc{ font-size:13.5px; color:var(--ink-soft); line-height:1.5; margin:0; }

.themes{ margin-top:26px; }
.themes-title{ font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 10px; }
.theme-chips{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.theme-chips span{
  background:#f3f7f6; border:1px solid #dde9e7; color:#4a5b6a;
  border-radius:99px; padding:6px 13px; font-size:13.5px; font-weight:700;
}

/* ---------- HUD ---------- */
#screen-game{ align-content:start; gap:12px; }

.hud{
  width:min(880px,100%);
  display:flex; align-items:center; justify-content:space-between;
  gap:10px; flex-wrap:wrap;
  background:var(--card); border:2px solid var(--line);
  border-radius:16px; padding:10px 14px;
}
.hud-item{ display:flex; flex-direction:column; align-items:center; min-width:78px; }
.hud-label{ font-size:11px; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-soft); }
.hud-value{ font-family:var(--font-title); font-size:clamp(19px,4.6vw,25px); color:var(--teal-dark); }
.hud-value.pop{ animation:pop .4s ease; }
@keyframes pop{ 0%{transform:scale(1);} 45%{transform:scale(1.3); color:var(--grape);} 100%{transform:scale(1);} }

.progress-bar{ width:min(880px,100%); height:9px; border-radius:99px; background:#e9e2d1; overflow:hidden; }
.progress-fill{
  height:100%; width:0%; border-radius:99px;
  background:linear-gradient(90deg, var(--teal), #56d6a8);
  transition:width .45s cubic-bezier(.4,1.4,.5,1);
}

/* ---------- Tarjeta de cacería ---------- */
.hunt-card{
  width:min(880px,100%);
  background:var(--card); border:2px solid var(--line);
  border-radius:var(--radius); box-shadow:var(--shadow);
  padding:clamp(18px,4vw,32px);
  animation:cardIn .35s ease both;
}
@keyframes cardIn{
  from{ opacity:0; transform:translateY(14px) scale(.99); }
  to  { opacity:1; transform:none; }
}

.hunt-head{ display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.theme-tag{
  background:#f0f7f6; border:1px solid #d9eae7; color:var(--teal-dark);
  border-radius:99px; padding:5px 14px; font-size:13px; font-weight:900;
}
.level-tag{ font-size:13px; font-weight:900; color:var(--ink-soft); align-self:center; }

.ask{
  font-family:var(--font-title); font-weight:600;
  font-size:clamp(20px,5vw,30px);
  margin:0 0 4px; color:var(--grape);
}
.ask b{
  background:linear-gradient(180deg, transparent 55%, var(--marker) 55%);
  padding:0 4px; color:var(--ink);
}
.ask-hint{ margin:0 0 18px; font-size:14.5px; color:var(--ink-soft); }

/* ---------- El texto con palabras clicables ---------- */
.text-box{
  background:#fffdf5;
  border:2px solid var(--line);
  border-radius:16px;
  padding:clamp(14px,3vw,22px);
  font-size:clamp(18px,4.4vw,26px);
  line-height:2.1;
  text-align:left;
}

.word{
  font-family:var(--font-body); font-weight:700; font-size:inherit;
  color:var(--ink); background:transparent;
  border:none; border-radius:8px;
  padding:2px 5px; margin:0;
  cursor:pointer;
  transition:background .15s, color .15s, transform .1s;
}
.word:hover:not(:disabled){ background:#e9f5f3; color:var(--teal-dark); transform:translateY(-2px); }
.word:focus-visible{ outline:3px solid var(--grape); outline-offset:2px; }
.word:disabled{ cursor:default; }

/* Marcado de la palabra elegida */
.word.picked-ok{
  background:var(--marker-ok);
  box-shadow:0 0 0 2px #4bc98b inset;
  animation:stamp .4s ease;
}
.word.picked-bad{
  background:var(--marker-bad);
  box-shadow:0 0 0 2px var(--coral) inset;
  animation:wobble .4s ease;
}
/* Las palabras que SÍ eran correctas, reveladas tras fallar */
.word.reveal{
  background:linear-gradient(180deg, transparent 50%, var(--marker) 50%);
  box-shadow:none;
  animation:blink .55s ease 2;
}
@keyframes stamp{ 0%{transform:scale(1);} 45%{transform:scale(1.18) rotate(-2deg);} 100%{transform:scale(1);} }
@keyframes wobble{ 0%,100%{transform:translateX(0);} 25%{transform:translateX(-7px);} 75%{transform:translateX(7px);} }
@keyframes blink{ 0%,100%{opacity:1;} 50%{opacity:.5;} }

.punct{ color:var(--ink); margin-left:-4px; }

/* ---------- Feedback ---------- */
.feedback{
  margin-top:18px; border-radius:16px; padding:16px 18px;
  background:#f7fbfa; border:2px dashed #cfe3e0;
  animation:fbIn .3s ease both; text-align:left;
}
.feedback.is-bad{ background:#fff5f5; border-color:#f4cccc; }
@keyframes fbIn{ from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;} }

.feedback-head{
  font-family:var(--font-title); font-size:clamp(19px,4.6vw,25px);
  margin:0 0 6px; color:var(--teal-dark);
}
.feedback.is-bad .feedback-head{ color:var(--coral); }
.feedback-body{ margin:0 0 14px; font-size:15.5px; line-height:1.65; color:#42525f; }
.feedback-body b{ color:var(--ink); }
.feedback .btn{ width:100%; }

.bonus{
  display:inline-block; margin-left:8px; font-size:14px; font-weight:900;
  color:var(--teal); animation:bonusPop .5s ease;
}
@keyframes bonusPop{
  0%{ transform:translateY(8px) scale(.6); opacity:0; }
  60%{ transform:translateY(-3px) scale(1.15); opacity:1; }
  100%{ transform:none; opacity:1; }
}

/* ---------- Resultado ---------- */
.rank-icon{ font-size:clamp(52px,13vw,86px); line-height:1; animation:pop2 .7s cubic-bezier(.3,1.6,.5,1) both; }
@keyframes pop2{ 0%{ transform:scale(0) rotate(-30deg); opacity:0; } 100%{ transform:none; opacity:1; } }
.rank-name{ font-family:var(--font-title); color:var(--teal); font-size:clamp(24px,6.4vw,40px); margin:8px 0 4px; }
.rank-msg{ color:var(--ink-soft); margin:0 0 22px; font-size:15px; }

.stats{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-bottom:22px; }
@media (min-width:620px){ .stats{ grid-template-columns:repeat(4,1fr); } }
.stat{ background:#f7fbfa; border:1px solid #ddeeeb; border-radius:16px; padding:14px 8px; }
.stat-num{ display:block; font-family:var(--font-title); font-size:clamp(22px,6vw,32px); color:var(--teal-dark); }
.stat-lbl{ display:block; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-top:4px; }

.review{ text-align:left; margin-bottom:22px; }
.review h3{ font-family:var(--font-title); color:var(--teal-dark); font-size:17px; margin:0 0 10px; }
.review-list{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.review-list li{
  display:flex; gap:10px; align-items:flex-start;
  background:#fffdf6; border:1px solid var(--line); border-left-width:4px;
  border-radius:12px; padding:10px 12px; font-size:14px; line-height:1.45;
}
.review-list li.ok  { border-left-color:#4bc98b; }
.review-list li.bad { border-left-color:var(--coral); }
.rv-text b{ font-family:var(--font-title); font-weight:600; }
.rv-text small{ display:block; color:var(--ink-soft); margin-top:2px; }

.result-actions{ display:grid; gap:10px; justify-items:center; }
@media (min-width:520px){ .result-actions{ grid-auto-flow:column; justify-content:center; } }

/* ---------- Confeti ---------- */
.confetti{
  position:fixed; top:-16px; width:9px; height:15px; z-index:20;
  pointer-events:none; border-radius:2px;
  animation:fall linear forwards;
}
@keyframes fall{ to{ transform:translateY(112vh) rotate(700deg); opacity:0; } }

/* ---------- Accesibilidad ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* ---------- Móvil ---------- */
@media (max-width:520px){
  .hud{ padding:8px 10px; gap:6px; }
  .hud-item{ min-width:64px; }
  .btn-quit{ order:-1; width:100%; }
  .text-box{ line-height:2.2; }
  .word{ padding:3px 5px; }
}
