/* Blackjack Hana trainer demo. Built by tools/build_demo.mjs from tools/demo/demo.src.css. */
.bjd{--txt: #E9EEF8;--mut: #94A3B8;--ink: #05090F;--panel: #111827;--line: #2C3648;--cell: #1C2434;--deep: #0A0E16;--cyan: #22D3EE;--gold: #F3B640;--pink: #F472B6;--grey: #94A3B8;--card-face: #F5F9FB;--card-red: #D42F37;--card-ink: #0F1626;--card-back: #162F49;--card-back-line: #23405D;display:grid;gap:10px;color:var(--txt);font-size:15px;line-height:1.45}.bjd *,.bjd *:before,.bjd *:after{box-sizing:border-box}.bjd [hidden]{display:none!important}.bjd-panel{display:grid;gap:10px;min-width:0}.bjd-page.article{padding-top:clamp(.9rem,2.4vw,1.6rem);gap:clamp(2rem,4vw,2.8rem)}.bjd-page>*{width:100%;max-width:680px;justify-self:center;min-width:0}.bjd-page>.bjd,.bjd-page>.article-head{max-width:940px}.bjd-page>.bjd{margin-top:calc(-1*clamp(1.2rem,3vw,1.8rem))}.bjd-page .article-head{gap:.3rem}.bjd-page h1{font-size:clamp(1.75rem,4.4vw,2.6rem)}.bjd-page .lead{font-size:clamp(1rem,2.4vw,1.125rem);line-height:1.4}.bjd-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;max-width:460px;width:100%;background:var(--deep);border:1px solid var(--line);border-radius:14px}.bjd .bjd-tabs button{min-height:38px;padding:6px;border:0;border-radius:10px;background:transparent;color:var(--mut);font-size:15px}.bjd .bjd-tabs button[aria-selected=true]{background:var(--cell);color:var(--txt);box-shadow:inset 0 0 0 1.5px var(--cyan)}.bjd .bjd-tabs button:active{transform:none}.bjd-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bjd-stat{background:var(--cell);border:1px solid var(--line);border-radius:12px;padding:6px 4px;text-align:center;min-width:0}.bjd-stat b{display:block;font-size:21px;line-height:1.2;font-variant-numeric:tabular-nums}.bjd-stat b.cy{color:var(--cyan)}.bjd-stat span{display:block;color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.bjd-table{position:relative;padding:14px 58px 22px;background:var(--panel);border:1px solid var(--line);border-radius:22px 22px 44% 44%/22px 22px 20% 20%;box-shadow:0 10px 30px #00000061}.bjd-table:after{content:"";position:absolute;left:12%;right:12%;bottom:18px;height:56%;border:1px solid var(--line);border-top:none;border-radius:0 0 50% 50%/0 0 40% 40%;pointer-events:none}.bjd-zone{position:relative;z-index:1;overflow:hidden;padding:2px 0}.bjd-label{color:var(--mut);font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;margin:0 0 4px;text-align:center}.bjd-dealer{height:128px}.bjd-player{height:186px}.bjd .cardwrap{display:flex;justify-content:center;align-items:center;min-height:92px}#bjdPlayer{display:flex;gap:14px;justify-content:center;align-items:flex-start;min-height:106px}.bjd .cb-hand{text-align:center;border:2px solid transparent;border-radius:14px;padding:4px 6px}.bjd .cb-hand.active{border-color:var(--cyan)}.bjd-hand-total{margin-top:4px}.bjd-tag{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--mut)}.bjd .cbhand{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:6px}.bjd .cardface{position:relative;width:62px;height:88px;flex:0 0 auto;border-radius:8px;background:var(--card-face);color:var(--card-ink);box-shadow:0 4px 14px #00000073}.bjd .cardface.red{color:var(--card-red)}.bjd .cardface .corner{position:absolute;top:5px;left:6px;font-weight:700;line-height:.95;font-size:15px;text-align:center}.bjd .cardface .corner .s{display:block;font-size:.62em;margin-top:3px}.bjd .cardface .pip{position:absolute;top:56%;left:56%;transform:translate(-50%,-50%);font-size:32px;line-height:1}.bjd .cardface.cardback{background:repeating-linear-gradient(135deg,var(--card-back) 0 7px,#1D3956 7px 8px);border:1px solid var(--card-back-line)}.bjd .cardface.cardback:after{content:"";position:absolute;inset:5px;border:1.5px solid var(--card-back-line);border-radius:5px}.bjd .cbhand.fan{gap:0}.bjd .cbhand.fan .cardface{margin-left:-22px}.bjd .cbhand.fan .cardface:first-child{margin-left:0}.bjd .cbhand .cardface.sideways{transform:rotate(90deg);margin:0 6px 0 -6px;z-index:1}.bjd .total-pill{display:inline-flex;align-items:center;justify-content:center;min-width:30px;padding:2px 10px;border-radius:999px;background:var(--pink);color:var(--ink);font-weight:800;font-size:13px;line-height:1.1}.bjd .total-pill.bad{background:transparent;border:1.5px solid var(--pink);color:var(--pink)}.bjd .total-pill:empty{display:none}.bjd .cbbanner{display:inline-block;margin-top:4px;font-weight:800;font-size:12.5px;padding:3px 12px;border-radius:999px;letter-spacing:.02em}.bjd .cbbanner.win{background:var(--cyan);border:1.5px solid var(--cyan);color:var(--ink)}.bjd .cbbanner.lose{background:var(--panel);border:1.5px solid var(--pink);color:var(--pink)}.bjd .cbbanner.push{background:var(--grey);border:1.5px solid var(--grey);color:var(--ink)}.bjd .cbbanner.bj{background:var(--gold);border-color:var(--gold);color:var(--ink)}.bjd-seats{display:none;justify-content:center;gap:8px;flex-wrap:wrap;height:104px;overflow:hidden;position:relative;z-index:1;margin:2px 0}.bjd .cb-seat{background:var(--cell);border:1px solid var(--line);border-radius:14px;padding:4px 8px;min-width:96px}.bjd-seat-label{color:var(--mut);font-size:12px;text-align:center;line-height:1.35}.bjd .cb-seat .cardwrap{min-height:64px}.bjd .cb-seat .cbhand{gap:0}.bjd .cb-seat .cardface{width:42px;height:60px}.bjd .cb-seat .cardface .corner{font-size:11px}.bjd .cb-seat .cardface .pip{font-size:20px}.bjd .cb-seat .cardface+.cardface{margin-left:-16px}.bjd-rack,.bjd-shoe{position:absolute;top:16px;height:116px;border-radius:7px;z-index:2;background:var(--deep);border:1px solid var(--line);overflow:hidden}.bjd-rack{left:14px;width:26px}.bjd-shoe{right:14px;width:32px;border-radius:7px 7px 7px 14px}.bjd-rack-fill,.bjd-shoe-fill{position:absolute;left:0;right:0;bottom:0}.bjd-rack-fill{background:repeating-linear-gradient(0deg,var(--card-face) 0 2px,#C2C8CE 2px 3px)}.bjd-shoe-fill{background:repeating-linear-gradient(0deg,var(--card-back-line) 0 2px,var(--card-back) 2px 3px)}.bjd-rack-line{position:absolute;left:0;right:0;height:0;border-top:1px solid rgba(34,211,238,.45)}.bjd-shoe-cut{position:absolute;left:-2px;right:-2px;height:4px;margin-bottom:-2px;background:var(--gold);box-shadow:0 0 0 1px var(--ink)}.bjd-hint{margin:0;min-height:calc(2.8em + 18px);display:flex;align-items:center;border-radius:12px;padding:8px 12px;font-size:14px;line-height:1.4;font-weight:600;color:var(--txt);background:#22d3ee14;border:1px solid rgba(34,211,238,.4)}.bjd-hint:empty{visibility:hidden}.bjd-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bjd button{font:inherit;font-weight:700;font-size:15px;cursor:pointer;border-radius:12px;padding:12px 6px;color:var(--txt);background:var(--cell);border:1px solid var(--line);min-height:46px}.bjd button:active{transform:translateY(1px)}.bjd button:disabled{background:var(--cell);color:var(--mut);border-color:var(--line);cursor:not-allowed;transform:none;opacity:.75}.bjd .a-HIT:not(:disabled){background:var(--cell);color:var(--txt)}.bjd .a-STAND:not(:disabled){background:var(--cyan);border-color:var(--cyan);color:var(--ink)}.bjd .a-DOUBLE:not(:disabled){background:var(--gold);border-color:var(--gold);color:var(--ink)}.bjd .a-SPLIT:not(:disabled){background:var(--pink);border-color:var(--pink);color:var(--ink)}.bjd .bjd-deal{width:100%;grid-column:1 / -1;background:var(--gold);border-color:var(--gold);color:var(--ink);font-weight:800}.bjd .bjd-deal:disabled{background:var(--cell);border-color:var(--line);color:var(--mut)}#bjd .bjd-deal{display:none}#bjd[data-state=ready] .bjd-deal,#bjd[data-state=loading] .bjd-deal{display:block}#bjd[data-state=ready] .bjd-actions>button:not(.bjd-deal),#bjd[data-state=loading] .bjd-actions>button:not(.bjd-deal),#bjd[data-state=done] .bjd-actions{display:none}@keyframes bjdPulse{0%,to{box-shadow:0 0 #e9eef800}50%{box-shadow:0 0 0 4px #e9eef88c}}.bjd .bjd-pulse:not(:disabled){animation:bjdPulse 1.6s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.bjd .bjd-pulse:not(:disabled){animation:none;box-shadow:0 0 0 3px #e9eef88c}}.bjd-feedback{margin:0;min-height:3.1em;border-radius:12px;padding:9px 12px;font-size:14px;line-height:1.45;border:1px solid var(--line);background:var(--cell);color:var(--mut)}.bjd-feedback:empty:before{content:"Each decision gets a basic strategy note here."}.bjd-feedback.match{border-color:var(--cyan);color:var(--txt);background:#22d3ee1a}.bjd-feedback.differ{border-color:var(--gold);color:var(--txt);background:#f3b6401a}#bjd[data-state=done] .bjd-feedback:empty{display:none}.bjd-msg{margin:0;min-height:1.45em;font-size:14px;color:var(--mut);text-align:center}.bjd-msg:empty,#bjd[data-state=done] .bjd-msg{display:none}.bjc{max-width:560px;width:100%;justify-self:center}.bjc-key{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.bjc-key li{border-radius:10px;padding:7px 4px;text-align:center;font-weight:800;font-size:14px;line-height:1.25;color:var(--ink)}.bjc-key .p,.bjc-list b.p{background:var(--cyan)}.bjc-key .z,.bjc-list b.z{background:var(--grey)}.bjc-key .m,.bjc-list b.m{background:var(--pink)}.bjc-stage{display:grid;justify-items:center;gap:8px;padding:18px 12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:18px}#bjc[data-state=answer] .bjc-stage,#bjc[data-state=result] .bjc-stage{display:none}.bjc-card{display:flex;justify-content:center;min-height:168px;align-items:center}.bjd .bjc-card .cardface{width:118px;height:166px;border-radius:12px}.bjd .bjc-card .cardface .corner{font-size:26px;top:9px;left:11px}.bjd .bjc-card .cardface .pip{font-size:64px}.bjc-pos{margin:0;color:var(--mut);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.bjc-ask{display:grid;justify-items:center;gap:10px;padding:16px 12px;background:var(--panel);border:1px solid var(--line);border-radius:18px}.bjc-q{margin:0;font-size:18px;font-weight:750}.bjc-stepper{display:flex;align-items:center;gap:16px}.bjd .bjc-stepper button{width:56px;height:56px;min-height:56px;padding:0;border-radius:999px;font-size:28px;line-height:1}.bjc-stepper output{min-width:3ch;text-align:center;font-size:36px;font-weight:800;font-variant-numeric:tabular-nums}.bjc-result{display:grid;gap:12px;padding:14px 12px;background:var(--panel);border:1px solid var(--line);border-radius:18px}.bjc-verdict{margin:0;font-weight:650;border-radius:12px;padding:9px 12px;border:1px solid var(--line)}.bjc-verdict.match{border-color:var(--cyan);background:#22d3ee1a}.bjc-verdict.differ{border-color:var(--gold);background:#f3b6401a}.bjc-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 6px}.bjc-list li{display:grid;justify-items:center;gap:4px}.bjd .bjc-list .cardface{width:40px;height:56px;border-radius:6px;box-shadow:0 2px 6px #0006}.bjd .bjc-list .cardface .corner{font-size:11px;top:3px;left:4px}.bjd .bjc-list .cardface .pip{font-size:19px}.bjc-list b{min-width:30px;text-align:center;border-radius:999px;padding:0 6px;font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums}.bjc-actions{display:grid}.bjd-done{display:flex;justify-content:center}.bjd-done>.btn{width:100%;max-width:460px}.bjd-modal{width:min(440px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);margin:auto;padding:0;overflow:auto;color:var(--txt);background:#151e2e;border:1px solid var(--gold);border-radius:18px;box-shadow:0 24px 60px #03060c99}.bjd-modal::backdrop{background:#05090fbd}.bjd-modal-in{position:relative;display:grid;gap:12px;justify-items:start;padding:22px 20px 20px}.bjd-modal h2{font-size:1.35rem;padding-right:40px}.bjd-modal ul{margin:0;padding-left:1.2rem;display:grid;gap:.3rem}.bjd-modal li::marker{color:var(--cyan)}.bjd-modal .btn{width:100%}.bjd .bjd-close{position:absolute;top:10px;right:10px;width:40px;height:40px;min-height:40px;padding:0;border-radius:999px;background:transparent;border-color:transparent;font-size:24px;font-weight:500;line-height:1;color:var(--mut)}.bjd .bjd-close:hover{color:var(--txt);border-color:var(--line)}.bjd .bjd-cross{width:100%;background:transparent;color:var(--txt);border-radius:999px}.bjd .bjd-cross:hover{border-color:var(--cyan)}@media(max-width:700px){.bjd,.bjd-panel{gap:8px}.bjd-stats{gap:6px}.bjd-stat{padding:4px 2px;border-radius:10px}.bjd-stat b{font-size:17px}.bjd-stat span{font-size:9px;letter-spacing:.03em}.bjd-table{padding:8px 36px 18px}.bjd-rack,.bjd-shoe{top:10px;height:88px}.bjd-rack{left:8px;width:18px}.bjd-shoe{right:8px;width:22px}.bjd-label{font-size:11px;margin-bottom:2px}.bjd-dealer{height:92px}.bjd-player{height:140px}.bjd .cardwrap{min-height:66px}#bjdPlayer{min-height:70px;gap:6px}.bjd .cardface{width:44px;height:63px}.bjd .cardface .corner{font-size:12px;top:4px;left:5px}.bjd .cardface .pip{font-size:22px}.bjd .cbhand{gap:0}.bjd .cbhand .cardface+.cardface{margin-left:-18px}.bjd .cbhand.fan .cardface+.cardface{margin-left:-24px}.bjd .cbhand .cardface.sideways{margin:0 4px 0 -4px}.bjd .cb-hand{padding:2px 4px}.bjd-seats{height:82px;gap:6px;margin:0}.bjd .cb-seat{min-width:76px;padding:2px 6px;border-radius:12px}.bjd-seat-label{font-size:11px;line-height:1.3}.bjd .cb-seat .cardwrap{min-height:46px}.bjd .cb-seat .cardface{width:32px;height:46px}.bjd .cb-seat .cardface .corner{font-size:10px;top:3px;left:4px}.bjd .cb-seat .cardface .pip{font-size:15px}.bjd .cb-seat .cardface+.cardface{margin-left:-12px}.bjd .cbbanner{font-size:12px;padding:2px 10px;margin-top:2px}.bjd-hint{font-size:13.5px;padding:6px 10px;min-height:calc(2.8em + 14px)}.bjd-actions{gap:6px}.bjd button{padding:10px 4px;font-size:14px}.bjd .bjd-tabs button{min-height:36px;font-size:14.5px}.bjc-stage{padding:14px 12px 12px}}@media(min-width:900px){#bjd{grid-template-columns:minmax(0,1fr) 270px;column-gap:16px;align-items:start;grid-template-areas:"table stats" "table hint" "table actions" "table feedback" "table msg";grid-template-rows:auto auto auto auto 1fr}#bjd .bjd-table{grid-area:table}#bjd .bjd-stats{grid-area:stats;grid-template-columns:repeat(2,minmax(0,1fr))}#bjd .bjd-hint{grid-area:hint;min-height:calc(4.2em + 18px)}#bjd .bjd-actions{grid-area:actions;grid-template-columns:repeat(2,minmax(0,1fr))}#bjd .bjd-feedback{grid-area:feedback}#bjd .bjd-msg{grid-area:msg;text-align:left}}
