@font-face{font-family:"Sari Display";src:url(assets/InterDisplay-Black.woff) format("woff");font-weight:900;font-display:swap}
@font-face{font-family:"Sari Display";src:url(assets/InterDisplay-ExtraBold.woff) format("woff");font-weight:800;font-display:swap}
@font-face{font-family:"Sari Text";src:url(assets/Inter-Medium.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"Sari Text";src:url(assets/Inter-SemiBold.woff) format("woff");font-weight:600;font-display:swap}

:root{
  --blue:#1688B4;--yellow:#E3BB32;--orange:#E17B46;--green:#77A56B;--red:#D15B63;--violet:#8174B3;--grey:#8B929B;
  --bg:#111821;--bg2:#172231;--panel:#1e2b3b;--panel2:#243448;--line:#2f4259;--ink:#f4f7fa;--muted:#a3b0bf;
  --display:"Sari Display",system-ui,sans-serif;--text:"Sari Text",system-ui,sans-serif;
  color-scheme:dark;
}
:root.light{--bg:#e9ecef;--bg2:#f4f6f8;--panel:#ffffff;--panel2:#f0f2f5;--line:#d4d9df;--ink:#1d2630;--muted:#5c6876;color-scheme:light}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--text);font-weight:500;-webkit-tap-highlight-color:transparent}
body{background:radial-gradient(120% 70% at 85% -10%,color-mix(in srgb,var(--blue) 26%,transparent),transparent 60%),radial-gradient(90% 60% at -10% 110%,color-mix(in srgb,var(--green) 20%,transparent),transparent 60%),var(--bg);background-attachment:fixed}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
button:focus-visible,input:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
#stage:focus{outline:none}
button,canvas{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
a{color:inherit}
#app{min-height:100%;display:flex;flex-direction:column}
.screen{display:none;flex:1}
.screen.active{display:flex}
[hidden]{display:none!important}

/* ---------- inicio ---------- */
#home{flex-direction:column;align-items:center}
.home-art{width:100%;max-width:560px;aspect-ratio:1/.82;overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(#000 62%,transparent);mask-image:linear-gradient(#000 62%,transparent)}
.home-art img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;display:block;animation:art 18s ease-in-out infinite alternate}
@keyframes art{to{transform:scale(1.07) translateY(-2%)}}
.home-body{width:100%;max-width:560px;padding:0 20px 28px;margin-top:-92px;position:relative}
.eyebrow{margin:0;font:800 12px/1 var(--display);letter-spacing:.2em;color:var(--yellow)}
.logo{margin:6px 0 0;font:900 clamp(56px,16vw,84px)/.9 var(--display);letter-spacing:-.035em}
.logo-b{color:var(--green)}
.tagline{margin:10px 0 0;color:var(--muted);font-size:18px}
.continue{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:20px;padding:14px 18px;border-radius:16px;background:var(--green);color:#0f1a10;font:800 17px var(--display)}
.continue small{font:600 13px var(--text);opacity:.8}
.ask{margin:26px 0 12px;font:800 15px var(--display);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.play-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.play-card{position:relative;text-align:left;padding:16px 14px 14px;min-height:118px;border-radius:20px;background:var(--c);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;box-shadow:0 6px 0 color-mix(in srgb,var(--c) 55%,#000),0 14px 30px #0005;transition:transform .12s,box-shadow .12s;overflow:hidden}
.play-card:before{content:"";position:absolute;right:-16px;top:-16px;width:64px;height:64px;border-radius:16px;background:#ffffff26;transform:rotate(18deg)}
.play-card:active{transform:translateY(4px);box-shadow:0 2px 0 color-mix(in srgb,var(--c) 55%,#000),0 6px 14px #0004}
.play-card b{font:900 19px/1.05 var(--display)}
.play-card small{font-size:12.5px;opacity:.9;line-height:1.25}
.c-blue{--c:var(--blue)}.c-orange{--c:var(--orange)}.c-violet{--c:var(--violet)}
.mode-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.mode-pick button{text-align:left;padding:12px 14px;border-radius:16px;background:var(--panel);border:2px solid var(--line);display:flex;flex-direction:column;gap:3px}
.mode-pick b{font:800 16px var(--display)}
.mode-pick small{font-size:12.5px;color:var(--muted);line-height:1.3}
.mode-pick [aria-checked=true]{border-color:var(--green);background:color-mix(in srgb,var(--green) 16%,var(--panel))}
.mode-pick [data-mode=classic][aria-checked=true]{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 16%,var(--panel))}
.home-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chip{padding:10px 14px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-weight:600;font-size:14px}
.foot{margin:22px 0 0;color:var(--muted);font-size:12.5px;text-align:center}
@media (max-width:420px){.play-grid{grid-template-columns:1fr}.play-card{min-height:0;flex-direction:row;align-items:baseline;justify-content:space-between;padding:16px}.play-card small{text-align:right}.home-body{margin-top:-70px}}
@media (min-width:980px) and (min-aspect-ratio:4/3){
  #home{flex-direction:row;justify-content:center;align-items:center;gap:40px;padding:30px}
  .home-art{max-width:600px;aspect-ratio:1;border-radius:32px;-webkit-mask-image:none;mask-image:none;box-shadow:0 30px 80px #0007}
  .home-body{margin-top:0;max-width:520px}
}

/* ---------- partida ---------- */
#game{flex-direction:column;align-items:center;padding:max(10px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom));height:100dvh;overflow:hidden}
.game-top{width:100%;max-width:900px;display:flex;align-items:center;gap:10px}
.icon-btn{width:44px;height:44px;flex:none;border-radius:14px;background:var(--panel);border:1px solid var(--line);font-size:20px;display:grid;place-items:center}
.icon-btn[aria-pressed=false]{opacity:.45}
.scoreboard{flex:1;display:flex;gap:8px;justify-content:center;min-width:0}
.score{flex:1;max-width:260px;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 14px;border-radius:14px;background:var(--panel);border:2px solid var(--line);transition:background .25s,border-color .25s,transform .25s}
.score .who{font:800 14px var(--display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.score .pts{font:900 24px var(--display);font-variant-numeric:tabular-nums}
.score small{display:block;font-size:11px;color:var(--muted);font-weight:600}
.score.p0{--pc:var(--blue)}.score.p1{--pc:var(--orange)}
.score.on{border-color:var(--pc);background:color-mix(in srgb,var(--pc) 22%,var(--panel));transform:translateY(-1px)}
.score.on .who{color:var(--ink)}
.score .who i{font-style:normal;color:var(--pc)}
.score.away{opacity:.55}
.score.duo{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;padding:5px 12px}
.score.duo .who{font-size:12.5px;max-width:100%;color:var(--muted)}
.score.duo .pts{font-size:22px;line-height:1.05}
.game-info{width:100%;max-width:900px;display:flex;justify-content:space-between;color:var(--muted);font-size:13px;font-weight:600;padding:8px 4px 0}
.game-info b{color:var(--ink)}
.stage-wrap{position:relative;flex:1;width:100%;min-height:0;display:grid;place-items:start center;padding-top:6px}
@media (min-aspect-ratio:1/1){.stage-wrap{place-items:center}}
#stage{display:block;touch-action:none;border-radius:20px}
.toast{position:absolute;left:50%;top:10px;transform:translate(-50%,-8px);opacity:0;pointer-events:none;padding:9px 16px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-weight:600;font-size:14px;transition:.25s;box-shadow:0 10px 30px #0006;width:max-content;max-width:calc(100% - 24px);text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
.hint{margin:6px 0 0;color:var(--muted);font-size:12.5px;text-align:center}

/* ---------- hojas ---------- */
.sheet{position:fixed;inset:0;z-index:20;display:grid;place-items:end center;background:#05080cb3;backdrop-filter:blur(4px);animation:fade .2s}
@keyframes fade{from{opacity:0}}
.sheet-card{position:relative;width:min(560px,100%);max-height:92dvh;overflow:auto;background:var(--bg2);border:1px solid var(--line);border-radius:26px 26px 0 0;padding:26px 20px max(22px,env(safe-area-inset-bottom));animation:up .28s cubic-bezier(.2,.9,.3,1.2)}
@media (min-width:640px){.sheet{place-items:center}.sheet-card{border-radius:26px}}
@keyframes up{from{transform:translateY(40px);opacity:.4}}
.sheet-x{position:absolute;right:14px;top:14px;width:38px;height:38px;border-radius:12px;background:var(--panel);font-size:15px}
.sheet h2{margin:0 0 6px;font:900 30px/1.05 var(--display);letter-spacing:-.02em;padding-right:40px}
.sheet p{color:var(--muted);line-height:1.45;margin:8px 0}
.sheet .lead{font-size:16px}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:15px 18px;border-radius:16px;font:800 17px var(--display);background:var(--panel);border:1px solid var(--line);margin-top:10px}
.btn.primary{background:var(--green);color:#0f1a10;border:0;box-shadow:0 5px 0 color-mix(in srgb,var(--green) 55%,#000)}
.btn.blue{background:var(--blue);color:#fff;border:0;box-shadow:0 5px 0 color-mix(in srgb,var(--blue) 55%,#000)}
.btn.violet{background:var(--violet);color:#fff;border:0;box-shadow:0 5px 0 color-mix(in srgb,var(--violet) 55%,#000)}
.btn:active{transform:translateY(3px);box-shadow:none}
.row{display:flex;gap:10px}.row>*{flex:1}
label.field{display:block;margin-top:14px;font-weight:600;font-size:14px;color:var(--muted)}
.field input{display:block;width:100%;margin-top:6px;padding:14px 16px;border-radius:14px;border:2px solid var(--line);background:var(--panel);color:var(--ink);font:700 18px var(--display);text-transform:none}
.field input.code{letter-spacing:.3em;text-transform:uppercase;text-align:center;font-size:26px}
.room-code{margin:14px 0 6px;padding:18px;border-radius:20px;background:var(--panel);border:2px dashed var(--violet);text-align:center;font:900 46px/1 var(--display);letter-spacing:.22em;color:var(--ink)}
.wait{display:flex;align-items:center;gap:10px;justify-content:center;color:var(--muted);font-weight:600;margin-top:12px}
.dots{display:inline-flex;gap:4px}.dots i{width:8px;height:8px;border-radius:3px;background:var(--violet);animation:dot 1s infinite}.dots i:nth-child(2){animation-delay:.15s;background:var(--yellow)}.dots i:nth-child(3){animation-delay:.3s;background:var(--green)}
@keyframes dot{50%{transform:translateY(-6px)}}
.help-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px}
.help-list li{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:16px;background:var(--panel)}
.help-list .ico{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font:900 16px var(--display);color:#fff}
.help-list b{display:block;font:800 16px var(--display);margin-bottom:2px}
.help-list span{color:var(--muted);font-size:14px;line-height:1.4}
.shapes{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.shapes canvas{background:var(--panel);border-radius:10px}
.big-score{font:900 64px/1 var(--display);margin:6px 0;font-variant-numeric:tabular-nums}
.badge{display:inline-block;padding:6px 12px;border-radius:999px;background:var(--yellow);color:#2b2105;font:800 13px var(--display);letter-spacing:.04em}
.records{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px;counter-reset:r}
.records li{display:flex;justify-content:space-between;padding:10px 14px;border-radius:12px;background:var(--panel);counter-increment:r}
.records li:before{content:counter(r);font:900 15px var(--display);color:var(--muted);width:24px}
.records li span{flex:1}
.records b{font:800 16px var(--display);font-variant-numeric:tabular-nums}
.tabs{display:flex;gap:6px;margin-top:10px}
.tabs button{flex:1;padding:10px;border-radius:12px;background:var(--panel);font-weight:600}
.tabs [aria-selected=true]{background:var(--green);color:#0f1a10}
.result-row{display:flex;gap:10px;margin:14px 0 4px}
.result-row div{flex:1;padding:12px;border-radius:16px;background:var(--panel);border:2px solid var(--line)}
.result-row div.win{border-color:var(--yellow)}
.result-row small{display:block;color:var(--muted);font-weight:600}
.result-row b{font:900 30px var(--display)}
.muted{color:var(--muted)}

/* cuenta */
.chip.acc{border-color:var(--green);color:var(--green)}
.chip.acc.on{background:color-mix(in srgb,var(--green) 18%,var(--panel));color:var(--ink)}
.pw{position:relative;display:block}
.pw input{padding-right:54px}
.eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);margin-top:3px;width:42px;height:42px;border-radius:10px;font-size:18px;background:transparent}
.btn.danger{background:var(--red);color:#fff;border:0;box-shadow:0 5px 0 color-mix(in srgb,var(--red) 55%,#000)}
.btn.link{background:none;border:0;box-shadow:none;color:var(--muted);font:600 15px var(--text);text-decoration:underline;padding:10px}
.btn.link.inline{display:inline;width:auto;padding:0;margin:0;color:var(--green);font-size:inherit}
.btn:disabled{opacity:.6;cursor:wait}
