.message:has(.blackjack-card){width:100%}
.message:has(.blackjack-card)>.message-content{width:min(640px,calc(100% - 42px))}
.blackjack-card{width:640px;max-width:100%;gap:8px;padding:16px;overflow:hidden;border:1px solid var(--purple);background:linear-gradient(135deg,color-mix(in srgb,var(--purple) 12%,var(--panel)),var(--panel))}
.casino-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.blackjack-card .eyebrow{color:var(--purple)}
.blackjack-card h3{color:var(--gold);font-size:1.5rem;margin:4px 0}
.casino-seats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:10px;margin:6px 0}
.casino-seat{padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);min-width:0}
.casino-seat h4{margin:0 0 6px;overflow-wrap:anywhere;color:var(--blue)}
.casino-dealer{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:6px}
.casino-dealer small{flex-basis:100%}.casino-dealer h4{color:var(--purple)}
.casino-turn{border-color:var(--gold);box-shadow:inset 3px 0 var(--gold)}
.casino-stake{display:block;color:var(--gold);font-size:.85rem}
.casino-hand{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}
.casino-playing-card{display:inline-flex;align-items:center;justify-content:center;min-width:43px;min-height:58px;border-radius:7px;background:#f5f4ee;color:#14212a;font-size:1.15rem;font-weight:800;box-shadow:0 2px 5px #0004;padding:4px}
.casino-red{color:#a91e38}.casino-total{display:block;margin-bottom:5px;font-size:.9rem}
.casino-result{color:var(--accent);font-weight:700;margin-bottom:0}
.casino-bet-form{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:12px 0}
.casino-bet-form label{flex:1;min-width:140px;font-size:.9rem;color:var(--muted)}
.casino-bet-form input{display:block;margin-top:6px;width:100%;min-height:44px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px}
.casino-rules{margin:6px 0;line-height:1.55}
.casino-rules summary,.casino-history summary{cursor:pointer;color:var(--gold);padding:10px 0;min-height:44px}
.casino-rules p{color:var(--muted);font-size:.9rem}
.blackjack-card .activity-choices{flex-wrap:wrap}.blackjack-card button{min-height:44px}
.casino-history>div{display:grid;gap:8px;padding-top:10px}
@media(max-width:640px){.message:has(.blackjack-card)>.message-content{width:calc(100% - 37px)}.blackjack-card{padding:12px}.casino-bet-form input{font-size:16px}}
@media(max-width:450px){.casino-seats{grid-template-columns:1fr}.casino-playing-card{min-width:38px;min-height:52px}}

/* Lounge atmosphere: all artwork is local and decorative. */
.casino-room{background:radial-gradient(ellipse at 80% 0,color-mix(in srgb,var(--purple) 15%,transparent),transparent 65%),var(--bg)}
.casino-lounge{position:static;max-width:980px;margin:0 auto 20px;border-radius:12px;display:flex;align-items:center;gap:18px;padding:8px 34px;border-bottom:1px solid color-mix(in srgb,var(--gold) 30%,var(--line));background:linear-gradient(110deg,color-mix(in srgb,var(--accent) 9%,var(--panel)),var(--panel),color-mix(in srgb,var(--purple) 9%,var(--panel)));flex:none;min-width:0}
.casino-lounge-art{width:116px;height:72px;object-fit:contain;flex:none;filter:drop-shadow(0 6px 8px #0004)}
.casino-lounge-copy{display:grid;gap:5px;min-width:0;flex:1}.casino-lounge-copy .eyebrow{font-size:9px;color:var(--gold);letter-spacing:2px}.casino-lounge-copy strong{font-size:16px;line-height:1.35}.casino-lounge-copy>span{font-size:11px}
.casino-lounge-rules{font-size:12px;border-color:color-mix(in srgb,var(--gold) 40%,var(--line));flex:none}
.blackjack-card{border-top:3px solid var(--gold);box-shadow:0 10px 28px #0003}.blackjack-card h3{letter-spacing:.03em}
.casino-table-surface{position:relative;isolation:isolate;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:18px;padding:12px;background:radial-gradient(ellipse at 50% 10%,color-mix(in srgb,var(--accent) 18%,var(--panel)),var(--panel));box-shadow:inset 0 0 0 4px #0002,inset 0 12px 35px #0002}
.casino-table-surface:before{content:'';position:absolute;inset:6px;border:1px dashed color-mix(in srgb,var(--gold) 25%,transparent);border-radius:13px;pointer-events:none;z-index:-1}
.casino-table-mark{display:block;text-align:center;color:var(--gold);opacity:.8;letter-spacing:3px;font-size:9px;font-weight:700;margin:5px 0 10px}
.casino-table-surface .casino-seat{background:color-mix(in srgb,var(--panel) 70%,transparent);border-color:color-mix(in srgb,var(--accent) 18%,var(--line));position:relative}.casino-table-surface .casino-turn{border-color:var(--gold);box-shadow:inset 3px 0 var(--gold),0 0 18px color-mix(in srgb,var(--gold) 8%,transparent)}
.casino-stake{display:flex;align-items:center;gap:7px;min-height:25px}.casino-chip{display:inline-grid;place-items:center;width:23px;height:23px;flex:none;border-radius:50%;background:conic-gradient(var(--gold) 0 15deg,#55466d 15deg 30deg,var(--gold) 30deg 45deg,#55466d 45deg 60deg,var(--gold) 60deg 75deg,#55466d 75deg 90deg,var(--gold) 90deg 105deg,#55466d 105deg 120deg,var(--gold) 120deg 135deg,#55466d 135deg 150deg,var(--gold) 150deg 165deg,#55466d 165deg 180deg,var(--gold) 180deg 195deg,#55466d 195deg 210deg,var(--gold) 210deg 225deg,#55466d 225deg 240deg,var(--gold) 240deg 255deg,#55466d 255deg 270deg,var(--gold) 270deg 285deg,#55466d 285deg 300deg,var(--gold) 300deg 315deg,#55466d 315deg 330deg,var(--gold) 330deg 345deg,#55466d 345deg);box-shadow:0 2px 0 #0008,0 3px 6px #0004}
.casino-chip>span{display:grid;place-items:center;width:16px;height:16px;background:var(--panel);border:1px solid var(--gold);border-radius:50%;font-size:9px;font-weight:800;color:var(--gold)}
.casino-playing-card{position:relative;width:50px;height:70px;padding:0;border:1px solid #fff9;background:linear-gradient(145deg,#fffef7,#e5e5ef);box-shadow:0 4px 0 #0002,0 6px 10px #0003;transform-origin:50% 80%;flex:none}
.casino-card-art{display:block;position:relative;width:100%;height:100%}.casino-card-corner{position:absolute;left:4px;top:4px;font:700 12px/1.1 Georgia,serif}.casino-card-bottom{left:auto;top:auto;right:4px;bottom:4px;transform:rotate(180deg)}.casino-card-suit{position:absolute;inset:0;display:grid;place-items:center;font:30px/1 Georgia,serif}
.casino-card-back{background:repeating-linear-gradient(45deg,#8c73b81f 0 3px,transparent 3px 7px),linear-gradient(135deg,#31375b,#192e3d);border:3px double #b9a3df;color:#f4d797;box-shadow:0 4px 0 #0002,0 6px 10px #0003}.casino-back-mark{position:absolute;inset:6px;border:1px solid #b9a3df6b;border-radius:50%;display:grid;place-items:center;font-size:21px;letter-spacing:-3px;font-weight:800;padding-right:3px}
.casino-seat[data-result="Won"] .casino-result,.casino-seat[data-result="Blackjack"] .casino-result{color:var(--gold)}
.casino-seat[data-result="Blackjack"] .casino-result:before{content:'✦ ';color:var(--gold)}
.blackjack-card .casino-heading h3{font-size:1.3rem;margin:1px 0 0}.casino-heading>div{display:grid;gap:3px}.casino-dealer small{flex:1;flex-basis:auto;font-size:10px;min-width:85px}.casino-rules>small{display:block;font-size:10px;margin-top:10px}
.casino-deal{animation:casino-deal .38s cubic-bezier(.2,.8,.3,1) both}.casino-deal[data-deal-order="1"]{animation-delay:.045s}.casino-deal[data-deal-order="2"]{animation-delay:.09s}.casino-deal[data-deal-order="3"]{animation-delay:.135s}.casino-deal[data-deal-order="4"]{animation-delay:.18s}.casino-deal[data-deal-order="5"]{animation-delay:.225s}
.casino-reveal{animation:casino-reveal .42s ease-out both}.casino-winner{animation:casino-win .9s ease-out both}
.casino-win-burst{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:12px}.casino-win-burst i{position:absolute;top:55%;left:50%;width:7px;height:7px;background:var(--gold);border-radius:2px;opacity:0;animation:casino-spark .85s ease-out both;--spark-x:-65px;--spark-y:-60px}.casino-win-burst i:nth-child(2){--spark-x:-35px;--spark-y:-85px;animation-delay:.04s;background:var(--accent)}.casino-win-burst i:nth-child(3){--spark-x:15px;--spark-y:-75px;animation-delay:.08s}.casino-win-burst i:nth-child(4){--spark-x:55px;--spark-y:-55px;animation-delay:.02s;background:var(--purple)}.casino-win-burst i:nth-child(5){--spark-x:80px;--spark-y:-15px;animation-delay:.1s}.casino-win-burst i:nth-child(6){--spark-x:35px;--spark-y:30px;animation-delay:.05s;background:var(--accent)}.casino-win-burst i:nth-child(7){--spark-x:-25px;--spark-y:35px;animation-delay:.08s;background:var(--purple)}.casino-win-burst i:nth-child(8){--spark-x:-80px;--spark-y:0px;animation-delay:.03s}
@keyframes casino-deal{from{opacity:0;transform:translate(16px,-18px) rotate(8deg) scale(.92)}to{opacity:1;transform:none}}
@keyframes casino-reveal{from{transform:perspective(450px) rotateY(88deg);opacity:.4}to{transform:perspective(450px) rotateY(0);opacity:1}}
@keyframes casino-win{0%{box-shadow:inset 0 0 0 1px var(--gold),0 0 0 transparent}45%{box-shadow:inset 0 0 0 1px var(--gold),0 0 24px color-mix(in srgb,var(--gold) 35%,transparent)}100%{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 50%,transparent),0 0 0 transparent}}
@keyframes casino-spark{0%{opacity:0;transform:translate(0,0) scale(.5)}15%{opacity:1}100%{opacity:0;transform:translate(var(--spark-x),var(--spark-y)) rotate(130deg) scale(.6)}}
@media(max-width:900px){.casino-lounge{padding:7px 22px;gap:10px}.casino-lounge-copy strong{font-size:14px}.casino-lounge-art{width:90px;height:62px}}
@media(max-width:640px){.casino-lounge{padding:7px 14px;gap:8px}.casino-lounge-art{width:60px;height:50px}.casino-lounge-copy strong{font-size:12px}.casino-lounge-copy .eyebrow{letter-spacing:1px;font-size:8px}.casino-lounge-copy>span{display:none}.casino-lounge-rules{font-size:10px;padding:6px 9px;min-height:44px}.casino-table-surface{padding:8px}.casino-table-mark{letter-spacing:1.8px;font-size:8px}.casino-playing-card{width:47px;height:66px}.casino-hand{gap:5px}.casino-table-surface .casino-seat{padding:9px}}
@media(prefers-reduced-motion:reduce){.casino-room *,.casino-room *:before,.casino-room *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.casino-win-burst{display:none}}
