/* v2-levels */
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#0f1020;color:#f2f2f7;line-height:1.5}
a{color:#ffd23f}header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#17183a}
.logo{font-weight:800;font-size:1.4rem;color:#fff;text-decoration:none}.logo span{color:#ffd23f}
main{max-width:960px;margin:auto;padding:16px}.hero{text-align:center;padding:32px 8px}.hero h1{font-size:2rem;margin:.2em 0}
.btn{display:inline-block;background:#ff4f8b;color:#fff;border:0;border-radius:999px;padding:14px 28px;font-size:1.1rem;font-weight:700;text-decoration:none;cursor:pointer}
.btn.alt{background:#3a3c7a}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.card{background:#1d1f45;border-radius:14px;padding:16px;text-decoration:none;color:#fff;display:block}.card img{width:100%;height:auto;border-radius:10px}
.card h3{margin:.4em 0 .2em}footer{text-align:center;padding:24px;font-size:.9rem;color:#aab}footer a{margin:0 6px}
.ad-slot{margin:16px auto;text-align:center;min-height:0}.ad-slot.on{min-height:90px;border-top:1px solid #333;border-bottom:1px solid #333}
.ad-slot.on::before{content:attr(data-label);display:block;font-size:.7rem;color:#889}
#cookie{position:fixed;bottom:0;left:0;right:0;background:#222448;padding:12px 16px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:center;z-index:9}
#cookie button{padding:12px 18px;border-radius:8px;border:0;cursor:pointer;min-height:48px}
.game{text-align:center}.after{margin:16px 0;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
#inter{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:20}
.m-board{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#2a2c5a;padding:8px;border-radius:12px;max-width:340px;margin:auto;touch-action:none}
.m-c{aspect-ratio:1;border-radius:8px;background:#3a3c70;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.4rem}
canvas{max-width:100%;background:#1b1d44;border-radius:12px;touch-action:manipulation}
.w-row{display:flex;gap:6px;justify-content:center;margin:6px}.w-c{width:48px;height:48px;border:2px solid #555;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;text-transform:uppercase}
.g{background:#3aa655;border-color:#3aa655}.y{background:#c9a227;border-color:#c9a227}.x{background:#3a3a4a;border-color:#3a3a4a}
.kb{max-width:500px;margin:10px auto}.kb div{display:flex;gap:4px;justify-content:center;margin:4px}.kb button{flex:1;padding:12px 0;border:0;border-radius:6px;background:#555a8a;color:#fff;font-weight:700;min-width:32px;min-height:48px}
body{background:#1a1433;background-image:radial-gradient(#2a2150 1px,transparent 1px);background-size:18px 18px}
.logo,h1,h2,.btn{font-family:"Trebuchet MS",system-ui,sans-serif;letter-spacing:.5px}.hero h1{text-shadow:3px 3px 0 #ff4f8b}
.card{border:3px solid #ffd23f;box-shadow:4px 4px 0 #ff4f8b}.hud{display:flex;justify-content:center;gap:16px;font-weight:700;margin:8px}
.srow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;max-width:480px;margin:8px auto}.pile{position:relative;aspect-ratio:5/7;border:1px dashed #556;border-radius:6px;color:#889;display:flex;align-items:center;justify-content:center}
.pile.tab{aspect-ratio:auto;align-items:flex-start;border:0}.sc{position:absolute;left:0;right:0;aspect-ratio:5/7;background:#fffbe9;color:#222;border-radius:6px;border:1px solid #999;font-weight:800;font-size:.85rem;padding:2px 4px;text-align:left;cursor:pointer}
.pile:not(.tab) .sc{top:0}.sc.red{color:#d1203d}.sc.back{background:repeating-linear-gradient(45deg,#ff4f8b 0 6px,#ffd23f 6px 12px);border-color:#fff}.sc.sel{outline:3px solid #3fc1ff}
/* v1.1 */
#cookie{position:static;padding:6px 10px;font-size:.8rem;gap:6px}#cookie button{padding:5px 10px}
header{padding:8px 12px}main{padding:8px}
.hero{position:relative;padding:0;border-radius:18px;overflow:hidden;margin-bottom:14px}.hero img{width:100%;height:auto;display:block}
.hero .cta{position:absolute;inset:auto 0 0 0;padding:14px;background:linear-gradient(transparent,#1a1433ee);text-align:center}.hero h1{font-size:1.7rem;margin:0 0 8px}
.btn{box-shadow:0 4px 0 #b02a5c;transition:transform .1s}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 #b02a5c}.btn.big{font-size:1.3rem;padding:14px 40px;animation:pulse 1.6s infinite}
@keyframes pulse{50%{transform:scale(1.06)}}
.grid{grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:700px){.grid{grid-template-columns:repeat(3,1fr)}}
.card{padding:0;overflow:hidden;border-width:2px}.card img{border-radius:0;aspect-ratio:4/3;object-fit:cover}.card h3{margin:6px 8px 8px;font-size:1rem;text-align:center}
.game h1{font-size:1.1rem;margin:4px 0}.hud{gap:12px;margin:4px;white-space:nowrap;font-size:.95rem;flex-wrap:nowrap}.hud button{padding:6px 12px;font-size:.85rem;box-shadow:none}
.seo{font-size:.85rem;color:#aab;margin-top:28px}
.shake{animation:sh .35s}@keyframes sh{20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
.fxt{position:fixed;transform:translate(-50%,-50%);font-weight:900;font-size:1.4rem;color:#ffd23f;text-shadow:2px 2px 0 #ff4f8b;pointer-events:none;z-index:31;animation:up .9s forwards}@keyframes up{to{transform:translate(-50%,-160%);opacity:0}}
.srow{max-width:100%;gap:3px}.sc{font-size:clamp(.7rem,3.6vw,1.1rem);padding:1px 3px}
.w-c{width:min(15vw,58px);height:min(15vw,58px)}.kb{margin:6px auto}.kb button{padding:14px 0;font-size:1rem}
.w-row.shake{animation:sh .35s}
.panel{background:#251d4a;border:3px solid #ffd23f;border-radius:18px;padding:16px;margin:10px auto;max-width:360px}.stars{font-size:2.4rem;letter-spacing:4px}
.map{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;max-width:360px;margin:10px auto}.map a,.map span{aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:900;text-decoration:none;color:#fff;background:linear-gradient(#ff7aa8,#ff4f8b);box-shadow:0 4px 0 #b02a5c}.map span{background:#3a3c70;box-shadow:none;color:#889}.map small{font-size:.6rem}
.bubwrap{background:url(../img/bg-burbujas.webp) center/cover;border-radius:12px;display:inline-block}
.ws{display:grid;gap:2px;max-width:420px;margin:6px auto;touch-action:none;user-select:none}.ws div{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#fffbe9;color:#222;font-weight:800;border-radius:5px;font-size:clamp(.8rem,4.5vw,1.3rem)}
.ws .on{background:#3fc1ff;color:#fff}.ws .f{background:#5ee07a;color:#fff}.wl{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:6px}.wl span{background:#3a3c70;padding:2px 10px;border-radius:999px;font-size:.85rem}.wl .f{text-decoration:line-through;opacity:.5}
[hidden]{display:none!important}
.bubwrap canvas{background:transparent}

/* v2 — older-player UX + juice + audio */
html{font-size:18px}body{font-size:1rem;line-height:1.55;color:#f7f5ff}
.btn{min-height:48px;min-width:48px;font-size:1.15rem;padding:14px 28px}
.btn.big{font-size:1.35rem;padding:16px 44px}
.hud{font-size:1.05rem;gap:14px;flex-wrap:wrap;align-items:center}
.hud button,.hud .btn{min-height:48px;padding:12px 16px;font-size:1rem}
.card h3{font-size:1.15rem;margin:10px 8px 12px}
.kb button{min-height:48px;font-size:1.1rem;padding:14px 0}
.w-c{width:min(16vw,62px);height:min(16vw,62px);font-size:1.6rem}
.sc{font-size:clamp(.95rem,4vw,1.25rem);min-height:48px}
.ws div{font-size:clamp(1.05rem,5.2vw,1.45rem);min-height:48px}
.map a,.map span{font-size:1.1rem;min-height:56px}
.wl span{font-size:1rem;padding:6px 14px;min-height:40px;display:inline-flex;align-items:center}
#yp-mute{background:#2a2150;border:2px solid #ffd23f;border-radius:999px;color:#fff;font-size:1.2rem;width:48px;height:48px;cursor:pointer;margin-left:8px;flex-shrink:0}
.ontip{background:#2e2558;border:2px solid #3fc1ff;border-radius:14px;padding:12px 14px;margin:8px auto;max-width:420px;font-size:1.05rem;text-align:left}
.ontip .btn{margin-top:8px}
.fxcombo{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%);font-weight:900;font-size:clamp(1.6rem,7vw,2.6rem);color:#fff;text-shadow:0 0 12px #ff4f8b,3px 3px 0 #ff4f8b;pointer-events:none;z-index:40;animation:comboPop .95s forwards}
@keyframes comboPop{0%{transform:translate(-50%,-50%) scale(.6);opacity:0}20%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}100%{transform:translate(-50%,-80%) scale(1);opacity:0}}
.winpanel{animation:panelIn .35s ease-out}@keyframes panelIn{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}
.streakbar{background:#251d4a;border:2px solid #ffd23f;border-radius:14px;padding:12px 16px;margin:0 0 14px;text-align:center;font-size:1.05rem}
.streakbar a{font-weight:700}
.grid.six{grid-template-columns:repeat(2,1fr)}@media(min-width:700px){.grid.six{grid-template-columns:repeat(3,1fr)}}
.hintbtn{margin:6px}
.sopa-hint{opacity:.85}
header{gap:8px;flex-wrap:wrap}
.logo{font-size:1.5rem}




.dpad{display:grid;grid-template-columns:72px 72px 72px;grid-template-rows:72px 72px 72px;gap:10px;justify-content:center;align-content:center;margin:16px auto 12px;max-width:248px;opacity:.9;touch-action:manipulation;-webkit-user-select:none;user-select:none}
.dpad button{width:72px;height:72px;min-width:72px;min-height:72px;font-size:1.85rem;border:2px solid rgba(255,255,255,.28);border-radius:18px;background:rgba(58,60,122,.78);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 4px 0 rgba(0,0,0,.35);-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.dpad button:active{transform:translateY(2px);box-shadow:0 1px 0 rgba(0,0,0,.35);background:rgba(255,79,139,.85)}
.dpad .u{grid-column:2;grid-row:1}.dpad .l{grid-column:1;grid-row:2}.dpad .r{grid-column:3;grid-row:2}.dpad .dwn{grid-column:2;grid-row:3}

/* Timer tension pulse */
#lvl.tick-warn{color:#ff3b5c!important;text-shadow:0 0 8px #ff3b5c88;animation:tickPulse .35s ease}
@keyframes tickPulse{0%{transform:scale(1)}40%{transform:scale(1.12)}100%{transform:scale(1)}}
.hud #lvl{display:inline-block;transition:color .15s}
