/* Grand Departure 21 — table styles */
.gd{background:var(--teal);color:var(--cream-hi);border:3px solid var(--ink);border-radius:22px;box-shadow:0 8px 0 var(--ink);overflow:hidden}
.gd-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--teal-deep);padding:12px 18px;border-bottom:3px solid var(--ink)}
.gd-title{font:400 1.2rem/1 var(--display);letter-spacing:.02em;display:flex;align-items:center;gap:10px}
.gd-title::before{content:"";width:16px;height:16px;border-radius:50%;background:var(--mustard);box-shadow:0 0 0 3px var(--teal-deep),0 0 0 5px var(--coral)}
.gd-free{font:600 .72rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;background:var(--mustard);color:var(--ink);padding:6px 10px;border-radius:999px}

.gd-meters{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-bottom:3px solid var(--ink)}
.gd-meter{padding:10px 18px;background:var(--cream-hi);color:var(--ink)}
.gd-meter + .gd-meter{border-left:3px solid var(--ink);background:var(--mustard)}
.gd-meter > span{display:block;font:600 .7rem/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.gd-meter + .gd-meter > span{color:var(--ink)}
.gd-meter b{font:400 1.7rem/1.1 var(--display)}

.gd-felt{padding:16px 18px 6px;position:relative;
  background:
    radial-gradient(circle at 50% 118%,rgba(221,160,43,.28) 0 32%,transparent 32.4%),
    var(--teal)}
.gd-row{margin-bottom:10px}
.gd-row-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px;font-weight:600;font-size:.86rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-soft)}
.gd-row-head b{font:400 1.05rem/1 var(--display);letter-spacing:0;color:var(--cream-hi);background:var(--teal-deep);border-radius:999px;padding:5px 11px;text-transform:none}
.gd-hand{list-style:none;margin:0;padding:0;display:flex;min-height:118px;gap:0}
.gd-card{width:78px;height:112px;perspective:700px;margin-right:-22px;opacity:0;transform:translate(40px,-30px) rotate(6deg);transition:opacity .25s, transform .3s cubic-bezier(.3,.8,.35,1)}
.gd-card.in{opacity:1;transform:none}
.gd-card:nth-child(2n).in{transform:translateY(4px) rotate(1.5deg)}
.gd-card-in{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s ease;transform:rotateY(180deg)}
.gd-card.up .gd-card-in{transform:rotateY(0)}
.gd-face,.gd-back{position:absolute;inset:0;border-radius:10px;border:2.5px solid var(--ink);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.gd-face{background:var(--cream-hi);color:var(--ink);box-shadow:0 3px 0 rgba(0,0,0,.25)}
.gd-card.red .gd-face{color:var(--coral-deep)}
.gd-corner{position:absolute;top:5px;left:7px;font:400 1.02rem/1 var(--display);display:flex;flex-direction:column;align-items:center}
.gd-corner i{font-style:normal;font-size:.9rem;margin-top:1px}
.gd-corner-b{top:auto;left:auto;bottom:5px;right:7px;transform:rotate(180deg)}
.gd-pip{position:absolute;inset:0;display:grid;place-items:center;font-size:2.3rem}
.gd-back{transform:rotateY(180deg);background:var(--coral);display:grid;place-items:center;overflow:hidden}
.gd-back::before{content:"";position:absolute;inset:6px;border-radius:6px;background:repeating-linear-gradient(0deg,var(--coral) 0 7px,var(--coral-deep) 7px 9px)}
.gd-back span{position:relative;width:36px;height:36px;border-radius:50%;background:var(--mustard);border:2.5px solid var(--ink);box-shadow:0 0 0 4px var(--cream-hi)}

.gd-callout{min-height:0;margin:0 0 10px;border-radius:14px;display:none}
.gd-callout.show{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:12px 16px;border:3px solid var(--ink);animation:gdPop .35s ease}
.gd-callout strong{font:400 1.45rem/1 var(--display)}
.gd-callout span{font-weight:700;font-size:1.05rem}
.gd-callout small{flex-basis:100%;font-size:.9rem;opacity:.85}
.gd-callout.win{background:var(--mustard);color:var(--ink)}
.gd-callout.blackjack{background:var(--cream-hi);color:var(--coral-deep);box-shadow:inset 0 0 0 4px var(--mustard)}
.gd-callout.blackjack strong{font-size:1.8rem}
.gd-callout.push{background:var(--teal-soft);color:var(--ink)}
.gd-callout.lose{background:var(--ink);color:var(--cream)}
@keyframes gdPop{from{transform:scale(.92);opacity:0}to{transform:none;opacity:1}}

.gd-status{margin:0;padding:10px 18px;background:var(--teal-deep);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);font-size:.95rem;min-height:3.2em}
.gd-controls{padding:14px 18px 18px;background:var(--cream);color:var(--ink);display:grid;gap:14px}
.gd-chips{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.gd-chips > span{font-weight:600;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-right:4px}
.gd-chip{width:54px;height:54px;border-radius:50%;border:3px solid var(--ink);cursor:pointer;font:400 .95rem/1 var(--display);color:var(--ink);
  background:var(--cream-hi);box-shadow:inset 0 0 0 5px var(--c,var(--mustard)),0 3px 0 var(--ink);transition:transform .1s}
.gd-chip:hover:not([disabled]){transform:translateY(-2px)}
.gd-chip[disabled]{opacity:.4;cursor:not-allowed}
.gd-chip[data-chip="25"]{--c:var(--teal)}
.gd-chip[data-chip="50"]{--c:var(--coral)}
.gd-chip[data-chip="100"]{--c:var(--ink)}
.gd-small{font:600 .88rem/1 var(--body);padding:9px 14px;border-radius:999px;border:2px solid var(--ink);background:var(--cream-hi);color:var(--ink);cursor:pointer}
.gd-small[disabled]{opacity:.4;cursor:not-allowed}
.gd-actions{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:10px}
.gd-actions .btn{padding:13px 10px;font-size:.98rem}
.gd-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;font-size:.84rem;color:var(--ink-soft)}
.gd-foot b{color:var(--ink)}
.gd-broke{display:none;background:var(--coral);color:var(--cream-hi);border:3px solid var(--ink);border-radius:12px;padding:10px 14px;font-weight:600}
.gd.is-broke .gd-broke{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.gd-broke .gd-small{border-color:var(--ink)}

@media (max-width:520px){
  .gd-card{width:62px;height:90px;margin-right:-18px}
  .gd-hand{min-height:96px}
  .gd-pip{font-size:1.8rem}
  .gd-corner{font-size:.88rem}
  .gd-actions{grid-template-columns:1fr 1fr}
  .gd-chip{width:48px;height:48px}
}

/* rules reference on /tr-game/ */
.rules{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.rules .panel{padding:22px}
.rules dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px}
.rules dt{font-family:var(--display);color:var(--coral-deep)}
.rules dd{margin:0}
.game-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(24px,4vw,44px);align-items:start}
@media (max-width:980px){.game-layout,.rules{grid-template-columns:1fr}}
