/* Vault table (bjtable.js): the live Blackjack Lobby table. Everything is scoped under .bjv / .bjv-frame so the older table styles don't apply. */
.bjv-frame .bjv-fit{background:#05090c}
.main:not(.bjl-locked) .bjv-frame:not(:fullscreen){max-width:clamp(640px,calc((100vh - 250px)*1.6),1360px)}
.main:not(.bjl-locked) .bjv-frame:not(:fullscreen) .bjv-fit{aspect-ratio:auto!important;height:auto;flex:none;display:block;container-type:normal}
.main.bjl-locked .bjv-frame .bjv-fit,.bjv-frame:fullscreen .bjv-fit{flex:1 1 auto;min-height:0;container-type:size;display:grid;place-items:center}
.bjv{--acc:#4DA3FF;position:relative;display:flex;flex-direction:column;align-items:stretch!important;justify-content:flex-start;width:100%;color:#fff;font-family:var(--ui,inherit);user-select:none;-webkit-tap-highlight-color:transparent}
.main.bjl-locked .bjv-frame .bjv:not(.m),.bjv-frame:fullscreen .bjv:not(.m){width:min(100cqw,calc((100cqh - 54px)*1.7778))}
.bjv-stage{position:relative;width:100%;aspect-ratio:1456/819;container-type:inline-size;overflow:hidden;background:#05090c}
.bjv-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.bjv-svg text{font-family:var(--ui,inherit)}
.bjv-a{transform-box:fill-box;transform-origin:center}
.bjv-hit{cursor:pointer;outline:none}
.bjv-hit:focus-visible circle{stroke:#00e701!important;stroke-width:3!important}
.bjv-hit.sit:hover circle{fill:rgba(255,255,255,.22)}
.bjv-hit.bjv-x:hover circle{fill:#2a3870}
.bjv-active{animation:vtPulse 1.3s ease-in-out infinite}
.bjv-lens{animation:vtPulse 2.4s ease-in-out infinite}
@keyframes vtPulse{0%,100%{opacity:1}50%{opacity:.5}}
@media (prefers-reduced-motion:reduce){.bjv-active,.bjv-lens{animation:none}}

/* overlays on the stage */
.bjv-top{position:absolute;left:1.4%;right:1.4%;top:1.2%;display:flex;justify-content:space-between;gap:8px;font-size:clamp(10px,1cqw,14px);font-weight:600;color:#dfe7ee;text-shadow:0 1px 3px #000;pointer-events:none;z-index:2}
.bjv-status{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);padding:.55em 1.4em;border-radius:99px;background:rgba(10,14,22,.86);border:1px solid rgba(255,255,255,.35);font-size:clamp(11px,1.05cqw,15px);font-weight:800;letter-spacing:.05em;white-space:nowrap;z-index:3;pointer-events:none}
.bjv-status[hidden]{display:none}
.bjv-win{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);z-index:6;display:flex;flex-direction:column;align-items:center;gap:.1em;padding:.7em 4.5em;background:linear-gradient(90deg,transparent,rgba(6,8,14,.9) 22%,rgba(6,8,14,.9) 78%,transparent);border-top:1px solid rgba(255,214,98,.5);border-bottom:1px solid rgba(255,214,98,.5);font-size:clamp(12px,1.25cqw,18px);pointer-events:none}
.bjv-win small{font-size:.85em;font-weight:800;letter-spacing:.06em}
.bjv-win b{font-size:1.9em;color:#ffcf3a;font-weight:800}
.bjv-win[hidden]{display:none}
.bjv-mdealer,.bjv-mstatus,.bjv-panel,.bjv-mspot{display:none}

/* controls: centred over the table on desktop, in the panel below the table on phones */
.bjv-ctl{position:absolute;left:50%;top:27%;transform:translateX(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;font-size:clamp(9px,.98cqw,15px)}
.bjv-ctl>[hidden]{display:none!important}
.bjv-tray{display:flex;flex-direction:column;align-items:center;gap:.7em}
.bjv-ring{position:relative;width:4.4em;height:4.4em;display:grid;place-items:center}
.bjv-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}
.bjv-ring .bg{fill:rgba(6,10,16,.85);stroke:rgba(255,255,255,.15);stroke-width:5}
.bjv-ring .fg{fill:none;stroke:#00e701;stroke-width:5;stroke-linecap:round;transition:stroke .3s}
.bjv-ring.low .fg{stroke:#ff3b3b}
.bjv-ring b{position:relative;font-size:1.6em;font-weight:800}
.bjv-chipbar{display:flex;align-items:center;gap:.5em;padding:.55em .7em;border-radius:.9em;background:rgba(10,14,24,.82);border:1px solid rgba(255,255,255,.14);box-shadow:0 6px 20px rgba(0,0,0,.45)}
.bjv-chipbar.off{opacity:.55}
.bjv-chips{display:flex;gap:.45em}
.bjv-chip{--bg:#E23B4E;--fg:#fff;--sd:#8a1020;position:relative;width:3.3em;height:3.3em;border-radius:50%;border:0;padding:0;cursor:pointer;display:grid;place-items:center;color:var(--fg);font:800 1em/1 var(--ui,inherit);text-shadow:0 1px 2px rgba(0,0,0,.35);
  background:radial-gradient(circle,var(--bg) 0 55%,transparent 56%),repeating-conic-gradient(from 6deg,#fff 0 12deg,var(--bg) 12deg 45deg);box-shadow:0 .2em 0 var(--sd),0 .35em .6em rgba(0,0,0,.45);transition:transform .12s,box-shadow .12s}
.bjv-chip::before{content:"";position:absolute;inset:21%;border-radius:50%;border:1.5px solid rgba(255,255,255,.55)}
.bjv-chip:hover{transform:translateY(-2px)}
.bjv-chip.is-sel{box-shadow:0 .2em 0 var(--sd),0 0 0 .2em #ffd400,0 .4em .8em rgba(0,0,0,.5)}
.bjv-chip:focus-visible,.bjv-tool:focus-visible,.bjv-btn:focus-visible,.bjv-deal:focus-visible,.bjv-pill:focus-visible,.bjv-bigspot:focus-visible{outline:2px solid #00e701;outline-offset:2px}
.bjv-tool{width:2.6em;height:2.6em;border-radius:.6em;border:1px solid rgba(255,255,255,.25);background:#141b2c;color:#fff;font:800 1.15em/1 var(--ui,inherit);cursor:pointer}
.bjv-tool.x2{background:linear-gradient(#33d17a,#13994d);border-color:rgba(255,255,255,.5)}
.bjv-tool:disabled{opacity:.35;cursor:default}
.bjv-tool:not(:disabled):hover{filter:brightness(1.15)}
.bjv-deal{padding:.65em 2em;border-radius:99px;border:2px solid rgba(255,255,255,.85);background:linear-gradient(#22306a,#141d48);color:#fff;font:800 1.05em/1 var(--ui,inherit);letter-spacing:.06em;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.45)}
.bjv-deal:hover{background:linear-gradient(#2c3d86,#1a265c)}
.bjv-deal:disabled{opacity:.5;cursor:default}
.bjv-deal[hidden],.bjv-waiting[hidden]{display:none}
.bjv-waiting{display:flex;flex-direction:column;align-items:center;gap:.35em;padding:.5em 1.6em;background:linear-gradient(90deg,transparent,rgba(6,8,14,.85) 20%,rgba(6,8,14,.85) 80%,transparent);font-weight:800;font-size:.95em;letter-spacing:.05em}
.bjv-wn{display:flex;align-items:center;gap:.35em}
.bjv-wn svg{width:1em;height:1em}
.bjv-dec,.bjv-ins{display:flex;flex-direction:column;align-items:center;gap:.5em;padding:.7em .8em .9em;border-radius:1.1em;background:rgba(14,18,26,.93);border:1px solid rgba(255,255,255,.16);box-shadow:0 8px 24px rgba(0,0,0,.5);margin-top:5.5em}
.bjv-dlbl{font-size:.85em;font-weight:800;letter-spacing:.06em;color:#ffd62e;text-align:center}
.bjv-ins .bjv-dlbl{color:#fff}
.bjv-btns{display:flex;gap:.5em}
.bjv-btn{display:flex;flex-direction:column;align-items:center;gap:.35em;background:none;border:0;padding:0;color:#fff;font:800 .82em/1 var(--ui,inherit);letter-spacing:.03em;cursor:pointer;transition:opacity .25s}
.bjv-btn i{width:5.6em;height:4.4em;border-radius:.7em;border:1.6px solid rgba(255,255,255,.6);display:grid;place-items:center;box-shadow:inset 0 1.4em 0 rgba(255,255,255,.14),0 .3em .8em rgba(0,0,0,.4);font-style:normal}
.bjv-btns.two .bjv-btn i{width:8em}
.bjv-btn i svg{width:42%;height:auto;max-height:70%}
.bjv-btn .x2t{font-size:2.7em;font-weight:900;line-height:1;letter-spacing:-.03em;color:#fff;text-shadow:0 .05em 0 rgba(120,50,0,.55),0 .1em .22em rgba(0,0,0,.35)}.bjv-btn .x2t small{font-size:.72em;margin-left:.05em;vertical-align:.1em;font-weight:900}
.bjv-btn:not(:disabled):hover i{filter:brightness(1.12)}
.bjv-btn.off,.bjv-btn.fade{opacity:.28}
.bjv-btn.off,.bjv-btn:disabled{cursor:default}
.bjv-btn.pick i{box-shadow:0 0 0 .2em #fff,inset 0 1.4em 0 rgba(255,255,255,.14),0 .3em 1em rgba(0,0,0,.5)}
.g-or{background:linear-gradient(#ffb73a,#f0780a)}.g-gr{background:linear-gradient(#46e655,#0fae27)}.g-rd{background:linear-gradient(#ff4c4c,#d3101f)}.g-bl{background:linear-gradient(#3fc0ff,#1470e8)}.g-ye{background:linear-gradient(#fff35a,#f2cf00)}
.bjv-timer{position:relative;width:100%;min-width:16em;height:4px;border-radius:2px;background:rgba(0,231,1,.18);margin-top:.9em}
.bjv-timer i{position:absolute;inset:0;border-radius:2px;background:#00e701;box-shadow:0 0 8px #00e701;transform-origin:left center}
.bjv-timer b{position:absolute;left:50%;top:50%;width:2.3em;height:2.3em;margin:-1.15em 0 0 -1.15em;border-radius:50%;background:#0b1a10;border:2px solid #00e701;display:grid;place-items:center;font-size:.95em;font-weight:800;box-sizing:border-box}
.bjv-timer b:empty{display:none}
.bjv-dec.pre .bjv-timer{visibility:hidden}
.bjv-isub{font-size:.8em;color:#c8d2ee}

/* bottom dock: balance, hint, total bet */
.bjv-dock{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;background:#070b12;border-top:1px solid rgba(255,255,255,.08);min-height:38px}
.bjv-dock>div{display:flex;flex-direction:column;min-width:0}
.bjv-dock .r{text-align:right}
.bjv-dock small{font-size:10px;font-weight:700;color:#9fb0c2;letter-spacing:.06em}
.bjv-dock b{font-size:15px;font-weight:800}
.bjv-hint{flex:1;text-align:center;font-size:12px;color:#c8d2ee;align-items:center}

/* ============ portrait phones ============ */
.bjv.m{height:100%;width:100%}
.bjv.m>*{width:100%;box-sizing:border-box}
.bjv-chipbar[hidden]{display:none!important}
.main.bjl-locked .bjv-frame .bjv.m{width:100cqw;height:100cqh}
.bjv.m .bjv-stage{flex:none;aspect-ratio:956/660}
.bjv.m .bjv-top{font-size:10.5px;top:4px;left:8px;right:8px}
.bjv.m .bjv-mstatus{display:block;position:relative;flex:none;height:26px;background:#262d34;overflow:hidden}
.bjv.m .bjv-mstatus.go{background:#0d3a17}
.bjv.m .bjv-mstatus i{position:absolute;inset:0;background:#18b335;transform-origin:left center;transform:scaleX(0)}
.bjv.m .bjv-mstatus span{position:relative;display:block;text-align:center;font:800 12px/26px var(--ui,inherit);letter-spacing:.04em;text-shadow:0 1px 2px rgba(0,0,0,.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px}
.bjv.m .bjv-mdealer{display:block;position:absolute;top:22px;left:8px;opacity:0;transition:opacity .3s;z-index:3}
.bjv.m .bjv-mdealer.on{opacity:1}
.bjv-mdl{display:flex;align-items:center;gap:6px;margin-top:4px}
.bjv-mdl b{min-width:22px;height:22px;padding:0 4px;background:#ffd62e;color:#111;border-radius:3px;font:800 12px/22px var(--ui,inherit);text-align:center}
.bjv-mdl b:empty{display:none}
.bjv-mdl span{font:800 11px var(--ui,inherit);text-shadow:0 1px 3px #000}
.bjv-mcards{display:flex}
.bjv-mc{position:relative;width:28px;height:40px;border-radius:4px;background:#fafafd;color:#16161e;box-shadow:0 2px 6px rgba(0,0,0,.45);margin-left:-7px;font-weight:700}
.bjv-mc:first-child{margin-left:0}
.bjv-mc.red{color:#d3202c}
.bjv-mc.back{background:repeating-linear-gradient(45deg,#2a49b8 0 4px,#6f8ae0 4px 5px);border:2px solid #f6f7fb}
.bjv-mc .i{position:absolute;left:3px;top:2px;font-size:12px;line-height:1;text-align:center}
.bjv-mc .i small{display:block;font-size:10px}
.bjv-mc .i2{left:auto;top:auto;right:3px;bottom:2px;transform:rotate(180deg)}
.bjv-mc .ten{letter-spacing:-1.5px}
.bjv-mcards.big .bjv-mc{width:50px;height:72px;border-radius:6px;margin-left:-12px}
.bjv-mcards.big .bjv-mc:first-child{margin-left:0}
.bjv-mcards.big .i{left:5px;top:4px;font-size:21px}.bjv-mcards.big .i small{font-size:17px}
.bjv-mcards.big .i2{left:auto;top:auto;right:5px;bottom:4px}
.bjv.m .bjv-panel{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;background:linear-gradient(180deg,color-mix(in srgb,var(--acc) 30%,#14286e) 0%,#101f55 32%,#0b1530 78%,#080f1c 100%)}
.bjv-mhand{display:none;align-items:center;justify-content:center;gap:12px;padding:10px 16px 2px;min-height:84px;flex:none}
.bjv.m .bjv-mhand.on{display:flex}
.bjv-mside{display:flex;align-items:center;gap:8px}
.bjv-mside b{min-width:30px;height:28px;padding:0 6px;background:#fff;color:#111;border-radius:4px;font:800 15px/28px var(--ui,inherit);text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.bjv-mside b:empty{display:none}
.bjv-mside b.k-active{background:#ffd62e;box-shadow:0 0 0 2.5px #0a0a0e}
.bjv-mside b.k-hit{background:#18b335;color:#fff}.bjv-mside b.k-stand,.bjv-mside b.k-bust,.bjv-mside b.k-loss{background:#e0242f;color:#fff}
.bjv-mside b.k-double{background:#f08a0e;color:#fff}.bjv-mside b.k-split{background:#1fa3e6;color:#fff}.bjv-mside b.k-bj,.bjv-mside b.k-win{background:#ffd400}.bjv-mside b.k-push{background:#141c3c;color:#fff}
.bjv-ab{display:block;width:26px;height:26px;border-radius:6px;border:1.4px solid rgba(255,255,255,.75);background-position:center;background-repeat:no-repeat;background-size:60%}
.bjv-ab.hit{background-color:#18b335;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-8 -8 16 16'%3E%3Cpath d='M-6 0H6M0-6V6' stroke='%23fff' stroke-width='3'/%3E%3C/svg%3E")}
.bjv-ab.stand{background-color:#e0242f;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-8 -8 16 16'%3E%3Cpath d='M-6 0H6' stroke='%23fff' stroke-width='3'/%3E%3C/svg%3E")}
.bjv-ab.double{background-color:#f08a0e;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 16'%3E%3Ctext x='10' y='13' font-size='13' font-weight='800' font-family='Arial' fill='%23fff' text-anchor='middle'%3E2x%3C/text%3E%3C/svg%3E")}
.bjv-ab.split{background-color:#1fa3e6;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-10 -8 20 16'%3E%3Cpath d='M-2 -6L-9 0L-2 6Z M2 -6L9 0L2 6Z' fill='%23fff'/%3E%3C/svg%3E")}
.bjv-ab.bust{background-color:#141c3c;border-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-9 -9 18 18'%3E%3Cpath d='M0 -7.6 L1.2 -2.9 L5.4 -5.4 L2.9 -1.2 L7.6 0 L2.9 1.2 L5.4 5.4 L1.2 2.9 L0 7.6 L-1.2 2.9 L-5.4 5.4 L-2.9 1.2 L-7.6 0 L-2.9 -1.2 L-5.4 -5.4 L-1.2 -2.9 Z' fill='%23fff'/%3E%3C/svg%3E")}
.bjv.m .bjv-ctl{position:relative;left:auto;top:auto;transform:none;flex:1 1 auto;min-height:0;width:100%;justify-content:center;font-size:clamp(10px,3.4vw,14px);padding:6px 10px 8px;box-sizing:border-box}
.bjv.m .bjv-dec,.bjv.m .bjv-ins{margin-top:0;background:none;border:0;box-shadow:none;width:100%;padding:0}
.bjv.m .bjv-btns{width:100%;justify-content:center}
.bjv.m .bjv-btn i{width:min(19vw,78px);height:min(15vw,62px)}
.bjv.m .bjv-btns.two .bjv-btn i{width:min(36vw,140px)}
.bjv.m .bjv-btn{font-size:11px}
.bjv.m .bjv-timer{width:min(84vw,340px);min-width:0;margin-top:16px}
.bjv.m .bjv-tray{width:100%;height:100%;position:relative;justify-content:flex-start;gap:6px}
.bjv.m .bjv-ring{display:none}
.bjv.m .bjv-mspot{display:flex;align-items:center;gap:6px;flex:none}
.bjv-pill{width:34px;height:min(22vw,92px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#16255c;border:2px solid rgba(220,230,255,.5);color:#dfe7ff;font:800 12px var(--ui,inherit);cursor:pointer;padding:0}
.bjv-pill span{white-space:nowrap;transform:rotate(-90deg)}
.bjv-pill.t3 span{transform:rotate(90deg)}
.bjv-pill b{font-size:10px;color:#ffd62e}
.bjv-pill.pp{border-radius:40px 10px 10px 40px/60px 10px 10px 60px}
.bjv-pill.t3{border-radius:10px 40px 40px 10px/10px 60px 60px 10px}
.bjv-bigspot{width:min(26vw,104px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:radial-gradient(circle,#0c1430 0 58%,#22336f 59% 63%,#0c1430 64%);border:3px solid #3a4c92;box-shadow:0 0 0 6px rgba(8,14,36,.55);color:#ffd62e;font:800 18px var(--ui,inherit)}
.bjv.m .bjv-chipbar{position:relative;flex:1 1 auto;width:100%;min-height:120px;background:none;border:0;box-shadow:none;padding:0;border-radius:0}
.bjv.m .bjv-chipbar::before{content:"";position:absolute;left:-12%;right:-12%;bottom:-60%;height:160%;border-radius:50%;background:color-mix(in srgb,var(--acc) 22%,#132463);border-top:2px solid rgba(160,180,255,.28)}
.bjv.m .bjv-chips{position:absolute;inset:0}
.bjv.m .bjv-chip{position:absolute;font-size:clamp(11px,3.3vw,14px);width:min(13vw,50px);height:min(13vw,50px);transform:translateX(-50%)}
.bjv.m .bjv-chip:hover{transform:translateX(-50%)}
.bjv.m .bjv-chip.is-sel{transform:translateX(-50%) scale(1.12)}
.bjv.m .bjv-tool{position:absolute;bottom:6px;width:46px;height:40px;font-size:18px}
.bjv.m .bjv-tool[data-undo]{left:4px}
.bjv.m .bjv-tool.x2{right:4px}
.bjv.m .bjv-deal{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);font-size:14px;padding:10px 26px;z-index:2}
.bjv.m .bjv-waiting{position:absolute;left:0;right:0;bottom:6px;font-size:12px}
.bjv.m .bjv-dock{flex:none;padding:6px 14px 8px;background:linear-gradient(transparent,#05090c 40%)}
.bjv.m .bjv-dock b{font-size:16px}
.bjv.m .bjv-hint{display:none}
@media (max-height:700px){.bjv.m .bjv-mhand{min-height:70px;padding-top:6px}.bjv-mcards.big .bjv-mc{width:42px;height:60px}.bjv-mcards.big .i{font-size:17px}.bjv-mcards.big .i small{font-size:14px}.bjv.m .bjv-chipbar{min-height:96px}.bjv-bigspot{width:min(22vw,86px)}.bjv-pill{height:min(19vw,78px)}}
@media (max-width:360px){.bjv.m .bjv-tool{width:40px}}

/* lobby list: the mini table preview now has seven seats */
.bjl-tcard .tm-row{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.bjv-mspot.off{opacity:.65;pointer-events:none}
.bjv-msg{display:none}
.bjv.m .bjv-msg:not([hidden]){display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:16px 0;background:linear-gradient(90deg,transparent,rgba(0,0,0,.45) 18%,rgba(0,0,0,.45) 82%,transparent);font:800 20px var(--ui,inherit);letter-spacing:.04em;text-align:center}
.bjv-msg small{font-size:13px;letter-spacing:.06em}.bjv-msg b{font-size:28px;color:#ffcf3a}
.bjv.m .bjv-tray{overflow:hidden}
.bjv.m .bjv-win{display:none!important}
/* phone: your enlarged hand takes the middle of the panel, the action buttons sit at the bottom just above the balance bar */
.bjv.m .bjv-panel{justify-content:flex-end}
.bjv.m .bjv-mhand.on{flex:1 1 auto;align-items:center;padding:8px 16px}
.bjv.m .bjv-mhand.on~.bjv-ctl{flex:0 0 auto;padding-bottom:12px}
.bjv.m .bjv-mhand:not(.on)~.bjv-ctl{flex:1 1 auto}
.bjv.m .bjv-mhand.on .bjv-mcards.big .bjv-mc{width:58px;height:84px}
.bjv.m .bjv-mhand.on .bjv-mcards.big .i{font-size:24px}.bjv.m .bjv-mhand.on .bjv-mcards.big .i small{font-size:19px}
@media (max-height:700px){.bjv.m .bjv-mhand.on .bjv-mcards.big .bjv-mc{width:46px;height:66px}.bjv.m .bjv-mhand.on .bjv-mcards.big .i{font-size:19px}}
/* short landscape screens (phones on their side): the table takes all the height, the balance bar floats over its bottom edge */
@media (max-height:520px) and (orientation:landscape){
  .main.bjl-locked .bjv-frame .bjv:not(.m){width:min(100cqw,calc(100cqh*1.7778))}
  .bjv:not(.m) .bjv-dock{position:absolute;left:0;right:0;bottom:0;z-index:7;min-height:0;padding:4px 10px;background:linear-gradient(transparent,rgba(5,9,12,.85) 45%);border:0}
  .bjv:not(.m) .bjv-dock b{font-size:12px}.bjv:not(.m) .bjv-dock small{font-size:8px}.bjv:not(.m) .bjv-hint{display:none}
  .bjv:not(.m) .bjv-ctl{top:22%;font-size:clamp(8px,1.1cqw,13px)}
}
/* tap targets never shrink below a comfortable size */
.bjv-chip{min-width:36px;min-height:36px}
.bjv-tool{min-width:34px;min-height:34px}
.bjv-btn i{min-width:44px;min-height:36px}
/* full screen: the frame fills the screen, the table (with its balance bar) is fitted and centred, the bar sits at the bottom */
.bjv-frame:fullscreen{display:flex!important;flex-direction:column;width:100vw;height:100vh;max-width:none!important;border-radius:0!important;background:#05090c}
.bjv-frame:fullscreen .bjv-fit{flex:1 1 auto!important;min-height:0;height:auto!important;aspect-ratio:auto!important;container-type:size!important;display:grid!important;place-items:center}
.bjv-frame:fullscreen .bjv:not(.m){width:min(100cqw,calc((100cqh - 54px)*1.7778))!important}
.bjv-frame:fullscreen .bjv.m{width:100cqw;height:100cqh}
.bjv-crest.hot{animation:bjvCrest 1.6s ease-in-out infinite}
@keyframes bjvCrest{0%,100%{filter:drop-shadow(0 0 0 rgba(255,140,40,0))}50%{filter:drop-shadow(0 0 5px rgba(255,140,40,.8))}}
@media (prefers-reduced-motion:reduce){.bjv-crest.hot{animation:none}}

/* a hand that reaches 21 shifts to a golden total: one flash, then a slow glow */
.bjv-gold{animation:bjvGold .9s ease-out,bjvGlow 2.4s ease-in-out .9s infinite}
@keyframes bjvGold{0%{transform:scale(.8);filter:brightness(1.9)}55%{transform:scale(1.32);filter:brightness(1.6) drop-shadow(0 0 8px #ffd400)}100%{transform:scale(1);filter:brightness(1)}}
@keyframes bjvGlow{0%,100%{filter:drop-shadow(0 0 0 rgba(255,210,0,0))}50%{filter:drop-shadow(0 0 6px rgba(255,210,0,.9))}}
@media (prefers-reduced-motion:reduce){.bjv-gold{animation:none}}

/* betting area: your open spots glow during the betting phase and react to hover */
.bjv-pulse{stroke:#ffd62e;stroke-width:2.6;animation:bjvPulse 1.6s ease-in-out infinite}
@keyframes bjvPulse{0%,100%{stroke-opacity:.25;stroke-width:2}50%{stroke-opacity:.95;stroke-width:4.2}}
.bjv-hit:hover .bjv-mainhit{fill:rgba(255,214,46,.22);stroke:#ffd62e;stroke-width:2.8}
@media (prefers-reduced-motion:reduce){.bjv-pulse{animation:none;stroke-opacity:.8}}
/* timer label under the vault countdown */
.bjv-rlbl{position:absolute;top:calc(100% + .5em);left:50%;transform:translateX(-50%);white-space:nowrap;font:800 .9em/1 var(--ui,inherit);letter-spacing:.1em;font-style:normal;color:#fff;background:rgba(6,10,16,.82);border:1px solid rgba(255,255,255,.22);border-radius:99px;padding:.45em 1em;text-shadow:0 1px 2px #000;box-shadow:0 2px 8px rgba(0,0,0,.45)}
/* insurance text is quiet until insurance is actually offered */
.bjv-svg .bjv-insfx{opacity:.3;transition:opacity .4s}
.bjv-svg.ins-on .bjv-insfx{opacity:1}
/* desktop: the chip bar (and the Deal / waiting button under it) sits lower on the felt edge, clear of the vault door */
.bjv:not(.m) .bjv-chipbar,.bjv:not(.m) .bjv-deal,.bjv:not(.m) .bjv-waiting{transform:translateY(9.6cqw)}
/* desktop: the countdown sits centred at the very top of the table */
.bjv:not(.m) .bjv-ring{transform:translateY(-13.6cqw);z-index:6}

/* loss banner: same layout as the win banner, in red */
.bjv-win.loss{border-top-color:rgba(255,92,112,.55);border-bottom-color:rgba(255,92,112,.55)}
.bjv-win.loss b{color:#ff6b7d}
.bjv.m .bjv-msg b.lost{color:#ff6b7d}

/* chip carousel: arrows page through the smaller / larger chips */
.bjv-car{width:1.9em;height:2.6em;border-radius:.6em;border:1px solid rgba(255,255,255,.25);background:#141b2c;color:#fff;font:800 1.3em/1 var(--ui,inherit);cursor:pointer;padding:0;align-self:center}
.bjv-car:disabled{opacity:.28;cursor:default}
.bjv-car:not(:disabled):hover{filter:brightness(1.2)}
.bjv.m .bjv-car{position:absolute;bottom:6px;width:34px;height:40px;font-size:20px}
.bjv.m .bjv-car.prev{left:56px}.bjv.m .bjv-car.next{right:56px}

/* double button: stacked chips with a 2x badge */
.bjv-btn i.g-or{position:relative;background:linear-gradient(#ffc24a,#f07a08 60%,#d96100);border-color:rgba(255,236,170,.85)}
.bjv-btn i.g-or .x2svg{width:52%;max-height:none;filter:drop-shadow(0 .12em .1em rgba(100,40,0,.5));transform:translateY(-.1em)}
.bjv-btn i.g-or .x2b{position:absolute;right:.22em;bottom:.12em;font-weight:900;font-size:1.9em;line-height:1;font-style:normal;color:#fff;text-shadow:0 .06em 0 rgba(120,50,0,.7),0 0 .3em rgba(0,0,0,.35);letter-spacing:-.02em}
.bjv-btn:not(:disabled):not(.off):hover i.g-or{box-shadow:0 0 .9em rgba(255,170,40,.6),inset 0 1.4em 0 rgba(255,255,255,.14),0 .3em .8em rgba(0,0,0,.4)}

.bjv-pulse.sidep{stroke-width:2;animation-duration:1.9s}
.bjv-mspot:not(.off) .bjv-pill{animation:bjvPill 1.9s ease-in-out infinite;border-color:#ffd62e}
@keyframes bjvPill{0%,100%{box-shadow:0 0 0 0 rgba(255,214,46,0)}50%{box-shadow:0 0 12px 2px rgba(255,214,46,.75)}}
@media (prefers-reduced-motion:reduce){.bjv-mspot:not(.off) .bjv-pill{animation:none;box-shadow:0 0 8px rgba(255,214,46,.6)}}

.bjv-btn.off{opacity:.5}.bjv-btn.off i{filter:grayscale(1) brightness(.7);box-shadow:none}.bjv-btn.off i.g-or .x2b{opacity:.8}

/* robot dealer arms sit behind the cards and move: a slow idle sway, and a dealing swing while cards are going out */
.bjv-armL{transform-origin:632px 317px;animation:bjvArmL 5.5s ease-in-out infinite}
.bjv-armR{transform-origin:824px 317px;animation:bjvArmR 6.3s ease-in-out infinite}
@keyframes bjvArmL{0%,100%{transform:rotate(0)}50%{transform:rotate(-2.2deg)}}
@keyframes bjvArmR{0%,100%{transform:rotate(0)}50%{transform:rotate(2.2deg)}}
.bjv-svg.dealing .bjv-armL{animation:bjvDealL .7s ease-in-out infinite}
.bjv-svg.dealing .bjv-armR{animation:bjvDealR .7s ease-in-out infinite .35s}
@keyframes bjvDealL{0%,100%{transform:rotate(0)}40%{transform:rotate(9deg)}70%{transform:rotate(-3deg)}}
@keyframes bjvDealR{0%,100%{transform:rotate(0)}40%{transform:rotate(-9deg)}70%{transform:rotate(3deg)}}
@media(prefers-reduced-motion:reduce){.bjv-armL,.bjv-armR,.bjv-svg.dealing .bjv-armL,.bjv-svg.dealing .bjv-armR{animation:none}}
