/* Reversi: zelena tabla u drvenom okviru, crno-beli kamenovi sa dva lica (okreću se), tačke na poljima gde se sme. Ostalo je iz base.css. */
.is-game .felt.reversi{touch-action:manipulation;-webkit-user-select:none;user-select:none}
.rvwrap{position:absolute;inset:0}
.rvboard{position:absolute;border-radius:calc(var(--frame) * .7);
  background:var(--wood),linear-gradient(160deg,#8a5527,#5a3518);background-size:cover;
  box-shadow:0 18px 40px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,230,180,.35),inset 0 -2px 0 rgba(0,0,0,.35)}
/* polja: zeleno sukno sa tamnim linijama i četiri tačke kao na pravoj tabli */
.rvboard::before{content:'';position:absolute;inset:var(--frame);border-radius:3px;
  background:
    radial-gradient(circle,#123d26 0 3px,transparent 3.5px) 0 0/calc(var(--sq) * 4) calc(var(--sq) * 4),
    repeating-linear-gradient(90deg,rgba(10,40,22,.9) 0 1px,transparent 1px var(--sq)),
    repeating-linear-gradient(0deg,rgba(10,40,22,.9) 0 1px,transparent 1px var(--sq)),
    radial-gradient(ellipse at 50% 40%,#2c8a55,#1d6a40 70%,#175a36);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.4),inset 0 0 26px rgba(0,0,0,.3)}
.rvboard::after{content:'';position:absolute;inset:var(--frame);pointer-events:none;border-radius:3px;background:var(--noise);opacity:.14;mix-blend-mode:overlay}
.rvcell{position:absolute;width:var(--sq);height:var(--sq);z-index:1;display:grid;place-items:center}
.rvcell.can{cursor:pointer}
/* tačka: gde se sme igrati */
.rvcell.dot::before{content:'';position:absolute;left:50%;top:50%;width:22%;height:22%;transform:translate(-50%,-50%);border-radius:50%;
  background:rgba(240,212,145,.75);box-shadow:0 0 0 2px rgba(240,212,145,.25),0 0 10px rgba(240,212,145,.45);pointer-events:none}
/* prikaz pre poteza: providan kamen moje boje na polju */
.rvcell.pv::before,.rvcell.sel::before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;width:72%;height:72%;opacity:.7;box-shadow:0 0 0 3px var(--brass-hi),0 0 16px rgba(240,212,145,.6)}
.rvboard.black-turn .rvcell.pv::before,.rvboard.black-turn .rvcell.sel::before{background:radial-gradient(circle at 35% 30%,#4a4e57,#111215 70%)}
.rvboard:not(.black-turn) .rvcell.pv::before,.rvboard:not(.black-turn) .rvcell.sel::before{background:radial-gradient(circle at 35% 30%,#fff,#d9d6cc 70%)}
.rvcell.hint{box-shadow:inset 0 0 0 3px #8ee09b;z-index:3}
.rvcell.hint::before{background:#8ee09b}
.rvcell:focus-visible{outline:3px solid var(--brass-hi);outline-offset:-3px}
.rvcell.nope{animation:rvnope .3s}
@keyframes rvnope{25%{translate:-4px 0}75%{translate:4px 0}}
/* kamen: dva lica, crno spreda i belo pozadi; okreće se oko uspravne ose */
.rvdisc{position:relative;width:80%;height:80%;border-radius:50%;transform-style:preserve-3d;transform:scale(0);opacity:0;pointer-events:none;
  transition:transform .42s cubic-bezier(.3,.7,.3,1),opacity .15s}
.rvdisc.on{opacity:1;transform:rotateY(0deg)}
.rvdisc.on.w{transform:rotateY(180deg)}
.rvdisc .f{position:absolute;inset:0;border-radius:50%;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  box-shadow:0 calc(var(--sq) * .05) calc(var(--sq) * .08) rgba(0,0,0,.5),inset 0 calc(var(--sq) * -.045) 0 rgba(0,0,0,.3)}
.rvdisc .f.b{background:radial-gradient(circle at 35% 30%,#555a64,#202227 55%,#0c0d10)}
.rvdisc .f.w{transform:rotateY(180deg);background:radial-gradient(circle at 35% 30%,#ffffff,#eceae3 55%,#c9c5b8);box-shadow:0 calc(var(--sq) * .05) calc(var(--sq) * .08) rgba(0,0,0,.45),inset 0 calc(var(--sq) * -.045) 0 rgba(0,0,0,.18)}
.rvdisc .f::after{content:'';position:absolute;inset:16%;border-radius:50%;box-shadow:inset 0 0 0 1.5px rgba(127,127,127,.25)}
.rvdisc.drop{animation:rvdrop .3s ease-out}
@keyframes rvdrop{0%{scale:1.35;opacity:.2}100%{scale:1}}
/* kamen koji bi se okrenuo (prikaz pre poteza) */
.rvdisc.flip .f{box-shadow:0 0 0 3px var(--brass-hi),0 0 14px rgba(240,212,145,.7)}
/* poslednji potez: tačka u sredini kamena */
.rvcell.last::after{content:'';position:absolute;left:50%;top:50%;width:14%;height:14%;transform:translate(-50%,-50%);border-radius:50%;background:#d5473d;box-shadow:0 0 0 1.5px rgba(0,0,0,.25);z-index:2;pointer-events:none}
.rvboard.still .rvdisc{transition:none}
/* pločice igrača */
.rvplate{position:absolute;left:0;top:0;z-index:40;display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;min-height:40px;padding:7px 12px;border-radius:20px;
  background:rgba(20,10,4,.72);border:1px solid rgba(212,176,106,.3);box-shadow:0 6px 14px rgba(0,0,0,.35);font-size:14px;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.rvplate b{font:700 15px var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:9em}
.rvplate small{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cream-3)}
.rvplate .st{font-size:13px;font-weight:700;color:var(--brass-hi);white-space:nowrap}
.rvplate .cnt{margin-left:auto;min-width:36px;text-align:center;padding:2px 9px;border-radius:12px;background:rgba(255,255,255,.1);font-weight:800;font-size:16px;font-variant-numeric:tabular-nums}
.rvplate.turn{border-color:var(--brass-hi);box-shadow:0 0 0 3px rgba(240,212,145,.25),0 6px 14px rgba(0,0,0,.35)}
.rvdot{display:inline-block;width:16px;height:16px;border-radius:50%;flex:none;box-shadow:inset 0 -2px 0 rgba(0,0,0,.3)}
.rvdot.b{background:radial-gradient(circle at 35% 30%,#555a64,#111215)}
.rvdot.w{background:radial-gradient(circle at 35% 30%,#fff,#cfcabd)}
@media (max-width:640px){
  .rvplate{min-height:0;padding:0 10px;gap:6px;font-size:12px;flex-wrap:nowrap}
  .rvplate b{font-size:13px}
  .rvplate small{display:none}
  .rvplate .st{font-size:12px}
  .rvplate .cnt{font-size:14px;min-width:30px}
}
/* imena za dvoje na uređaju */
.rvnames{display:grid;gap:10px;padding:4px 0 8px}
.rvnames label{display:flex;align-items:center;gap:10px}
.rvnames input{flex:1;min-width:0;height:48px;border-radius:12px;border:1px solid var(--brass-dim);background:rgba(0,0,0,.28);color:var(--cream);font:600 16px var(--sans);padding:0 12px}
.rvnames .rvdot{width:24px;height:24px}
/* poruka ide gore: dole je moja pločica */
.toast{bottom:auto;top:calc(var(--bar) + 14px);transform:translate(-50%,-20px)}
.toast.on{transform:translate(-50%,0)}
