/* Villamerle · estándar de sopas de letras web (21-09-2026). Usado por /regalo/coral/ y /tablon/lio/ */

@font-face{font-family:'Playfair Display';font-weight:700;font-display:swap;src:url(/assets/fuentes/playfair-display-700.woff) format('woff')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:600;font-display:swap;src:url(/assets/fuentes/playfair-display-600-italic.woff) format('woff')}
@font-face{font-family:'Poppins';font-weight:400;font-display:swap;src:url(/assets/fuentes/poppins-400.woff) format('woff')}
@font-face{font-family:'Poppins';font-weight:600;font-display:swap;src:url(/assets/fuentes/poppins-600.woff) format('woff')}
@font-face{font-family:'Special Elite';font-weight:400;font-display:swap;src:url(/assets/fuentes/special-elite-400.woff) format('woff')}
@font-face{font-family:'Caveat';font-weight:600;font-display:swap;src:url(/assets/fuentes/caveat-600.woff) format('woff')}
@font-face{font-family:'Noto Sans';font-weight:500;font-display:swap;src:url(/assets/fuentes/noto-sans-500.woff) format('woff')}
:root{--terracota:#A04A3C;--crema:#F1E6CD;--tinta:#4A3826;--papel:#fffaf0;--linea:#cdb187;--sello:#9B3219}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;background:var(--crema);color:var(--tinta);font:16px/1.7 Poppins,system-ui,sans-serif}
.wrap{width:min(820px,calc(100% - 24px));margin:0 auto}
header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 4px}
.brand{color:var(--tinta);text-decoration:none;font:700 23px/1.1 'Playfair Display',Georgia,serif}
.brand small{display:block;font:10px 'Special Elite',monospace;letter-spacing:2px;text-transform:uppercase;color:var(--terracota)}
.back{font:14px 'Special Elite',monospace;color:var(--terracota)}
.hoja{position:relative;background:var(--papel);border:1px solid var(--linea);border-radius:14px;padding:30px 20px 26px;margin:0 0 20px;box-shadow:0 14px 34px rgba(74,56,38,.07);overflow:hidden}
.hoja.postal:before{content:'';position:absolute;inset:0 0 auto;height:8px;background:repeating-linear-gradient(-45deg,var(--terracota) 0 13px,var(--papel) 13px 26px)}
.eyebrow{font:12.5px 'Special Elite',monospace;letter-spacing:1.5px;text-transform:uppercase;color:var(--terracota);margin:0 0 6px}
h1{font:700 clamp(30px,7vw,44px)/1.12 'Playfair Display',Georgia,serif;margin:0 0 6px}
h2{font:700 23px/1.25 'Playfair Display',Georgia,serif;margin:0 0 10px}
.sub{font:600 italic 18px/1.5 'Playfair Display',Georgia,serif;margin:0}
.mila{display:flex;gap:14px;align-items:flex-start;margin-top:18px}
.mila img{width:62px;height:62px;border-radius:50%;border:2px solid var(--tinta);flex:none;object-fit:cover}
.nota{background:#fff8e9;border:1px dashed var(--linea);border-radius:12px;padding:6px 16px;font:15.5px/1.75 'Special Elite',monospace}
.firma{font:600 28px 'Caveat',cursive;color:var(--terracota);margin:4px 0 0}
details{margin-top:16px;border-top:1px solid var(--linea);padding-top:12px}
summary{cursor:pointer;font:15px 'Special Elite',monospace;color:var(--terracota)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}
.tabs button{flex:1 1 auto;min-width:0;padding:10px 12px;border:1px solid var(--tinta);border-radius:999px;background:var(--papel);color:var(--tinta);font:14px 'Special Elite',monospace;cursor:pointer}
.tabs button[aria-selected=true]{background:var(--tinta);color:var(--papel)}
.pistas{margin:0 0 16px;padding-left:1.3em}.pistas li{margin:.3em 0}
.tabla{width:100%;border-collapse:collapse;table-layout:fixed}
.tabla th{font:12px/1.1 'Special Elite',monospace;padding:0 0 8px;vertical-align:bottom;text-align:center}.tabla th span{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;text-align:left}
.tabla th.vec{width:36%}
.tabla td{border:1px solid var(--linea);height:46px;text-align:center;padding:0}
.tabla td.nom{border:0;text-align:left;padding-right:6px}
.nom span{display:flex;align-items:center;gap:5px;font-size:11px;line-height:1.15;hyphens:auto}
.nom img{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--tinta);flex:none}
.celda{width:100%;height:100%;border:0;background:transparent;font:700 22px 'Noto Sans',sans-serif;color:var(--tinta);cursor:pointer}
.celda.si{color:#3f6b35;background:#eef3e2}.celda.no{color:#b09a80}
.ayuda{font-size:13px;opacity:.8;margin:10px 0 0}
.sopa-wrap{position:relative;width:min(100%,460px);margin:6px auto 0;aspect-ratio:1/1;touch-action:manipulation}
.sopa{display:grid;grid-template-columns:repeat(var(--n,13),1fr);width:100%;height:100%;position:relative;z-index:2}
.letra{display:grid;place-items:center;border:0;background:transparent;font:500 clamp(15px,4.6vw,21px) 'Noto Sans',sans-serif;color:#1d1510;cursor:pointer;padding:0;position:relative}
.letra.inicio{background:rgba(160,74,60,.18);border-radius:50%}
.letra.punto:after{content:'';position:absolute;inset:18%;border-radius:50%;background:radial-gradient(circle,rgba(74,56,38,.28) 1.2px,transparent 1.6px) 0 0/5px 5px}
svg.marcas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.lista{display:flex;flex-wrap:wrap;gap:4px 14px;justify-content:center;margin:16px 0 4px;padding:0;list-style:none;font:15px 'Special Elite',monospace}
.lista li:before{content:'• ';color:var(--terracota)}
.lista li.hallada{text-decoration:line-through;opacity:.5}
.fila-btn{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:14px}
.btn{display:inline-block;padding:12px 20px;border-radius:10px;border:0;background:var(--terracota);color:#fffaf0;text-decoration:none;font:15px 'Special Elite',monospace;box-shadow:0 4px 0 var(--tinta);cursor:pointer}
.btn.sec{background:var(--papel);color:var(--tinta);border:1px solid var(--tinta);box-shadow:none}
.resuelve label{display:block;font:14px 'Special Elite',monospace;margin:14px 0 4px}
.resuelve input{width:100%;padding:12px 14px;border:1.5px solid var(--tinta);border-radius:10px;background:#fff;font:17px 'Special Elite',monospace;text-transform:uppercase;letter-spacing:2px;color:var(--tinta)}
.msg{margin-top:16px;font:15.5px/1.7 'Special Elite',monospace}
.msg.ok{background:#fff8e9;border:1px solid var(--linea);border-radius:12px;padding:16px}
.sello{display:inline-block;border:2px solid var(--sello);color:var(--sello);font:700 18px 'Playfair Display',serif;padding:2px 12px;border-radius:6px;transform:rotate(-4deg);margin-bottom:8px}
.descarga{text-align:center}
footer{padding:6px 0 40px;text-align:center;font-size:13px}footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-bottom:8px}footer a{color:var(--terracota)}
[hidden]{display:none!important}

.letra{font-size:clamp(13px,3.9vw,19px)}
.sopa[data-n="10"] .letra{font-size:clamp(16px,5vw,23px)}
.lugar{display:inline-block;border:1px solid var(--tinta);border-radius:999px;padding:3px 12px;font:12.5px 'Special Elite',monospace;margin:8px 0 0}
.clave{display:flex;flex-wrap:wrap;gap:14px 18px;justify-content:center;margin:14px 0 6px}
.palabra{display:flex;gap:3px}
.cel{display:flex;flex-direction:column;align-items:center;gap:3px}
.cel b{font:17px 'Special Elite',monospace}
.cel input{width:28px;height:34px;padding:0;text-align:center;border:1.5px solid var(--tinta);border-radius:6px;background:#fff;font:17px 'Special Elite',monospace;text-transform:uppercase;color:var(--terracota)}
.deco{display:grid;grid-template-columns:repeat(14,1fr);gap:3px;margin-top:14px;font-family:'Noto Sans',sans-serif}
.deco div{border:1.2px solid var(--tinta);border-radius:6px;text-align:center;padding:2px 0;line-height:1.25;background:#fff}
.deco div b{display:block;font-size:14px}.deco div span{display:block;font-size:13px;color:var(--terracota);border-top:1px dashed var(--linea)}
@media (max-width:420px){.deco{grid-template-columns:repeat(7,1fr)}}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pista{font-size:14px;font-style:italic;margin:2px 0 0;opacity:.85}
.sopa{touch-action:none;user-select:none;-webkit-user-select:none}
.letra.encontrada{color:#fffaf0}
.letra.sobra{color:var(--terracota);font-weight:700}
.letra.sobra:before{content:'';position:absolute;inset:14%;border:2px dashed var(--terracota);border-radius:50%}
.lista li.falta{text-decoration:none;opacity:1;color:var(--sello)}
.lista li.falta:after{content:' · no está en la plaza';font-size:12px}
.hallazgos{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:10px 0 0;min-height:0}
.chip{border:1.5px dashed var(--terracota);border-radius:999px;padding:3px 12px;font:13px 'Special Elite',monospace;color:var(--terracota);background:#fff8e9}
.aviso{font:14px 'Special Elite',monospace;text-align:center;margin:10px 0 0;min-height:1.4em;color:var(--terracota)}
.shake{animation:shake .35s}
@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.porque{margin-top:6px}
.fichas-row{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;min-height:46px;padding:6px;border:1.5px dashed var(--linea);border-radius:12px;background:#fffdf7}
.fichas-row.respuesta{border-color:var(--tinta);background:#fff}
.ficha{width:38px;height:42px;border:1.5px solid var(--tinta);border-radius:8px;background:#fff8e9;font:700 20px 'Noto Sans',sans-serif;color:var(--tinta);cursor:pointer;padding:0;box-shadow:0 2px 0 var(--linea)}
.ficha.hueco{background:transparent;border-style:dashed;border-color:var(--linea);box-shadow:none;cursor:default}
.porque .rotulo{font:13px 'Special Elite',monospace;margin:10px 0 4px;text-align:center}
.porque.ok .fichas-row.respuesta{border-color:#3f6b35;background:#eef3e2}
.resuelve input[readonly]{background:#eef3e2;border-color:#3f6b35}
@media (max-width:480px){.ficha{width:27px;height:36px;font-size:17px;border-radius:6px}.fichas-row{gap:4px;padding:6px 4px}}

.informe-lio{font:15.5px/1.75 'Special Elite',monospace}
.vecino-ficha{display:flex;gap:12px;align-items:center;margin-top:12px}.vecino-ficha img{width:54px;height:54px;border-radius:50%;border:2px solid var(--tinta);object-fit:cover;background:#fff}
.cargando{text-align:center;font:15px 'Special Elite',monospace;padding:40px 0}
.posdata{margin-top:18px;padding-top:14px;border-top:1px dashed var(--linea)}

/* 22-09-2026: explicación de cómo se resuelve el lío, arriba y a la vista */
.modo{margin:0 0 14px;font-size:15px}
.rotulo-pasos{margin:0 0 10px;font:12.5px 'Special Elite',monospace;letter-spacing:1px;text-transform:uppercase;color:var(--terracota)}
.pasos-lio{list-style:none;counter-reset:paso;margin:0 0 20px;padding:0;display:grid;gap:10px}
.pasos-lio li{counter-increment:paso;position:relative;background:#fff8e9;border:1px dashed var(--linea);border-radius:12px;padding:12px 14px 12px 50px;font-size:15px;line-height:1.6}
.pasos-lio li:before{content:counter(paso);position:absolute;left:14px;top:12px;width:24px;height:24px;border-radius:50%;background:var(--terracota);color:var(--papel);display:grid;place-items:center;font:12px 'Special Elite',monospace}
.pasos-lio b{font-weight:600;color:var(--terracota)}

/* 22-09-2026: pistas del porqué, como las del libro (letra, miguita, letras) */
.pistas{margin:16px 0 0;display:grid;gap:8px;justify-items:stretch}
.pistas-rotulo{margin:0 0 2px;font:12px 'Special Elite',monospace;letter-spacing:.5px;color:var(--terracota);text-align:center}
.pista-tapa{width:100%;border-style:dashed!important;opacity:.9}
.pistas .btn{margin:0}
.pista-dada{margin:0 0 8px;background:#fff8e9;border:1px dashed var(--linea);border-radius:12px;padding:10px 14px;font:15px/1.6 'Special Elite',monospace;text-align:left}
.pista-dada b{display:block;font:11.5px 'Special Elite',monospace;letter-spacing:1px;text-transform:uppercase;color:var(--terracota);margin-bottom:2px}
.pista-dada.fin{font-style:italic;opacity:.85}
