/* css/criaturas-maquina.css — ⏰ Máquina del Tiempo (js/juegos/criaturas-maquina.js).
   Diálogo propio .tm-dlg · máquina dibujada en CSS + dial SVG (PRESENTE ↔ PASADO), luces,
   ventana-portal con la criatura, palanca grande. Color de familia en --c / --c2 (.tm-in).
   Sin scroll horizontal desde 320px · botones ≥48px · prefers-reduced-motion. */
.tm-dlg{margin:auto;padding:0;border:0;border-radius:24px;width:min(96vw,560px);max-width:96vw;max-height:94dvh;
  background:var(--surface,#fff);color:var(--text,#1E1B4B);box-shadow:0 20px 60px rgba(30,27,75,.35);overflow:auto;overscroll-behavior:contain}
.tm-dlg::backdrop{background:rgba(30,27,75,.6)}
.tm-in{--c:#7C3AED;--c2:#EDE9FE;position:relative;padding:14px 14px 16px;display:flex;flex-direction:column;align-items:center;gap:10px}
.tm-in .lvl-confetti{z-index:5}
.tm-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tm-x{position:absolute;top:8px;right:8px;z-index:30;width:48px;height:48px;border:0;border-radius:50%;
  background:var(--bg,#F1F0FF);color:var(--text,#1E1B4B);font-size:1.15rem;font-weight:800;cursor:pointer}
.tm-x:focus-visible,.tm-bt:focus-visible,.tm-op:focus-visible,.tm-palanca:focus-visible,.tm-oir:focus-visible{outline:3px solid var(--purple,#7C3AED);outline-offset:3px}
.tm-tit{margin:6px 52px 0;font-size:clamp(1.2rem,4.8vw,1.55rem);font-weight:900;text-align:center;color:var(--deep,#2E1065)}
.tm-ronda{margin:0;display:flex;gap:16px;font-weight:800;font-size:.95rem}
.tm-ronda b{font-variant-numeric:tabular-nums}

/* ── la máquina ── */
.tm-maquina{position:relative;width:100%;max-width:340px;padding:12px 14px 16px;border-radius:26px 26px 18px 18px;
  background:linear-gradient(160deg,#4C1D95 0%,#312E81 55%,#1E1B4B 100%);
  border:4px solid #B45309;box-shadow:inset 0 0 0 3px #FDE68A55,0 8px 0 #78350F,0 14px 24px rgba(30,27,75,.3);
  display:flex;flex-direction:column;align-items:center;gap:6px}
.tm-luces{display:flex;gap:10px}
.tm-luces i{width:12px;height:12px;border-radius:50%;background:#FDE68A;box-shadow:0 0 6px #FDE68A;opacity:.45}
.tm-luces i:nth-child(2n){background:#34D399;box-shadow:0 0 6px #34D399}
.tm-luces i:nth-child(3){background:#F472B6;box-shadow:0 0 6px #F472B6}
.tm-dial{width:min(100%,220px);height:auto;overflow:visible}
.tm-dial-t{font:900 12px/1 system-ui,sans-serif;fill:#fff;letter-spacing:.5px}
.tm-aguja{transform-origin:100px 100px;transform:rotate(-62deg);transition:transform .9s cubic-bezier(.3,.7,.3,1.3)}
.tm-maquina.viajando .tm-aguja,.tm-maquina.en-pasado .tm-aguja{transform:rotate(62deg)}
.tm-tornillos i{position:absolute;width:8px;height:8px;border-radius:50%;background:#FDE68A;box-shadow:inset -1px -1px 0 #B45309}
.tm-tornillos i:nth-child(1){top:8px;left:8px}.tm-tornillos i:nth-child(2){top:8px;right:8px}
.tm-tornillos i:nth-child(3){bottom:8px;left:8px}.tm-tornillos i:nth-child(4){bottom:8px;right:8px}

/* ventana-portal con la criatura */
.tm-ventana{position:relative;width:min(58vw,170px);aspect-ratio:1;border-radius:50%;overflow:hidden;
  background:radial-gradient(circle at 50% 45%,#fff 0,var(--c2) 55%,var(--c) 100%);
  border:6px solid #FDE68A;box-shadow:inset 0 0 18px rgba(30,27,75,.35),0 0 0 4px #B45309}
.tm-cria{position:absolute;inset:8%;width:84%;height:84%;object-fit:contain;z-index:2}
.tm-remolino{position:absolute;inset:-30%;z-index:1;opacity:0;border-radius:50%;
  background:repeating-conic-gradient(from 0deg,#A78BFA 0 15deg,#F59E0B 15deg 30deg,#34D399 30deg 45deg,#312E81 45deg 60deg)}
.tm-destello{position:absolute;inset:-10%;z-index:3;opacity:0;pointer-events:none;border-radius:50%;
  background:radial-gradient(circle,#fff 0,#fff 25%,var(--c2) 45%,transparent 70%)}
.tm-chispas{position:absolute;inset:0;z-index:4;pointer-events:none}
.tm-chispas i{position:absolute;width:6px;height:18px;border-radius:3px;background:#FDE68A;box-shadow:0 0 8px #F59E0B;opacity:0}
.tm-chispas i:nth-child(1){top:6%;left:18%;transform:rotate(-30deg)}
.tm-chispas i:nth-child(2){top:10%;right:16%;transform:rotate(35deg)}
.tm-chispas i:nth-child(3){bottom:12%;left:12%;transform:rotate(40deg)}
.tm-chispas i:nth-child(4){bottom:8%;right:20%;transform:rotate(-40deg)}

/* viaje: remolino girando, luces parpadeando, la criatura gira y encoge */
.tm-maquina.viajando .tm-remolino{opacity:.85;animation:tm-gira .5s linear infinite}
.tm-maquina.viajando .tm-cria{animation:tm-vortice 1.1s ease-in-out}
.tm-maquina.viajando .tm-luces i{animation:tm-luz .22s steps(2) infinite}
.tm-maquina.viajando .tm-luces i:nth-child(2n){animation-delay:.11s}
.tm-maquina.viajando{animation:tm-tiembla .12s linear infinite}
.tm-maquina.en-pasado .tm-luces i{opacity:1}
.tm-maquina.en-pasado .tm-ventana{background:radial-gradient(circle at 50% 45%,#FFFBEB 0,#FDE68A 55%,#D97706 100%)}
/* transformación al acertar */
.tm-maquina.transforma .tm-destello{animation:tm-destello .8s ease-out}
.tm-maquina.transforma .tm-cria{animation:tm-nace .6s .25s cubic-bezier(.3,.7,.3,1.4) both}
/* fallo: chispazo */
.tm-maquina.chispa{animation:tm-sacude .4s}
.tm-maquina.chispa .tm-chispas i{animation:tm-chispa .45s ease-out}
.tm-maquina.chispa .tm-chispas i:nth-child(2n){animation-delay:.08s}
.tm-maquina.chispa .tm-luces i{background:#EF4444;box-shadow:0 0 8px #EF4444;opacity:1}

/* ── frase ── */
.tm-frase{display:flex;align-items:center;gap:10px;width:100%;max-width:440px;padding:10px 12px;border-radius:18px;
  background:var(--c2);border:3px solid var(--c)}
.tm-frase>div{min-width:0;flex:1}
.tm-oir{flex:none;width:48px;height:48px;border:0;border-radius:50%;background:#fff;font-size:1.3rem;cursor:pointer;box-shadow:0 2px 0 var(--c)}
.tm-en{margin:0;font-size:clamp(1.15rem,5vw,1.5rem);font-weight:900;line-height:1.2;overflow-wrap:anywhere;color:var(--deep,#2E1065)}
.tm-es{margin:2px 0 0;font-size:.88rem;color:var(--text2,#6B7280);font-weight:600}
.tm-v{color:var(--c);text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:3px}

/* ── palanca ── */
.tm-palanca{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:320px;min-height:60px;
  padding:8px 20px 8px 56px;border:0;border-radius:999px;font:inherit;font-size:1.15rem;font-weight:900;color:#fff;cursor:pointer;
  background:linear-gradient(180deg,#F59E0B,#D97706);box-shadow:0 5px 0 #92400E;-webkit-tap-highlight-color:transparent}
.tm-palanca:active{transform:translateY(3px);box-shadow:0 2px 0 #92400E}
.tm-palanca:disabled{cursor:default}
.tm-mango{position:absolute;left:18px;top:50%;width:8px;height:30px;margin-top:-26px;border-radius:4px;background:#78350F;
  transform-origin:50% 100%;transform:rotate(-25deg);transition:transform .35s cubic-bezier(.3,.7,.3,1.4)}
.tm-mango::before{content:"";position:absolute;left:50%;top:-10px;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:#EF4444;box-shadow:inset -3px -3px 0 #B91C1C}
.tm-palanca.tirada .tm-mango{transform:rotate(35deg)}

/* ── opciones ── */
.tm-opciones{display:flex;flex-direction:column;gap:8px;width:100%;max-width:440px}
.tm-opciones[hidden]{display:none}
.tm-op{min-height:52px;padding:10px 14px;border:3px solid var(--c);border-radius:16px;background:#fff;color:var(--text,#1E1B4B);
  font:inherit;font-size:clamp(1rem,4.4vw,1.2rem);font-weight:800;text-align:left;cursor:pointer;overflow-wrap:anywhere;
  -webkit-tap-highlight-color:transparent;animation:tm-sale .35s cubic-bezier(.3,.7,.3,1.3) both}
.tm-op:nth-child(2){animation-delay:.08s}.tm-op:nth-child(3){animation-delay:.16s}
.tm-op .tm-v{color:inherit}
@media (hover:hover){.tm-op:not(:disabled):hover{background:var(--c2)}}
.tm-op.ok{background:#DCFCE7;border-color:#16A34A;color:#14532D}
.tm-op.ok::after{content:" ✓"}
.tm-op.ko{background:#FEE2E2;border-color:#FCA5A5;color:#991B1B;text-decoration:line-through;opacity:.75;cursor:default;animation:tm-sacude .35s}
.tm-op:disabled:not(.ok):not(.ko){opacity:.6;cursor:default}

.tm-msg{min-height:1.4em;margin:0;font-weight:800;text-align:center;color:var(--deep,#2E1065);max-width:440px}
.tm-sig[hidden]{display:none}
.tm-vacio{margin:10px 0;font-size:1.1rem;font-weight:800;text-align:center;color:var(--deep,#2E1065)}
.tm-vacio small{font-weight:600;color:var(--text2,#6B7280)}

/* ── final ── */
.tm-fin{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.tm-estrellas{margin:0;font-size:2.6rem;line-height:1;letter-spacing:4px;color:#D1D5DB}
.tm-estrellas .on{color:#F59E0B;text-shadow:0 2px 0 #B45309}
.tm-fin-tit{margin:0;font-size:1.2rem;font-weight:900;color:var(--deep,#2E1065)}
.tm-fin-det{margin:0;color:var(--text2,#6B7280);font-weight:700}
.tm-fin-cria{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:4px 0}
.tm-fin-cria img{width:56px;height:56px;object-fit:contain}
.tm-fin-bts{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px;width:100%}
.tm-bt{min-height:48px;min-width:120px;max-width:320px;padding:0 20px;border:0;border-radius:999px;font:inherit;font-weight:800;font-size:1rem;cursor:pointer;
  background:var(--bg,#F1F0FF);color:var(--deep,#2E1065)}
.tm-bt.otra{background:var(--purple,#7C3AED);color:#fff}

@media (max-width:359px){
  .tm-in{padding:12px 10px 14px;gap:8px}
  .tm-maquina{padding:10px 10px 14px}
  .tm-palanca{font-size:1.02rem;padding-left:50px}
}

@keyframes tm-gira{to{transform:rotate(360deg)}}
@keyframes tm-vortice{0%{transform:none}50%{transform:rotate(360deg) scale(.35);opacity:.4}100%{transform:rotate(720deg) scale(1);opacity:1}}
@keyframes tm-luz{0%{opacity:1}100%{opacity:.2}}
@keyframes tm-tiembla{0%,100%{transform:translateX(0)}50%{transform:translateX(1.5px)}}
@keyframes tm-destello{0%{opacity:0;transform:scale(.4)}35%{opacity:1}100%{opacity:0;transform:scale(1.4)}}
@keyframes tm-nace{0%{transform:scale(.6)}100%{transform:scale(1)}}
@keyframes tm-sacude{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}50%{transform:translateX(5px)}75%{transform:translateX(-3px)}}
@keyframes tm-chispa{0%{opacity:0;scale:.4}30%{opacity:1;scale:1.2}100%{opacity:0;scale:.8}}
@keyframes tm-sale{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  .tm-maquina,.tm-maquina *,.tm-op,.tm-palanca,.tm-mango{animation:none!important;transition:none!important}
  .tm-maquina.viajando .tm-remolino{opacity:.5}
}
