:root{
  --bg:#f4efe4; --card:#fffaf0; --ink:#1d2733; --muted:#667085; --line:#ded5c2;
  --accent:#1f6f6a; --accent-ink:#fff; --warn:#c8472b; --ok:#2e7d4f;
  --def:rgba(247,206,70,.55); --ind:rgba(166,140,235,.45); --fod:rgba(86,190,150,.4);
  --cell:#fff; --shadow:0 1px 0 rgba(0,0,0,.04),0 8px 24px -12px rgba(60,40,10,.25);
  --serif:'Iowan Old Style','Palatino Linotype',Palatino,'Book Antiqua',Georgia,serif;
  --sans:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#12171d; --card:#1a212a; --ink:#ece7da; --muted:#98a2b3; --line:#2b3541;
  --accent:#5fc1b8; --accent-ink:#0c1a19; --warn:#ff8a6b; --ok:#6fd39a;
  --def:rgba(240,200,80,.38); --ind:rgba(170,140,240,.4); --fod:rgba(90,200,160,.34);
  --cell:#10151b; --shadow:0 8px 24px -12px rgba(0,0,0,.7);
}}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--sans);min-height:100vh;display:flex;flex-direction:column}
.wrap{width:100%;max-width:760px;margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--card);padding:8px 12px;z-index:9}
a{color:var(--accent)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}

.top{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);position:sticky;top:0;z-index:5}
.bar{display:flex;align-items:center;gap:12px;min-height:56px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink)}
.logo{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--accent);color:var(--accent-ink);font:700 20px/1 var(--serif);transform:rotate(-6deg)}
.word{font:700 22px/1 var(--serif);letter-spacing:-.01em}.word i{color:var(--warn);font-style:normal}
nav{display:flex;gap:2px;margin-left:auto;flex-wrap:wrap}
nav a{padding:6px 10px;border-radius:999px;text-decoration:none;color:var(--muted);font-size:14.5px;font-weight:500}
nav a:hover{color:var(--ink)}
nav a.on{background:var(--ink);color:var(--bg)}
.streak{font-size:14px;font-weight:600;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:4px 10px;background:var(--card)}
.streak:empty{display:none}

main{flex:1;padding-top:24px;padding-bottom:40px;outline:none}
h1{font:700 clamp(26px,5vw,34px)/1.15 var(--serif);margin:0 0 4px;letter-spacing:-.015em}
h2{font:700 22px/1.25 var(--serif);margin:28px 0 8px}
.sub{color:var(--muted);margin:0 0 18px;font-size:15px}
.lead{font-size:17px;color:var(--muted);max-width:60ch}

.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px 20px;box-shadow:var(--shadow);margin:16px 0}
.clue-text{font:500 clamp(22px,4.6vw,29px)/1.35 var(--serif);margin:0 0 6px;text-wrap:balance}
.clue-text .enum{color:var(--muted);white-space:nowrap}
mark{color:inherit;border-radius:4px;padding:1px 3px;margin:0 -1px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
mark.def{background:var(--def)}mark.ind{background:var(--ind)}mark.fod{background:var(--fod)}
.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin:8px 0 0}
.legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.legend .d::before{background:var(--def)}.legend .i::before{background:var(--ind)}.legend .f::before{background:var(--fod)}
.hint-box{margin:14px 0 0;padding:12px 14px;border-left:4px solid var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent);border-radius:0 10px 10px 0;font-size:15px}
.hint-box b{font-family:var(--serif)}

.answer{display:flex;flex-wrap:wrap;gap:10px 22px;margin:20px 0 6px}
.word-g{display:flex;gap:6px}
.cell{width:clamp(34px,10vw,48px);height:clamp(42px,12vw,56px);border:2px solid var(--line);border-radius:10px;background:var(--cell);color:var(--ink);text-align:center;font:700 clamp(20px,5.5vw,26px)/1 var(--serif);text-transform:uppercase;padding:0;caret-color:transparent;transition:border-color .15s,background .15s,transform .15s}
.cell:focus{border-color:var(--accent);transform:translateY(-2px)}
.cell.given{background:color-mix(in srgb,var(--accent) 16%,var(--cell));border-color:var(--accent)}
.cell.ok{background:color-mix(in srgb,var(--ok) 20%,var(--cell));border-color:var(--ok)}
.cell.chg{outline:3px solid var(--def);outline-offset:1px}
.answer.shake{animation:shake .38s}
@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}
.btn{font:600 15px var(--sans);border:1px solid var(--line);background:var(--card);color:var(--ink);padding:10px 16px;border-radius:12px;cursor:pointer;text-decoration:none;display:inline-block}
.btn:hover{border-color:var(--ink)}
.btn.pri{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.pri:hover{filter:brightness(1.07)}
.btn.ghost{border-color:transparent;color:var(--muted)}
.btn[disabled]{opacity:.45;cursor:default}
.msg{min-height:1.4em;margin:8px 0 0;font-size:15px;color:var(--muted)}
.msg.bad{color:var(--warn)}.msg.good{color:var(--ok)}

.chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.chip{font-size:12.5px;font-weight:600;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);letter-spacing:.02em}
.chip.gray{background:transparent;border:1px solid var(--line);color:var(--muted)}
.dots{display:inline-flex;gap:3px;vertical-align:middle}.dots i{width:8px;height:8px;border-radius:50%;background:var(--line)}.dots i.on{background:var(--warn)}

.solved{margin-top:16px;border-top:1px dashed var(--line);padding-top:16px}
.solved .stars{font-size:22px;letter-spacing:3px;color:#e0a526}
.solved .stars span.off{color:var(--line)}
.solved p{margin:6px 0}
.solved .note{font-family:var(--serif);font-style:italic;color:var(--muted)}
.solved .note::before{content:"El autor, sobre esta pista: ";font-style:normal;font-family:var(--sans);font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;display:block}
.pop{animation:pop .5s}@keyframes pop{0%{transform:scale(.97)}50%{transform:scale(1.01)}100%{transform:scale(1)}}
.next{color:var(--muted);font-size:14px}
.next b{font-variant-numeric:tabular-nums;color:var(--ink)}

.steps{counter-reset:s;list-style:none;padding:0;margin:0}
.step{position:relative;padding-left:0}
.step .num{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--bg);font:700 13px var(--sans);margin-right:8px}
.step .num.done{background:var(--ok)}
.step .before{font-size:13px;color:var(--muted);margin:0 0 4px}
.step .card{margin:12px 0}
.metabar{display:flex;gap:8px;justify-content:center;margin:12px 0}
.slot{width:46px;height:56px;border-radius:10px;border:2px dashed var(--line);display:grid;place-items:center;font:700 26px var(--serif);color:var(--muted)}
.slot.on{border:2px solid var(--ok);color:var(--ink);background:color-mix(in srgb,var(--ok) 15%,transparent)}
.prog{height:8px;border-radius:99px;background:var(--line);overflow:hidden;margin:10px 0 4px}.prog i{display:block;height:100%;background:var(--accent);transition:width .4s}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px}
.tile{display:grid;place-items:center;height:56px;border-radius:12px;border:1px solid var(--line);background:var(--card);text-decoration:none;color:var(--ink);font:700 18px var(--serif);position:relative}
.tile small{position:absolute;bottom:3px;font:11px var(--sans);color:var(--ok);letter-spacing:1px}
.tile.today{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.tile.done{background:color-mix(in srgb,var(--ok) 14%,var(--card))}
.tile.locked{opacity:.4;pointer-events:none}
.list{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.list a{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card);text-decoration:none;color:var(--ink)}
.list a span:last-child{color:var(--muted);font-size:14px}

.types{display:grid;gap:14px}
.type{padding:18px 18px}
.type h3{font:700 19px var(--serif);margin:0 0 4px}
.type p{margin:4px 0}
.type .ind{font-size:14px;color:var(--muted)}
details{margin-top:10px}summary{cursor:pointer;font-weight:600;color:var(--accent)}
details .clue-text{font-size:21px;margin-top:10px}
.tips li{margin:6px 0}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.stat{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.stat b{display:block;font:700 28px var(--serif)}.stat span{font-size:13px;color:var(--muted)}
.bars div{display:grid;grid-template-columns:130px 1fr 34px;gap:10px;align-items:center;font-size:14px;margin:6px 0}
.bars i{display:block;height:10px;border-radius:99px;background:var(--accent)}
.bars em{font-style:normal;color:var(--muted);text-align:right}

.foot{color:var(--muted);font-size:13px;padding-bottom:28px;border-top:1px solid var(--line);padding-top:16px}
.foot p{margin:4px 0}
#toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:999px;font-size:14px;opacity:0;pointer-events:none;transition:.25s;z-index:20}
#toast.on{opacity:1;transform:translate(-50%,0)}
@media (max-width:520px){nav{margin-left:0;width:100%;order:3;justify-content:space-between}nav a{padding:6px 8px;font-size:14px}.bars div{grid-template-columns:100px 1fr 28px}}

.tile.ahead{border-style:dashed;color:var(--muted)}
