/* Playverso — Color Code (arcade), tema alinhado ao design system do site */
:root{
  --ink:#16112E; --panel:#221B44; --panel2:#2A2254; --line:rgba(255,255,255,.09);
  --txt:#F4F1FF; --sub:#A79FC9;
  --c0:#9B8CFF; --c1:#FFC24D; --c2:#FF6B5E; --c3:#3DDBB4; --c4:#FF77B0;
  --danger:#FF6B5E;
  --disp:'Bricolage Grotesque','Inter',system-ui,sans-serif;
  --body:'Inter',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
/* dentro do .game-frame padrão do site */
#app{width:100%;max-width:440px;margin:0 auto;display:grid;position:relative;font-family:var(--body);color:var(--txt)}
.screen{grid-area:1/1;display:flex;flex-direction:column;min-height:560px;padding:22px 18px calc(18px + env(safe-area-inset-bottom));
  opacity:0;pointer-events:none;transition:opacity .22s}
.screen.on{opacity:1;pointer-events:auto}
button{font-family:var(--body);cursor:pointer;border:none}
.btn{display:block;width:100%;padding:15px;border-radius:14px;font-size:17px;font-weight:700;letter-spacing:.02em;
  background:var(--txt);color:var(--ink);margin-top:10px;transition:transform .08s}
.btn:active{transform:scale(.97)}
.btn.ghost{background:transparent;color:var(--txt);border:2px solid var(--line)}
.btn.daily{background:linear-gradient(100deg,var(--c0),var(--c4));color:#fff}

/* ---------- HOME ---------- */
#home{justify-content:center;text-align:center}
.logo{font-family:var(--disp);font-weight:800;font-size:44px;line-height:1.02;letter-spacing:.01em}
.logo .row{display:block}
.logo .cc{display:inline-block;transform:translateY(2px)}
.logo-chips{display:flex;justify-content:center;gap:8px;margin:16px 0 6px}
.logo-chips .chip{width:34px;height:34px;border-radius:10px;position:relative;animation:bob 2.6s ease-in-out infinite}
.logo-chips .chip:nth-child(2){animation-delay:.2s}.logo-chips .chip:nth-child(3){animation-delay:.4s}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.tag{color:var(--sub);font-size:14px;margin:6px 0 26px}
.homestats{display:flex;justify-content:center;gap:26px;margin-top:26px;color:var(--sub);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.homestats b{display:block;color:var(--txt);font-size:20px;font-family:var(--body);font-weight:700;letter-spacing:0}

/* ---------- TUTORIAL ---------- */
#tut h2,.over-title,#dailyend h2{font-family:var(--disp);font-weight:800;font-size:26px;margin-bottom:18px}
.tstep{display:flex;gap:14px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);
  border-radius:16px;padding:14px;margin-bottom:12px}
.tstep .n{font-family:var(--disp);font-weight:800;font-size:20px;color:var(--sub);line-height:1.4}
.tstep p{font-size:14.5px;line-height:1.45}
.tstep p b{color:#fff}
.mini{display:flex;gap:6px;margin-top:8px}
.mini .chip{width:26px;height:26px;border-radius:8px}
.spacer{flex:1}

/* ---------- GAME ---------- */
#game{padding-top:14px}
.hud{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.hud .score{font-weight:700;font-size:34px;font-variant-numeric:tabular-nums;line-height:1}
.hud .score small{display:block;font-size:10px;letter-spacing:.14em;color:var(--sub);font-weight:500;margin-bottom:2px}
.combo{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:17px;background:conic-gradient(var(--c1) var(--p,0%),var(--panel2) 0);position:relative}
.combo::before{content:'';position:absolute;inset:4px;border-radius:50%;background:var(--ink)}
.combo span{position:relative;z-index:1}
.combo.hot span{animation:pulse .5s}
@keyframes pulse{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
.pillrow{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--sub)}
.pill{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-weight:500}
.pill b{color:var(--txt)}

/* código — assinatura */
.codewrap{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:10px 12px;margin-bottom:12px}
.codewrap .lbl{font-size:10px;letter-spacing:.22em;color:var(--sub);text-transform:uppercase;margin-bottom:7px;display:flex;justify-content:space-between}
#codeStrip{display:flex;gap:8px;justify-content:center}
.cchip{flex:0 0 auto;width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:19px;color:rgba(0,0,0,.55);opacity:.38;transform:scale(.94);transition:all .12s;position:relative}
.cchip.done{opacity:1;transform:scale(1.06);box-shadow:0 0 0 2.5px #fff,0 0 18px 2px rgba(255,255,255,.35);color:rgba(0,0,0,.8)}
.cchip.next{opacity:.85;transform:scale(1);box-shadow:0 0 0 2px rgba(255,255,255,.45)}
.codewrap.reroll #codeStrip{animation:flip .35s}
@keyframes flip{0%{transform:translateY(0);opacity:1}45%{transform:translateY(-8px);opacity:0}55%{transform:translateY(8px);opacity:0}100%{transform:translateY(0);opacity:1}}

/* tabuleiro */
#boardWrap{position:relative;touch-action:none;user-select:none;-webkit-user-select:none}
#board{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;aspect-ratio:1;
  background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:9px}
.cell{position:relative;border-radius:11px;background:rgba(255,255,255,.035)}
.tile{position:absolute;inset:0;border-radius:11px;display:flex;align-items:center;justify-content:center;
  font-size:clamp(14px,4.6vw,20px);color:rgba(0,0,0,.5);
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.22);animation:spawnIn .18s ease-out}
.tile.sel{box-shadow:inset 0 -3px 0 rgba(0,0,0,.22),0 0 0 3px #fff,0 0 16px 2px rgba(255,255,255,.4);transform:scale(1.08);z-index:2}
.tile.clearing{animation:pop .22s forwards}
@keyframes spawnIn{from{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes pop{40%{transform:scale(1.25)}100%{transform:scale(0);opacity:0}}
#svgLine{position:absolute;inset:0;pointer-events:none;z-index:3}
#board.shake{animation:shake .3s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}50%{transform:translateX(6px)}75%{transform:translateX(-4px)}}
.fx{position:absolute;pointer-events:none;z-index:5;font-weight:700;font-size:19px;color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.6);animation:rise .7s forwards}
@keyframes rise{to{transform:translateY(-46px);opacity:0}}
.spark{position:absolute;width:7px;height:7px;border-radius:2px;pointer-events:none;z-index:4;animation:fly .45s ease-out forwards}
@keyframes fly{to{transform:translate(var(--dx),var(--dy)) rotate(200deg);opacity:0}}

/* medidor */
.meterrow{display:flex;align-items:center;gap:10px;margin-top:12px}
.meter{flex:1;height:9px;border-radius:99px;background:var(--panel2);overflow:hidden}
.meter i{display:block;height:100%;width:0%;background:var(--c3);border-radius:99px;transition:width .25s,background .25s}
.meter.warn i{background:var(--c1)} .meter.crit i{background:var(--danger)}
.meterrow .mtxt{font-size:11px;color:var(--sub);min-width:44px;text-align:right;font-variant-numeric:tabular-nums}
#sndBtn{background:var(--panel);border:1px solid var(--line);color:var(--sub);border-radius:10px;width:34px;height:34px;font-size:15px}

/* ---------- FIM ---------- */
#over,#dailyend{justify-content:center;text-align:center}
.over-title{font-size:32px}
.big-score{font-size:56px;font-weight:700;font-variant-numeric:tabular-nums;margin:8px 0 2px}
.over-sub{color:var(--sub);font-size:14px;margin-bottom:6px}
.recordflag{display:inline-block;background:var(--c1);color:#000;font-weight:700;font-size:12px;
  padding:4px 12px;border-radius:99px;margin:6px 0}
.statgrid{display:flex;justify-content:center;gap:22px;margin:16px 0;color:var(--sub);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.statgrid b{display:block;font-size:19px;color:var(--txt);letter-spacing:0}
.rank{margin:14px 0;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.rank .r{display:flex;justify-content:space-between;padding:9px 14px;font-size:14px;border-bottom:1px solid rgba(255,255,255,.05)}
.rank .r:last-child{border-bottom:none}
.rank .r.me{background:rgba(255,255,255,.09);font-weight:700}
.rank .r span:first-child{color:var(--sub)} .rank .r.me span:first-child{color:var(--txt)}
.toast{position:absolute;left:50%;bottom:110px;transform:translateX(-50%);background:#fff;color:var(--ink);
  padding:9px 18px;border-radius:99px;font-weight:700;font-size:14px;opacity:0;transition:opacity .25s;pointer-events:none;z-index:50}
.toast.on{opacity:1}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}
}
.bg0{background:var(--c0)}.bg1{background:var(--c1)}.bg2{background:var(--c2)}.bg3{background:var(--c3)}.bg4{background:var(--c4)}
.rank .rnote{font-size:11px}

/* moldura no padrão do site, com altura própria do arcade */
.game-frame.cc-arcade{max-width:520px;margin:22px auto;min-height:0;height:auto;align-items:stretch;padding:0;overflow:visible}
.game-frame.cc-arcade .screen{padding:18px 16px}
