*{box-sizing:border-box}:root{--page:#bce6fb;--panel:#e5f5ff;--card:#cceafb;--line:#86b7d3;--text:#163c58;--muted:#395e78;--gold:#ffda57}body.dark{--page:#102b42;--panel:#193d57;--card:#112e44;--line:#517891;--text:#effaff;--muted:#bbd8e9}body{margin:0;padding:32px 20px;background:var(--page);color:var(--text);font-family:Inter,system-ui,sans-serif;font-size:16px}main{max-width:1200px;margin:auto}header,nav,.table-heading,.hand-label,.stats,footer{display:flex;justify-content:space-between;align-items:center;gap:16px}h1{font-size:28px;letter-spacing:-1px;margin:0}h2{margin:6px 0 0;font-size:27px}header label{font-size:14px;margin-right:8px}button,input,select{font:inherit;color:var(--text);border:1px solid var(--line);background:var(--card);border-radius:10px;padding:11px}button{cursor:pointer;font-weight:750;min-height:44px}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #3186b3;outline-offset:3px}nav{justify-content:flex-start;margin:24px 0}a{color:var(--text)}nav a{padding:12px 16px;background:var(--panel);border:1px solid var(--line);border-radius:12px;font-weight:700;text-decoration:none}nav a[aria-current]{background:var(--gold);color:#45370a}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.table,aside{border:1px solid var(--line);border-top:5px solid var(--gold);background:var(--panel);border-radius:26px;padding:26px;box-shadow:0 20px 65px #153d5b15}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--muted)}.dealer-intro{display:flex;align-items:center;gap:16px;margin:24px 0}.dealer-intro>img{width:72px;height:72px;object-fit:cover;border:3px solid #28a9e5;border-radius:50%;background:white}.dealer-intro p{font-size:14px;margin:5px 0;color:var(--muted);line-height:1.5}.hand-label{font-size:12px;letter-spacing:1.4px}.hand-label strong{font-size:17px;letter-spacing:0}.cards{display:flex;gap:10px;padding:12px 0;min-height:165px;flex-wrap:wrap}.playing-card{position:relative;flex:0 0 95px;height:135px;border-radius:12px;background:#fff;color:#163c58;border:2px solid #97c9df;box-shadow:0 4px 8px #153d5b20;padding:7px;display:flex;flex-direction:column;justify-content:space-between;animation:deal .22s ease-out}.playing-card.red{color:#b43c4b}.corner{font-size:16px;font-weight:800}.corner.bottom{align-self:flex-end;transform:rotate(180deg)}.playing-card img{position:absolute;left:20px;top:32px;width:52px;height:70px;object-fit:contain}.pip{font-size:34px;text-align:center}.playing-card.back{background:repeating-linear-gradient(45deg,#86c9ed 0 8px,#b7e6ff 8px 16px);border:3px solid var(--gold);align-items:center;justify-content:center;color:#17466b;font-weight:900}.table-divider{border-top:1px solid var(--line);margin:18px 0 26px;text-align:center}.table-divider span{position:relative;top:-9px;padding:0 14px;background:var(--panel);font-size:11px;letter-spacing:2px;color:var(--muted)}.message{text-align:center;min-height:26px;font-weight:750;line-height:1.5}.actions{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px}.balance{font-size:42px;font-weight:850;margin-top:12px}.muted{font-size:13px;color:var(--muted);line-height:1.6}.bet-label{display:block;margin:25px 0 10px;font-size:14px}.bet-controls{display:grid;grid-template-columns:44px 1fr 44px;gap:8px}.bet-controls input{width:100%;min-width:0;text-align:center}.primary{width:100%;margin:14px 0 22px;background:linear-gradient(#ffed99,#ffda57);color:#45370a;min-height:58px;box-shadow:0 4px 0 #bd9a2f;letter-spacing:1px}.stats{font-size:14px;border-bottom:1px solid var(--line);padding-bottom:18px}details{margin-top:20px}summary{font-weight:700;cursor:pointer;font-size:14px}ul{padding-left:18px;font-size:13px;line-height:1.6}li{margin-bottom:8px}footer{margin-top:24px;font-size:13px;color:var(--muted)}footer span{font-size:11px}@keyframes deal{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}@media(max-width:900px){.layout{grid-template-columns:1fr}aside{display:block}.cards{min-height:155px}header{align-items:flex-start}h1{font-size:23px}footer{flex-wrap:wrap}}@media(max-width:500px){body{padding:20px 12px}.table,aside{padding:18px}h2{font-size:23px}.playing-card{flex-basis:76px;height:116px}.playing-card img{left:17px;top:30px;width:40px;height:54px}.cards{gap:6px}nav a{font-size:14px;padding:10px}.actions{gap:6px}.actions button{font-size:14px;padding:8px}.table-heading{gap:8px}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}

main{max-width:1440px}.layout{grid-template-columns:260px minmax(0,1fr) 290px;align-items:stretch}.bj-challenges{background:var(--panel);border:1px solid var(--line);border-top:5px solid var(--gold);border-radius:26px;padding:22px}.layout>aside,.bj-challenges{height:0;min-height:100%;overflow:auto}.bj-challenges h2{font-size:23px}.bj-challenge{margin:12px 0;padding:14px;background:var(--card);border:1px solid var(--line);border-radius:12px;font-size:14px}.bj-challenge p{line-height:1.5;color:var(--muted);font-size:13px}.bj-challenge b{display:block;color:var(--text)}.bj-challenge small{display:block;margin-top:8px;color:var(--muted)}.playing-card{flex-basis:110px;height:154px}.playing-card img{left:22px;top:34px;width:65px;height:83px}.penguin-companion{display:flex;gap:12px;align-items:center;border-top:1px solid var(--line);padding-top:16px;font-size:14px;color:var(--muted)}.penguin-companion img{width:54px;height:54px;object-fit:contain;border-radius:10px;background:#fff}.penguin-parade{position:fixed;inset:0;z-index:999;pointer-events:none;overflow:hidden}.penguin-parade img{position:absolute;left:0;width:78px;height:86px;object-fit:contain;border-radius:14px;background:#fff;border:3px solid #ffda57;will-change:transform}@media(max-width:1150px){.layout{grid-template-columns:minmax(0,1fr) 280px}.bj-challenges{grid-column:1/-1;grid-row:2;height:auto;min-height:0}#bjChallenges{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.layout>aside{height:0;min-height:100%}}@media(max-width:800px){.layout{grid-template-columns:1fr}.layout>aside,.bj-challenges{height:auto;min-height:0}.bj-challenges{grid-row:auto}#bjChallenges{grid-template-columns:1fr 1fr}}@media(max-width:500px){.playing-card{flex-basis:86px;height:128px}.playing-card img{left:17px;top:30px;width:48px;height:62px}#bjChallenges{grid-template-columns:1fr}}

.table-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.table-tools button{font-size:13px;padding:8px;min-width:38px}.table-heading{align-items:flex-start}.deck-row{display:flex;justify-content:center;height:90px;margin:5px 0 20px}#cardDeck{width:64px;flex-basis:64px;height:85px;font-size:12px;box-shadow:3px 3px 0 #528dae,6px 6px 0 #295978}#deckCount{font-size:9px;margin-top:8px}.hand-label strong{font-size:27px;background:var(--card);padding:4px 12px;border-radius:10px}.corner{font-size:21px}.bank-actions{display:flex;gap:8px;margin-top:10px}.bank-actions button{flex:1;font-size:13px;padding:8px}.layout>aside,.bj-challenges{height:auto;min-height:0;overflow:visible}.bj-challenges{display:flex;flex-direction:column}#bjChallenges{display:flex;flex:1;flex-direction:column;gap:12px}.bj-challenge{flex:1;margin:0;display:flex;flex-direction:column;justify-content:center}.layout>aside{padding:20px}.balance{font-size:36px;margin-top:6px}.bet-label{margin-top:16px}.primary{margin-bottom:16px}.layout>aside .muted{font-size:12px}.stats{padding-bottom:12px}.result-win{background:#d1f5dc;color:#155b32;border:1px solid #80c897;border-radius:12px;padding:12px}.result-loss{background:#ffe0e0;color:#8c2731;border:1px solid #e2a3a8;border-radius:12px;padding:12px}.result-push{background:var(--card);padding:12px;border-radius:12px}nav a{transition:background .15s,transform .15s,box-shadow .15s}nav a:hover{background:#ffe783;color:#45370a;transform:translateY(-2px);box-shadow:0 4px 10px #163c5820}dialog{width:min(92vw,540px);background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:20px;padding:24px}dialog::backdrop{background:#102b4299}dialog p{font-size:14px;line-height:1.6}dialog label{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0}dialog input{width:95px}.playing-card{animation:none}.penguin-parade{width:100vw;height:100vh}@media(max-width:1150px){#bjChallenges{display:grid;grid-template-columns:repeat(4,1fr)}.layout>aside{height:auto;min-height:0}}@media(max-width:800px){#bjChallenges{grid-template-columns:1fr 1fr}.table-heading{flex-wrap:wrap}.table-tools{justify-content:flex-start}}@media(max-width:500px){#bjChallenges{grid-template-columns:1fr}}

.bj-challenge.collected{animation:claimFade 1.3s ease forwards}.bj-challenge:not(.collected){animation:challengeIn .3s ease}@keyframes claimFade{0%,65%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-12px)}}@keyframes challengeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

main{max-width:1560px}.layout{grid-template-columns:300px minmax(470px,1fr) 340px;gap:22px}.bj-challenges,.layout>aside{padding:26px}.bj-challenges h2{font-size:27px}.bj-challenge{padding:20px;font-size:17px}.bj-challenge p{font-size:15px;line-height:1.6}.bj-challenge small{font-size:14px}.layout>aside{display:flex;flex-direction:column;justify-content:space-between;gap:8px}.layout>aside .balance{font-size:46px}.layout>aside .muted{font-size:14px;margin:6px 0}.layout>aside .bet-label{font-size:16px;margin-top:12px}.table-rules h3{font-size:17px;margin:12px 0}.table-rules ul{font-size:14px;line-height:1.5;margin:0;padding-left:18px}.table-rules li{margin-bottom:7px}.playing-card{flex-basis:124px;height:174px}.playing-card img{left:25px;top:40px;width:70px;height:90px}.corner{font-size:24px}.pip{font-size:40px}#cardDeck{width:82px;flex-basis:82px;height:110px;font-size:15px}#deckCount{font-size:11px}.deck-row{height:116px}.cards{min-height:198px}.table-tools{flex-wrap:nowrap}.table-heading{flex-wrap:wrap}@media(max-width:1250px){.layout{grid-template-columns:minmax(0,1fr) 330px}.bj-challenges{grid-column:1/-1;grid-row:2}#bjChallenges{display:grid;grid-template-columns:repeat(3,1fr)}.bj-challenge{min-width:0}}@media(max-width:850px){.layout{grid-template-columns:1fr}.bj-challenges{grid-row:auto}.layout>aside{gap:8px}}@media(max-width:550px){#bjChallenges{grid-template-columns:1fr}.playing-card{flex-basis:92px;height:136px}.playing-card img{left:19px;top:34px;width:50px;height:65px}.corner{font-size:21px}.cards{min-height:160px}.layout>aside,.bj-challenges{padding:20px}.table-tools{flex-wrap:wrap}}
@media(max-width:850px){.layout>.table{grid-row:1}.layout>aside{grid-row:2}.layout>.bj-challenges{grid-row:3}#bjChallenges{grid-template-columns:1fr}}
