/* The Grand Table — play-only skin. The board and pawns use raster WebP art.
   Keep the shared club pages and original arcade skin available for rollback. */
.game-ludo.club-play {
  --club-bg:#151c19; --club-panel:#202822; --club-soft:#303b30;
  --club-accent:#ddbd82; --club-muted:#aeb8aa; --club-ink:#f5eedf;
  --club-line:#ddbd8226; --table-gold:#ddbd82; --table-text:#f5eedf;
  --table-muted:#aeb8aa; color:var(--table-text); background:#151c19;
  font-family:Club,Arial,sans-serif;
}
.game-ludo.club-play .arcade {
  min-height:100svh; overflow:clip;
  background:radial-gradient(ellipse at 50% 28%,#37423777,transparent 62%),linear-gradient(125deg,#19251f,#111915 68%,#23271d);
  padding:18px clamp(12px,2.3vw,36px) 0;
}
.game-ludo.club-play .club-site-header {
  margin:0 auto; max-width:1500px; border:0; border-bottom:1px solid #ddbd822e;
  border-radius:0; background:transparent;
}
.game-ludo.club-play .club-header-inner { padding:0 0 18px; min-height:68px; flex-wrap:nowrap; }
.game-ludo.club-play .club-brand .club-mark {
  background:linear-gradient(135deg,#c8a362,#f0d3a0 50%,#ac8246); color:#29352b;
  border:1px solid #e2c18b; border-radius:12px; width:42px; height:44px;
}
.game-ludo.club-play .club-brand b { font-size:25px; }
.game-ludo.club-play .club-brand small { font-size:8px; color:#b2b5a2; letter-spacing:.15em; }
.game-ludo.club-play .club-game-actions :is(button,a),
.game-ludo.club-play .club-menu-toggle {
  min-height:44px; color:#e9ddc6; background:#29332b; border-color:#c3a57733;
}
.game-ludo.club-play .club-game-actions :is(button,a):hover,
.game-ludo.club-play .club-menu-toggle:hover { background:#374537; color:#fff5dc; }
.game-ludo.club-play .club-site-nav { background:#ffffff05; border-color:#ddbd8222; }
.game-ludo.club-play .club-site-nav a { color:#c9cebf; }
.game-ludo.club-play .club-site-nav a[aria-current=page] { color:#fae6bc; background:#c29a5233; }
.game-ludo.club-play .club-match-readouts { display:none; }
.game-ludo.club-play .game-layout {
  max-width:1500px; padding:28px 0 20px; margin:auto; display:grid;
  grid-template-columns:minmax(185px,220px) minmax(0,clamp(490px,calc(100svh - 390px),760px)) minmax(185px,230px);
  gap:clamp(20px,2.6vw,44px); justify-content:center; align-items:center;
}
.game-ludo.club-play .panel {
  border:1px solid #d5c59c26; background:linear-gradient(135deg,#f4ecd608,#ffffff02);
  box-shadow:inset 0 1px #ffffe906; border-radius:18px; color:var(--table-text); min-width:0;
}
.game-ludo.club-play .panel-kicker { color:#baae90; font-size:9px; font-weight:600; line-height:1.6; letter-spacing:.16em; }
.game-ludo.club-play .players-card { padding:24px 15px 18px; }
.game-ludo.club-play .players-card>.panel-kicker { padding-left:7px; }
.game-ludo.club-play .players-card h2 {
  margin:12px 7px 10px; color:#f0e5ce; font-family:Georgia,'Times New Roman',serif;
  font-weight:400; font-size:32px; line-height:1.14; letter-spacing:-.035em;
}
.game-ludo.club-play .players-card h2 em { color:#c3b38e; font-style:italic; }
.game-ludo.club-play .table-subtitle { color:var(--table-muted); font-size:11px; line-height:1.6; margin:0 7px 22px; }
.game-ludo.club-play .player-list { display:grid; grid-template-columns:1fr; gap:10px; }
.game-ludo.club-play .player-row {
  position:relative; padding:11px 8px; grid-template-columns:36px minmax(0,1fr) auto; gap:9px;
  min-height:69px; opacity:1; border:1px solid transparent; background:transparent;
  border-radius:12px; transition:background-color .2s,border-color .2s; box-shadow:none;
}
.game-ludo.club-play .player-row.red { --player-colour:#e48873; }
.game-ludo.club-play .player-row.blue { --player-colour:#85bcde; }
.game-ludo.club-play .player-row.green { --player-colour:#7cc4a3; }
.game-ludo.club-play .player-row.yellow { --player-colour:#e2bf64; }
.game-ludo.club-play .player-row.active { border-color:#ddbd8244; background:#efe8cb09; box-shadow:inset 2px 0 var(--player-colour); }
.game-ludo.club-play .player-row strong { color:#eee9db; font-size:12px; line-height:1.45; letter-spacing:.02em; overflow-wrap:anywhere; }
.game-ludo.club-play .player-row small { font-size:8px; color:#a9b0a4; letter-spacing:.07em; }
.game-ludo.club-play .player-avatar {
  background:none; border:0; border-radius:0; width:33px; height:48px; display:block;
  box-shadow:none; transform:none;
}
.game-ludo.club-play .player-avatar .pawn-art { display:block; width:100%; height:100%; }
.game-ludo.club-play .player-score { font-size:19px; color:#e7d8b9; font-weight:400; }
.game-ludo.club-play .player-score i { font-size:10px; color:#9fa595; padding-left:2px; }
.game-ludo.club-play .streak { border-color:#ddbd8224; gap:12px; margin-top:20px; padding-top:18px; }
.game-ludo.club-play .streak>span { background:none; color:#d8b576; font-size:25px; width:31px; }
.game-ludo.club-play .streak small { color:#b0b5a7; font-size:8px; }
.game-ludo.club-play .streak strong { display:block; color:#e3d4b5; line-height:1.5; font-weight:400; font-size:22px; }
.game-ludo.club-play .streak em { font-size:8px; font-weight:600; color:#a2a994; margin-left:5px; }
.game-ludo.club-play .board-column { width:100%; min-width:0; grid-column:2; grid-row:1; }
.game-ludo.club-play .match-heading { display:flex; margin:0 3px 21px; align-items:center; gap:12px; }
.game-ludo.club-play .match-heading span { font-size:8px; letter-spacing:.19em; line-height:1.6; color:#bcaf91; }
.game-ludo.club-play .match-heading h1 {
  font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(29px,2.8vw,42px);
  line-height:1.13; letter-spacing:-.045em; color:#f4ead4; margin:5px 0 0;
}
.game-ludo.club-play .match-heading h1 i { color:#d5b67b; font-style:italic; font-weight:400; }
.game-ludo.club-play .turn-badge { flex:0 1 120px; min-width:55px; padding-left:14px; border-left:1px solid #ddbd823c; }
.game-ludo.club-play .turn-badge small { color:#b6b5a3; font-size:8px; letter-spacing:.1em; }
.game-ludo.club-play .turn-badge b { font-size:12px; line-height:1.45; letter-spacing:.02em; overflow-wrap:anywhere; }
.game-ludo.club-play .turn-badge .red { color:#efa58b; }
.game-ludo.club-play .turn-badge .blue { color:#9cc8e7; }
.game-ludo.club-play .turn-badge .green { color:#8fd2b1; }
.game-ludo.club-play .turn-badge .yellow { color:#f1d68a; }
/* The frame, porcelain cells, lacquer courts and finish are all raster art.
   Geometry comes from the existing game's grid, never from generated tracks. */
.game-ludo.club-play .board-viewport { width:100%; overflow:auto; border-radius:12px; scrollbar-color:#a78d59 #182018; scrollbar-width:thin; }
/* Project the raster surface and every native hit target as one plane. The stage
   reserves the trapezoid's bounds, including the front rim and contact shadow.
   Container-relative depth keeps the camera identical in fit and zoom modes. */
.game-ludo.club-play .board-stage {
  position:relative; width:100%; aspect-ratio:1.18; container-type:inline-size;
}
.game-ludo.club-play .board-frame {
  position:absolute; width:86%; left:7%; top:-6cqw; padding:0; aspect-ratio:1; border:0; border-radius:9px;
  transform-origin:50% 50%; transform:perspective(190cqw) rotateX(34deg);
  background:#49301c url("board-materials-v1.webp") center top / 100% 102.5% no-repeat;
  box-shadow:0 2px 0 #d6af6c,0 6px 0 #644329,0 10px 0 #362719,
    0 12px 0 #b18950,0 14px 0 #241c15,0 22px 18px #020b1677,0 30px 30px #020b1644;
  isolation:isolate;
}
.game-ludo.club-play .ludo-board {
  display:grid; grid-template:repeat(15,minmax(0,1fr))/repeat(15,minmax(0,1fr));
  width:85.6%; aspect-ratio:1; position:absolute; inset:7.2%; overflow:visible; border:0;
  border-radius:0; background:#dfc79c; box-shadow:0 0 0 1px #c5a465;
  user-select:none; -webkit-user-select:none;
}
.game-ludo.club-play .board-tile { background:none; border:0; min-width:0; min-height:0; }
.game-ludo.club-play .raster-material { background-image:url("board-materials-v1.webp"); background-repeat:no-repeat; }
.game-ludo.club-play .raster-court { position:absolute; width:40%; height:40%; pointer-events:none; }
.game-ludo.club-play .raster-court.red { left:0; top:0; }
.game-ludo.club-play .raster-court.blue { right:0; top:0; }
.game-ludo.club-play .raster-court.green { right:0; bottom:0; }
.game-ludo.club-play .raster-court.yellow { left:0; bottom:0; }
.game-ludo.club-play .goal {
  position:absolute; inset:40%; width:20%; height:20%; clip-path:none; border:0;
  display:block; pointer-events:none; border-radius:0; box-shadow:none; text-shadow:none;
}
.game-ludo.club-play .home-slot,.game-ludo.club-play .star { display:none; }
.game-ludo.club-play .safe-marker {
  display:grid; place-items:center; position:absolute; inset:0; font-family:Georgia,serif;
  color:#f1d99f; font-size:clamp(11px,1.4vw,22px); text-shadow:0 1px 1px #251b0c;
}
.game-ludo.club-play .pawn-art {
  background-image:url("pawn-collection-v1.webp"); background-size:400% 100%;
  background-repeat:no-repeat; pointer-events:none;
}
.game-ludo.club-play .pawn-art.red { background-position:0% 0; }
.game-ludo.club-play .pawn-art.blue { background-position:33.333333% 0; }
.game-ludo.club-play .pawn-art.green { background-position:66.666667% 0; }
.game-ludo.club-play .pawn-art.yellow { background-position:100% 0; }
/* The pawns are painted rather than built: the brain composites the very same
   raster artwork into a picture (src/board-table.js), which the page lays over
   the grid. Nothing in the markup names a colour any more.
   A canvas is a replaced element — inset:0 does not size it — so it is given a
   width and a height as well, and it reaches a little past the board because a
   pawn stands taller than its square and one on the top row rises above it. */
.game-ludo.club-play .board-art { position:absolute; left:-7%; top:-7%; width:114%; height:114%; pointer-events:none; z-index:4; }
.game-ludo.club-play .spot { position:relative; z-index:6; padding:0; border:0; background:none; touch-action:manipulation; }
.game-ludo.club-play .spot-yard { position:absolute; width:9.3%; height:auto; aspect-ratio:.6875; transform:translate(-50%,-78%); border-radius:35%; }
.game-ludo.club-play .spot:focus-visible { outline:3px solid #fff3c5; outline-offset:4px; z-index:12; }
.game-ludo.club-play .board-tools { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:10px 2px 0; }
.game-ludo.club-play .board-tools>span { font-size:8px; letter-spacing:.13em; color:#a8a58d; line-height:1.5; }
.game-ludo.club-play .board-tools i { font-style:normal; margin:0 3px; }
.game-ludo.club-play .status-line {
  margin:4px 0 0; padding:10px 12px; min-height:40px; color:#d2d6c5; background:#ffffff04;
  border:1px solid #ddbd8215; border-radius:9px; font-size:12px; font-weight:400; line-height:1.55; letter-spacing:0;
}
.game-ludo.club-play .dice-panel { padding:24px 18px 18px; display:block; text-align:center; grid-column:3; grid-row:1; }
.game-ludo.club-play .dice-title { font:italic 35px/1.2 Georgia,serif; color:#eadbbe; letter-spacing:-.04em; margin:12px 0 0; }
.game-ludo.club-play .dice-cage {
  width:144px; height:144px; margin:22px auto 25px; padding:16px; border:1px solid #bdae7833;
  border-radius:50%; background:radial-gradient(circle,#142018,#28342a); box-shadow:inset 0 3px 14px #0005,0 0 0 5px #ffffff02;
}
.game-ludo.club-play .die {
  width:76px; height:76px; padding:12px; border-radius:17px; transform:rotate(-10deg);
  border:1px solid #fff9e3; background:linear-gradient(135deg,#fffcec,#ddca9f);
  box-shadow:inset 3px 3px 5px #fff9de, inset -2px -2px 4px #c3a96a,1px 6px 0 #a8915b,4px 12px 15px #0007;
}
.game-ludo.club-play .die span { width:11px; height:11px; background:#344334; box-shadow:inset 0 2px 2px #0d170e; }
.game-ludo.club-play .roll-button {
  min-height:50px; padding:12px 10px; border:1px solid #ffe4b1; border-radius:10px; color:#343720;
  background:linear-gradient(115deg,#eed4a4,#dcb779); box-shadow:0 3px 0 #92703c,0 8px 18px #0003;
  font-family:Club,sans-serif; font-size:12px; font-weight:600; letter-spacing:.13em;
}
.game-ludo.club-play .roll-button:disabled { opacity:.48; box-shadow:none; }
.game-ludo.club-play .moves-stat { padding:20px 0 18px; margin:24px 0 0; border-top:1px solid #ddbd822a; }
.game-ludo.club-play .moves-stat strong { font:400 44px/1.2 Georgia,serif; color:#e8d3ab; margin:6px 0; }
.game-ludo.club-play .moves-stat small,.game-ludo.club-play .moves-stat span { color:#adb09a; font-size:8px; letter-spacing:.14em; }
.game-ludo.club-play .table-notes { padding-top:15px; border-top:1px solid #ddbd822a; text-align:left; }
.game-ludo.club-play .table-notes p { display:flex; gap:11px; align-items:center; margin:0 0 12px; }
.game-ludo.club-play .table-notes b { font:italic 23px/1 Georgia,serif; color:#c7b07f; }
.game-ludo.club-play .table-notes p span { color:#b1b8a9; font-size:11px; line-height:1.5; }
.game-ludo.club-play .table-notes a { display:flex; align-items:center; justify-content:space-between; min-height:44px; color:#d3bd94; font-size:10px; text-decoration:none; border-top:1px solid #ddbd8218; }
.game-ludo.club-play footer { max-width:1500px; margin:auto; padding:18px 0 24px; border-top:1px solid #ddbd821d; color:#8f9a89; font-size:8px; gap:16px; }
.game-ludo.club-play footer b { color:#b9b39a; font-weight:400; }
.game-ludo.club-play footer i { color:#b49660; }
.game-ludo.club-play :is(button,a,.board-viewport):focus-visible { outline:2px solid #f9dba1; outline-offset:4px; }
@media(max-width:1150px) {
  .game-ludo.club-play .game-layout { grid-template-columns:minmax(0,1fr) 220px; gap:24px; max-width:1000px; }
  .game-ludo.club-play .board-column { grid-column:1; grid-row:1/3; width:100%; align-self:start; }
  .game-ludo.club-play .dice-panel { grid-column:2; grid-row:1; width:100%; align-self:end; }
  .game-ludo.club-play .players-card { grid-column:2; grid-row:2; width:100%; align-self:start; }
  .game-ludo.club-play .players-card h2 { font-size:24px; margin-top:5px; }
  .game-ludo.club-play .players-card h2 br { display:none; }
  .game-ludo.club-play .players-card h2 em { display:block; }
  .game-ludo.club-play .table-subtitle,.game-ludo.club-play .streak { display:none; }
  .game-ludo.club-play .player-list { grid-template-columns:1fr; gap:3px; }
  .game-ludo.club-play .player-row { padding:5px; min-height:56px; }
  .game-ludo.club-play .table-notes { display:none; }
  .game-ludo.club-play .dice-cage { width:112px; height:112px; margin:16px auto 20px; }
  .game-ludo.club-play .moves-stat { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; padding:15px 0 0; margin-top:18px; }
  .game-ludo.club-play .moves-stat strong { font-size:30px; margin:0; }
  .game-ludo.club-play .moves-stat span { display:none; }
}
@media(max-width:1100px) {
  .game-ludo.club-play .club-site-nav { background:#243027; box-shadow:0 18px 32px #0007; border:1px solid #b6a37644; }
}
@media(max-width:850px) and (orientation:portrait), (max-width:680px) {
  .game-ludo.club-play .arcade { padding:12px 12px 0; }
  .game-ludo.club-play .club-header-inner { padding:0 0 12px; min-height:56px; gap:9px; }
  .game-ludo.club-play .club-brand .club-mark { width:32px; height:36px; font-size:22px; }
  .game-ludo.club-play .club-brand b { font-size:21px; }
  .game-ludo.club-play .club-brand small { display:none; }
  .game-ludo.club-play .club-console { gap:10px; }
  .game-ludo.club-play .club-game-actions { gap:6px; }
  .game-ludo.club-play .club-game-actions :is(a,button),.game-ludo.club-play .club-menu-toggle { font-size:10px; padding-inline:9px; }
  .game-ludo.club-play .game-layout { display:grid; grid-template-columns:minmax(0,1fr); max-width:690px; padding:22px 0 16px; gap:14px; }
  .game-ludo.club-play .board-column { grid-column:1; grid-row:1; width:100%; }
  .game-ludo.club-play .match-heading { margin:0 2px 17px; }
  .game-ludo.club-play .match-heading h1 { font-size:clamp(29px,6vw,42px); }
  .game-ludo.club-play .match-heading span { font-size:7px; letter-spacing:.13em; }
  .game-ludo.club-play .turn-badge { flex-basis:100px; padding-left:10px; }
  .game-ludo.club-play .board-frame { border-radius:7px; }
  .game-ludo.club-play .board-tools { margin-top:5px; gap:8px; }
  .game-ludo.club-play .board-tools>span { font-size:7px; letter-spacing:.07em; }
  .game-ludo.club-play .status-line { font-size:11px; padding:8px 10px; }
  .game-ludo.club-play .dice-panel {
    grid-column:1; grid-row:2; width:100%; display:grid; grid-template-columns:84px minmax(0,1fr);
    gap:5px 15px; padding:16px; text-align:left; align-items:center; border-radius:14px;
  }
  .game-ludo.club-play .dice-panel>.panel-kicker { grid-column:2; grid-row:1; font-size:8px; letter-spacing:.09em; }
  .game-ludo.club-play .dice-title { display:none; }
  .game-ludo.club-play .dice-cage { grid-column:1; grid-row:1/4; width:80px; height:80px; padding:10px; margin:0; }
  .game-ludo.club-play .die { width:53px; height:53px; padding:8px; border-radius:12px; }
  .game-ludo.club-play .die span { width:8px; height:8px; }
  .game-ludo.club-play .roll-button { grid-column:2; grid-row:2; font-size:11px; min-height:48px; padding:8px; }
  .game-ludo.club-play .moves-stat { grid-column:2; grid-row:3; border:0; padding:4px 0 0; margin:0; justify-content:flex-start; gap:7px; }
  .game-ludo.club-play .moves-stat small { font-size:8px; letter-spacing:.05em; }
  .game-ludo.club-play .moves-stat strong { font:600 12px Club,sans-serif; }
  .game-ludo.club-play .moves-stat span { display:block; font-size:8px; letter-spacing:.03em; }
  .game-ludo.club-play .players-card { grid-column:1; grid-row:3; width:100%; padding:14px; border-radius:14px; }
  .game-ludo.club-play .players-card h2,.game-ludo.club-play .players-card>.panel-kicker { display:none; }
  .game-ludo.club-play .player-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  .game-ludo.club-play .player-row { grid-template-columns:29px minmax(0,1fr) auto; padding:7px; gap:8px; }
  .game-ludo.club-play .player-avatar { width:27px; height:40px; }
  .game-ludo.club-play .player-row strong { font-size:11px; }
  .game-ludo.club-play .player-row small { font-size:7px; }
  .game-ludo.club-play .player-score { font-size:16px; }
  .game-ludo.club-play footer { font-size:7px; padding-top:12px; letter-spacing:.04em; }
}
@media(min-width:601px) and (max-width:850px) and (orientation:portrait) {
  .game-ludo.club-play .game-layout { max-width:min(690px,calc(100svh - 440px)); }
}
@media(max-width:360px) {
  .game-ludo.club-play .arcade { padding-inline:9px; }
  .game-ludo.club-play .club-brand .club-mark { display:none; }
  .game-ludo.club-play .club-console { gap:7px; }
  .game-ludo.club-play .turn-badge { flex-basis:68px; }
  .game-ludo.club-play .match-heading h1 { font-size:28px; }
  .game-ludo.club-play .match-heading span { font-size:6px; }
  .game-ludo.club-play .board-tools>span { max-width:145px; }
  .game-ludo.club-play .dice-panel { padding:13px; gap:5px 12px; }
  .game-ludo.club-play .players-card { padding:9px; }
}
@media(orientation:landscape) and (max-height:600px) {
  .game-ludo.club-play .arcade { padding:8px 16px 0; }
  .game-ludo.club-play .club-header-inner { padding:0 0 8px; min-height:49px; }
  .game-ludo.club-play .game-layout { max-width:900px; grid-template-columns:minmax(0,1fr) 250px; padding:12px 0; gap:12px 24px; align-items:start; }
  .game-ludo.club-play .board-column { grid-column:1; grid-row:1/3; width:min(100%,calc(100svh - 64px)); justify-self:center; }
  .game-ludo.club-play .match-heading { display:none; }
  .game-ludo.club-play .board-tools>span { display:none; }
  .game-ludo.club-play .board-tools { justify-content:flex-end; margin:0; }
  .game-ludo.club-play .status-line { margin:0; padding:7px; font-size:10px; }
  .game-ludo.club-play .dice-panel { display:grid; grid-column:2; grid-row:1; width:100%; grid-template-columns:72px minmax(0,1fr); gap:6px 10px; padding:12px; text-align:left; }
  .game-ludo.club-play .dice-title { display:none; }
  .game-ludo.club-play .dice-panel>.panel-kicker { grid-column:2; grid-row:1; font-size:7px; letter-spacing:.05em; }
  .game-ludo.club-play .dice-cage { grid-column:1; grid-row:1/4; width:68px; height:68px; margin:0; padding:6px; }
  .game-ludo.club-play .die { width:47px; height:47px; padding:7px; border-radius:11px; }
  .game-ludo.club-play .die span { width:7px; height:7px; }
  .game-ludo.club-play .roll-button { grid-column:2; grid-row:2; font-size:9px; letter-spacing:.03em; }
  .game-ludo.club-play .moves-stat { grid-column:2; grid-row:3; padding:0; margin:0; border:0; gap:4px; justify-content:flex-start; }
  .game-ludo.club-play .moves-stat small { font-size:7px; letter-spacing:0; }
  .game-ludo.club-play .moves-stat strong { font:600 12px Club,sans-serif; }
  .game-ludo.club-play .moves-stat span { display:none; }
  .game-ludo.club-play .players-card { grid-column:2; grid-row:2; width:100%; padding:10px; }
  .game-ludo.club-play .players-card h2,.game-ludo.club-play .players-card>.panel-kicker { display:none; }
  .game-ludo.club-play .player-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; }
  .game-ludo.club-play .player-row { grid-template-columns:24px minmax(0,1fr); padding:5px; gap:5px; min-height:45px; }
  .game-ludo.club-play .player-avatar { width:24px; height:35px; }
  .game-ludo.club-play .player-row strong { font-size:9px; }
  .game-ludo.club-play .player-row small { font-size:6px; }
  .game-ludo.club-play .player-score { display:none; }
  .game-ludo.club-play .table-notes { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  .game-ludo.club-play * { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
