@font-face{font-family:Brush;src:url(assets/fonts/brush.woff2) format('woff2');font-display:swap}
@font-face{font-family:Marker;src:url(assets/fonts/marker.woff2) format('woff2');font-display:swap}
@font-face{font-family:Archivo;src:url(/assets/fonts/archivo.woff2) format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:Anton;src:url(/assets/fonts/anton.woff2) format('woff2');font-display:swap}
:root{
 --bg:#0D0D0C;--surface:#161615;--surface-2:#201F1D;--line:#34322e;--ink:#EFECE6;--muted:#ABA69D;
 --red:#E3191B;--red-press:#C3110F;--yellow:#FFC72C;--gold:#E8AE1B;--blue:#2E8BFF;--wa:#1FAF5A;
 --ease:cubic-bezier(.23,1,.32,1);--ease-io:cubic-bezier(.77,0,.175,1);--ease-drawer:cubic-bezier(.32,.72,0,1);
 --f:Archivo,'Helvetica Neue',Arial,sans-serif;--num:Anton,Archivo,sans-serif;
 --safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px)
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--bg);color:var(--ink);font:400 16px/1.45 var(--f);overflow:hidden;overscroll-behavior:none}
::selection{background:var(--red);color:#fff}
button,input{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
img{display:block;-webkit-user-drag:none;user-select:none;pointer-events:none}
svg{width:22px;height:22px;flex:none}
:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
/* iOS: sin menú de imagen, selección ni zoom en el área de juego y controles */
#stage,#stage *,#touch,#touch *,.hud-btn,.pl-btn,.pl-btn *,.btn,.lnk,.av{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent}
#stage,#touch,.hud-btn,.pl-btn{touch-action:none}

#app{position:fixed;inset:0;display:flex;flex-direction:column}
#stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#0b0b0a}
#cv{display:block;width:100%;height:100%}
/* En menús, el juego corre de fondo atenuado */
#app.is-menu #cv{filter:brightness(.42) saturate(.9);transform:scale(1.03);transition:filter 420ms var(--ease),transform 600ms var(--ease)}
#cv{transition:filter 320ms var(--ease),transform 420ms var(--ease)}

/* ---------- HUD ---------- */
#hud{position:absolute;inset:0;pointer-events:none;padding:calc(12px + var(--safe-t)) 14px 0;opacity:0;transition:opacity 220ms var(--ease)}
#app.is-play #hud{opacity:1}
#hud>*{pointer-events:auto}
.hud-btn{position:absolute;top:calc(12px + var(--safe-t));width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:rgba(13,13,12,.82);border:2px solid rgba(239,236,230,.9);box-shadow:0 6px 16px -6px rgba(0,0,0,.6);transition:transform 160ms var(--ease),background-color 160ms var(--ease)}
.hud-btn:active{transform:scale(.94)}
#btnPause{left:14px}
.hearts{position:absolute;left:132px;top:calc(18px + var(--safe-t));display:flex;gap:4px}
.hearts img{width:34px;height:auto;transition:transform 240ms var(--ease),opacity 240ms var(--ease),filter 240ms var(--ease)}
.hearts img.lost{opacity:.35;filter:grayscale(1) brightness(.6);transform:scale(.82)}
.hud-r{position:absolute;right:14px;top:calc(12px + var(--safe-t));display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.chip{display:flex;align-items:center;gap:10px;background:rgba(13,13,12,.86);border:2px solid var(--gold);border-radius:12px;padding:6px 14px;box-shadow:0 8px 20px -10px rgba(0,0,0,.7)}
.chip.pts span{font:400 15px/1 Marker;color:var(--yellow)}
.chip.pts b{font:400 30px/1 var(--num);letter-spacing:.02em;font-variant-numeric:tabular-nums;min-width:3ch;text-align:right}
.chip.pts.bump b{animation:bump 260ms var(--ease)}
@keyframes bump{40%{transform:scale(1.14);color:var(--yellow)}}
.chip.inv{border-color:rgba(239,236,230,.35);padding:4px 10px;gap:12px}
.chip.inv .it{display:flex;align-items:center;gap:4px}
.chip.inv img{height:26px;width:auto}
.chip.inv b{font:400 18px/1 var(--num);font-variant-numeric:tabular-nums}
.pw{position:absolute;left:14px;top:calc(72px + var(--safe-t));display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border-radius:14px;background:rgba(13,13,12,.88);border:2px solid var(--gold);overflow:hidden;transform-origin:left center;animation:pwIn 280ms var(--ease)}
.pw.shield{border-color:var(--blue)}
.pw img{height:46px;width:auto}
.pw small{display:block;font:400 13px/1.1 Marker;color:var(--yellow)}
.pw.shield small{color:#8cc4ff}
.pw b{font:400 24px/1 var(--num);font-variant-numeric:tabular-nums}
.pw i{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--yellow);transform-origin:left;transform:scaleX(var(--p,1))}
.pw.shield i{background:var(--blue)}
@keyframes pwIn{from{opacity:0;transform:translateY(-6px) scale(.96)}}
.toast-g{position:absolute;left:50%;top:34%;transform:translate(-50%,0);font:400 clamp(28px,5vw,52px)/1 Brush;color:var(--yellow);text-shadow:0 3px 0 #000,0 0 18px rgba(0,0,0,.6);opacity:0;pointer-events:none;white-space:nowrap}
.toast-g.on{animation:tg 900ms var(--ease) forwards}
@keyframes tg{0%{opacity:0;transform:translate(-50%,10px) scale(.96)}18%{opacity:1;transform:translate(-50%,0) scale(1)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-14px)}}

/* ---------- Controles táctiles ---------- */
#touch{display:none;gap:14px;justify-content:space-between;padding:12px 14px calc(14px + var(--safe-b));background:var(--bg)}
body.touch #touch{display:flex}
#app:not(.is-play) #touch{visibility:hidden}
.tbtn{flex:1;max-width:220px;height:84px;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--surface-2);border:2px solid var(--line);font:400 16px/1 Marker;color:var(--ink);transition:transform 120ms var(--ease),background-color 120ms var(--ease),border-color 120ms var(--ease)}
.tbtn svg{width:34px;height:34px}
.tbtn[data-k=jump]{background:var(--red);border-color:var(--red)}
.tbtn.on{transform:scale(.95);border-color:var(--yellow)}

/* ---------- Pantallas ---------- */
.scr{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:calc(16px + var(--safe-t)) 16px calc(16px + var(--safe-b));overflow:auto;opacity:1;transition:opacity 260ms var(--ease),transform 260ms var(--ease),filter 260ms var(--ease)}
.scr[hidden]{display:flex!important;opacity:0;transform:translateY(10px);filter:blur(4px);pointer-events:none;visibility:hidden;transition:opacity 180ms var(--ease),transform 180ms var(--ease),filter 180ms var(--ease),visibility 0s 180ms}
.scr.dim{background:rgba(13,13,12,.62)}
.panel{width:min(560px,100%);background:rgba(22,22,21,.94);border:1px solid var(--line);border-radius:22px;padding:clamp(20px,4vw,34px);box-shadow:0 24px 60px -20px rgba(0,0,0,.8);display:flex;flex-direction:column;gap:16px}
.panel.sm{width:min(400px,100%);text-align:center}
.h-brush{font:400 clamp(34px,6vw,54px)/.95 Brush;letter-spacing:.01em;color:#fff;text-wrap:balance}
.sub{color:var(--muted);font-size:15px;text-wrap:pretty}
.row{display:flex;gap:12px;justify-content:space-between}
.row.wrap{flex-wrap:wrap}.row.wrap>.btn{flex:1 1 180px}
.row.tight{justify-content:center;gap:18px}

/* Botones (misma familia que el sitio) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 24px;border-radius:12px;background:var(--red);color:#fff;font:800 16px/1 var(--f);font-stretch:112%;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:transform 160ms var(--ease),background-color 160ms var(--ease),box-shadow 160ms var(--ease)}
.btn:hover{background:var(--red-press)}
.btn:active{transform:scale(.97)}
.btn.ghost{background:var(--surface-2);color:var(--ink)}.btn.ghost:hover{background:#2b2a27}
.btn.ink{background:var(--ink);color:var(--bg)}.btn.ink:hover{background:#fff}
.btn.wa{background:var(--wa)}.btn.wa:hover{background:#178f49}
.btn.sm{min-height:44px;padding:0 16px;font-size:14px}
.btn.big{min-height:64px;padding:0 34px;font:400 26px/1 Marker;text-transform:none;letter-spacing:.01em;box-shadow:0 14px 30px -12px rgba(227,25,27,.65)}
.btn[disabled]{opacity:.45;pointer-events:none}
.btn.loading{pointer-events:none;opacity:.8}
.btn.loading svg{animation:spin 700ms linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.lnk{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-weight:700;font-size:15px;text-decoration:none;padding:10px 4px;border-bottom:1px solid transparent;transition:color 160ms var(--ease),border-color 160ms var(--ease)}
.lnk:hover{color:var(--yellow);border-color:var(--yellow)}
.lnk small{color:var(--muted);font-weight:500;margin-left:2px}
.lnk svg{width:20px;height:20px;color:var(--yellow)}
.ulnk{color:var(--ink);text-decoration:underline;text-underline-offset:3px;font-weight:700}

/* Bienvenida */
#scrWelcome{background:radial-gradient(120% 90% at 50% 40%,rgba(13,13,12,.15),rgba(13,13,12,.75))}
.w-in{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;max-width:760px}
.w-in .logo{width:clamp(200px,32vw,330px);height:auto}
.brand{display:flex;flex-direction:column;align-items:center;line-height:.85}
.brand .b1{font:400 clamp(64px,12vw,138px)/.86 Brush;color:#fff;text-shadow:0 5px 0 #000,0 14px 34px rgba(0,0,0,.6);transform:rotate(-3deg)}
.brand .b2{margin-top:6px;font:400 clamp(20px,3.2vw,32px)/1 Marker;color:#fff;background:var(--red);padding:8px 22px 6px;transform:rotate(-3deg) skewX(-6deg);box-shadow:0 10px 22px -10px rgba(0,0,0,.8)}
.lede{font:800 clamp(19px,2.6vw,26px)/1.2 var(--f);font-stretch:108%;max-width:24ch;text-wrap:balance;margin-top:8px}
.w-links{display:flex;gap:22px;flex-wrap:wrap;justify-content:center}
.w-items{list-style:none;display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:6px}
.w-items li{display:flex;align-items:center;gap:8px;background:rgba(13,13,12,.75);border:1px solid var(--line);border-radius:12px;padding:6px 12px 6px 6px}
.w-items img{height:34px;width:auto}
.w-items b{font:400 18px/1 var(--num);color:var(--yellow)}
.w-items li.blue b{color:#8cc4ff}
.w-items span{font-size:13px;color:var(--muted)}
.home-lnk{position:absolute;left:16px;top:calc(14px + var(--safe-t));display:inline-flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;font-weight:700;font-size:14px;padding:10px 14px;border-radius:999px;background:rgba(13,13,12,.7);border:1px solid var(--line);transition:background-color 160ms var(--ease)}
.home-lnk:hover{background:var(--surface-2)}
.home-lnk svg{width:18px;height:18px}

/* Avatar */
.avs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.av{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 10px 12px;border-radius:18px;background:var(--surface-2);border:2px solid var(--line);transition:transform 160ms var(--ease),border-color 200ms var(--ease),background-color 200ms var(--ease)}
.av img{height:clamp(170px,30vh,250px);width:auto;transition:transform 260ms var(--ease)}
.av span{font:400 20px/1 Marker;color:var(--muted);transition:color 200ms var(--ease)}
.av:active{transform:scale(.98)}
.av.on{border-color:var(--yellow);background:linear-gradient(180deg,#2a2412,#1c1a15)}
.av.on img{transform:translateY(-4px)}
.av.on span{color:var(--yellow)}

/* Formulario */
.fld{display:flex;flex-direction:column;gap:6px}
.fld span{font-weight:700;font-size:14px}
.fld input{height:54px;border-radius:12px;border:2px solid var(--line);background:#0f0f0e;padding:0 16px;font-size:18px;caret-color:var(--yellow);transition:border-color 160ms var(--ease)}
.fld input::placeholder{color:#6f6b64}
.fld input:focus{outline:none;border-color:var(--yellow)}
.fld.bad input{border-color:var(--red)}
.err{font-style:normal;font-size:13px;color:#ff6b5e;min-height:1em}
.formerr{font-weight:700;color:#ff6b5e;min-height:0}
.formerr:empty{display:none}
.limit{font-size:14px;color:var(--yellow);font-weight:700}
.fine{font-size:13px;color:var(--muted);text-align:center}

/* Cuenta regresiva */
#count{position:absolute;inset:0;z-index:20;display:grid;place-items:center;pointer-events:none;font:400 clamp(90px,18vw,180px)/1 Brush;color:#fff;text-shadow:0 6px 0 #000}
#count span{animation:cd 620ms var(--ease) forwards}
@keyframes cd{0%{opacity:0;transform:scale(1.25)}25%{opacity:1;transform:scale(1)}80%{opacity:1}100%{opacity:0;transform:scale(.92)}}

/* Game over */
.over{text-align:center;align-items:center}
.score{display:flex;flex-direction:column;align-items:center}
.score b{font:400 clamp(72px,14vw,120px)/.9 var(--num);font-variant-numeric:tabular-nums;color:var(--yellow);text-shadow:0 6px 0 #000}
.score span{font:400 18px/1 Marker;color:var(--muted)}
.rank{font-weight:800;font-size:18px}
.rank b{color:var(--yellow)}
.coupon{width:100%;border:2px dashed var(--yellow);border-radius:16px;padding:14px 16px;background:rgba(255,199,44,.06);display:flex;flex-direction:column;gap:10px}
.coupon p{font-size:15px;text-wrap:balance}
.code{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.code b{font:400 30px/1 var(--num);letter-spacing:.08em;color:#fff;user-select:all}
.btn.copied{background:var(--yellow)}

/* Hojas */
.sheet{position:absolute;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.55);transition:opacity 220ms var(--ease)}
.sheet[hidden]{display:flex!important;opacity:0;pointer-events:none;visibility:hidden;transition:opacity 200ms var(--ease),visibility 0s 200ms}
.sh-in{width:min(620px,100%);max-height:86vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:22px 22px 0 0;padding:22px 22px calc(26px + var(--safe-b));transform:translateY(0);transition:transform 320ms var(--ease-drawer)}
.sheet[hidden] .sh-in{transform:translateY(40px)}
@media (min-width:760px){.sheet{align-items:center}.sh-in{border-radius:22px}}
.sh-in header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.x{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--surface-2);transition:transform 160ms var(--ease)}
.x:active{transform:scale(.94)}
.top{list-style:none;margin-top:12px;display:flex;flex-direction:column;gap:6px}
.top li{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;background:var(--surface-2)}
.top li .p{font:400 22px/1 var(--num);color:var(--muted);text-align:center}
.top li:nth-child(1) .p{color:var(--yellow)}.top li:nth-child(2) .p{color:#d7d7d7}.top li:nth-child(3) .p{color:#d38b4d}
.top li .n{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top li .n small{display:block;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}
.top li .s{font:400 24px/1 var(--num);font-variant-numeric:tabular-nums}
.top li.me{outline:2px solid var(--yellow)}
.top .empty{display:block;text-align:center;color:var(--muted);background:none}
.note{margin-top:12px;font-size:13px}
.rules{margin:14px 0 0 1.2em;display:flex;flex-direction:column;gap:10px;max-width:62ch}
.rules li::marker{font:400 18px Marker;color:var(--yellow)}

/* Responsivo */
@media (max-width:640px){
 .hud-btn{width:42px;height:42px}
 .hearts{left:112px;top:calc(19px + var(--safe-t))}.hearts img{width:26px}
 .chip{padding:4px 10px}.chip.pts b{font-size:22px}.chip.pts span{font-size:12px}
 .chip.inv img{height:20px}.chip.inv b{font-size:15px}
 .pw{top:calc(62px + var(--safe-t))}.pw img{height:34px}.pw b{font-size:19px}
 .home-lnk span{display:none}
 .w-in{gap:10px}
 .w-items li{padding:4px 10px 4px 4px}.w-items img{height:26px}
}
@media (max-height:520px){.w-in .logo{width:170px}.brand .b1{font-size:62px}.w-items{display:none}}
@media (prefers-reduced-motion:reduce){*{animation-duration:1ms!important;transition-duration:1ms!important}}

/* ---------- Mini reproductor ---------- */
.player{position:absolute;z-index:35;right:16px;bottom:calc(16px + var(--safe-b));transition:transform 320ms var(--ease),opacity 220ms var(--ease)}
.pl-btn{display:flex;align-items:center;gap:12px;padding:8px 18px 8px 8px;border-radius:16px;background:rgba(22,22,21,.92);border:1px solid var(--line);box-shadow:0 14px 34px -14px rgba(0,0,0,.8);text-align:left;transition:transform 160ms var(--ease),border-color 200ms var(--ease),padding 260ms var(--ease),border-radius 260ms var(--ease)}
.pl-btn:active{transform:scale(.97)}
.pl-btn:hover{border-color:#5a564f}
.pl-cover{position:relative;width:56px;height:56px;flex:none;border-radius:10px;overflow:hidden;transition:width 260ms var(--ease),height 260ms var(--ease),border-radius 260ms var(--ease)}
.pl-cover img{width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease),filter 260ms var(--ease)}
.player[data-state=playing] .pl-cover img{animation:plSpin 14s linear infinite}
.player[data-state=paused] .pl-cover img{filter:brightness(.55) saturate(.7)}
@keyframes plSpin{from{transform:rotate(0) scale(1.42)}to{transform:rotate(360deg) scale(1.42)}}
.pl-eq{position:absolute;left:6px;bottom:6px;display:flex;align-items:flex-end;gap:2px;height:14px;opacity:0;transition:opacity 200ms var(--ease)}
.pl-eq i{width:3px;height:100%;background:var(--yellow);border-radius:1px;transform-origin:bottom;transform:scaleY(.3)}
.player[data-state=playing] .pl-eq{opacity:1}
.player[data-state=playing] .pl-eq i{animation:eq 900ms var(--ease-io) infinite alternate}
.pl-eq i:nth-child(2){animation-delay:-300ms!important}.pl-eq i:nth-child(3){animation-delay:-600ms!important}.pl-eq i:nth-child(4){animation-delay:-150ms!important}
@keyframes eq{0%{transform:scaleY(.25)}100%{transform:scaleY(1)}}
.pl-ic{position:absolute;inset:0;display:grid;place-items:center;color:#fff;opacity:0;transition:opacity 200ms var(--ease)}
.pl-ic svg{width:26px;height:26px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.7))}
.pl-ic .ic-pause{display:none}
.player[data-state=paused] .pl-ic{opacity:1}
.pl-btn:hover .pl-ic,.pl-btn:focus-visible .pl-ic{opacity:1}
.player[data-state=playing] .pl-ic .ic-play{display:none}.player[data-state=playing] .pl-ic .ic-pause{display:block}
.pl-txt{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.pl-txt b{font:400 20px/1 Marker;color:#fff;white-space:nowrap}
.pl-txt small{font-size:13px;color:var(--muted);margin-top:4px;white-space:nowrap}
/* compacto: durante el juego y pasos del registro, solo la miniatura con su estado */
#app:not(.scr-welcome) .pl-btn{padding:4px;border-radius:14px;gap:0}
#app:not(.scr-welcome) .pl-txt{display:none}
#app:not(.scr-welcome) .pl-cover{width:44px;height:44px;border-radius:10px}
#app.is-play .player{right:12px;bottom:12px}
body.touch #app.is-play .player{bottom:calc(122px + var(--safe-b))}
@media (max-width:640px){
 .player{right:12px;bottom:calc(12px + var(--safe-b))}
 .pl-cover{width:46px;height:46px}.pl-txt b{font-size:17px}.pl-btn{padding:6px 14px 6px 6px}
}
@media (prefers-reduced-motion:reduce){.player[data-state=playing] .pl-cover img{animation:none;transform:scale(1)}.player[data-state=playing] .pl-eq i{animation:none;transform:scaleY(.7)}}

/* Retrato táctil: canvas debajo del HUD y controles grandes abajo */
body.touch #stage{align-items:flex-start;padding-top:calc(116px + var(--safe-t))}
@media (orientation:landscape){body.touch #stage{align-items:center;padding-top:0}}
