/* forest-baccarat.css — 新卜森百家樂：發牌區（閒／莊兩手標準撲克牌、點數徽章、金框）（spec 2026-09-30-forest-art-bingo-fish-bacc §B.3、§B.5.2）
 * 場景圖 zoo-baccarat-scene-v1.webp 只畫亞瑟與俯視的牌桌；發牌區是平塗錨點（已補成皇家藍絨布），由 forest-baccarat.js 蓋上。
 * 位置由 ForestBaccarat.sync() 依來源圖量測值給 host 的 --baccarat-x/-y/-w/-h（發牌區，含 PAD，px）；
 *   區內的牌、徽章、金框都用發牌區的百分比（模組算好），括號裡的百分比只在 sync() 之前（首幀）用得到。
 * 翻牌：.baccarat-flip 轉 rotateY(0→180deg)，牌背與牌面 backface-visibility:hidden，牌面預轉 180°；第三張外層多一層 .baccarat-turn 橫放。
 * 注意：動畫只套在 HTML div 與最外層 <svg>。牌面點數與區域標籤是 SVG <text>（插畫，大字模式不放大）。
 * 注意：字級規則要在 forest-font-lg.css 補 ×2 覆寫（tools/__tests__/forest-font-css.test.js 會掃描本檔）。 */

/* ── 場景 ── */
.story-game[data-game=baccarat]{background:#10223f}
.story-game[data-game=baccarat] .game-color{background:linear-gradient(#0a162a59,transparent 26%,#10223f18 55%,#0b1830dc 80%,#08122af5)}
.story-game .baccarat-picture,.contrast-scene .baccarat-picture{background-image:url("assets/zoo-baccarat-scene-v1.webp")!important;background-size:cover!important;background-position:center top!important;background-color:#10223f}
.baccarat-picture:before{display:none}

/* ── 發牌區 ── */
.baccarat-rig{position:absolute;inset:0;z-index:2;pointer-events:none}
.baccarat-zone{position:absolute;left:var(--baccarat-x,13%);top:var(--baccarat-y,28.8%);width:var(--baccarat-w,73.9%);height:var(--baccarat-h,20.3%)}
.baccarat-felt{position:absolute;inset:0;display:block;width:100%;height:100%;filter:drop-shadow(0 3px 6px #050b1899)}
.baccarat-win{position:absolute;opacity:0;border:3px solid #F2B632;border-radius:14px;box-shadow:0 0 10px 2px #ffd84dcc,inset 0 0 10px #ffd84d88;pointer-events:none}
.baccarat-win.is-on{opacity:1}

/* ── 牌 ── */
.baccarat-card{position:absolute;opacity:0;perspective:320px}
.baccarat-card.is-shown{opacity:1}
.baccarat-turn{position:absolute;left:14.2857%;top:-20%;width:71.4286%;height:140%;transform:rotate(90deg);perspective:320px}
.baccarat-flip{position:absolute;inset:0;transform-style:preserve-3d}
.bc-back,.bc-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.bc-face{transform:rotateY(180deg)}
.bc-svg{display:block;width:100%;height:100%;border-radius:8%/5.7%;box-shadow:0 2px 4px #05102066}
.baccarat-score{position:absolute;display:block;opacity:0;overflow:visible;filter:drop-shadow(0 2px 3px #05102088)}
.baccarat-score.is-on{opacity:1}

/* ── 觸控區（透明按鈕：整個發牌區，≥ 44px）＋提示晶片（發牌區下緣＋12px 置中；--baccarat-hint-y 由 sync 量 prelude 決定）── */
.baccarat-touch{position:absolute;z-index:6;left:var(--baccarat-x,13%);top:var(--baccarat-y,28.8%);width:var(--baccarat-w,73.9%);height:var(--baccarat-h,20.3%);min-width:44px;min-height:44px;padding:0;border:0;border-radius:16px;background:transparent;touch-action:manipulation;cursor:pointer;-webkit-tap-highlight-color:transparent}
.baccarat-touch:focus-visible{outline:3px solid #fff0ab;outline-offset:6px}
.baccarat-touch-hint{position:absolute;left:50%;top:calc(var(--baccarat-hint-y,calc(var(--baccarat-y,28.8%) + var(--baccarat-h,20.3%) + 12px)) - var(--baccarat-y,28.8%));width:max-content;max-width:calc(100vw - 32px);padding:8px 15px;border:1px solid #ffe1a1;border-radius:18px;background:#14305cec;box-shadow:0 5px 13px #06102099;color:#fff4c9;font-size:13px;font-weight:900;letter-spacing:.5px;line-height:1.35;text-align:center;transform:translateX(-50%);pointer-events:none}
.story-game .baccarat-touch-hint{animation:baccaratInvite 2.4s ease-in-out infinite}
@keyframes baccaratInvite{50%{box-shadow:0 5px 13px #06102099,0 0 0 4px #ffe1a155,0 0 16px 4px #ffd27aaa}}

/* ── 落定標籤（發牌區下緣 14px、以發牌區中心置中）── */
.baccarat-result{position:absolute;z-index:5;left:calc(var(--baccarat-x,13%) + var(--baccarat-w,73.9%) / 2);top:calc(var(--baccarat-y,28.8%) + var(--baccarat-h,20.3%) + 14px);display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;max-width:min(calc(100% - 32px),calc(var(--baccarat-w,73.9%) + 40px));margin:0;padding:8px 15px;border:1px solid #ffe1a1;border-radius:18px;background:#14305cec;box-shadow:0 5px 13px #06102099;color:#fff4c9;font-size:15px;font-weight:900;letter-spacing:.5px;text-align:center;text-wrap:balance;word-break:keep-all;opacity:0;transform:translate(-50%,8px);transition:opacity .35s ease,transform .35s ease;pointer-events:none}
.story-game.landed .baccarat-result{opacity:1;transform:translate(-50%,0)}

/* ── 流程 ── */
.story-game[data-game=baccarat].playing .baccarat-touch{opacity:0;pointer-events:none}
.story-game[data-game=baccarat].playing .game-stage{animation:none!important}
.story-game[data-game=baccarat].playing .path-shift{animation:none}
.story-game[data-game=baccarat].shifting .path-shift{animation:pathShiftToShade 1.1s cubic-bezier(.22,.55,.2,1) both}
.contrast-scene .baccarat-rig{opacity:.85}
html.forest-rm .story-game[data-game=baccarat].playing .game-color{animation-duration:.01ms!important}
