:root{--felt1:#17402f;--felt2:#0c271c;--gold:#e6c36f;--gold-2:#c9a24b;--ink:#f7f2e6;--muted:#c7d1c6;--panel:#ffffff12;--panel-2:#ffffff1f;--line:#ffffff29;--card:#fffdf6;--card-edge:#d8d0bb;--red:#c4202a;--black:#141414;--suit-d:var(--red);--suit-c:var(--black);--back1:#1f3f7a;--back2:#2c5aa8;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--radius:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-size:18px}body[data-theme=theme-navy]{--felt1:#1b2f52;--felt2:#0c1730}body[data-theme=theme-burgundy]{--felt1:#4a1724;--felt2:#260a12}body[data-theme=theme-walnut]{--felt1:#4a3422;--felt2:#22160c}body[data-back=back-gold]{--back1:#6b4f16;--back2:#c9a24b}body[data-back=back-sage]{--back1:#3c5a45;--back2:#7fa287}body[data-back=back-ruby]{--back1:#6d1220;--back2:#b3313f}body.four-color{--suit-d:#1d5fc2;--suit-c:#18773a}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);background:radial-gradient(120% 80% at 50% 0%, var(--felt1), var(--felt2) 70%) fixed, var(--felt2);-webkit-font-smoothing:antialiased;overscroll-behavior:none;line-height:1.4}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}h1,h2,h3{font-family:var(--serif);letter-spacing:.2px;margin:0;font-weight:600}.app{max-width:860px;min-height:100dvh;margin:0 auto;position:relative}.route-fade{animation:.28s fade}.loading{text-align:center;font-family:var(--serif);color:var(--muted);padding:40vh 0;font-size:1.3rem}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}body.reduce-motion *,body.reduce-motion :before{transition-duration:1ms!important;animation-duration:1ms!important}.screen{min-height:100dvh;padding-bottom:calc(96px + env(safe-area-inset-bottom));flex-direction:column;display:flex}.pad{padding:4px 16px 24px}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.fine{color:var(--muted);text-align:center;opacity:.85;padding:8px 20px 20px;font-size:.8rem}.btn{border:0;border-radius:999px;min-height:50px;padding:12px 22px;font-size:1rem;font-weight:650;transition:transform .12s,filter .2s,background .2s}.btn:active:not(:disabled){transform:scale(.97)}.btn.primary{background:linear-gradient(180deg, #f3d68b, var(--gold-2));color:#2a1d05;box-shadow:0 4px 14px #0000004d,inset 0 1px #fff9}.btn.primary:disabled{filter:grayscale(.7)brightness(.8)}.btn.ghost{background:var(--panel-2);border:1px solid var(--line)}.btn.ghost:disabled{opacity:.6}.btn.big{min-width:120px;min-height:56px;font-size:1.1rem}.link-btn{color:var(--gold);text-underline-offset:3px;background:0 0;border:0;padding:8px;font-weight:600;text-decoration:underline}.icon-btn{border:1px solid var(--line);background:var(--panel);border-radius:50%;place-items:center;width:48px;height:48px;padding-bottom:4px;font-size:1.9rem;line-height:1;display:grid}.icon-btn.small{padding:0;font-size:1.25rem}.topbar{z-index:50;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#00000059,#0000001f);align-items:center;gap:10px;display:flex;position:sticky;top:0}.topbar h1{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:1.4rem;overflow:hidden}.topbar-right{align-items:center;gap:8px;display:flex}.coins{background:#00000040;border:1px solid #e6c36f80;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:8px 14px;font-size:1rem;font-weight:700;display:inline-flex}.coins.big{padding:10px 16px;font-size:1.1rem}.coin-ico{color:var(--gold);text-shadow:0 0 6px #e6c36f99;font-size:1.1em}.scorebar{color:var(--muted);justify-content:space-around;align-items:center;gap:8px;padding:6px 12px 8px;font-size:1rem;display:flex}.scorebar b{color:var(--ink);margin-left:4px;font-size:1.15rem}.actionbar{z-index:60;width:100%;max-width:860px;padding:10px 10px calc(10px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);background:linear-gradient(#00000040,#0000008c);justify-content:center;gap:8px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.action{border:1px solid var(--line);background:var(--panel);border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:1px;max-width:150px;min-height:66px;padding:7px 4px 6px;transition:background .2s,transform .12s;display:flex}.action:active:not(:disabled){transform:scale(.96)}.action:disabled{opacity:.38}.action.primary{background:linear-gradient(180deg, #f3d68b, var(--gold-2));color:#2a1d05;border-color:#0000}.a-ico{font-size:1.35rem;line-height:1.1}.a-label{font-size:.92rem;font-weight:650}.a-cost{opacity:.85;font-size:.72rem}.modal-wrap{z-index:100;background:#0000008c;place-items:center;padding:18px;animation:.2s fade;display:grid;position:fixed;inset:0}.modal{color:#1e1a12;background:linear-gradient(#fbf6e9,#efe6d0);border-radius:22px;width:min(440px,100%);max-height:88dvh;padding:22px 20px 18px;animation:.28s cubic-bezier(.2,.9,.3,1.2) pop;overflow:auto;box-shadow:0 20px 60px #00000080}.modal h2{color:#1e1a12;margin-bottom:8px;font-size:1.55rem}.modal .muted{color:#5a5446}.modal-body p{margin:8px 0;font-size:1.05rem}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.modal-actions .btn{flex:1}.modal .btn.ghost{color:#1e1a12;background:#0000000f;border-color:#0000001f}.modal .link-btn{color:#8a6514}.reward{font-family:var(--serif);color:#8a6514;font-size:1.4rem;font-weight:700}.reward.big{text-align:center;margin:6px 0;font-size:2.2rem}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}.toasts{top:calc(76px + env(safe-area-inset-top));z-index:120;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;left:0;right:0}.toast{color:#fff;background:#141412eb;border-radius:12px;max-width:90vw;padding:12px 18px;font-size:1rem;animation:.2s pop;box-shadow:0 8px 24px #0006}.score-table{border-collapse:collapse;width:100%;margin:10px 0;font-size:1.05rem}.score-table td,.score-table th{text-align:left;border-bottom:1px solid #0000001a;padding:8px 6px}.score-table td:not(:first-child),.score-table th:not(:first-child){text-align:right;font-weight:700}.score-table tr.total td{border-bottom:0;font-size:1.15rem}.seg{gap:8px;display:flex}.seg button{color:#1e1a12;background:#fff;border:1px solid #00000026;border-radius:12px;flex:1;min-height:52px;font-size:1.2rem;font-weight:700}.seg button.on{color:#fff;background:#1e1a12}.pcard{--w:var(--cw,60px);width:var(--w);height:calc(var(--w) * 1.4);border-radius:calc(var(--w) * .1);-webkit-user-select:none;user-select:none;flex:none;transition:transform .18s,box-shadow .2s,filter .2s;position:relative}.pcard.face{background:linear-gradient(160deg, #fff, var(--card));border:1px solid var(--card-edge);color:var(--black);box-shadow:0 2px 4px #00000059}.pcard.face.suit-H{color:var(--red)}.pcard.face.suit-D{color:var(--suit-d)}.pcard.face.suit-C{color:var(--suit-c)}.pcard .corner{top:calc(var(--w) * .04);left:calc(var(--w) * .07);flex-direction:column;align-items:center;line-height:.95;display:flex;position:absolute}.pcard .rank{font-family:var(--serif);font-weight:800;font-size:calc(var(--w) * .42);letter-spacing:-1px}.pcard .suit{font-size:calc(var(--w) * .3);margin-top:1px}.pcard .pip{right:calc(var(--w) * .08);bottom:calc(var(--w) * .06);font-size:calc(var(--w) * .62);opacity:.95;line-height:1;position:absolute}.pcard .face-ico{font-size:calc(var(--w) * .6)}.pcard.back{background:repeating-linear-gradient(45deg, var(--back1) 0 6px, var(--back2) 6px 12px);border:3px solid #fff8e8;box-shadow:0 2px 4px #00000059,inset 0 0 0 2px #00000026}.pcard.slot{color:#fff6;font-family:var(--serif);font-size:calc(var(--w) * .45);background:#0000001f;border:2px dashed #ffffff47;place-items:center;font-weight:700;display:grid}.pcard.selected{transform:translateY(calc(var(--w) * -.22));box-shadow:0 0 0 3px var(--gold), 0 10px 18px #00000073}.pcard.dim{filter:brightness(.55)saturate(.6)}.pcard.glow,.glow-wrap .pcard{animation:.9s ease-in-out infinite alternate glow;box-shadow:0 0 0 3px #7cf0c0,0 0 22px 4px #7cf0c0cc}.pcard.small{--w:var(--mw,40px)}.pcard.small .pip{display:none}.pcard.small .rank{font-size:calc(var(--w) * .48)}.pcard.small .suit{font-size:calc(var(--w) * .36)}.pcard.mini{--w:22px;border-width:1.5px;border-radius:3px}@keyframes glow{to{box-shadow:0 0 0 3px #7cf0c0,0 0 8px 1px #7cf0c080}}.shake{animation:.38s shake}@keyframes shake{20%,60%{translate:-6px}40%,80%{translate:6px}}.lobby{padding:calc(14px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom))}.lobby-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{color:#2a1d05;background:linear-gradient(160deg,#f3d68b,#a8801f);border-radius:14px;flex:none;place-items:center;width:48px;height:48px;font-size:1.6rem;display:grid;box-shadow:0 4px 14px #00000059}.brand h1{font-size:1.55rem;line-height:1.1}.brand p{color:var(--muted);margin:2px 0 0;font-size:.85rem}.card-surface{border:1px solid var(--line);background:linear-gradient(160deg,#ffffff1f,#ffffff0a);border-radius:20px;box-shadow:0 8px 24px #0003}.daily{justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.daily h2{font-size:1.35rem}.daily p{margin:4px 0 8px;font-size:.98rem}.streak{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.streak span{border:1px solid var(--line);width:28px;height:28px;color:var(--muted);background:#00000040;border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid}.streak span.on{background:linear-gradient(160deg, #f3d68b, var(--gold-2));color:#2a1d05;border-color:#0000}.streak small{color:var(--muted);margin-left:4px;font-size:.85rem}.section-title{margin:22px 2px 10px;font-size:1.25rem}.game-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.game-tile{text-align:left;border:1px solid var(--line);background:linear-gradient(165deg,#ffffff21,#ffffff08);border-radius:20px;flex-direction:column;justify-content:space-between;gap:8px;min-height:172px;padding:14px;transition:transform .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #00000038}.game-tile:active{transform:scale(.98)}.game-tile.feature{background:linear-gradient(120deg,#e6c36f47,#ffffff0d);flex-direction:row;grid-column:1/-1;justify-content:flex-start;align-items:center;gap:22px;min-height:130px}.game-tile h3{font-size:1.3rem}.game-tile p{color:var(--muted);margin:3px 0 6px;font-size:.9rem}.gt-meta{color:var(--gold);font-size:.95rem;font-weight:700}.art{align-items:center;height:64px;display:flex}.art-cards{justify-content:center;width:110px;position:relative}.art-cards .mc{color:#141414;width:40px;height:56px;font-family:var(--serif);background:#fffdf6;border-radius:6px;place-items:center;margin:0 -6px;font-size:.95rem;font-weight:800;display:grid;box-shadow:0 3px 8px #0006}.art-cards .mc.red{color:var(--red)}.art-word{gap:4px}.art-word span{background:#3b4a42;border-radius:6px;place-items:center;width:36px;height:40px;font-size:1.15rem;font-weight:800;display:grid}.art-word span.g{background:#3f8f5b}.art-word span.y{color:#1f1a06;background:#c9a227}.art-mj{gap:6px}.art-mj .mt{color:#b3222c;background:#fbf6e6;border-radius:6px;place-items:center;width:38px;height:50px;font-size:1.4rem;font-weight:800;display:grid;box-shadow:3px 3px #c9b98f,0 4px 10px #0006}.art-mj .mt.b{color:#1e5aa8;font-family:var(--serif)}.art-mj .mt.c{color:#c2457a}.adslot{border:1px dashed var(--line);min-height:60px;color:var(--muted);background:#0000001f;border-radius:14px;place-items:center;margin:18px 0 6px;font-size:.85rem;display:grid}.lobby-nav{gap:10px;margin-top:16px;display:flex}.lobby-nav .btn{flex:1}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.shop-item{border:1px solid var(--line);background:var(--panel);text-align:left;border-radius:16px;flex-direction:column;gap:6px;padding:10px;display:flex}.shop-item.active{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold) inset}.shop-item span{color:var(--gold);font-weight:700}.swatch{border:1px solid var(--line);border-radius:10px;height:70px}.swatch.theme-felt{background:radial-gradient(#17402f,#0c271c)}.swatch.theme-navy{background:radial-gradient(#1b2f52,#0c1730)}.swatch.theme-burgundy{background:radial-gradient(#4a1724,#260a12)}.swatch.theme-walnut{background:radial-gradient(#4a3422,#22160c)}.swatch.back-classic{background:repeating-linear-gradient(45deg,#1f3f7a 0 6px,#2c5aa8 6px 12px)}.swatch.back-gold{background:repeating-linear-gradient(45deg,#6b4f16 0 6px,#c9a24b 6px 12px)}.swatch.back-sage{background:repeating-linear-gradient(45deg,#3c5a45 0 6px,#7fa287 6px 12px)}.swatch.back-ruby{background:repeating-linear-gradient(45deg,#6d1220 0 6px,#b3313f 6px 12px)}.packs{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.pack{border:1px solid var(--line);background:var(--panel);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:10px;padding:18px 8px 10px;display:flex;position:relative}.pack b{color:var(--gold);font-size:1.15rem}.pack .btn{width:100%;min-height:44px;padding:8px;font-size:.75rem}.pack .tag{background:var(--gold);color:#2a1d05;border-radius:99px;padding:2px 8px;font-size:.7rem;font-weight:800;position:absolute;top:-10px}.vip{text-align:center;margin-top:18px;padding:18px}.vip h3{color:var(--gold);font-size:1.35rem}.setting{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:14px 4px;display:flex}.setting p{margin:2px 0 0}.switch{appearance:none;background:#fff3;border-radius:99px;flex:none;width:56px;height:32px;transition:background .2s;position:relative}.switch:before{content:"";background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .2s;position:absolute;top:3px;left:3px}.switch:checked{background:var(--gold-2)}.switch:checked:before{transform:translate(24px)}.history{margin:0;padding:0;list-style:none}.history li{border-bottom:1px solid var(--line);justify-content:space-between;padding:10px 4px;font-size:.95rem;display:flex}.history .plus{color:#8fe3b0}.history .minus{color:#ffb4a8}.solitaire{--cw:min(calc((100vw - 20px - 30px) / 7), 100px)}@media (width>=860px){.solitaire{--cw:100px}}.sol-board{width:100%;max-width:calc(var(--cw) * 7 + 50px);margin:0 auto;padding:4px 10px 0}.sol-top{align-items:flex-start;gap:5px;display:flex}.sol-stock{cursor:pointer;position:relative}.count-badge{background:#000000b3;border-radius:99px;padding:1px 6px;font-size:.72rem;font-weight:700;position:absolute;bottom:-8px;right:-4px}.sol-waste{width:calc(var(--cw) * 1.64);height:calc(var(--cw) * 1.4);position:relative}.sol-waste>.pcard{position:absolute;top:0}.sol-spacer{flex:1;min-width:0}.sol-found{flex:none}.sol-tableau{gap:5px;margin-top:14px;display:flex}.sol-col{width:var(--cw);flex:none;position:relative}.sol-col>.pcard{position:absolute;left:0}.sol-col>.pcard.slot{top:0}.sol-top .sol-spacer+.sol-found~.sol-found{margin-left:0}.rummy{--cw:min(calc((100vw - 24px) / 6), 92px);--mw:min(calc((100vw - 40px) / 10), 52px)}.table{flex-direction:column;flex:1;gap:10px;padding:4px 12px 0;display:flex}.opponents{gap:8px;display:flex}.opponent{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex:1;align-items:center;gap:8px;min-width:0;padding:8px 10px;transition:box-shadow .3s;display:flex;position:relative}.opponent.active,.seat.active .avatar{box-shadow:0 0 0 2px var(--gold), 0 0 16px #e6c36f73}.avatar{width:40px;height:40px;font-family:var(--serif);color:#14223a;background:linear-gradient(160deg,#c9d6e8,#8396b3);border-radius:50%;flex:none;place-items:center;font-size:1.2rem;font-weight:700;display:grid}.avatar.partner{background:linear-gradient(160deg, #f3d68b, var(--gold-2));color:#2a1d05}.opp-info{flex-direction:column;min-width:0;line-height:1.2;display:flex}.opp-info b{font-size:1rem}.opp-info span{color:var(--muted);white-space:nowrap;font-size:.8rem}.mini-fan{flex:none;width:70px;height:32px;margin-left:auto;position:relative}.mini-fan .pcard{position:absolute;top:0}.opponents:has(.opponent:nth-child(3)) .mini-fan{display:none}.melds{background:#00000024;border:1px solid #ffffff14;border-radius:16px;flex-wrap:wrap;align-content:flex-start;gap:10px;min-height:90px;padding:10px;display:flex}.melds .muted{width:100%;margin:18px 0}.meld{border-radius:10px;padding:4px 6px 16px;transition:background .2s,box-shadow .2s;display:flex;position:relative}.meld.fits{cursor:pointer;background:#7cf0c02e;box-shadow:0 0 0 2px #7cf0c0}.meld-owner{color:var(--muted);font-size:.68rem;position:absolute;bottom:0;left:6px}.piles{justify-content:center;gap:28px;display:flex}.pile{cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:4px;display:flex}.pile.pulse .pcard{animation:1.4s ease-in-out infinite lift}@keyframes lift{50%{transform:translateY(-5px);box-shadow:0 0 0 3px #e6c36fcc,0 8px 18px #0006}}.pile-label{color:var(--muted);font-size:.85rem}.prompt{text-align:center;min-height:1.5em;color:var(--gold);margin:2px 12px;font-size:1.02rem;font-weight:600}.hand{--hw:min(calc(100vw - 24px), 836px);min-height:calc(var(--cw) * 1.4 + 34px);justify-content:center;padding:26px 12px 6px;display:flex}.hand .hand-card{margin-left:calc(min(var(--cw) * .9, (var(--hw) - var(--cw)) / max(var(--n) - 1, 1)) - var(--cw));cursor:pointer}.hand .hand-card:first-child{margin-left:0}.hand-card.taken:after{content:"new";color:var(--gold);text-transform:uppercase;font-size:.65rem;font-weight:800;position:absolute;top:-18px;left:50%;translate:-50%}.my-score{text-align:center;color:var(--muted);font-size:.9rem}.spades{--cw:min(calc((100vw - 24px) / 6), 90px)}.scorebar.teams{gap:10px;padding:4px 12px}.team{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;flex:1;align-items:center;padding:6px;line-height:1.15;display:flex}.team span{color:var(--muted);font-size:.85rem}.team b{font-size:1.5rem;font-family:var(--serif);margin:0}.team small{color:var(--muted);font-size:.75rem}.team.us b{color:var(--gold)}.sp-table{background:radial-gradient(#ffffff12,#0000002e);border:1px solid #ffffff14;border-radius:50%/40%;height:min(70vw,400px);min-height:300px;margin:6px 10px 0;position:relative}.seat{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute}.seat.north{top:4px;left:50%;translate:-50%}.seat.west{top:50%;left:2px;translate:0 -50%}.seat.east{top:50%;right:2px;translate:0 -50%}.seat-info{flex-direction:column;line-height:1.15;display:flex}.seat-info b{font-size:.85rem}.seat-info span{color:var(--muted);font-size:.75rem}.seat-cards{height:26px;display:flex}.seat-cards .pcard{margin-left:-16px}.seat-cards .pcard:first-child{margin-left:0}.trick{width:calc(var(--cw) * 2.6);height:calc(var(--cw) * 2.4);position:absolute;top:54%;left:50%;translate:-50% -50%}.trick-card{position:absolute}.trick-card.from-south{bottom:-14%;left:50%;translate:-50%}.trick-card.from-north{top:-14%;left:50%;translate:-50%}.trick-card.from-west{top:50%;left:0;translate:0 -50%;rotate:-8deg}.trick-card.from-east{top:50%;right:0;translate:0 -50%;rotate:8deg}.trick-hint{color:var(--muted);place-items:center;font-size:.95rem;display:grid;position:absolute;inset:0}.my-seat-info{text-align:center;color:var(--muted);font-size:.85rem;position:absolute;bottom:6px;left:0;right:0}.spades-hand{padding-top:22px}.bid-grid{grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0;display:grid}.bid-btn{color:#1e1a12;background:#fff;border:1px solid #00000026;border-radius:12px;min-height:54px;font-size:1.25rem;font-weight:800}.bid-btn:first-child{grid-column:span 2}.bid-btn.glow{background:#e6fff3;box-shadow:0 0 0 3px #1fae78}.mahjong{--tw:min(calc((100vw - 28px) / 6.35), 84px);--th:calc(var(--tw) * 1.28);--depth:calc(var(--tw) * .085)}.mj-wrap{justify-content:center;padding:8px 8px 0;display:flex}.mj-board{width:calc(var(--tw) * var(--cols) + var(--depth) * 3 + 6px);height:calc(var(--th) * var(--rows) + var(--depth) * 3 + 6px);position:relative}.tile{width:calc(var(--tw) - 4px);height:calc(var(--th) - 4px);border-radius:calc(var(--tw) * .12);color:#222;background:linear-gradient(150deg,#fffdf3,#f1e8cf);border:1px solid #b7a67a;flex-direction:column;justify-content:center;align-items:center;padding:0;line-height:1;transition:transform .15s,filter .2s,box-shadow .2s,opacity .3s;display:flex;position:absolute;box-shadow:3px 4px #cdb985,4px 6px #8f7b4c,5px 8px 10px #00000059}.tile.blocked{filter:brightness(.72)saturate(.7)}.tile.selected{box-shadow:0 0 0 3px var(--gold), 4px 6px 0 #8f7b4c, 5px 10px 14px #00000073;background:linear-gradient(150deg,#fff6c9,#f3d68b);transform:translateY(-4px)}.tile.glow{box-shadow:0 0 0 3px #7cf0c0,0 0 18px 4px #7cf0c0cc}.tile.leaving{pointer-events:none;animation:.36s forwards vanish}@keyframes vanish{to{opacity:0;transform:translateY(-14px)scale(1.12)}}.t-num{font-family:var(--serif);font-weight:800;font-size:calc(var(--tw) * .56)}.t-sub{font-size:calc(var(--tw) * .24);margin-top:2px;font-weight:700}.t-big{font-size:calc(var(--tw) * .6);font-weight:800}.dot{color:#1d54a6}.bam{color:#187a3c}.chr{color:#b3202a}.wind{color:#222}.t-sub.wind{font-size:calc(var(--tw) * .19);text-transform:uppercase;letter-spacing:.5px}.dragon-R{color:#c21f2a}.dragon-G{color:#187a3c}.dragon-w{color:#1d54a6;font-size:calc(var(--tw) * .72)}.flower{color:#c2457a}.season{color:#c46a12}.t-sub.flower,.t-sub.season{font-size:calc(var(--tw) * .18)}.word{--wt:min(calc((100vw - 60px) / 5), 64px);--ok:#3d8d58;--near:#c9a227;--no:#3a3f3c}.word.cb{--ok:#e07b1f;--near:#3a8fd8}.word-sub{text-align:center;color:var(--muted);margin:0 12px 8px;font-size:.95rem}.word-grid{flex-direction:column;align-items:center;gap:7px;margin:4px 0 10px;display:flex}.word-row{gap:7px;display:flex}.wtile{width:var(--wt);height:var(--wt);font-weight:800;font-size:calc(var(--wt) * .55);text-transform:uppercase;font-family:var(--sans);border:2px solid #ffffff47;border-radius:8px;place-items:center;transition:background .2s;display:grid}.wtile.typed{border-color:#ffffffb3;animation:.12s tap}.wtile.correct{background:var(--ok);border-color:var(--ok)}.wtile.present{background:var(--near);border-color:var(--near);color:#1d1704}.word.cb .wtile.present{color:#fff}.wtile.absent{background:var(--no);border-color:var(--no);color:#e9ece9}.wtile.hinted{color:#ffffff73;border-style:dashed}.wtile.flip{animation:.5s both flip}@keyframes flip{0%{transform:rotateX(90deg)}to{transform:rotateX(0)}}@keyframes tap{50%{transform:scale(1.08)}}.word-done{text-align:center;margin:4px 0 8px;font-size:1.15rem}.word-done p{margin:0 0 8px}.keyboard{flex-direction:column;gap:7px;margin-top:auto;padding:4px 6px;display:flex}.kb-row{justify-content:center;gap:5px;display:flex}.key{color:#111;text-transform:uppercase;background:#d6dbd6;border:0;border-radius:8px;flex:1;max-width:52px;height:58px;font-size:1.15rem;font-weight:800;transition:background .3s}.key.wide{flex:1.5;max-width:80px;font-size:.9rem}.key.correct{background:var(--ok);color:#fff}.key.present{background:var(--near);color:#1d1704}.word.cb .key.present{color:#fff}.key.absent{color:#cfd4cf;background:#4a504c}.key:active{filter:brightness(.85)}.stat-row{text-align:center;grid-template-columns:repeat(4,1fr);margin:6px 0 12px;display:grid}.stat-row b{font-size:1.6rem;font-family:var(--serif);display:block}.stat-row span{color:#5a5446;font-size:.8rem}.dist{flex-direction:column;gap:5px;display:flex}.dist-row{align-items:center;gap:8px;font-weight:700;display:flex}.dist-row .bar{color:#fff;text-align:right;background:#6b675c;border-radius:4px;min-width:26px;padding:2px 8px;font-size:.9rem}.dist-row .bar.hi{background:#3d8d58}@media (width>=700px){.game-grid{grid-template-columns:repeat(4,1fr)}.game-tile.feature{grid-column:1/-1}.lobby{padding-top:28px}}@media (hover:hover){.game-tile:hover,.shop-item:hover{border-color:#e6c36f99}.pcard.face[role=button]:hover{filter:brightness(1.04)}.tile.free:hover{filter:brightness(1.06)}}.bid-panel{z-index:20;color:#1e1a12;background:linear-gradient(#fbf6e9,#efe6d0);border-radius:22px;flex-direction:column;padding:14px 14px 10px;animation:.25s pop;display:flex;position:absolute;inset:0;box-shadow:0 14px 40px #00000073}.bid-panel h2{font-size:1.3rem}.bid-panel p{color:#5a5446;margin:2px 0 0}.bid-panel .bid-grid{flex:1;align-content:center;margin:10px 0 0}.bid-panel .bid-btn{min-height:48px}.pcard.r10 .rank{font-size:calc(var(--w) * .34);letter-spacing:-2px}.art-cards .mc{width:44px;margin:0 -4px}.art-ws{align-items:flex-end;gap:7px;height:72px}.art-ws .wst{background:#00000038;border:2px solid #ffffff80;border-top-color:#ffffff40;border-radius:8px 8px 7px 7px;flex-direction:column-reverse;width:20px;height:58px;display:flex;overflow:hidden}.art-ws .wst i{height:33%;display:block}.art-tm{gap:8px;height:64px;font-size:2rem}.art-wsr{gap:4px}.art-wsr span{background:#3b4a42;border-radius:6px;place-items:center;width:34px;height:34px;font-size:1.05rem;font-weight:800;display:grid}.art-wsr span.hi{color:#1f1a06;background:#c9a227}.ws-help{padding:0 16px 8px;font-size:.95rem}.ws-board{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:8px 10px;padding:6px 10px 16px;display:flex}.ws-tube{background:0 0;border:0;width:clamp(46px,16.6667vw - 16px,66px);min-height:180px;padding:8px 2px}.ws-glass{background:linear-gradient(#ffffff1a,#ffffff05);border:3px solid #ffffff8c;border-top:4px solid #ffffff38;border-radius:12px 12px 24px 24px;flex-direction:column-reverse;height:172px;display:flex;overflow:hidden;box-shadow:inset 4px 0 8px #ffffff1f,0 8px 16px #00000047}.ws-tube.selected .ws-glass{box-shadow:0 0 0 3px var(--gold), 0 10px 18px #00000059;transform:translateY(-8px)}.ws-tube.target .ws-glass{box-shadow:0 0 0 3px #7cf0c0}.ws-tube.pouring .ws-glass{transition:transform .2s}.ws-layer{flex:1 1 0;place-items:center;min-height:0;display:grid}.ws-layer.empty{background:0 0}.ws-mark{color:#fff;text-shadow:0 1px 2px #00000073;font-size:1rem;font-weight:800;line-height:1}body.reduce-motion .ws-tube.selected .ws-glass{transform:none}.tm-board{justify-content:center;align-items:flex-start;gap:8px;min-height:240px;padding:8px 8px 14px;display:flex;overflow-x:auto}.tm-stack{flex-direction:column;flex:none;align-items:center;display:flex}.tm-tile{color:#1e1a12;background:linear-gradient(160deg,#fffdf8,#efe6d0);border:0;border-radius:14px;width:64px;height:74px;position:relative;box-shadow:0 3px #c9b98f,0 6px 12px #00000059}.tm-tile.buried{filter:brightness(.78)saturate(.85)}.tm-tile.free{cursor:pointer}.tm-tile.glow{box-shadow:0 0 0 3px #7cf0c0,0 0 18px #7cf0c0bf,0 3px #c9b98f}.tm-tile.pop,.tm-slot.pop{animation:.28s pop}.tm-face{font-size:2.05rem;line-height:1}.tm-tray{justify-content:center;gap:6px;padding:4px 8px 14px;display:flex}.tm-slot{background:#0003;border:2px dashed #ffffff4d;border-radius:10px;place-items:center;width:44px;height:52px;font-size:1.55rem;display:grid}.tm-slot.filled{background:linear-gradient(160deg,#fffdf8,#efe6d0);border-style:solid;border-color:#e6c36f99;box-shadow:0 2px 6px #0000004d}@media (width<=400px){.tm-tile{width:56px;height:66px}.tm-face{font-size:1.8rem}.tm-slot{width:40px;height:48px;font-size:1.35rem}}.wsr-modes{gap:8px;padding:0 14px 6px;display:flex}.wsr-modes .btn{flex:1;min-height:48px}.wsr-modes .btn.on{background:linear-gradient(180deg, #f3d68b, var(--gold-2));color:#2a1d05;border-color:#0000}.wsr-grid{grid-template-columns:repeat(var(--n), minmax(0, 1fr));touch-action:none;-webkit-user-select:none;user-select:none;gap:4px;width:min(100%,440px);margin:0 auto;padding:6px 12px 10px;display:grid}.wsr-cell{aspect-ratio:1;font-weight:800;font-size:clamp(.95rem, calc((100vw - 40px) / var(--n) * .42), 1.3rem);letter-spacing:0;background:#ffffff17;border:0;border-radius:8px;min-height:0;padding:0}.wsr-cell.found{color:#f6fff6;background:#3f8f5bb3}.wsr-cell.drag{color:#1f1a06;background:#e6c36fd9}.wsr-cell.hinted{box-shadow:0 0 0 3px var(--gold);z-index:1}.wsr-cell.start{z-index:1;box-shadow:0 0 0 3px #7cf0c0}.wsr-cell.pop{animation:.28s pop}.wsr-words{flex-wrap:wrap;justify-content:center;gap:8px 16px;margin:0;padding:6px 16px 12px;list-style:none;display:flex}.wsr-words li{letter-spacing:.05em;font-size:1.05rem;font-weight:700}.wsr-words li.done{opacity:.5;text-decoration:line-through}
