:root{--bg: #f4f1ea;--surface: #ffffff;--surface-2: #f0ece3;--text: #1c1f1d;--muted: #5d655f;--border: #ddd6c8;--accent: #1f8a5b;--accent-ink: #ffffff;--gold: #b8892b;--felt: #0f5c3f;--felt-2: #0b4631;--felt-text: #eef6f1;--good: #1f8a5b;--good-bg: #e3f4ea;--bad: #c0392b;--bad-bg: #fbe6e3;--ring-track: #e3ddd0;--card-red: #c0392b;--a-H: #2f6fdb;--a-S: #c0392b;--a-D: #1f8a5b;--a-Ds: #5aa77d;--a-P: #8e44ad;--a-R: #7a7f85;--shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 4px 14px rgba(0, 0, 0, .06);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0e1311;--surface: #171e1b;--surface-2: #1f2824;--text: #e8eeea;--muted: #9aa6a0;--border: #2b3631;--accent: #34b37a;--accent-ink: #06130d;--felt: #0d4a33;--felt-2: #083524;--good-bg: #12301f;--bad-bg: #3a1714;--good: #4cc98f;--bad: #f0776b;--ring-track: #2b3631;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 14px rgba(0, 0, 0, .3);color-scheme:dark}}:root[data-theme=dark]{--bg: #0e1311;--surface: #171e1b;--surface-2: #1f2824;--text: #e8eeea;--muted: #9aa6a0;--border: #2b3631;--accent: #34b37a;--accent-ink: #06130d;--felt: #0d4a33;--felt-2: #083524;--good-bg: #12301f;--bad-bg: #3a1714;--good: #4cc98f;--bad: #f0776b;--ring-track: #2b3631;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}h1,h2,h3{margin:0;line-height:1.2}.muted{color:var(--muted)}.small{font-size:.85rem}.page{min-height:100dvh;padding-bottom:env(safe-area-inset-bottom)}.container{max-width:920px;margin:0 auto;padding:16px}.container.narrow{max-width:600px}.container.wide{max-width:880px}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.topbar h1{font-size:1.05rem;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logo{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:var(--felt);color:#fff}.icon-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font-size:1.5rem;line-height:1;padding-bottom:3px}.bank{font-weight:700;font-variant-numeric:tabular-nums;color:var(--gold)}.btn{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:12px 18px;font-weight:600;min-height:48px}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}.btn.ghost{background:transparent}.btn:disabled{opacity:.45}.btn.wide{width:100%}.link-btn{background:none;border:0;color:var(--muted);text-decoration:underline}.row{display:flex;gap:10px;justify-content:space-between}.row .btn{flex:1}.col{display:flex;flex-direction:column;gap:8px}kbd{display:none}@media (hover: hover) and (min-width: 760px){kbd{display:inline-block;margin-left:6px;font:600 .7rem ui-monospace,monospace;padding:1px 5px;border-radius:4px;border:1px solid currentColor;opacity:.55}}.hero{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:var(--shadow)}.hero h2{font-size:1.3rem}.hero p{margin:6px 0 0}.eyebrow{margin:0 0 4px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.quick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.quick-card{display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:12px;box-shadow:var(--shadow)}.quick-card strong,.quick-card .small{display:block}.quick-card.felt{background:radial-gradient(circle at 30% 20%,var(--felt),var(--felt-2));color:var(--felt-text);border-color:transparent}.quick-card.felt .muted{color:#b9d8c8}.quick-icon{font-size:1.6rem;line-height:1}.rules-toggle{width:100%;text-align:left;background:none;border:0;padding:8px 2px;font-weight:600;color:var(--muted)}.rules{background:var(--surface-2);border-radius:12px;padding:4px 14px 10px;margin-bottom:8px}.rules ul{padding-left:18px;margin:10px 0}.section-h{font-size:.95rem;margin:20px 0 10px;display:flex;align-items:center;gap:8px}.tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:99px;background:var(--surface-2);color:var(--gold);border:1px solid var(--border)}.track-note{margin:-4px 0 10px}.levels{list-style:none;margin:0;padding:0;display:grid;gap:10px}@media (min-width: 760px){.levels{grid-template-columns:1fr 1fr}}.level{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px;min-height:76px;box-shadow:var(--shadow);transition:transform .12s}.level:not(:disabled):active{transform:scale(.98)}.level.locked{opacity:.55;box-shadow:none}.level.mastered{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.level-text{display:flex;flex-direction:column;min-width:0}.level-title{font-weight:650}.level-blurb{color:var(--muted);font-size:.85rem}.level-meta{font-size:.75rem;color:var(--muted);margin-top:2px}.level-meta.ok{color:var(--good)}.lvl-num{font-weight:700;font-size:.9rem}.foot{text-align:center;padding:28px 0 16px}.ring{position:relative;flex-shrink:0}.ring-inner{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center}.card{--w: 64px;width:var(--w);height:calc(var(--w) * 1.4);border-radius:calc(var(--w) * .1);background:#fff;color:#1c1f1d;border:1px solid #d6d6d6;box-shadow:0 2px 6px #00000040;position:relative;flex-shrink:0;font-family:Georgia,Times New Roman,serif;animation:deal .28s ease-out both}.card.small{--w: 48px}.card.red{color:var(--card-red)}.card.back{background:repeating-linear-gradient(45deg,#9b2f2f 0,#9b2f2f 6px,#7f2424 6px,#7f2424 12px);border:3px solid #fff}.corner{position:absolute;top:4px;left:5px;font-size:calc(var(--w) * .24);font-weight:700;line-height:1;text-align:center}.corner.br{top:auto;left:auto;bottom:4px;right:5px;transform:rotate(180deg)}.pip{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:calc(var(--w) * .52)}@keyframes deal{0%{opacity:0;transform:translateY(-14px) scale(.92)}}@media (min-width: 760px){.card{--w: 76px}.card.small{--w: 58px}}.hand-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}.hand{display:flex;justify-content:center}.hand .card+.card{margin-left:calc(var(--w) * -.42)}.hand-label{font-size:.8rem;font-weight:600;opacity:.85}.tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--surface-2);border-radius:12px;padding:4px;margin-bottom:14px}.tabs button{border:0;background:none;padding:9px;border-radius:9px;font-weight:600;color:var(--muted)}.tabs button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.slide{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px;min-height:300px;box-shadow:var(--shadow);animation:fade .25s ease-out}.slide h2{font-size:1.3rem;margin-bottom:8px}.slide p{margin:8px 0}@keyframes fade{0%{opacity:0;transform:translate(10px)}}.mini-felt,.felt-box{margin-top:14px;background:radial-gradient(ellipse at 50% 30%,var(--felt),var(--felt-2));color:var(--felt-text);border-radius:14px;padding:14px;display:flex;flex-wrap:wrap;justify-content:center;gap:18px 28px}.caption{flex-basis:100%;text-align:center;font-weight:600}.caption.plain{margin-top:12px;padding:10px;border-radius:10px;background:var(--surface-2)}.lesson-nav{position:sticky;bottom:0;padding:10px 0 max(12px,env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 30%)}.dots{display:flex;justify-content:center;gap:6px;margin:14px 0}.dot{width:8px;height:8px;border-radius:99px;border:0;padding:0;background:var(--border)}.dot.on{background:var(--accent);width:20px}.mastery{display:flex;align-items:center;gap:12px;margin-bottom:12px}.mastery-text{flex:1;min-width:0}.streak{display:flex;align-items:center;gap:8px;font-size:.85rem;margin-top:4px}.streak-bar{flex:1;height:6px;background:var(--ring-track);border-radius:99px;overflow:hidden;max-width:160px}.streak-bar span{display:block;height:100%;background:var(--gold);transition:width .3s}.question{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:var(--shadow);position:relative;overflow:hidden}.question.good{border-color:var(--good)}.question.bad{border-color:var(--bad)}.prompt{font-weight:650;font-size:1.05rem;margin:0 0 4px}.note{text-align:center;color:var(--muted);font-size:.85rem;margin:10px 0 0}.timer{position:absolute;top:0;left:0;right:0;height:4px;background:var(--ring-track)}.timer span{display:block;height:100%;background:var(--accent);transition:width .1s linear}.timer span.low{background:var(--bad)}.flash-stage{display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px 0 10px}.flash-stage .card{--w: 96px;animation-duration:.15s}.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.choice{min-height:52px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);font-weight:600;padding:10px}.choice.right,.act.right{background:var(--good-bg);border-color:var(--good);color:var(--good)}.choice.wrong,.act.wrong{background:var(--bad-bg);border-color:var(--bad);color:var(--bad)}.choice.dim,.act.dim{opacity:.45}.actions{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:16px}.actions>*{grid-column:span 3}.actions.n3>*{grid-column:span 2}.actions.n5>:nth-child(-n+3){grid-column:span 2}@media (min-width: 560px){.actions.n4{grid-template-columns:repeat(4,1fr)}.actions.n5{grid-template-columns:repeat(5,1fr)}.actions.n4>*,.actions.n5>*{grid-column:auto!important}}.actions.two{grid-template-columns:1fr 1fr}.act{min-height:56px;border-radius:12px;border:0;font-weight:700;color:#fff;background:var(--muted);padding:8px}.act-H{background:var(--a-H)}.act-S{background:var(--a-S)}.act-D{background:var(--a-D)}.act-P{background:var(--a-P)}.act-R{background:var(--a-R)}.act.right,.act.wrong{border:2px solid}.act:disabled:not(.right):not(.wrong):not(.dim){opacity:.3}.feedback{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);animation:fade .2s ease-out}.verdict{font-weight:700;margin:0}.question.good .verdict{color:var(--good)}.question.bad .verdict{color:var(--bad)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:grid;place-items:center;padding:16px;z-index:50;animation:fade .2s}.modal{background:var(--surface);border-radius:20px;padding:22px;max-width:400px;width:100%;text-align:center}.burst{font-size:3rem;animation:pop .5s cubic-bezier(.2,1.6,.4,1)}@keyframes pop{0%{transform:scale(.2)}}.felt.table{background:radial-gradient(ellipse at 50% 0%,var(--felt) 0%,var(--felt-2) 80%);color:var(--felt-text);border-radius:22px;padding:18px 12px;min-height:360px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;box-shadow:inset 0 0 0 6px #5a3a1d,inset 0 0 0 8px #3d2712,var(--shadow);position:relative}.seat{display:flex;justify-content:center;min-height:120px;align-items:center}.placeholder{opacity:.7;font-size:.9rem;text-align:center;border:1px dashed rgba(255,255,255,.35);border-radius:12px;padding:14px 18px}.player-hands{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.phand{padding:8px;border-radius:14px;border:2px solid transparent;text-align:center;transition:border-color .2s}.phand.active{border-color:#f5d27a;background:#ffffff0d}.hand-bet{font-size:.8rem;margin-top:4px;color:#f5d27a;font-weight:600}.result{margin-top:4px;font-weight:800;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.res-win .result,.res-blackjack .result{color:#7ff0b4}.res-lose .result,.res-bust .result{color:#ff9d92}.count-hud{align-self:center;font-size:.8rem;background:#0000004d;padding:4px 12px;border-radius:99px;font-variant-numeric:tabular-nums}.shuffle-note{align-self:center;font-size:.75rem;opacity:.8}.coach{margin-top:12px;padding:10px 14px;border-radius:12px;font-size:.9rem;border:1px solid}.coach.ok{background:var(--good-bg);border-color:var(--good)}.coach.bad{background:var(--bad-bg);border-color:var(--bad)}.summary{text-align:center;font-weight:700;margin-top:10px}.controls{margin-top:12px}.chips{display:flex;justify-content:center;gap:8px;margin-bottom:10px}.chip{width:50px;height:50px;border-radius:50%;border:4px dashed rgba(255,255,255,.75);color:#fff;font-weight:800;font-size:.85rem;box-shadow:0 2px 5px #0000004d;transition:transform .12s}.chip.on{transform:translateY(-5px);outline:3px solid var(--gold);outline-offset:2px}.chip:disabled{opacity:.3}.chip-5{background:#c0392b}.chip-10{background:#2f6fdb}.chip-25{background:#1f8a5b}.chip-50{background:#e67e22}.chip-100{background:#222}.btn.deal{min-height:54px;font-size:1.05rem}.session{text-align:center;margin:12px 0}.toggles{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;font-size:.9rem;padding:10px;background:var(--surface-2);border-radius:12px}.toggles label{display:flex;align-items:center;gap:6px}.toggles .locked{opacity:.5}.toggles select{font:inherit;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.peek{font-size:.85rem;display:flex;gap:4px;align-items:center}.legend{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.legend span{font-size:.75rem;padding:3px 8px;border-radius:6px;color:#fff;font-weight:600}@media (min-width: 900px){.charts{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}}.chart-wrap{overflow-x:auto}.chart-wrap.locked .chart td{color:transparent!important;background:var(--surface-2)!important}.chart{border-collapse:separate;border-spacing:2px;width:100%;font-size:.8rem;font-variant-numeric:tabular-nums}.chart th{font-weight:600;color:var(--muted);padding:4px 2px;white-space:nowrap}.chart td{text-align:center;padding:6px 0;border-radius:4px;font-weight:700;color:#fff;min-width:26px}.c-H{background:var(--a-H)}.c-S{background:var(--a-S)}.c-D{background:var(--a-D)}.c-Ds{background:var(--a-Ds)}.c-P{background:var(--a-P)}.c-R{background:var(--a-R)}
