:root{--g:#0b5a2e;--g2:#1aa34a;--gold:#ffd24a;--gold2:#e0a400;--ink:#07170d;--red:#e0453a;--cream:#fff8e6}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overflow:hidden;background:#07120b;color:#fff;font-family:Nunito,system-ui,sans-serif;touch-action:manipulation;user-select:none;-webkit-user-select:none}
#c{position:fixed;inset:0;width:100%;height:100%;display:block}
button{font-family:inherit;cursor:pointer}
[hidden]{display:none!important}
.pill{white-space:nowrap;border:1px solid rgba(255,210,74,.5);background:rgba(4,30,15,.78);color:#fff;font-weight:800;font-size:14px;padding:8px 13px;border-radius:999px;backdrop-filter:blur(6px)}
.pill:hover{background:rgba(26,163,74,.6)}
.pill.ic{min-width:40px;padding:8px 10px}
.pill.exit{background:rgba(120,20,15,.75);border-color:rgba(255,150,130,.6)}

/* topo */
#hudTop{position:fixed;left:0;right:0;top:0;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:calc(8px + env(safe-area-inset-top)) 10px 0;z-index:5;pointer-events:none}
#hudTop>*{pointer-events:auto}
#hudTop .tools{display:flex;gap:6px}
#score{display:flex;align-items:stretch;gap:6px;background:linear-gradient(180deg,rgba(6,40,20,.92),rgba(3,22,11,.92));border:2px solid var(--gold2);border-radius:16px;padding:5px 8px;box-shadow:0 6px 20px rgba(0,0,0,.45)}
.sc{display:flex;flex-direction:column;align-items:center;min-width:64px}
.sc b{font-size:11px;letter-spacing:.12em;color:#b8f5cc}.sc.them b{color:#ffe08a}
.sc span{font:28px/1 'Lilita One',sans-serif;color:#fff;text-shadow:0 2px 0 #000}
.sc i{display:flex;gap:2px;margin-top:3px;flex-wrap:wrap;width:62px;justify-content:center}
.sc i u{display:block;width:3px;height:12px;border-radius:2px;background:rgba(255,255,255,.18)}
.sc i u.on{background:linear-gradient(#f05a3a 0 3px,#e6c389 3px);box-shadow:0 0 3px rgba(255,200,120,.6)}
.mid{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:92px}
#stake{font:18px/1 'Lilita One',sans-serif;color:var(--gold);text-shadow:0 2px 0 #000}
#vazas{display:flex;gap:5px;margin:4px 0 2px}
#vazas i{width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.35)}
#vazas i.us{background:var(--g2);border-color:#b8f5cc}#vazas i.them{background:var(--red);border-color:#ffc0b0}#vazas i.tie{background:#999;border-color:#ddd}
#manil{font-size:10.5px;color:#cfe;opacity:.85;max-width:150px;text-align:center;line-height:1.15}
#room{position:fixed;left:10px;top:calc(56px + env(safe-area-inset-top));z-index:5;font-size:12px;font-weight:800;background:rgba(4,30,15,.7);padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.2)}

/* parte de baixo */
#bottom{position:fixed;left:0;right:0;bottom:0;z-index:5;display:flex;flex-direction:column;align-items:center;padding:0 8px calc(8px + env(safe-area-inset-bottom));pointer-events:none}
#bottom>*{pointer-events:auto}
#prompt{font-weight:900;font-size:15px;text-shadow:0 2px 4px #000;margin-bottom:6px;text-align:center;min-height:20px}
#acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:8px}
.act{border:0;border-radius:14px;padding:11px 18px;font:20px/1 'Lilita One',sans-serif;letter-spacing:.03em;color:#fff;box-shadow:0 5px 0 rgba(0,0,0,.45),0 8px 20px rgba(0,0,0,.35);display:none}
.act.show{display:inline-flex;align-items:center;gap:6px}
.act:active{transform:translateY(3px);box-shadow:0 2px 0 rgba(0,0,0,.45)}
.act.truco{background:linear-gradient(180deg,#ffe36b,#e0a400);color:#2a1a00;font-size:24px;padding:12px 26px;border:2px solid #fff3b0;animation:pulse 1.4s infinite}
.act.ok{background:linear-gradient(180deg,#2fd06a,#0e7a3a)}.act.no{background:linear-gradient(180deg,#ff6b55,#b3261a)}.act.raise{background:linear-gradient(180deg,#ffd24a,#c77d00);color:#2a1a00}
.act.cov{background:rgba(4,30,15,.85);font:800 14px Nunito;border:1px solid rgba(255,255,255,.3);padding:9px 12px}
.act.cov input{width:18px;height:18px;accent-color:var(--g2)}
@keyframes pulse{50%{box-shadow:0 5px 0 rgba(0,0,0,.45),0 0 26px rgba(255,220,80,.85)}}
#hand{display:flex;gap:10px;justify-content:center;align-items:flex-end;min-height:120px}
#hand .card{width:clamp(78px,17vw,128px);aspect-ratio:256/400;border-radius:9px;border:0;padding:0;background:none;transition:transform .15s,filter .2s;filter:drop-shadow(0 8px 12px rgba(0,0,0,.6));position:relative}
#hand .card img{width:100%;height:100%;display:block;border-radius:9px}
#hand .card.can:hover,#hand .card.can:focus-visible{transform:translateY(-14px) scale(1.04)}
#hand .card.can{cursor:pointer}
#hand .card.off{filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}
#hand .card.man::after{content:'★ MANILHA';position:absolute;left:50%;top:-11px;transform:translateX(-50%);background:linear-gradient(#ffe36b,#e0a400);color:#2a1a00;font:900 10px Nunito;padding:2px 7px;border-radius:999px;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.5)}
#hand.yourturn .card.can{animation:bob 1.6s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-6px)}}
#partner{display:flex;gap:6px;align-items:center;margin-top:6px;font-weight:800;font-size:12px;background:rgba(4,30,15,.8);padding:5px 9px;border-radius:12px}
#partner img{width:46px;border-radius:4px}
#myBubble{position:fixed;left:50%;bottom:calc(220px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:6;background:var(--cream);color:#123;font:900 20px Nunito;padding:10px 18px;border-radius:22px;border:4px solid var(--g2);box-shadow:0 8px 20px rgba(0,0,0,.4)}
#info{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%);z-index:4;font-weight:900;font-size:15px;text-shadow:0 2px 6px #000;pointer-events:none;text-align:center}

/* faixa grande (TRUCO!) */
#banner{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%) scale(.2);z-index:8;pointer-events:none;opacity:0;font:clamp(64px,16vw,170px)/1 'Lilita One',sans-serif;letter-spacing:.02em;white-space:nowrap;
  background:linear-gradient(180deg,#ffffff 0%,#dfe7ea 38%,#8fa3ad 52%,#f4f8fa 66%,#c9d4da 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:3px #0a3d1f;filter:drop-shadow(0 0 18px #2bff7a) drop-shadow(0 6px 0 #062b15)}
#banner.go{animation:ban 1.7s cubic-bezier(.2,1.6,.4,1) forwards}
#banner.gold{background:linear-gradient(180deg,#fff7c2,#ffd24a 45%,#b77a00 55%,#ffe36b);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 18px #ffcc33) drop-shadow(0 6px 0 #3a2400)}
@keyframes ban{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(-8deg)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.12) rotate(-3deg)}30%{transform:translate(-50%,-50%) scale(1) rotate(-3deg)}80%{opacity:1;transform:translate(-50%,-50%) scale(1.04) rotate(-3deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.3) rotate(-3deg)}}
#toast{position:fixed;left:50%;top:24%;transform:translateX(-50%);z-index:7;background:rgba(4,30,15,.92);border:2px solid var(--gold2);color:#fff;font:900 20px Nunito;padding:10px 20px;border-radius:16px;opacity:0;transition:opacity .3s;pointer-events:none;text-align:center;max-width:90vw}
#toast.show{opacity:1}

/* telas */
.screen{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}
#menu .bgart{position:fixed;inset:0;background:url(../capa-vertical.jpg) center/cover;filter:blur(14px) brightness(.45);transform:scale(1.1)}
#over,#pause{background:rgba(2,12,6,.72);backdrop-filter:blur(4px)}
.panel{position:relative;width:min(440px,100%);background:linear-gradient(180deg,rgba(8,52,26,.93),rgba(3,22,11,.95));border:2px solid rgba(255,210,74,.55);border-radius:24px;padding:20px 20px 16px;box-shadow:0 20px 60px rgba(0,0,0,.6);text-align:center;max-height:calc(100vh - 32px);overflow:auto}
.panel.small{width:min(360px,100%)}
.logo{margin:-4px 0 10px;position:relative}
.logo h1{margin:0;font:clamp(64px,18vw,96px)/.95 'Lilita One',sans-serif;background:linear-gradient(180deg,#fff 0%,#e3eaee 40%,#7d929d 53%,#f4f8fa 68%,#c3cfd6 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:2px #083d1c;filter:drop-shadow(0 0 14px #25e070) drop-shadow(0 5px 0 #052a13)}
.logo .suits{display:block;font-size:22px;letter-spacing:.3em;color:var(--gold);text-shadow:0 0 10px rgba(255,210,74,.7)}
.logo small{display:block;letter-spacing:.5em;font-weight:900;color:var(--gold);font-size:12px;margin-top:4px}
.page{display:flex;flex-direction:column;gap:10px}
.page h2{margin:2px 0 4px;font:28px 'Lilita One',sans-serif;color:var(--gold)}
.big{border:0;border-radius:16px;padding:14px 16px;font:20px 'Lilita One',sans-serif;letter-spacing:.02em;color:#fff;background:#2b3a32;box-shadow:0 5px 0 rgba(0,0,0,.5)}
.big.gold{background:linear-gradient(180deg,#ffe36b,#e0a400);color:#2a1a00}
.big.green{background:linear-gradient(180deg,#2fd06a,#0e7a3a)}
.big:active{transform:translateY(3px);box-shadow:0 2px 0 rgba(0,0,0,.5)}
.row{display:flex;gap:8px}.row>*{flex:1}
button.mid{border:1px solid rgba(255,210,74,.6);background:rgba(255,255,255,.08);color:#fff;border-radius:14px;padding:12px;font-weight:900;font-size:15px}
.link{background:none;border:0;color:#bfe9cf;font-weight:800;text-decoration:underline;padding:6px}
.foot{display:flex;gap:8px;justify-content:center;margin-top:4px}
.nm{display:flex;flex-direction:column;gap:4px;text-align:left;font-weight:800;font-size:13px;color:#bfe9cf}
input{font:inherit;font-size:17px;font-weight:800;padding:11px 14px;border-radius:12px;border:2px solid rgba(255,210,74,.5);background:#03150a;color:#fff;outline:none}
input:focus{border-color:var(--gold)}
#code{text-transform:uppercase;letter-spacing:.2em;text-align:center}
.seg{display:flex;background:rgba(0,0,0,.35);border-radius:14px;padding:4px;gap:4px}
.seg button{flex:1;border:0;background:none;color:#cfe;font-weight:900;padding:11px 6px;border-radius:11px;font-size:15px}
.seg button.on{background:linear-gradient(180deg,#2fd06a,#0e7a3a);color:#fff}
.seg small{display:block;font-size:11px;opacity:.8}
.hint{font-size:13px;color:#cfe;margin:0;line-height:1.35}
.err{color:#ff9d8a;font-weight:800;min-height:18px;margin:0}
.codebox{background:rgba(0,0,0,.3);border-radius:16px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px}
.codebox b{font:52px/1 'Lilita One',sans-serif;letter-spacing:.15em;color:var(--gold)}
#lSeats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#lSeats div{background:rgba(255,255,255,.07);border-radius:12px;padding:9px;font-weight:800;font-size:14px}
#lSeats div.t0{border-left:4px solid var(--g2)}#lSeats div.t1{border-left:4px solid var(--gold)}
.rules{text-align:left;font-size:14px;line-height:1.45}.rules h3{color:var(--gold);margin:10px 0 4px;font-size:16px}.rules p{margin:4px 0}
#loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#07120b;z-index:50;font:28px 'Lilita One',sans-serif;color:var(--gold)}
@media (max-width:520px){.sc{min-width:52px}.sc span{font-size:24px}.sc i{width:50px}.mid{min-width:76px}#stake{font-size:15px}#manil{display:none}.pill{font-size:12px;padding:7px 10px}#hudTop .tools .pill.ic{min-width:34px}.act{font-size:17px;padding:10px 13px}.act.truco{font-size:20px;padding:11px 18px}#myBubble{bottom:calc(200px + env(safe-area-inset-bottom))}}
@media (max-height:480px) and (orientation:landscape){#hand .card{width:clamp(60px,10vw,92px)}#hand{min-height:90px}.act{padding:8px 12px;font-size:16px}.panel{padding:12px}.logo h1{font-size:54px}}

@media (max-width:520px){#bMusic,#bLang{display:none}#bExit span{display:none}#hudTop{gap:4px;padding-left:6px;padding-right:6px}}

/* cartas nítidas na tela: vira e vaza em HTML por cima da mesa 3D */
#hand .card{width:clamp(84px,min(24vw,19vh),130px)}
#hand .card img{image-rendering:auto;box-shadow:0 0 0 1px rgba(0,0,0,.35)}
#hand .card.man{filter:drop-shadow(0 0 10px rgba(255,210,60,.95)) drop-shadow(0 8px 12px rgba(0,0,0,.6))}
#tbl{position:fixed;inset:0;pointer-events:none;z-index:3;--vc:clamp(48px,min(17vw,15vh),104px)}
#vazaBox{position:absolute;left:50%;top:41%;transform:translate(-50%,-50%);display:grid;grid-template-columns:repeat(3,calc(var(--vc) + 14px));grid-template-rows:auto auto auto;gap:2px 6px;align-items:center;justify-items:center}
#vazaBox .slot{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:4px}
#vazaBox .s2{grid-column:2;grid-row:1}#vazaBox .s3{grid-column:1;grid-row:2}#vazaBox .s1{grid-column:3;grid-row:2}#vazaBox .s0{grid-column:2;grid-row:3}
.tc{width:var(--vc);aspect-ratio:256/400;border-radius:8px;display:block;filter:drop-shadow(0 6px 10px rgba(0,0,0,.65));animation:tcIn .25s ease-out}
.tc.man{filter:drop-shadow(0 0 9px rgba(255,210,60,1)) drop-shadow(0 6px 10px rgba(0,0,0,.6))}
.tc.win{outline:3px solid #3ddc84;outline-offset:2px}
@keyframes tcIn{from{transform:scale(.6) translateY(20px);opacity:0}to{transform:none;opacity:1}}
.tn{font:800 12px Nunito,Arial,sans-serif;color:#fff;background:rgba(4,30,15,.82);border:1px solid rgba(255,210,74,.55);border-radius:999px;padding:1px 8px;white-space:nowrap;max-width:calc(var(--vc) + 40px);overflow:hidden;text-overflow:ellipsis}
.tn.p{border-color:#3ddc84}
#viraBox{position:absolute;left:10px;top:38%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;background:rgba(4,30,15,.72);border:1px solid rgba(255,210,74,.6);border-radius:12px;padding:6px 7px}
#viraBox b{font:900 12px Nunito,Arial;color:#ffd24a;letter-spacing:.08em}
#viraBox .tc{width:calc(var(--vc) * .82)}
#viraBox small{font:800 11px Nunito,Arial;color:#fff;text-align:center;max-width:110px}
#viraBox small i{font-style:normal;color:#ffd24a}
@media (max-width:520px){#vazaBox{top:41%}#viraBox{top:30%;left:6px;padding:4px 5px}#viraBox .tc{width:calc(var(--vc) * .7)}}
@media (max-height:480px) and (orientation:landscape){#tbl{--vc:clamp(44px,13vh,70px)}#vazaBox{top:47%;gap:0 4px}.tn{font-size:10px}#viraBox{top:50%}#viraBox .tc{width:calc(var(--vc) * .75)}}
/* celular deitado: mão menor no centro de baixo, botões na direita, vaza no meio livre */
@media (max-height:480px) and (orientation:landscape){
  #hand .card{width:clamp(52px,15vh,66px)}#hand{min-height:0;gap:8px}
  #acts{position:fixed;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));flex-direction:column;align-items:stretch;margin:0;gap:6px;width:auto}
  #acts .act{font-size:14px;padding:7px 12px}#acts .act.truco{font-size:17px;padding:8px 14px}
  #prompt{position:fixed;left:10px;bottom:calc(10px + env(safe-area-inset-bottom));max-width:22vw;text-align:left;font-size:12px;margin:0}
  #tbl{--vc:clamp(40px,14vh,58px)}#vazaBox{top:46%}
}
#prompt{z-index:1}
