/* =========================================================================
   HenPoker · scene.css  — visual modernization layer
   Loaded AFTER styles.css. Provides background scenes, glassmorphism,
   modernized buttons, iPad/iOS polish, and micro-interactions.
   ========================================================================= */

/* ---------- Smooth screen transitions ---------- */
.screen{animation:sc-fade .28s ease both}
@keyframes sc-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ===================== LOGIN · full immersive scene ===================== */
#screen-login{
  background:url(../img/scene-login.svg) center/cover no-repeat,
             linear-gradient(135deg,#0F6630,#1FA85A);
  align-items:center;justify-content:center;
  padding:24px;
}
#screen-login .login-left{display:none}            /* unused in new layout */
#screen-login .login-right{flex:1;display:flex;align-items:center;justify-content:center;background:transparent;padding:0;max-width:420px;width:100%}
#screen-login .login-card{
  width:100%;max-width:380px;padding:28px 24px 22px;
  background:rgba(255,255,255,.78);
  -webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);
  border:1px solid rgba(255,255,255,.7);
  border-radius:22px;
  box-shadow:0 24px 60px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.8);
  animation:sc-card-in .5s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes sc-card-in{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
#screen-login .login-card h2{
  display:none;                                            /* replaced by .lc-brand */
}
#screen-login .login-card .sub{display:none}
#screen-login .lc-brand{text-align:center;margin-bottom:18px}
#screen-login .lc-brand .lc-logo{
  display:inline-flex;align-items:center;gap:8px;
  font-family:Baloo 2;font-weight:800;font-size:30px;letter-spacing:.5px;
  background:linear-gradient(135deg,#0F6630 0%,#1FA85A 40%,#F5B324 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.15));
}
#screen-login .lc-brand .lc-logo svg{width:30px;height:30px;color:#F5B324}
#screen-login .lc-brand .lc-sub{font-size:12px;font-weight:700;color:#6B4E33;margin-top:4px;letter-spacing:.5px}
#screen-login .lc-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:10px 0 16px}
#screen-login .lc-tags span{font-size:10px;font-weight:800;color:#0F6630;background:rgba(31,168,90,.12);padding:4px 10px;border-radius:20px;border:1px solid rgba(31,168,90,.2)}
#screen-login .input-group label{color:#0F6630;font-size:11px}
#screen-login .input-group input{
  background:rgba(255,255,255,.9);border:2px solid rgba(15,102,48,.2);
  transition:border-color .2s,box-shadow .2s;
}
#screen-login .input-group input:focus{border-color:#1FA85A;box-shadow:0 0 0 4px rgba(31,168,90,.18);background:#fff}
#screen-login .btn-primary{
  margin-top:4px;padding:13px;border-radius:14px;font-size:15px;
  background:linear-gradient(135deg,#1FA85A,#0F6630);
  box-shadow:0 5px 0 #08381a,0 8px 18px rgba(15,102,48,.4);
  position:relative;overflow:hidden;
}
#screen-login .btn-primary::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);
  transform:translateX(-100%);transition:transform .6s ease;
}
#screen-login .btn-primary:hover::after{transform:translateX(100%)}
#screen-login .btn-primary:active{transform:translateY(4px);box-shadow:0 1px 0 #08381a}
#screen-login .btn-text{color:#0F6630}



.quick-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quick-card{
  display:flex;align-items:center;gap:10px;padding:12px 14px;
  border-radius:14px;background:#fff;cursor:pointer;
  box-shadow:0 4px 12px rgba(61,40,23,.1);
  transition:transform .15s,box-shadow .15s;
}
.quick-card:active{transform:scale(.98)}
.quick-card:hover{box-shadow:0 6px 18px rgba(61,40,23,.18)}
.quick-card .qc-ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:0 3px 8px rgba(0,0,0,.18)}
.quick-card .qc-ic svg{width:20px;height:20px}
.quick-card .qc-tx{font-family:Baloo 2;font-weight:800;font-size:13px;color:#3D2817}
.quick-card .qc-sub{font-size:10px;font-weight:700;color:#8A96A4;margin-top:1px}

/* ---- Rooms list (in-app) ---- */
.rooms-toolbar{padding:4px 2px 10px;display:flex;align-items:center;gap:8px}
.room-tile{
  background:#fff;border-radius:14px;padding:12px 14px;margin-bottom:8px;
  box-shadow:0 4px 12px rgba(61,40,23,.08);
  display:flex;align-items:center;gap:12px;
  transition:transform .15s,box-shadow .15s;
}
.room-tile:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(61,40,23,.14)}
.room-tile .rt-name{font-family:Baloo 2;font-weight:800;font-size:14px;color:#3D2817}
.room-tile .rt-info{font-size:11px;font-weight:700;color:#8A96A4;margin-top:1px}
.room-tile .rt-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.room-tile .rt-players{font-family:Baloo 2;font-weight:800;font-size:14px;color:#1FA85A}
.room-tile .rt-join{
  padding:8px 16px;border-radius:11px;border:none;
  background:linear-gradient(135deg,#1FA85A,#0F6630);color:#fff;
  font-weight:800;font-size:12px;
  box-shadow:0 3px 0 #08381a;transition:.1s;
}
.room-tile .rt-join:active{transform:translateY(2px);box-shadow:0 1px 0 #08381a}

/* ===================== ROOM WAITING · atmospheric scene ===================== */
.room-wait{
  /* background controlled inline */
  color:#fff;min-height:100%;
  display:flex;flex-direction:column;
  padding:0 0 8px;
}
.room-topbar{background:transparent;padding:8px 8px 4px}
.room-topbar .tt-btn{
  background:rgba(0,0,0,.4);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  color:#fff;
  border:1px solid rgba(255,255,255,.12);
}
.room-topbar .tt-btn:hover{background:rgba(0,0,0,.55)}
.room-topbar .tt-badge{
  background:rgba(0,0,0,.45);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  color:#fff;border:1px solid rgba(255,255,255,.12);
}
.room-seats{
  flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:10px;padding:14px 12px;align-content:center;
}
.wait-seat{
  background:rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.18);
  border-radius:16px;padding:12px 10px;text-align:center;color:#fff;
  box-shadow:0 8px 20px rgba(0,0,0,.25);
  transition:transform .2s,border-color .2s;
  display:flex;flex-direction:column;align-items:center;gap:6px;
}
.wait-seat.empty{
  background:rgba(255,255,255,.04);border-style:dashed;border-color:rgba(255,255,255,.18);
  color:rgba(255,255,255,.55);font-size:11px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
}
.wait-seat .av{box-shadow:0 4px 10px rgba(0,0,0,.35);border:2px solid rgba(255,255,255,.4)}
.wait-seat .nm{font-family:Baloo 2;font-weight:800;font-size:12px;text-shadow:0 1px 2px rgba(0,0,0,.4);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wait-seat .role{font-size:9px;font-weight:800;padding:2px 7px;border-radius:8px;background:rgba(0,0,0,.4)}
.wait-seat .role.host{background:#D89000;color:#fff}
.wait-seat .role.bot{background:#9B59E8;color:#fff}
.wait-seat .ready-tag,.wait-seat .not-ready{font-size:10px;font-weight:800;padding:3px 8px;border-radius:9px}
.wait-seat .ready-tag{background:#1FA85A;color:#fff;box-shadow:0 2px 6px rgba(31,168,90,.4)}
.wait-seat .not-ready{background:rgba(255,255,255,.15);color:rgba(255,255,255,.7)}
.wait-seat:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.3)}

.room-actions{
  display:flex;gap:10px;justify-content:center;flex-wrap:wrap;
  padding:14px 14px 10px;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.6));
  border-top:1px solid rgba(255,255,255,.06);
}
.rab{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 22px;border:none;border-radius:14px;
  font-family:'Baloo 2',sans-serif;font-weight:800;font-size:14px;
  color:#fff;cursor:pointer;letter-spacing:.3px;
  transition:transform .15s cubic-bezier(.2,.8,.2,1),box-shadow .2s,filter .2s;
  min-height:48px;-webkit-tap-highlight-color:transparent;
}
.rab svg{width:18px;height:18px;flex-shrink:0}
.rab:active{transform:translateY(2px) scale(.97)}
.rab::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at var(--rx,50%) var(--ry,50%),rgba(255,255,255,.45),transparent 55%);opacity:0;transition:opacity .35s;pointer-events:none}
.rab.rippling::after{opacity:1;transition:opacity 0s}
.rab-bot{background:linear-gradient(135deg,#B97AFF,#6A1B9A);box-shadow:0 5px 0 #38006b,0 8px 18px rgba(106,27,154,.4)}
.rab-bot:hover{transform:translateY(-2px);box-shadow:0 7px 0 #38006b,0 12px 24px rgba(106,27,154,.5)}
.rab-ready{background:linear-gradient(135deg,#2EC974,#1FA85A);box-shadow:0 5px 0 #08381a,0 8px 18px rgba(31,168,90,.4)}
.rab-ready:hover{transform:translateY(-2px);box-shadow:0 7px 0 #08381a,0 12px 24px rgba(31,168,90,.5)}
.rab-ready .rab-circle{width:22px;height:22px;border-radius:50%;border:2.5px solid rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.2,.8,.2,1);flex-shrink:0}
.rab-ready .rab-circle svg{width:14px;height:14px;opacity:0;transform:scale(.3) rotate(-45deg);transition:all .3s cubic-bezier(.2,.8,.2,1);color:#0F6630;stroke:#0F6630}
.rab-ready.is-ready{background:linear-gradient(135deg,#1FA85A,#0F6630);box-shadow:0 5px 0 #08381a,0 8px 22px rgba(31,168,90,.6)}
.rab-ready.is-ready .rab-circle{background:#fff;border-color:#fff}
.rab-ready.is-ready .rab-circle svg{opacity:1;transform:scale(1) rotate(0)}
.rab-invite{background:linear-gradient(135deg,#FFE48A,#F5B324);color:#3D2817;box-shadow:0 5px 0 #8a5a00,0 8px 18px rgba(245,179,36,.4);text-shadow:0 1px 0 rgba(255,255,255,.3)}
.rab-invite:hover{transform:translateY(-2px);box-shadow:0 7px 0 #8a5a00,0 12px 24px rgba(245,179,36,.5)}
.rab-invite.copied{background:linear-gradient(135deg,#2EC974,#1FA85A);color:#fff;text-shadow:none;box-shadow:0 5px 0 #08381a,0 8px 18px rgba(31,168,90,.5)}
.rab-invite.copied svg{color:#fff}
.rab-start{
  background:linear-gradient(135deg,#FFD45C 0%,#F5B324 45%,#FF6B5E 100%);
  color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.28);
  box-shadow:0 5px 0 #8a3a00,0 0 0 0 rgba(245,179,36,.6);
  animation:rab-pulse 2s ease-in-out infinite;
  padding:13px 26px;font-size:15px;
}
.rab-start:hover{transform:translateY(-2px);box-shadow:0 7px 0 #8a3a00,0 0 0 10px rgba(245,179,36,.25)}
.rab-start[disabled]{background:rgba(255,255,255,.12);color:rgba(255,255,255,.4);box-shadow:none;animation:none;cursor:not-allowed;text-shadow:none}
@keyframes rab-pulse{
  0%,100%{box-shadow:0 5px 0 #8a3a00,0 0 0 0 rgba(245,179,36,.6)}
  50%{box-shadow:0 5px 0 #8a3a00,0 0 0 14px rgba(245,179,36,0)}
}
.my-hand .pcard{animation:deal-in .5s cubic-bezier(.2,.8,.2,1) both;transform-origin:bottom center}
.my-hand .pcard:nth-child(1){animation-delay:0s}
.my-hand .pcard:nth-child(2){animation-delay:.15s}
.my-hand .pcard:nth-child(3){animation-delay:.3s}
.my-hand .pcard:nth-child(4){animation-delay:.45s}
.my-hand .pcard:nth-child(5){animation-delay:.6s}
.my-hand .pcard:nth-child(6){animation-delay:.75s}
.my-hand .pcard:nth-child(7){animation-delay:.9s}
.my-hand .pcard:nth-child(8){animation-delay:1.05s}
.my-hand .pcard:nth-child(9){animation-delay:1.2s}
.my-hand .pcard:nth-child(10){animation-delay:1.35s}
.my-hand .pcard:nth-child(11){animation-delay:1.5s}
.my-hand .pcard:nth-child(12){animation-delay:1.65s}
.my-hand .pcard:nth-child(13){animation-delay:1.8s}
.my-hand .pcard:nth-child(14){animation-delay:1.95s}
.my-hand .pcard:nth-child(15){animation-delay:2.1s}
.my-hand .pcard:nth-child(16){animation-delay:2.25s}
.my-hand .pcard:nth-child(17){animation-delay:2.4s}
.my-hand .pcard:nth-child(n+18){animation-delay:2.5s}
@keyframes deal-in{from{opacity:0;transform:translateY(-34px) scale(.7) rotate(-8deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}

/* ===================== TABLE · subtle refinements ===================== */
.action-bar{
  background:linear-gradient(180deg,rgba(13,79,40,.0),rgba(13,79,40,.85) 30%);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}
.act-btn{position:relative;overflow:hidden;transition:transform .12s,box-shadow .12s,filter .12s}
.act-btn::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:translateX(-100%);transition:transform .5s;pointer-events:none}
.act-btn:hover::after{transform:translateX(100%)}
.act-btn:active{transform:translateY(2px)}
.act-btn.fold,.act-btn.allin{background:linear-gradient(135deg,#FF6B5E,#E8483B)}
.act-btn.call,.act-btn.play{background:linear-gradient(135deg,#2EC974,#1FA85A)}
.act-btn.raise,.act-btn.bid{background:linear-gradient(135deg,#FFD45C,#F5B324);color:#3D2817;text-shadow:0 1px 0 rgba(255,255,255,.4)}
.act-btn.check,.act-btn.pass{background:linear-gradient(135deg,#C0C8D0,#8A96A4)}
.act-btn.draw{background:linear-gradient(135deg,#26A69A,#00897B)}

/* ===================== TOAST / MODAL polish ===================== */
.toast{
  background:rgba(20,20,20,.88);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  color:#fff;border:1px solid rgba(255,255,255,.1);
  box-shadow:0 10px 28px rgba(0,0,0,.35);
  border-radius:14px;padding:10px 18px;font-weight:700;font-size:13px;
  animation:sc-toast .25s ease both;
}
@keyframes sc-toast{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
.modal-overlay{
  background:rgba(8,18,12,.55);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  animation:sc-fade .2s ease both;
}
.modal{
  background:#fff;border-radius:20px;
  box-shadow:0 24px 60px rgba(0,0,0,.4);
  animation:sc-modal .28s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes sc-modal{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}

/* ===================== NAV polish ===================== */
.left-nav .nav-btn{transition:background .2s,transform .15s}
.left-nav .nav-btn:hover{background:rgba(255,255,255,.12)}
.left-nav .nav-btn.active{
  background:rgba(255,255,255,.18);
  position:relative;
}
.left-nav .nav-btn.active::after{
  content:"";position:absolute;left:50%;bottom:4px;transform:translateX(-50%);
  width:18px;height:3px;border-radius:2px;background:#FFD45C;
  box-shadow:0 0 6px rgba(255,212,92,.7);
}

/* ===================== iPad / Tablet polish ===================== */
@media (min-width:760px) and (orientation:landscape){
  .hero-banner{padding:22px 24px 20px}
  .hero-banner .hb-greet{font-size:24px}
  .games-scroll{grid-template-columns:repeat(3,1fr);gap:12px}
  .game-tile{min-height:108px;padding:16px 16px 14px}
  .game-tile .gt-name{font-size:18px}
  .game-tile::after{font-size:110px}
  .quick-row{grid-template-columns:1fr 1fr 1fr;gap:12px}
  .room-seats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
  .wait-seat{padding:14px 12px}
  .wait-seat .nm{font-size:13px}
  #screen-login .login-card{padding:32px 28px 24px;max-width:420px}
  #screen-login .lc-brand .lc-logo{font-size:34px}
}
@media (min-width:900px) and (orientation:landscape){
  .games-scroll{grid-template-columns:repeat(5,1fr)}
  .game-tile{min-height:120px}
  .room-seats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
}
@media (min-width:1024px){
  .games-scroll{grid-template-columns:repeat(5,1fr)}
  .game-tile{min-height:128px}
  .game-tile .gt-name{font-size:19px}
  .game-tile::after{font-size:124px}
}
@supports (padding:max(0px)){
  .top-strip,.room-topbar{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}
  .room-actions{padding-bottom:max(4px,env(safe-area-inset-bottom))}
}
@media (hover:none) and (pointer:coarse){
  .act-btn,.nav-btn,.tt-btn,.btn-primary,.rt-join,.btn-ready,.btn-start,.btn-invite,.btn-bot,.btn-unready{min-height:44px}
  .game-tile{min-height:96px}
}

.room-subtitle{text-align:center;font-size:11px;font-weight:700;color:rgba(255,255,255,.88);padding:2px 12px 8px;letter-spacing:.3px;text-shadow:0 1px 2px rgba(0,0,0,.3)}






