/* ===== MAKARIOS GAME — écran de partie (style Rento) ===== */
#game .gwrap{position:absolute;left:160px;top:62px;width:640px;height:610px;perspective:1600px;perspective-origin:50% 10%}
.gboard{position:absolute;left:50%;top:0;width:560px;height:560px;margin-left:-280px;transform-style:preserve-3d;transform:rotateX(24deg);transform-origin:50% 0;
  display:grid;grid-template-columns:1.55fr repeat(10,1fr) 1.55fr;grid-template-rows:1.55fr repeat(10,1fr) 1.55fr;
  background:#f6eed8;border:6px solid #3a1a05;border-radius:10px;box-shadow:0 0 0 12px #6b3714,0 0 0 15px #2a1203,0 40px 40px rgba(0,0,0,.55)}
.gboard .cell{font-size:7.4px;cursor:pointer;transition:filter .2s}
.gboard .cell:hover{filter:brightness(1.12)}
.gboard .cell.corner{font-size:12px}
.gboard .cell .own{position:absolute;background:var(--oc);z-index:2;box-shadow:0 0 4px var(--oc)}
.gboard .cell.b .own{left:0;right:0;bottom:0;height:4px}.gboard .cell.t .own{left:0;right:0;top:0;height:4px}
.gboard .cell.l .own{left:0;top:0;bottom:0;width:4px}.gboard .cell.r .own{right:0;top:0;bottom:0;width:4px}
.gboard .cell.mort::after{content:"HYP";position:absolute;inset:0;display:grid;place-items:center;background:rgba(40,40,40,.55);color:#fff;font-size:8px;font-weight:900;z-index:3}
.gboard .cell.focus{animation:cellHl 1.2s ease infinite}
.gboard .bld{position:absolute;z-index:4;display:flex;gap:1px;transform-origin:bottom center;transform:rotateX(-24deg)}
.gboard .cell.b .bld{top:-2px;left:50%;translate:-50% 0}.gboard .cell.t .bld{bottom:-2px;left:50%;translate:-50% 0}
.gboard .cell.l .bld{right:2px;top:50%;translate:0 -50%}.gboard .cell.r .bld{left:2px;top:50%;translate:0 -50%}
.bld i{font-style:normal;font-size:13px;filter:drop-shadow(0 2px 0 rgba(0,0,0,.5));animation:pop .5s cubic-bezier(.3,1.6,.5,1)}
.gboard .felt .banner{font-size:34px}
.gboard .pawn .stand{transform:rotateX(-24deg) translateZ(2px)}
.gboard .pawn.hop .stand{animation:ghop .3s ease}
@keyframes ghop{50%{transform:rotateX(-24deg) translateY(-26px)}}
.gboard .pawn .token{width:34px;height:34px;border-color:var(--pc,#5a2d06);border-width:3px}
.gboard .pawn .base{border-color:var(--pc,#5a2d06);background:linear-gradient(#fff,var(--pc))}
.gpile{position:absolute;width:82px;height:58px;border-radius:6px;border:2px solid #fff;display:grid;place-items:center;font-size:24px;
  box-shadow:2px 3px 0 #1b1b1b,4px 6px 0 #2b2b2b,6px 9px 8px rgba(0,0,0,.4);transition:transform .2s}
.gpile b{position:absolute;bottom:-15px;left:-6px;right:-6px;text-align:center;font:400 10px "Lilita One";color:#fff;text-shadow:0 1px 2px #000}
.gpile.pulse{animation:pulse .6s 2}
.pot{position:absolute;left:50%;top:62%;transform:translateX(-50%);font:400 14px "Lilita One";color:#fff;background:rgba(0,0,0,.35);padding:3px 12px;border-radius:12px;white-space:nowrap}
#game .dice-zone{left:50%;top:228px;margin-left:-69px;gap:24px}
#rollBtn{position:absolute;left:50%;top:316px;transform:translateX(-50%);z-index:20;font-size:26px;padding:12px 30px;animation:pulse 1.4s ease-in-out infinite}
#rollBtn[hidden],#endBtn[hidden]{display:none}
#endBtn{position:absolute;left:50%;top:316px;transform:translateX(-50%);z-index:20;font-size:22px;padding:10px 26px}
.turnbanner{position:absolute;left:50%;top:180px;z-index:25;transform:translateX(-50%) scale(.5);opacity:0;pointer-events:none;
  font:400 34px "Lilita One";color:#fff;padding:10px 30px;border-radius:18px;background:linear-gradient(#c00d14,#7a0408);border:3px solid #ffd860;box-shadow:0 10px 24px rgba(0,0,0,.5);white-space:nowrap}
.turnbanner.show{animation:banner 1.6s cubic-bezier(.3,1.4,.5,1) forwards}
@keyframes banner{0%{opacity:0;transform:translateX(-50%) scale(.4)}20%,75%{opacity:1;transform:translateX(-50%) scale(1)}100%{opacity:0;transform:translateX(-50%) scale(1.1) translateY(-20px)}}
.floater{position:absolute;z-index:45;pointer-events:none;font:400 26px "Lilita One";text-shadow:0 2px 0 #000,0 0 8px rgba(0,0,0,.6);animation:floatUp 1.6s ease-out forwards}
@keyframes floatUp{0%{opacity:0;transform:translateY(10px) scale(.6)}15%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-60px)}}

/* Joueurs (droite) */
#gplayers{position:absolute;right:12px;top:86px;width:300px;display:flex;flex-direction:column;gap:9px;z-index:8}
.pl{position:relative;display:flex;align-items:center;gap:10px;height:86px;padding:8px 10px;border-radius:16px;
  background:linear-gradient(#9b5a28,#6a3510);border:3px solid #2a1203;box-shadow:inset 0 2px 0 rgba(255,220,170,.3),0 4px 10px rgba(0,0,0,.4);transition:transform .3s,box-shadow .3s}
.pl.on{border-color:#ffd860;box-shadow:0 0 0 3px #ffd860,0 0 24px rgba(255,216,96,.7);transform:translateX(-12px)}
.pl.out{filter:grayscale(1) brightness(.6)}
.pl .av{position:relative;width:62px;height:62px;flex:0 0 auto;border-radius:14px;display:grid;place-items:center;background:var(--pc);box-shadow:inset 0 0 0 3px rgba(0,0,0,.3)}
.pl .av .token{width:52px;height:52px}
.pl .ring{position:absolute;inset:-5px;border-radius:17px;background:conic-gradient(#ffd860 calc(var(--p,0)*1%),transparent 0);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:4px;opacity:0}
.pl.on .ring{opacity:1}
.pl .nm{font:400 19px "Lilita One";display:flex;gap:6px;align-items:center;line-height:1}
.pl .nm svg{width:20px;height:14px;border-radius:2px}
.pl .tag{font-size:10px;font-weight:900;background:rgba(0,0,0,.35);padding:1px 6px;border-radius:8px}
.pl .money{display:flex;gap:10px;align-items:center;margin-top:5px;font:400 21px "Lilita One"}
.pl .money .coin,.pl .money .soul{width:24px;height:24px;font-size:12px;border-width:2px}
.pl .money span{display:inline-flex;align-items:center;gap:4px}
.pl .money .t{color:var(--gold1);text-shadow:0 2px 0 #000}.pl .money .a{color:#bfe6ff;text-shadow:0 2px 0 #000}
.pl .score{position:absolute;right:8px;top:6px;font-size:11px;font-weight:900;opacity:.85}
.pl .state{position:absolute;right:8px;bottom:6px;font-size:16px}
.pl .clock{position:absolute;right:8px;top:24px;font:400 15px "Lilita One";color:#ffd860;display:none}
.pl.on .clock{display:block}

/* Gauche : journal + main */
#glog{position:absolute;left:12px;top:86px;width:150px;max-height:330px;overflow:hidden;display:flex;flex-direction:column;gap:6px;z-index:8}
#glog div{font-size:11.5px;font-weight:800;line-height:1.25;padding:6px 8px;border-radius:10px;background:rgba(20,8,2,.72);border-left:4px solid var(--c,#ffd860);animation:slideL .4s both}
#ghand{position:absolute;left:12px;bottom:84px;width:150px;z-index:8}
#ghand h5{font:400 13px "Lilita One";margin-bottom:5px;text-shadow:0 2px 0 #000}
#ghand .mini{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:900;padding:5px 7px;margin-bottom:5px;border-radius:9px;background:var(--c);border:2px solid #fff;box-shadow:0 3px 6px rgba(0,0,0,.4);animation:pop .4s both}
#game .gtop{position:absolute;top:12px;left:12px;right:12px;display:flex;gap:12px;align-items:center;z-index:10}
#game .gtop .sp{flex:1}
#game .gtop .sq{width:56px;height:56px;font-size:24px;border-radius:50%}
#game .gtop .info{font:400 18px "Lilita One";padding:8px 16px;border-radius:20px;background:rgba(20,8,2,.7);border:2px solid rgba(255,226,122,.5)}

/* Barre du bas */
#game .gbar{position:absolute;left:0;right:0;bottom:0;height:70px;display:flex;gap:8px;padding:8px 10px;background:linear-gradient(#3a1d08,#1e0e03);border-top:3px solid #6b3714;z-index:9}
#game .gbar .tab{font-size:20px;gap:8px}
#game .gbar .tab:disabled{filter:grayscale(.8) brightness(.7);cursor:not-allowed}
#game .gbar .tab .e{font-size:24px}
#game .gbar .gclock{flex:0 0 150px;display:flex;align-items:center;justify-content:center;gap:8px;font:400 28px "Lilita One";color:#fff}
#game .gbar .gclock.low{color:#ff5050;animation:pulse 1s infinite}

/* Dialogues */
#gModal{position:absolute;inset:0;z-index:40;display:grid;place-items:center;background:rgba(10,4,0,.55);opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s}
#gModal.open{opacity:1;visibility:visible;transition:opacity .25s}
#gModal .panel{max-width:820px;min-width:440px;padding:24px 28px;transform:scale(.6);transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
#gModal.open .panel{transform:none}
#gModal h3{font:400 30px "Lilita One";text-align:center;margin-bottom:12px;text-shadow:0 3px 0 rgba(0,0,0,.35)}
#gModal .parchment h3{text-shadow:none;color:#7a1a05}
#gModal .body{font-weight:800;font-size:16px;line-height:1.4}
#gModal .acts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:18px}
#gModal .acts .btn{font-size:19px;padding:10px 20px}
.gcard{position:relative;width:250px;height:350px;margin:0 auto;perspective:1000px}
.gcard .in{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.3,1.3,.5,1)}
.gcard.flip .in{transform:rotateY(180deg)}
.gcard .back,.gcard .face{position:absolute;inset:0;border-radius:16px;backface-visibility:hidden;border:5px solid #fff;box-shadow:0 14px 26px rgba(0,0,0,.5)}
.gcard .back{background:var(--c);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  background-image:radial-gradient(circle at 50% 45%,rgba(255,255,255,.25),transparent 55%),repeating-linear-gradient(60deg,rgba(255,255,255,.08) 0 10px,transparent 10px 20px),repeating-linear-gradient(-60deg,rgba(255,255,255,.08) 0 10px,transparent 10px 20px)}
.gcard .back .ico{font-size:80px}.gcard .back .t{font:400 26px "Lilita One";color:#fff;text-align:center;text-shadow:0 2px 0 rgba(0,0,0,.4)}
.gcard .face{transform:rotateY(180deg);background:#fffaf0;color:#24364f;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:0 16px 14px;overflow:hidden}
.gcard .face .hd{align-self:stretch;margin:0 -16px;padding:8px;background:var(--c);color:#fff;font:400 14px "Lilita One";letter-spacing:1px}
.gcard .face .ic{font-size:40px;line-height:1;margin-top:4px}
.gcard .face h4{font:400 21px "Lilita One";line-height:1.05;color:var(--c)}
.gcard .face .ref{font-size:12px;font-weight:900;color:#c00d14}
.gcard .face q{font-size:12.5px;font-style:italic;font-weight:700}
.gcard .face .fx{margin-top:auto;font-size:13px;font-weight:900;background:#f4ead2;border-radius:10px;padding:8px}
.gcard .face .two{margin-top:auto;display:grid;gap:6px;width:100%}
.gcard .face .two div{font-size:12px;font-weight:900;border-radius:10px;padding:6px}
.carddlg{display:flex;gap:26px;align-items:center}
.carddlg .side{max-width:300px}
.quiz .steps{display:flex;gap:8px;justify-content:center;margin-bottom:14px}
.quiz .steps i{font-style:normal;font:400 14px "Lilita One";padding:5px 12px;border-radius:14px;background:rgba(0,0,0,.25)}
.quiz .steps i.on{background:var(--gold1);color:#5a2d06}.quiz .steps i.ok{background:#2f9a33;color:#fff}.quiz .steps i.ko{background:#c00d14;color:#fff}
.quiz .q{font:400 22px "Lilita One";text-align:center;margin-bottom:12px}
.quiz .opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quiz .opts.one{grid-template-columns:1fr}
.quiz .opts button{padding:12px;border-radius:12px;background:rgba(0,0,0,.28);border:3px solid rgba(255,226,122,.45);font-weight:900;font-size:15px;line-height:1.3;text-align:left;transition:transform .15s,background .2s}
.quiz .opts button:hover{transform:translateY(-2px);background:rgba(255,226,122,.18)}
.quiz .opts button.good{background:#2f9a33;border-color:#c8ffc0}
.quiz .opts button.bad{background:#c00d14;border-color:#ffc0c0;animation:shake .4s}
.title-card{display:flex;gap:18px;align-items:stretch}
.deed{width:220px;flex:0 0 auto;background:#fff;color:#222;border-radius:10px;padding:10px;font-size:12px;font-weight:800;box-shadow:0 6px 14px rgba(0,0,0,.4)}
.deed .h{background:var(--c);color:var(--fc,#fff);text-align:center;padding:8px 4px;border:2px solid #222;margin-bottom:8px}
.deed .h small{display:block;font-size:9px;letter-spacing:2px}
.deed .h b{font:400 22px "Lilita One"}
.deed .row{display:flex;justify-content:space-between;padding:2px 0}
.list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow:auto;padding-right:4px}
.list .it{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:rgba(0,0,0,.25)}
.list .it .sw{width:16px;height:34px;border-radius:4px;background:var(--c);flex:0 0 auto;border:2px solid rgba(255,255,255,.7)}
.list .it .nm{flex:1;font-weight:900}
.list .it .nm small{display:block;font-size:12px;opacity:.8}
.list .it .btn{font-size:15px;padding:7px 12px}
.list .it.sel{background:rgba(255,226,122,.3);outline:3px solid var(--gold1)}
.trade{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.trade h4{font:400 18px "Lilita One";margin-bottom:6px}
.trade input[type=range]{width:100%}
.podium{display:flex;align-items:flex-end;justify-content:center;gap:14px;margin:10px 0 16px}
.podium .st{width:150px;text-align:center}
.podium .st .token{width:70px;height:70px;margin:0 auto 6px}
.podium .st .blk{border-radius:10px 10px 0 0;background:linear-gradient(#ffe37a,#c98400);color:#5a2d06;font:400 34px "Lilita One";display:grid;place-items:center;border:3px solid #5a2d06;animation:growUp .8s cubic-bezier(.3,1.4,.5,1) both}
@keyframes growUp{from{transform:scaleY(0);transform-origin:bottom}}
.scoretab{width:100%;border-collapse:collapse;font-weight:900;font-size:14px}
.scoretab td,.scoretab th{padding:6px 8px;border-bottom:2px dashed rgba(255,220,170,.25);text-align:right}
.scoretab td:first-child,.scoretab th:first-child{text-align:left}
/* Jeu en ligne : choix, salon, attente */
.ocards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ocard{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:18px 16px;transition:transform .2s,box-shadow .2s}
.ocard.hl{transform:translateY(-6px);box-shadow:0 0 0 4px var(--gold1),0 14px 30px rgba(0,0,0,.55)}
.ocard .oi{font-size:48px;animation:bob 2.6s ease-in-out infinite}
.ocard b{font:400 24px "Lilita One";color:#7a1a05}
.ocard p{font-weight:800;font-size:14px;line-height:1.35;flex:1}
.ocard .btn{font-size:17px;padding:10px 16px}
.ocard input{width:100%;text-align:center;font:400 30px "Lilita One";letter-spacing:8px;text-transform:uppercase;padding:6px;border-radius:12px;border:3px solid #c9a25a;background:#fff;color:#3a1d08;outline:none}
.ocard input:focus{border-color:var(--gold2)}
.osettings{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin-top:16px;font-weight:900}
.osettings .seg button{min-width:0;padding:6px 10px;font-size:15px}
.oadv{display:flex;align-items:center;gap:8px}
.lcode{text-align:center;margin-bottom:10px}
.lcode span{display:block;font-weight:900;letter-spacing:2px;text-transform:uppercase;font-size:13px;opacity:.85}
.lcode b{display:inline-block;margin:6px 0 10px;font:400 64px "Lilita One";letter-spacing:14px;padding:4px 10px 4px 24px;border-radius:16px;background:#fff6dd;color:#c00d14;border:4px dashed #c98400;animation:pop .6s cubic-bezier(.3,1.6,.5,1)}
.lacts{display:flex;gap:12px;justify-content:center}.lacts .btn{font-size:17px;padding:9px 16px}
.lopen{text-align:center;font-weight:800;margin-bottom:12px}
#lobbySeats{justify-content:center;flex-wrap:wrap;margin:8px 0}
#lobbySeats .seat small{display:block;font-weight:900;font-size:12px;min-height:15px}
.linfo{text-align:center;font-weight:900;opacity:.9}
.lbottom{display:flex;gap:12px;justify-content:center;align-items:center;margin-top:14px}
.lbottom .btn{font-size:18px;padding:10px 18px}
.lwait{display:inline-flex;align-items:center;gap:10px;font-weight:900}
.lchat{max-height:70px;overflow:auto;font-size:13px;font-weight:700;margin-top:8px}
#gWait{position:absolute;left:470px;top:16px;transform:translate(-50%,-30px);opacity:0;z-index:30;padding:9px 20px;border-radius:20px;background:rgba(20,8,2,.88);border:2px solid var(--gold1);font-weight:900;font-size:16px;transition:all .3s;pointer-events:none;white-space:nowrap}
#gWait.show{opacity:1;transform:translate(-50%,0)}
/* Entrée, langues, volume, raccourci */
.btn.enter{position:absolute;bottom:64px;left:50%;transform:translateX(-50%);font-size:28px;padding:16px 40px;animation:pulseX 1.4s ease-in-out infinite}
.btn.enter[hidden]{display:none}
@keyframes pulseX{50%{transform:translateX(-50%) scale(1.07)}}
.langgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.langgrid .btn{font-size:24px;padding:16px}
.langgrid .btn.on{box-shadow:0 0 0 4px #fff,0 5px 0 #5a2d06}
input.vol{width:220px;accent-color:#f7b500}
.shortp{font-weight:800;text-align:center;margin:6px 0}
.shortl{margin:10px 0 10px 28px;font-weight:800;line-height:1.5}
.instIcon{width:96px;height:96px;border-radius:22px;box-shadow:0 6px 16px rgba(0,0,0,.35);margin:0 auto 6px;display:block}
.btn.instBig{font-size:30px;padding:16px 44px;margin:10px 0;animation:pulse 1.4s ease-in-out infinite}
#installModal [hidden]{display:none}
.confetti{position:absolute;top:-20px;width:10px;height:16px;z-index:60;pointer-events:none}
