:root{--bg:#101914;--surface:#17211b;--raised:#202c24;--text:#ecebe2;--muted:#a4afa4;--line:#303e33;--accent:#d1b47c;--accent-ink:#211d14;--felt:#204f3b;--felt-dark:#153c2b;--rail:#111b14;--font-body:'Switzer',sans-serif;--font-display:'Boska',serif;--text-xs:clamp(.75rem,.72rem + .12vw,.8rem);--text-sm:clamp(.875rem,.82rem + .15vw,.9375rem);--text-base:1rem;--text-lg:clamp(1.125rem,1rem + .5vw,1.375rem);--text-xl:clamp(1.65rem,1.3rem + 1vw,2.15rem);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:999px}
[data-theme=light]{color-scheme:light;--bg:#f0efe7;--surface:#faf9f3;--raised:#e8e8dd;--text:#1c2c21;--muted:#637063;--line:#d7dccf;--accent:#b9995e;--accent-ink:#151d15}
body{background:var(--bg);color:var(--text);font:400 var(--text-sm)/1.5 var(--font-body);transition:background .2s,color .2s}
button{border:0;background:none;font-size:var(--text-sm);transition:background .16s,opacity .16s,transform .16s}button:disabled{opacity:.35}button:hover:not(:disabled){color:var(--accent)}.primary{background:var(--accent);color:var(--accent-ink);font-weight:700;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-6)}.primary:hover:not(:disabled){background:#e2ca98;color:#1e251d}.secondary{border:1px solid var(--line);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);background:var(--raised)}.muted{color:var(--muted)}
.header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(var(--space-8),calc((100vw - 1440px)/2));gap:var(--space-8)}.brand{display:flex;gap:var(--space-3);align-items:center;text-decoration:none}.brand svg{width:34px;height:40px;color:var(--accent)}.brand>span{font:700 28px/1 var(--font-display);white-space:nowrap}.brand small{display:block;font:500 10px/1.6 var(--font-body);letter-spacing:2px;margin-top:var(--space-1)}.header nav{display:flex;align-items:center;align-self:stretch;gap:var(--space-8);font-size:var(--text-sm)}.nav-active{display:flex;align-items:center;border-bottom:2px solid var(--accent);padding:0 var(--space-1)}.header nav button{color:var(--muted)}.header-actions{display:flex;align-items:center;gap:var(--space-3)}.free-tag{font-size:var(--text-xs);color:var(--muted);margin-right:var(--space-3)}.icon-btn{font:400 24px/1 var(--font-body);width:44px;height:44px;border:1px solid var(--line);border-radius:var(--radius-sm)}
main{max-width:1440px;margin:auto;padding:0 var(--space-8)}.heading{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6) 0}.eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:1.8px;color:var(--accent)}h1{font:500 var(--text-xl)/1.15 var(--font-display);margin-top:var(--space-1)}.table-info{display:flex;gap:var(--space-2);align-items:center;font-size:var(--text-xs);color:var(--muted)}.table-info b{padding:0 var(--space-2);font-weight:400}.status-dot{display:inline-block;background:#85a589;width:6px;height:6px;border-radius:50%;vertical-align:middle}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 264px;gap:var(--space-6)}.game{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);min-width:0;overflow:hidden}.game-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-5);height:52px;border-bottom:1px solid var(--line);font-size:var(--text-xs);letter-spacing:1px}.game-toolbar .muted{margin:0 var(--space-2)}.blinds{color:var(--muted);letter-spacing:0}.game-toolbar>div{display:flex;gap:var(--space-3)}.game-toolbar button{font-size:var(--text-xs);color:var(--muted)}.stage{position:relative;height:470px;isolation:isolate;background:radial-gradient(ellipse at 50% 45%,#24342950,transparent 70%)}.felt{position:absolute;inset:54px 52px 62px;border:14px solid var(--rail);border-radius:48%;background:radial-gradient(ellipse at 50% 30%,var(--felt),var(--felt-dark));box-shadow:0 0 0 1px #51604660,0 7px 0 #0e160e,0 17px 32px #0004,inset 0 0 36px #07180b50;overflow:hidden}.felt:before{content:"";position:absolute;inset:0;opacity:.25;background-image:url('./assets/room.webp');background-size:cover;mix-blend-mode:soft-light}.felt-line{position:absolute;inset:var(--space-3);border:1px solid #e3d3a32a;border-radius:48%}.felt-wordmark{position:absolute;left:0;right:0;top:24%;text-align:center;color:#d5dab333;font:700 24px var(--font-display);letter-spacing:4px}.felt-wordmark span{display:block;font:500 8px var(--font-body);letter-spacing:2px;margin-top:var(--space-1)}
.seat{position:absolute;transform:translate(-50%,-50%);width:126px;text-align:center;transition:opacity .2s;z-index:2}.seat-0{left:50%;top:83%;width:155px}.seat-1{left:13.5%;top:68%}.seat-2{left:17%;top:21%}.seat-3{left:50%;top:11%}.seat-4{left:83%;top:21%}.seat-5{left:86.5%;top:68%}.seat .hole{display:flex;justify-content:center;gap:var(--space-1);height:42px;margin-bottom:-3px;position:relative;z-index:1}.nameplate{position:relative;background:#17231c;border:1px solid #53644b;border-radius:var(--radius-sm);padding:6px var(--space-2);color:#edece0;box-shadow:0 3px 10px #0003;z-index:2;min-height:49px}.nameplate .name{font-size:var(--text-xs);display:flex;align-items:center;justify-content:center;gap:var(--space-1)}.nameplate strong{font-size:var(--text-sm);font-weight:600;display:block;font-variant-numeric:tabular-nums}.seat.active .nameplate{border-color:var(--accent);box-shadow:0 0 0 2px #d1b47c38,0 4px 15px #0004}.seat.active .name{color:var(--accent)}.seat.folded{opacity:.42}.seat.winner .nameplate{border-color:var(--accent);background:#3a4130}.seat-action{position:absolute;top:calc(100% + 4px);left:-15%;right:-15%;font-size:var(--text-xs);color:var(--muted);white-space:nowrap}.seat.active .seat-action{color:var(--accent)}.seat-0 .hole{height:80px;margin-bottom:-8px}.seat-0 .card:first-child{transform:rotate(-5deg) translateY(2px)}.seat-0 .card:last-child{transform:rotate(5deg) translateY(2px)}.seat-0 .nameplate{padding:4px var(--space-2);min-height:44px}.dealer{font-family:var(--font-body);background:#eee9d7;color:#1f2d23;width:18px;height:18px;line-height:18px;font-size:12px;font-weight:700;border-radius:50%;position:absolute;right:-9px;top:12px;box-shadow:0 1px 5px #0008}.blind-tag{color:#b2c0aa;font-size:12px}
.card{display:flex;position:relative;flex-direction:column;align-items:flex-start;justify-content:flex-start;background:#f5f0e2;color:#23352a;width:52px;height:74px;border-radius:5px;padding:5px 7px;box-shadow:0 2px 3px #0005,inset 0 0 0 1px #fff8;font:700 23px/.9 var(--font-body);flex-shrink:0;user-select:none}.card .suit{font:400 25px/1.05 Georgia,serif}.card:after{content:attr(data-suit);position:absolute;right:5px;bottom:4px;font:400 17px Georgia,serif;transform:rotate(180deg)}.card.red{color:#ac413a}.card.back{background:repeating-linear-gradient(45deg,#335940 0,#335940 3px,#234731 3px,#234731 6px);border:3px solid #e5dfc9;box-shadow:0 2px 4px #0006;align-items:center;justify-content:center}.card.back:before{content:"";border:1px solid #cec79688;position:absolute;inset:3px;border-radius:2px}.card.back:after{content:"";width:9px;height:9px;border:1px solid #d5c893;transform:rotate(45deg);position:static}.card.mini{width:30px;height:42px;font-size:15px;padding:3px 4px}.card.mini .suit{font-size:16px}.card.mini:after{font-size:10px;bottom:2px;right:2px}.card.empty{background:#071e152b;border:1px dashed #a1b29144;box-shadow:none}.card.best{box-shadow:0 0 0 2px var(--accent),0 4px 10px #0006}.board-area{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:68%;text-align:center;z-index:3}.community{display:flex;justify-content:center;gap:6px}.community .card{animation:deal .3s ease both}.pot{font-size:var(--text-xs);color:#ccdac9;margin-bottom:var(--space-3)}.pot strong{font-size:var(--text-lg);color:#f3eddc;margin-left:var(--space-2);font-variant-numeric:tabular-nums}.pot .chip{display:inline-block;width:15px;height:15px;background:#b79b63;border:3px dashed #f1e4c7;border-radius:50%;margin-right:6px;vertical-align:-2px}.street{color:#c1cdbd;font-size:var(--text-xs);margin-top:var(--space-2);letter-spacing:.5px}.welcome h2{font:500 26px/1.12 var(--font-display);color:#f1eedf;max-width:270px;margin:0 auto var(--space-4)}.welcome .primary{min-width:164px}.welcome>p{color:#bccdbd;font-size:var(--text-xs);margin-top:var(--space-2)}.result{margin-top:var(--space-3);font-size:var(--text-xs);color:#f0dab0;line-height:1.4}.result strong{display:block;font-size:var(--text-sm)}.table-caption{position:absolute;bottom:var(--space-2);left:0;right:0;text-align:center;color:var(--muted);font-size:var(--text-xs)}.pause-screen{position:absolute;inset:0;background:#10241ff2;z-index:8;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--space-3);color:#e9ecdf}.pause-screen h2{font:500 32px var(--font-display)}.pause-screen p{color:#b3c4b7}.pause-screen .primary{margin-top:var(--space-3)}
.action-panel{min-height:136px;border-top:1px solid var(--line);padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;justify-content:center;gap:var(--space-3)}.idle-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.idle-actions h2{font-size:var(--text-base);font-weight:500}.idle-actions p{color:var(--muted);font-size:var(--text-xs);margin-top:var(--space-1)}.idle-icon{width:40px;height:40px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:24px;color:var(--accent);flex-shrink:0}.idle-copy{display:flex;align-items:center;gap:var(--space-3)}.action-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.turn-copy{min-width:115px}.turn-copy strong{font-size:var(--text-sm);font-weight:600}.turn-copy p{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-1)}.actions{display:flex;gap:var(--space-2);flex:1;justify-content:flex-end}.actions button{min-width:98px;min-height:48px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);background:var(--raised);font-weight:500}.actions button.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent;min-width:132px}.actions button small{font-size:var(--text-xs);opacity:.75;display:block;font-weight:400}.raise-options{display:flex;align-items:center;gap:var(--space-3);padding-left:130px}.raise-options label{font-size:var(--text-xs);color:var(--muted);white-space:nowrap}.raise-options input{min-width:60px;flex:1;width:100px;min-height:28px;accent-color:var(--accent)}.presets{display:flex;gap:var(--space-1)}.presets button{min-height:34px;min-width:43px;padding:var(--space-1) var(--space-2);background:var(--raised);border-radius:4px;font-size:var(--text-xs);white-space:nowrap}.presets button.selected{box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}.game-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:0 var(--space-5);min-height:42px;font-size:var(--text-xs);color:var(--muted)}.game-foot .status-dot{margin-right:6px}.game-foot button{font-size:var(--text-xs);color:var(--muted);min-height:40px}
.sidebar{display:flex;flex-direction:column;gap:var(--space-5)}.session,.opponents{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-5);background:var(--surface)}.section-title{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.section-title h2{font-size:var(--text-sm);font-weight:500}.section-title>span{font-size:10px;letter-spacing:1px;color:var(--muted)}.bankroll{padding:var(--space-4) 0}.bankroll>span{font-size:36px;line-height:1.3;font-weight:500;letter-spacing:-1px;font-variant-numeric:tabular-nums}.bankroll small{display:block;font-size:var(--text-xs);color:var(--muted)}.stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:var(--space-3) 0}.stats>div+div{border-left:1px solid var(--line);padding-left:var(--space-4)}.stats strong{font-weight:500;font-size:var(--text-lg);display:block}.stats span{font-size:var(--text-xs);color:var(--muted)}.text-btn{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:var(--text-xs);padding:var(--space-3) 0 0;color:var(--muted)}#opponent-list{margin-top:var(--space-3)}.opponent{display:flex;align-items:center;gap:var(--space-3);padding:6px 0}.avatar{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--line);background:var(--raised);color:var(--accent);font:500 20px var(--font-display)}.opponent>span:nth-child(2){font-size:var(--text-xs);flex:1}.opponent small{font-size:var(--text-xs);color:var(--muted)}.opponents>p{font-size:var(--text-xs);line-height:1.5;color:var(--muted);border-top:1px solid var(--line);padding-top:var(--space-3);margin-top:var(--space-3)}.room-note{position:relative;overflow:hidden;border-radius:var(--radius-md);min-height:180px;flex:1;background:#183421;color:#efe9d9}.room-note img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:67% center;opacity:.45}.room-note:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#102017bf,#10201700)}.room-note>div{position:relative;z-index:1;padding:var(--space-5)}.room-note h2{font:500 25px/1.1 var(--font-display);margin:var(--space-2) 0}.room-note p{font-size:var(--text-xs);color:#bdcbb9}.room-note .eyebrow{font-size:10px}
footer{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) 0;color:var(--muted);font-size:var(--text-xs)}.footer-dot{margin:0 var(--space-2)}#perf{font-size:var(--text-xs)}
dialog{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(530px,calc(100% - 32px));max-height:85svh;padding:var(--space-6);box-shadow:0 24px 100px #0008}dialog::backdrop{background:#060e0bba;backdrop-filter:blur(4px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.modal-head h2{font:500 30px var(--font-display)}.modal-head .icon-btn{border:0;font-size:28px}.modal-intro{color:var(--muted);font-size:var(--text-sm);margin-bottom:var(--space-5)}.field{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--line)}.field>label{font-weight:500}.field small{display:block;font-size:var(--text-xs);color:var(--muted);font-weight:400;margin-top:var(--space-1)}select,textarea{color:var(--text);background:var(--raised);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}select{max-width:170px}.toggle{background:var(--raised);border:1px solid var(--line);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);min-width:72px}.toggle[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.modal-buttons{display:flex;gap:var(--space-2);margin-top:var(--space-5);flex-wrap:wrap}.modal-buttons button{flex:1;white-space:nowrap}.help-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-5)}.help-tabs button{flex:1;border-bottom:1px solid var(--line)}.help-tabs button[aria-selected=true]{border-color:var(--accent);color:var(--accent)}.steps{padding-left:var(--space-6);color:var(--muted)}.steps li{padding-left:var(--space-1);margin-bottom:var(--space-4)}.steps strong{display:block;color:var(--text);font-weight:500}.ranking{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) 0;border-bottom:1px solid var(--line);gap:var(--space-2)}.ranking span{color:var(--muted);font-size:var(--text-xs)}.ranking b{font-weight:500}.ranking small{font-size:var(--text-xs);color:var(--muted);margin-right:var(--space-2)}.history-row{padding:var(--space-2) 0;border-bottom:1px solid var(--line);font-size:var(--text-sm)}.history-row small{color:var(--accent);margin-right:var(--space-2)}textarea{width:100%;height:124px;resize:vertical;font:400 12px/1.5 monospace;margin-top:var(--space-2)}.save-label{display:block;margin-top:var(--space-4);font-size:var(--text-sm)}.error{color:#f09d85;font-size:var(--text-sm);margin-top:var(--space-3)}#toast{position:fixed;bottom:var(--space-6);left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);box-shadow:0 8px 30px #0004;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);z-index:30;max-width:90%;text-align:center}.sound-hint{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-4)}.help-note{padding:var(--space-4);background:var(--raised);border-radius:var(--radius-sm);color:var(--muted);font-size:var(--text-xs)}
@keyframes deal{from{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}@keyframes thinking{0%,100%{opacity:.45}50%{opacity:1}}.thinking{animation:thinking 1.4s infinite}
@media(min-width:1500px){.stage{height:510px}}
@media(max-width:1150px){.workspace{grid-template-columns:minmax(0,1fr) 230px;gap:var(--space-4)}main{padding:0 var(--space-5)}.header{padding:0 var(--space-5)}.free-tag{display:none}.seat{width:110px}.seat-0{width:140px}.seat-1{left:13%}.seat-5{left:87%}.felt{inset:54px 36px 62px}.actions button{min-width:75px;padding:var(--space-2) var(--space-3)}.actions button.primary{min-width:110px}.raise-options{padding-left:0}.opponent{gap:var(--space-2)}.opponent small{font-size:11px}.session,.opponents{padding:var(--space-4)}.table-info{font-size:var(--text-xs)}}
@media(max-width:900px){.sidebar{display:none}.workspace{display:block}.stage{height:480px}.header{height:76px}.header nav{gap:var(--space-5)}main{max-width:820px}.seat{width:126px}.seat-0{width:150px}.seat-1{left:14%}.seat-5{left:86%}.raise-options{padding-left:130px}footer>span:first-child{display:none}.action-panel{min-height:132px}.brand>span{font-size:26px}}
@media(max-width:600px){.header{height:64px;padding:0 var(--space-4);gap:var(--space-3)}.brand{gap:var(--space-2)}.brand svg{width:26px;height:32px}.brand>span{font-size:24px}.brand small{font-size:8px;letter-spacing:1.5px}.header nav{display:none}.header-actions{gap:var(--space-2)}.icon-btn{width:40px;border:none}.heading{padding:var(--space-4) 0;align-items:flex-end}.heading .eyebrow{font-size:10px;letter-spacing:1.5px}.heading h1{font-size:26px}.table-info{font-size:10px;text-align:right;max-width:84px;line-height:1.6}.table-info .status-dot,.table-info b{display:none}.table-info span:last-child{display:block}main{padding:0 var(--space-3)}.game{border-radius:var(--radius-md)}.game-toolbar{height:42px;padding:0 var(--space-3);font-size:10px;letter-spacing:.6px}.game-toolbar button{font-size:12px}.game-toolbar>div{gap:var(--space-2)}.game-toolbar .muted{margin:0 var(--space-1)}.stage{height:clamp(375px,calc(100svh - 345px),490px)}.felt{inset:37px 17px 50px;border-width:9px;border-radius:44%}.felt-line{inset:var(--space-2);border-radius:44%}.felt-wordmark{top:29%;font-size:18px;letter-spacing:3px}.felt-wordmark span{font-size:6px}.seat{width:86px}.seat-0{width:130px;top:84%}.seat-1{left:15.5%;top:67%}.seat-2{left:17%;top:26%}.seat-3{top:10%}.seat-4{left:83%;top:26%}.seat-5{left:84.5%;top:67%}.seat .hole{height:33px;gap:3px}.seat .card.mini{width:24px;height:34px;font-size:12px;padding:3px}.seat .card.mini .suit{font-size:14px}.seat .card.mini:after{display:none}.nameplate{padding:4px;min-height:42px}.nameplate .name{font-size:12px}.nameplate strong{font-size:13px}.blind-tag{font-size:10px}.seat-action{font-size:10px;top:calc(100% + 3px)}.seat-0 .hole{height:68px}.seat-0 .hole .card{width:48px;height:69px;font-size:23px}.seat-0 .nameplate{min-height:40px;padding:3px}.seat-0 .seat-action{display:none}.board-area{top:47%;width:100%}.community{gap:5px}.community .card{width:42px;height:60px;font-size:20px;padding:5px}.community .card .suit{font-size:22px}.community .card:after{font-size:14px}.pot{margin-bottom:var(--space-2);font-size:12px}.pot strong{font-size:20px}.street{font-size:10px;margin-top:var(--space-2)}.welcome h2{font-size:23px;max-width:200px;margin-bottom:var(--space-3)}.welcome .primary{min-height:44px;padding:var(--space-2) var(--space-5);min-width:144px}.welcome>p{font-size:10px}.table-caption{bottom:5px;font-size:10px}.result{margin-top:var(--space-2);font-size:10px;max-width:240px;margin-inline:auto}.result strong{font-size:12px}.action-panel{padding:var(--space-3);min-height:151px;gap:var(--space-2)}.action-top{display:block}.turn-copy{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);min-height:20px}.turn-copy strong{font-size:12px}.turn-copy p{font-size:11px;margin:0}.actions{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:var(--space-2)}.actions button,.actions button.primary{min-width:0;min-height:44px;font-size:13px;padding:5px}.actions button small{display:none}.raise-options{padding:0;gap:var(--space-2)}.raise-options label{display:none}.raise-options input{min-height:36px;width:40px}.presets{gap:var(--space-1)}.presets button{min-height:44px;min-width:38px;padding:var(--space-1) 5px;font-size:11px}.idle-actions h2{font-size:14px}.idle-actions p{font-size:12px;max-width:185px}.idle-icon{display:none}.idle-actions .primary{padding:var(--space-3);min-width:98px;font-size:13px}.game-foot{padding:0 var(--space-3);min-height:34px;font-size:10px}.game-foot button{min-height:34px;font-size:10px}.game-foot .status-dot{width:5px;height:5px;margin-right:3px}footer{font-size:10px;padding:var(--space-3) 0;gap:var(--space-2);align-items:center}footer>span:nth-child(2){font-size:9px}#perf{font-size:9px}footer>span:last-child{max-width:160px;text-align:right}.footer-dot{margin:0 2px}.pause-screen h2{font-size:28px}dialog{padding:var(--space-5)}.modal-head h2{font-size:28px}.field{gap:var(--space-3)}select{max-width:155px}.room-note{display:none}}
@media(max-width:350px){main{padding:0 var(--space-2)}.heading h1{font-size:23px}.seat{width:78px}.seat-0{width:115px}.seat-2{left:15.5%}.seat-4{left:84.5%}.community .card{width:39px;height:56px}.table-info{display:none}.game-toolbar{font-size:9px}.game-toolbar>div{gap:var(--space-1)}.presets button{min-width:34px}.game-foot{font-size:9px}.game-foot button{font-size:9px}.stage{min-height:385px}.header{padding:0 var(--space-3)}}
/* Keep functional labels legible, including on a narrow phone. */
.workspace{align-items:start}
.felt:before{background-image:repeating-linear-gradient(0deg,#ffffff08 0,#ffffff08 1px,transparent 1px,transparent 3px);background-size:auto;opacity:.3}
.felt-wordmark,.table-caption{display:none}
.board-area{top:35%;transform:translateX(-50%)}
.board-area:has(.welcome){top:47%;transform:translate(-50%,-50%)}
.community .card{animation:none}
.seat.folded{opacity:1}
.seat.folded .hole{opacity:.25}
.seat.folded .nameplate{background:#1c2b22;color:#a9b4a7;border-color:#3c4d40;box-shadow:none}
.seat-action{color:#bac8b7}
.seat-0 .seat-action{color:var(--muted)}
.result{line-height:1.25}
.room-note{min-height:148px}
.session{padding-block:var(--space-4)}
.opponents{padding-block:var(--space-4)}
.opponent{padding:4px 0}
.brand small,.section-title>span,.room-note .eyebrow,.opponent small{font-size:12px}
.brand small{letter-spacing:1px}
.felt-wordmark span{font-size:12px;letter-spacing:1px}
.presets button{min-height:44px}
@media(max-width:600px){
  .desktop-only,.felt-wordmark span{display:none}
  .brand small{font-size:12px;letter-spacing:.5px}
  .heading .eyebrow,.table-info,.game-toolbar,.blind-tag,.seat-action,.street,.welcome>p,.table-caption,.result,.turn-copy p,.presets button,.game-foot,.game-foot button,footer,footer>span:nth-child(2),#perf{font-size:12px}
  .table-info{max-width:95px}
  .game-toolbar{letter-spacing:0}
  .game-foot button{min-height:44px}
  .icon-btn{width:44px}
  .stage{height:clamp(355px,calc(100svh - 405px),460px)}
  .seat-action{left:-20%;right:-20%}
  .table-caption{padding:0 var(--space-2);font-size:12px}
  footer>span:last-child{max-width:170px}
  .footer-dot{display:none}
  #perf{display:block}
}

/* Practice layer: brass medals, real card diagrams and a thumb-first phone table. */
.practice-bar{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 20px;padding:10px 0;gap:16px}
.level-summary{display:flex;align-items:center;gap:12px;text-align:left;min-height:48px}
.level-medal{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:2px solid var(--accent);border-radius:50%;outline:1px solid var(--line);outline-offset:3px;background:var(--raised);color:var(--accent);font:700 25px var(--font-display)}
.level-summary strong{font-size:14px;font-weight:500}.level-summary small{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.xp-track{display:block;width:190px;height:4px;border-radius:4px;background:var(--line);overflow:hidden;margin-top:5px}.xp-track i{display:block;height:100%;background:var(--accent);transition:width .5s}
.mission-summary{display:flex;align-items:center;gap:20px;min-height:48px;text-align:right}.mission-summary small{display:block;font-size:12px;color:var(--muted)}.goal-count{font-size:20px;color:var(--accent)}.goal-count span{font-size:12px;display:block;color:var(--muted)}
.practice-card{padding:20px;border:1px solid var(--line);border-radius:10px;background:radial-gradient(ellipse at 50% 25%,#d1b47c0d,transparent 70%),var(--surface);text-align:center}
.practice-card h3{font:500 25px var(--font-display);margin-bottom:6px}.practice-card p{font-size:12px;color:var(--muted)}.practice-card .text-btn{min-height:44px;margin-top:8px}
.milestone-art{width:90px;height:90px;position:relative;margin:12px auto 8px;display:grid;place-items:center}.badge-disc{display:grid;place-items:center;width:64px;height:64px;position:relative;border:4px double #d1b47c;border-radius:50%;color:#e9d1a3;background:radial-gradient(circle at 30% 20%,#4c523a,#1e2e24);font:700 26px var(--font-display);box-shadow:0 3px 0 #0c1c15,0 6px 18px #0003}.badge-ribbon{position:absolute;top:42px;width:45px;height:44px;background:#a08a58;clip-path:polygon(0 0,100% 0,100% 100%,50% 76%,0 100%);transform:rotate(-10deg)}
.sidebar .opponents,.sidebar .room-note{display:none}
.career-heading{display:flex;gap:20px;align-items:center;margin:12px 5px 24px}.career-heading strong{font:500 26px var(--font-display)}.career-heading p{font-size:12px;color:var(--muted)}
.mission-row{display:flex;align-items:center;gap:16px;padding:16px 0;border-top:1px solid var(--line)}.mission-row>div{flex:1}.mission-row strong{font-weight:500}.mission-row p{font-size:12px;color:var(--muted);margin:3px 0 8px}.mission-row small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.mission-seal{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px dashed var(--muted);border-radius:50%;color:var(--muted);font:500 22px var(--font-display)}.complete .mission-seal{background:var(--accent);color:var(--accent-ink);border:3px double var(--accent-ink);box-shadow:0 0 0 2px var(--accent)}
progress{appearance:none;width:100%;height:5px;border:none;border-radius:5px;overflow:hidden;background:var(--line)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--accent)}progress::-moz-progress-bar{background:var(--accent)}
.collection-title{font-size:18px;margin:24px 0 8px}.collection-title span{float:right;color:var(--muted);font-size:14px}.collection-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.collection-grid>div{border:1px dashed var(--line);border-radius:8px;padding:12px}.collection-grid strong{display:block;font-size:12px;font-weight:500}.collection-grid small{font-size:12px;color:var(--muted)}.collection-mark{display:block;font-size:20px;color:var(--muted)}.collection-grid .collected{border:1px solid var(--accent);background:var(--raised)}.collected .collection-mark{color:var(--accent)}
.ranking.illustrated{display:block;padding:16px 0}.illustrated>div:first-child{display:flex;flex-direction:column;gap:3px}.illustrated>div>span{padding-left:27px}.hand-art{display:flex;gap:6px;margin-top:14px;justify-content:center}.hand-art .card{width:48px;height:68px;font-size:22px}.hand-art .card:nth-child(1){rotate:-5deg;translate:0 3px}.hand-art .card:nth-child(5){rotate:5deg;translate:0 3px}.hand-art .card:nth-child(2){rotate:-2deg}.hand-art .card:nth-child(4){rotate:2deg}.hand-art .card .suit{font-size:24px}
.hand-title{font:500 34px var(--font-display);margin-top:4px}.live-hand{margin:26px 0 30px}.live-hand .card{width:64px;height:92px;font-size:28px}.live-hand .card .suit{font-size:32px}.hand-scale{display:flex;gap:4px}.hand-scale i{height:12px;border-radius:2px;flex:1;background:var(--line)}.hand-scale .current{background:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.scale-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:8px}.sound-hint+.secondary{margin-top:20px}
.action-panel[data-turn=you]{box-shadow:inset 0 3px 0 var(--accent)}.turn-copy strong{color:var(--accent)}.turn-copy p{color:var(--text)}.hand-complete .idle-icon{background:var(--accent);color:var(--accent-ink);border:0}.hand-complete .idle-copy p{color:var(--accent)}
.seat.winner .nameplate{box-shadow:0 0 0 2px #d1b47c40,0 0 24px #d1b47c30}.card.best{outline:2px solid #d1b47c;outline-offset:2px}
.game-toolbar button{min-height:44px;min-width:44px}.help-tabs button{min-height:44px}
.game-foot{gap:10px}.game-foot button{min-height:44px;white-space:nowrap}
#toast{bottom:auto;top:20px;pointer-events:none}
@media(min-width:901px){.heading{padding:18px 0}.header{height:76px}.stage{height:450px}.action-panel{min-height:140px}}
@media(max-width:600px){
  .header{height:52px;padding:0 12px}.brand>span{font-size:22px}.brand small{display:none}.brand svg{width:24px;height:30px}
  main{padding:0 8px}.heading{display:none}.practice-bar{margin:0 0 8px;padding:8px 4px;height:64px;border-top:none}.level-summary{gap:9px;min-height:44px}.level-medal{width:34px;height:34px;font-size:22px;outline-offset:2px}.level-summary strong{font-size:12px}.level-summary small{font-size:12px}.xp-track{width:152px;margin-top:3px;height:3px}.mission-summary{gap:10px;min-height:44px}.desktop-mission{display:none}.goal-count{font-size:18px}
  .game{overflow:visible}.game-toolbar{height:44px;padding:0 10px}.stage{height:clamp(330px,calc(100svh - 360px),470px)}.felt{inset:36px 10px 37px}
  .seat{width:78px}.seat-0{width:124px;top:83%}.seat-1{left:14%;top:66%}.seat-2{left:15%;top:25%}.seat-3{top:11%}.seat-4{left:85%;top:25%}.seat-5{left:86%;top:66%}
  .seat:not(.seat-0) .hole{height:24px}.seat:not(.seat-0) .card.mini{width:20px;height:28px}.seat:not(.seat-0) .card.mini .suit{font-size:12px}.seat-action{font-size:12px}
  .nameplate{min-height:39px;padding:2px 3px}.nameplate strong{font-size:13px}.seat-0 .hole{height:71px}.seat-0 .hole .card{height:74px;width:51px;font-size:25px}
  .board-area{top:34%}.board-area:has(.welcome){top:46%}.community{gap:5px}.community .card{width:40px;height:57px}.pot{margin-bottom:6px}.result{margin-top:5px;max-width:220px}.street{margin-top:5px}
  .action-panel{position:sticky;bottom:0;z-index:9;background:var(--surface);padding:10px 10px max(10px,env(safe-area-inset-bottom));min-height:136px;border-bottom:1px solid var(--line);box-shadow:0 -5px 18px #0002}
  .actions{grid-template-columns:.8fr 1fr 1.4fr;gap:6px}.actions button,.actions button.primary{min-height:48px;font-size:14px}.turn-copy{margin-bottom:7px}.raise-options{gap:6px}.raise-options label{display:none}.raise-options input{height:44px;min-height:44px;width:50px}.presets{gap:4px}.presets button{min-height:44px;min-width:40px;padding:4px 6px}
  .game-foot{padding:0 10px;min-height:44px;gap:5px}.game-foot>span:first-child{display:none}.game-foot button{font-size:12px}.game-foot>span{font-size:12px}
  .idle-copy{gap:8px;min-width:0}.idle-icon{display:none}.idle-actions{gap:12px}.idle-actions h2{font-size:14px}.idle-actions p{font-size:12px;line-height:1.4}.idle-actions>.primary,.idle-actions>.secondary{min-width:106px;min-height:48px;padding:10px;white-space:nowrap}
  dialog{padding:20px 16px;max-height:calc(100svh - 24px);width:calc(100% - 16px);border-radius:14px}.modal-head{margin-bottom:16px}.modal-head h2{font-size:27px}.modal-head .icon-btn{flex-shrink:0}.live-hand .card{width:45px;height:65px;font-size:23px}.live-hand .card .suit{font-size:24px}.hand-art{gap:5px}.hand-art .card{width:44px;height:64px}.hand-title{font-size:30px}
  #toast{top:58px;font-size:12px;width:max-content;max-width:calc(100% - 24px);padding:10px 14px}
  footer{padding:10px 2px}
}
@media(max-width:350px){.xp-track{width:125px}.seat{width:70px}.seat-action{font-size:12px}.community .card{width:36px;height:53px;font-size:19px}.seat-0 .hole .card{width:47px;height:68px}.seat-0 .hole{height:65px}.presets button{min-width:37px;padding:4px}.actions button,.actions button.primary{font-size:13px}.live-hand .card,.hand-art .card{width:40px;height:60px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.ranking .hand-art .card span{color:inherit;font-size:inherit}
.ranking .hand-art .card .suit{font-size:24px}
.community .card.fresh{animation:reveal-card .3s ease-out both}
@keyframes reveal-card{from{opacity:0;transform:translateY(-10px) rotateY(70deg)}to{opacity:1;transform:translateY(0) rotateY(0)}}
@media(max-width:600px) and (max-height:700px){
  .header{height:44px}.practice-bar{height:52px;padding-block:4px}.level-summary small{margin-top:1px}.level-summary strong{font-size:12px}
  .stage{min-height:0;height:clamp(242px,calc(100svh - 310px),340px)}
  .seat:not(.seat-0) .hole{display:none}.seat{width:66px}.seat-3{top:10%}.seat-2,.seat-4{top:27%}.seat-1,.seat-5{top:70%}.seat:not(.seat-0) .seat-action{display:none}
  .seat-0{top:82%;width:104px}.seat-0 .hole{height:56px}.seat-0 .hole .card{width:40px;height:59px;font-size:21px}.seat-0 .hole .card .suit{font-size:22px}.seat-0 .nameplate{min-height:34px}.seat-0 .nameplate .name{display:none}.seat-0 .nameplate strong{line-height:26px}
  .felt{inset:18px 8px 16px;border-width:7px}.board-area{top:29%}.community .card{width:34px;height:47px;font-size:17px;padding:4px}.community .card .suit{font-size:18px}.community .card:after{font-size:12px}.pot{margin-bottom:4px;font-size:12px}.pot strong{font-size:17px}.street{display:none}.result{margin-top:4px;font-size:12px;line-height:1.1}.result strong{font-size:12px}
  .board-area:has(.welcome){top:46%}.welcome h2{font-size:20px;max-width:150px;margin-bottom:8px}.welcome>p{display:none}
  .action-panel{min-height:124px;padding:8px}.actions button,.actions button.primary{min-height:44px}.turn-copy{margin-bottom:5px}.raise-options input,.presets button{min-height:44px}.game-foot{min-height:44px}
}
@media(max-width:600px) and (max-height:600px){
  .welcome h2{display:none}.result{display:none}
}

/* A faded, screen-printed US flag remains part of the felt, not a UI layer. */
.felt-flag{position:absolute;left:50%;top:50%;width:76%;max-width:520px;aspect-ratio:1.9;transform:translate(-50%,-50%);opacity:.15;pointer-events:none;filter:saturate(.7);background:repeating-linear-gradient(to bottom,#bf514d 0%,#bf514d 7.6923%,#eee8d3 7.6923%,#eee8d3 15.3846%)}
.flag-canton{position:absolute;left:0;top:0;width:40%;height:53.8462%;background:#153d62;display:flex;flex-direction:column;justify-content:space-evenly;padding:3% 2%;color:#fff8dc;overflow:hidden}
.flag-canton span{display:block;text-align:center;font:400 clamp(6px,1.05vw,14px)/1 Georgia,serif;white-space:pre;letter-spacing:2px}
@media(max-width:900px){.flag-canton span{font-size:10px;letter-spacing:2px}}
@media(max-width:600px){.felt-flag{width:88%;opacity:.18}.flag-canton{padding:2% 1%}.flag-canton span{font-size:7px;letter-spacing:1px}}
@media(max-width:350px){.flag-canton span{font-size:6px;letter-spacing:1px}}
