:root{--felt: #134a32;--felt-deep: #0b3022;--felt-tex: none;--ink: #f7f0e1;--ink-dim: rgba(247, 240, 225, .72);--ivory: #fbf6ea;--card-ink: #1d1a17;--brass: #e3b23c;--brass-deep: #b8861f;--red: #c0262f;--blue: #1f3f8f;--panel: rgba(9, 22, 16, .86);--panel-line: rgba(227, 178, 60, .28);--good: #5fd28a;--bad: #ff6b5e;--bar-h: 58px;--radius: 14px;--shadow: 0 10px 30px rgba(0, 0, 0, .45);--serif: "Playfair Display", Georgia, serif;--sans: "Source Sans 3", system-ui, sans-serif;color-scheme:dark}html,body{margin:0;height:100%}body{background:var(--felt-deep);background-image:radial-gradient(ellipse at 50% 30%,#ffffff12,#00000059 80%),var(--felt-tex);background-size:auto,512px;background-attachment:fixed;color:var(--ink);font:16px/1.4 var(--sans);overflow:hidden;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;touch-action:manipulation}button{font:inherit;color:inherit}#bar{position:fixed;inset:0 0 auto;height:var(--bar-h);z-index:50;display:flex;align-items:center;gap:10px;padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left));background:linear-gradient(#050e0aeb,#050e0ac7);border-bottom:1px solid var(--panel-line);backdrop-filter:blur(6px)}#bar .home{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-weight:700;padding:6px 10px 6px 4px;border-radius:10px}#bar .home:hover{background:#ffffff0f}#bar .home svg{width:20px;height:20px}#bar h1{margin:0;font:900 23px var(--serif);letter-spacing:.3px;white-space:nowrap;color:var(--ivory)}#bar .stats{flex:1;display:flex;justify-content:center;gap:18px;font-weight:600;color:var(--ink-dim);font-variant-numeric:tabular-nums;min-width:0}#bar .stats b{color:var(--ink);font-weight:800}#bar .tools{display:flex;gap:6px}.tb{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;cursor:pointer;font-weight:700;font-size:15px;white-space:nowrap}.tb:hover{background:#ffffff1f}.tb:disabled{opacity:.4;cursor:default}.tb svg{width:18px;height:18px;flex:none}.tb.primary{background:var(--brass);color:#2a1d05;border-color:transparent}.tb.primary:hover{background:#efc355}@media (max-width: 760px){#bar{gap:6px}#bar h1{font-size:19px}#bar .home span,.tb span{display:none}.tb{padding:0 10px}#bar .stats{gap:10px;font-size:14px}}@media (max-width: 480px){#bar h1{display:none}}#table{position:fixed;inset:var(--bar-h) 0 0 0;overflow:hidden}#veil{position:fixed;inset:0;z-index:100;background:#0000008c;display:none;align-items:center;justify-content:center;padding:16px}#veil.on{display:flex;animation:fade .18s ease-out}.dlg{width:min(480px,100%);max-height:calc(100vh - 32px);overflow:auto;background:linear-gradient(#fdf8ec,#f3ead6);color:var(--card-ink);border-radius:18px;box-shadow:var(--shadow);padding:24px 24px 20px;border:1px solid #d9c9a3;user-select:text;-webkit-user-select:text}.dlg h2{margin:0 0 10px;font:900 30px/1.1 var(--serif);color:#1d3b2c}.dlg p{margin:0 0 12px;font-size:17px}.dlg .row{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:18px}.dlg .btn{height:46px;padding:0 20px;border-radius:12px;border:1px solid #c8b78f;background:#fff;font-weight:800;font-size:16px;cursor:pointer;color:#2b2418}.dlg .btn:hover{background:#f6efdd}.dlg .btn.primary{background:#1d5a3c;color:#fff;border-color:transparent}.dlg .btn.primary:hover{background:#237049}.dlg .choices{display:grid;gap:8px;margin:10px 0 4px}.dlg .choice{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid #d6c59d;background:#fff;cursor:pointer;font-size:16px;font-weight:700;text-align:left;color:#2b2418}.dlg .choice small{font-weight:600;color:#6b5f48;font-size:14px}.dlg .choice.on{border-color:#1d5a3c;box-shadow:inset 0 0 0 2px #1d5a3c;background:#eef6f0}.dlg .statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:12px 0}.dlg .stat{background:#fff;border:1px solid #e0d2b0;border-radius:12px;padding:10px;text-align:center}.dlg .stat b{display:block;font:900 26px var(--serif);color:#1d3b2c}.dlg .stat span{font-size:13px;color:#6b5f48;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.dlg label.opt{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #e5d8ba;font-size:16px;font-weight:600}.dlg .rules h3{font:800 18px var(--sans);margin:14px 0 4px;color:#1d3b2c}.dlg .rules p,.dlg .rules li{font-size:16px}.dlg .rules ul{padding-left:20px;margin:0 0 8px}#toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%) translateY(20px);z-index:90;background:var(--panel);border:1px solid var(--panel-line);color:var(--ink);padding:12px 20px;border-radius:999px;font-weight:700;font-size:16px;opacity:0;transition:.25s;pointer-events:none;max-width:calc(100vw - 32px);text-align:center}#toast.on{opacity:1;transform:translate(-50%)}@keyframes fade{0%{opacity:0}}.card{position:absolute;width:var(--cw, 96px);height:calc(var(--cw, 96px) * 1.4);border-radius:calc(var(--cw, 96px) * .075)}.card .face,.card .back{position:absolute;inset:0;border-radius:inherit;overflow:hidden;backface-visibility:hidden}.card .face{background:var(--ivory);box-shadow:0 1px 2px #00000059,0 0 0 1px #00000024 inset}.card .face svg,.card .face img{position:absolute;inset:0;width:100%;height:100%;display:block}.card .back{background:#7d1620 var(--card-back) center/cover;box-shadow:0 1px 2px #0006,0 0 0 1px #00000040 inset}.card.down .face{display:none}.card:not(.down) .back{display:none}.dlg input.vol{width:min(220px,50%);accent-color:#1d5a3c;height:28px}@media (max-width: 760px){body.with-stats{--bar-h: 86px}body.with-stats #bar{flex-wrap:wrap;align-content:center;row-gap:2px;padding-top:4px;padding-bottom:4px}body.with-stats #bar .tools{margin-left:auto}body.with-stats #bar .stats{order:3;flex:0 0 100%;justify-content:center;font-size:14px;gap:14px;white-space:nowrap}}.club-chip{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:10px;border:1px solid rgba(227,178,60,.35);background:#e3b23c1a;cursor:pointer;font-weight:800;font-size:15px;color:var(--ivory);white-space:nowrap}.club-chip i{width:38px;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--brass) var(--p),rgba(255,255,255,.15) var(--p))}.dlg table.lb{width:100%;border-collapse:collapse;margin:8px 0;font-size:16px}.dlg table.lb td{padding:8px 10px;border-bottom:1px solid #e5d8ba}.dlg table.lb td:first-child{width:44px;font-weight:800;color:#1d5a3c}.dlg table.lb td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.dlg table.lb tr.me td{background:#eef6f0;font-weight:800}.dlg .lbtabs{display:flex;gap:6px;margin-bottom:8px}.dlg .lbtabs .choice{flex:1;justify-content:center;padding:8px}.dlg .lbtotal{font-size:14px;color:#6b5f48;margin:4px 0 0}.dlg .xpbar{height:10px;border-radius:5px;background:#e5d8ba;overflow:hidden;margin:6px 0}.dlg .xpbar i{display:block;height:100%;background:linear-gradient(90deg,#1d5a3c,#3a9a68)}.dlg .achs{display:grid;gap:6px}.dlg .ach{padding:8px 12px;border-radius:10px;border:1px solid #e0d2b0;background:#fff;opacity:.6}.dlg .ach.got{opacity:1;border-color:#1d5a3c}.dlg .ach b{display:block;font-size:15px}.dlg .ach span{font-size:14px;color:#6b5f48}@media (max-width: 760px){.club-chip i{display:none}.club-chip{padding:0 8px}}#bar{flex-wrap:nowrap}#bar.compact .tb span{display:none}#bar.compact .tb{padding:0 10px}#bar.compact h1{font-size:20px}body.bar-two-line{--bar-h: 86px}#bar.two-line{flex-wrap:wrap;align-content:center;row-gap:2px;padding-top:4px;padding-bottom:4px}#bar.two-line .tools{margin-left:auto}#bar.two-line .stats{order:3;flex:0 0 100%;justify-content:center;font-size:14px;gap:14px;white-space:nowrap}#bar .stats{overflow:hidden}:root{--felt: #4549d6;--felt-deep: #3b3fc4;--felt-tex: none !important;--ink: #ffffff;--ink-dim: #d9dcff;--ivory: #ffffff;--card-ink: #23264d;--brass: #ffc83d;--brass-deep: #e09b00;--red: #ff6b6b;--blue: #4549d6;--panel: rgba(36, 34, 132, .78);--panel-line: rgba(255, 255, 255, .18);--good: #3fe0a6;--bad: #ff8a8a;--bar-h: 58px;--radius: 18px;--shadow: 0 6px 0 rgba(20, 18, 90, .45), 0 18px 36px rgba(20, 18, 90, .35);--serif: "Fredoka", "Nunito", system-ui, sans-serif;--sans: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:dark;--bg-top: #4a4fe0;--bg-bottom: #3236b4;--shape-a: rgba(130, 140, 255, .35);--shape-b: rgba(255, 200, 61, .16);--shape-c: rgba(255, 107, 107, .18);--accent-2: #ff6b6b;--accent-3: #2ad4b0;--on-accent: #2a1d05;--accent-press: #d99100;--chip: #2f32a8;--chip-press: #23268a;--line: rgba(255, 255, 255, .16);--dlg-bg: #fffaf2;--dlg-ink: #23264d;--dlg-muted: #6a6d93;--dlg-line: #ebe5f5;--dlg-field: #ffffff;--dlg-tint: #eef0ff;--dlg-accent: #4549d6;--dlg-accent-ink: #ffffff;--dlg-press: #2f32a8;--card-face: #ffffff;--card-edge: rgba(35, 38, 77, .16);--card-font: "Nunito", system-ui, sans-serif;--suit-red: #d81e3c;--suit-black: #23264d;--court-bg: #fff3d6;--focus: 0 0 0 3px #fff, 0 0 0 6px rgba(255, 200, 61, .9);--ease: cubic-bezier(.3, 1.4, .5, 1)}body{background-color:var(--bg-bottom);background-image:radial-gradient(rgba(255,255,255,.07) 1.6px,transparent 1.8px),linear-gradient(170deg,var(--bg-top),var(--bg-bottom));background-size:26px 26px,auto;background-attachment:fixed;color:var(--ink);font:700 16px/1.4 var(--sans)}body:before{content:"";position:fixed;inset:-10%;z-index:-1;pointer-events:none;background:radial-gradient(circle at 12% 78%,var(--shape-a) 0 14%,transparent 14.2%),radial-gradient(circle at 90% 20%,var(--shape-b) 0 11%,transparent 11.2%),radial-gradient(circle at 76% 92%,var(--shape-c) 0 8%,transparent 8.2%),radial-gradient(circle at 30% 8%,rgba(42,212,176,.14) 0 6%,transparent 6.2%);animation:bp-bob 24s ease-in-out infinite alternate}@keyframes bp-bob{to{transform:translate3d(1.5%,-2%,0)}}#bar{background:var(--chip);border-bottom:0;box-shadow:0 4px 0 var(--chip-press),0 10px 24px #14125a4d;backdrop-filter:none}#bar .home{color:#fff;font-weight:800;border-radius:14px}#bar .home:hover{background:#ffffff1a}#bar h1{font:700 24px/1 var(--serif);letter-spacing:0;color:#fff}#bar .stats{color:var(--ink-dim);font-weight:700}#bar .stats b{color:var(--brass);font-weight:900}.tb{height:40px;border-radius:14px;border:0;background:#4549d6;color:#fff;font-weight:800;box-shadow:0 3px #1f2178;transition:transform .12s var(--ease),box-shadow .12s,background .12s}.tb:hover{background:#5357e6}.tb:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 #1f2178}.tb:focus-visible,.club-chip:focus-visible,#bar .home:focus-visible{outline:none;box-shadow:var(--focus)}.tb.primary{background:var(--brass);color:var(--on-accent);box-shadow:0 3px 0 var(--accent-press)}.tb.primary:hover{background:#ffd35f}.tb.primary:active:not(:disabled){box-shadow:0 0 0 var(--accent-press)}.tb.active{background:var(--brass)!important;color:var(--on-accent)!important;box-shadow:0 3px 0 var(--accent-press)!important}.club-chip{border-radius:14px;border:0;background:#4549d6;box-shadow:0 3px #1f2178;color:#fff;font-weight:900}.club-chip b{color:var(--brass)}.club-chip i{height:8px;border-radius:4px;background:linear-gradient(90deg,var(--brass) var(--p),rgba(255,255,255,.2) var(--p))}#veil{background:#1a18608c}#veil.on .dlg{animation:bp-pop .32s var(--ease)}@keyframes bp-pop{0%{opacity:0;transform:scale(.9) translateY(8px)}}.dlg{background:var(--dlg-bg);color:var(--dlg-ink);border:0;border-radius:28px;box-shadow:0 8px #d6d0ff,0 24px 48px #14125a66;padding:26px 24px 22px}.dlg h2{font:700 30px/1.1 var(--serif);color:var(--dlg-ink)}.dlg h3{color:var(--dlg-ink)}.dlg p{color:var(--dlg-ink);font-weight:600}.dlg p[style*="6b5f48"]{color:var(--dlg-muted)!important}.dlg .btn{height:48px;border-radius:16px;border:2px solid var(--dlg-line);background:var(--dlg-field);color:var(--dlg-ink);font-weight:900;box-shadow:0 4px 0 var(--dlg-line);transition:transform .12s var(--ease),box-shadow .12s}.dlg .btn:hover{background:#fbfaff}.dlg .btn:active{transform:translateY(4px);box-shadow:0 0 0 var(--dlg-line)}.dlg .btn:focus-visible,.dlg .choice:focus-visible{outline:none;box-shadow:0 0 0 3px #fff,0 0 0 6px var(--dlg-accent)}.dlg .btn.primary{background:var(--dlg-accent);color:var(--dlg-accent-ink);border-color:var(--dlg-accent);box-shadow:0 4px 0 var(--dlg-press)}.dlg .btn.primary:hover{background:#5357e6}.dlg .btn.primary:active{box-shadow:0 0 0 var(--dlg-press)}.dlg .choice{border-radius:16px;border:2px solid var(--dlg-line);background:var(--dlg-field);color:var(--dlg-ink);font-weight:800;box-shadow:0 3px 0 var(--dlg-line)}.dlg .choice:hover{border-color:#c9ccff}.dlg .choice small{color:var(--dlg-muted);font-weight:700}.dlg .choice.on{border-color:var(--dlg-accent);box-shadow:0 3px 0 var(--dlg-press);background:var(--dlg-tint)}.dlg .stat{background:var(--dlg-field);border:2px solid var(--dlg-line);border-radius:18px;box-shadow:0 3px 0 var(--dlg-line)}.dlg .stat b{font:700 28px var(--serif);color:var(--dlg-accent)}.dlg .stat span{color:var(--dlg-muted);font-size:13px;font-weight:800;letter-spacing:.05em}.dlg label.opt{border-bottom:2px solid var(--dlg-line);color:var(--dlg-ink);font-weight:800}.dlg select{min-height:42px;padding:0 10px;border-radius:12px;border:2px solid var(--dlg-line);background:var(--dlg-field);color:var(--dlg-ink);font:800 15px var(--sans)}.dlg input.vol,.dlg input[type=checkbox]{accent-color:var(--dlg-accent)}.dlg .rules h3{font:700 19px var(--serif);color:var(--dlg-accent)}.dlg table.lb td{border-bottom:2px solid var(--dlg-line)}.dlg table.lb td:first-child{color:var(--dlg-accent);font-weight:900}.dlg table.lb tr.me td{background:#fff1c7}.dlg .lbtotal{color:var(--dlg-muted)}.dlg .xpbar{height:14px;border-radius:7px;background:var(--dlg-line)}.dlg .xpbar i{background:linear-gradient(90deg,var(--brass),#ffab2e);border-radius:7px}.dlg .ach{border:2px solid var(--dlg-line);background:var(--dlg-field);border-radius:14px}.dlg .ach.got{border-color:var(--brass);background:#fff8e1}.dlg .ach span{color:var(--dlg-muted)}#toast{background:#fff;color:var(--dlg-ink);border:0;border-radius:999px;box-shadow:0 4px #d6d0ff,0 12px 26px #14125a59;font-weight:900}.card{border-radius:calc(var(--cw, 96px) * .1)}.card .face{background:var(--card-face);box-shadow:0 0 0 1px var(--card-edge),0 3px #14125a47,0 6px 14px #14125a2e}.card .face svg text{font-family:var(--card-font);font-weight:900;letter-spacing:-1px}.card .face svg text:not([font-size="38"]){font-size:48px}.card .face svg text[font-size="38"]{font-size:41px;letter-spacing:-4px}.card .face svg [fill="#c0262f"]{fill:var(--suit-red)}.card .face svg [fill="#1d1a17"]{fill:var(--suit-black)}.card .face svg circle[stroke="#1d1a17"]{stroke:var(--suit-black);stroke-width:4px}.card .face svg circle[stroke="#b8861f"]{stroke:var(--brass);stroke-width:4px;stroke-dasharray:none}.card .face svg rect[fill="#f4ead2"]{fill:var(--court-bg)}.card .face svg rect[stroke="#c0262f"],.card .face svg line[stroke="#c0262f"]{stroke:var(--suit-red);stroke-width:4px}.card .face svg rect[stroke="#1f3f8f"],.card .face svg line[stroke="#1f3f8f"]{stroke:var(--suit-black);stroke-width:4px}.card .face svg rect[stroke="#b8861f"]{stroke:transparent}.card .back{background:radial-gradient(rgba(255,255,255,.9) 18%,transparent 20%) 0 0 / calc(var(--cw, 96px) * .2) calc(var(--cw, 96px) * .2),linear-gradient(160deg,#ff8080,#ff5a5f);box-shadow:inset 0 0 0 calc(var(--cw, 96px) * .05) #fff,0 0 0 1px var(--card-edge),0 3px #14125a47}html[data-back=blue] .card .back{background:radial-gradient(rgba(255,200,61,.95) 18%,transparent 20%) 0 0 / calc(var(--cw, 96px) * .2) calc(var(--cw, 96px) * .2),linear-gradient(160deg,#6c70ff,#4549d6)}.slot{border-color:#ffffff47;border-style:dashed;background:#14125a2e;color:#ffffff59}.slot.foundation[data-suit=H],.slot.foundation[data-suit=D]{color:#ffa0aa80}.card.selected:after,.card.hint-source:after{border-width:4px;box-shadow:0 0 0 3px #ffc83d59}.stock-count,.pass-count,.deal-badge,.turn-prompt,.score-rail,.hearts-goal,.pass-panel,.hand-summary,.field-status,.daily-status,.hint-box,.game-strip,.zoom-controls{background:var(--chip)!important;border-color:transparent!important;box-shadow:0 3px 0 var(--chip-press)}.hearts-arena:before{border:3px dashed rgba(255,255,255,.14);box-shadow:none}.trick-centre:before{border:3px dashed rgba(255,255,255,.14);background:radial-gradient(ellipse,rgba(20,18,90,.25),transparent 68%)}.paper{border-color:#fff;border-radius:18px;box-shadow:0 6px #14125a73,0 22px 40px #14125a59}.sudoku-cell,.paper{background:#fff}.sudoku-cell{color:var(--dlg-accent)}.grid{background:#c9ccef;border-color:var(--dlg-ink)}.sudoku-cell.box-right{box-shadow:3px 0 0 var(--dlg-ink)}.sudoku-cell.box-bottom:after{background:var(--dlg-ink)}.sudoku-cell.related{background:#f1f2ff}.sudoku-cell.same{background:#dfe1ff}.sudoku-cell.selected,.sudoku-cell.selected.box-right{background:#fff1c7;box-shadow:inset 0 0 0 3px var(--brass-deep)}.sudoku-cell.given .digit{color:var(--dlg-ink);font-weight:900}.number-key{background:#fff;border:0;box-shadow:0 4px #c9ccef;border-radius:14px}.number-key strong{color:var(--dlg-accent);font-family:var(--serif)}.number-key small{color:var(--dlg-muted)}.control{border:0;background:#4549d6;box-shadow:0 3px #1f2178;border-radius:12px}.control.on{box-shadow:0 3px 0 var(--accent-press)}.mine-board{border:0;border-radius:18px;background:#2f32a8;box-shadow:0 6px #1f2178,0 18px 36px #14125a59}.mine-cell.hidden{border:0;color:var(--suit-red);background:linear-gradient(180deg,#8a8eff,#6c70ff);box-shadow:inset 0 -3px #4549d6,inset 0 2px #ffffff59}.mine-cell.revealed{border:0;background:#f4f4ff;box-shadow:inset 0 2px 3px #23264d26}.mine-cell.n1{color:#4549d6}.mine-cell.n2{color:#12936b}.mine-cell.n3{color:#d81e3c}.mine-cell.n4{color:#6b2fb3}.mine-cell.n5{color:#b4441b}.mine-cell.n6{color:#0f7f86}.mine-cell.n7{color:#23264d}.mine-cell.n8{color:#6a6d93}.retention-status,.daily-status{color:var(--ink-dim)!important}.mah-tile:before{background:linear-gradient(135deg,#6c70ff,#3236b4 72%)}.dlg{color-scheme:light}.mine-board:focus-visible{box-shadow:0 6px #1f2178,var(--focus)}@media (prefers-reduced-motion: reduce){body:before,#veil.on .dlg{animation:none}.tb,.dlg .btn{transition:none}}:root{--aqua:#1dd7dd;--aqua-deep:#087f8d;--cream:#fff5dc;--lantern:#ffbf54;--lava:#ff672d;--smoke:#17262c;--smoke-2:#0c171c;--ink:#f8f3e3;--dim:#bed0ce;--sans:Outfit,system-ui,-apple-system,"Segoe UI",sans-serif;--serif:var(--sans);color-scheme:dark}*{box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden}body{margin:0;color:var(--ink);font:600 16px/1.35 var(--sans);background:#18353d}button,input,select{font:inherit}body:before{content:"";position:fixed;inset:0;z-index:-2;background:var(--onsen-scene) center/cover no-repeat}body:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#0a15181a,#08121505 50%,#08121542)}#bar{display:none!important}#table{inset:0!important;overflow:hidden!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.onsen-stage{width:100%;height:100%;display:grid;grid-template-rows:84px minmax(0,1fr);gap:6px;padding:max(14px,env(safe-area-inset-top)) 14px max(10px,env(safe-area-inset-bottom));touch-action:none}.onsen-hud{position:relative;z-index:50;align-self:start;justify-self:center;width:min(950px,calc(100% - 12px));min-height:72px;display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(210px,1fr);align-items:center;gap:14px;padding:8px 10px 8px 17px;border:2px solid rgba(129,229,227,.34);border-radius:27px;color:#fff9e7;background:linear-gradient(145deg,#18282eeb,#081216e8);box-shadow:inset 0 1px #ffffff24,inset 0 -2px #00000073,0 4px #040c0fb8,0 17px 35px #050e115c,0 0 18px #1dd7dd26;backdrop-filter:blur(13px) saturate(1.1)}.onsen-hud:after{content:"";position:absolute;inset:5px;border-radius:21px;pointer-events:none;border:1px solid rgba(255,185,73,.12)}.onsen-brand{display:flex;align-items:center;gap:11px;min-width:0}.onsen-brand strong{font-size:38px;line-height:1;font-weight:850;letter-spacing:-.045em;text-shadow:0 3px 2px rgba(0,0,0,.45)}.brand-mark{position:relative;width:54px;height:43px;flex:0 0 auto}.brand-mark i{position:absolute;bottom:3px;width:35px;height:35px;border:1px solid rgba(255,255,255,.35);border-radius:48% 52% 50% 45%;box-shadow:inset 3px 4px 7px #ffffff47,0 4px 5px #0000006b}.brand-mark i:first-child{left:0;background:linear-gradient(145deg,#9eb6c4,#465966)}.brand-mark i:nth-child(2){right:0;background:linear-gradient(145deg,#42efe5,#0793a8)}.brand-mark b{position:absolute;z-index:-1;left:18px;top:4px;width:25px;height:35px;border-radius:50%;box-shadow:0 0 8px #ffb533,0 0 18px #ff8c25;border:3px solid #ffbd45}.onsen-stats{display:flex;gap:9px}.onsen-stats div{min-width:150px;height:48px;display:flex;align-items:center;justify-content:space-between;gap:13px;padding:0 15px;border:1px solid rgba(45,234,235,.72);border-radius:16px;color:#fff8e7;background:#09161b9e;box-shadow:inset 0 0 16px #0e8d9b1c,0 2px #00000059}.onsen-stats span{color:#e6e7da;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.onsen-stats b{max-width:100px;overflow:hidden;text-overflow:ellipsis;font-size:21px;font-variant-numeric:tabular-nums;white-space:nowrap}.onsen-actions{justify-self:end;display:flex;gap:8px}.onsen-actions button{position:relative;width:46px;height:46px;display:grid;place-items:center;padding:0;border:2px solid rgba(47,230,229,.74);border-radius:50%;color:#fff7dc;background:linear-gradient(145deg,#273940,#101d22);box-shadow:inset 0 1px #fff3,0 3px #061014,0 0 10px #12d3d833;cursor:pointer;transition:transform .14s ease,filter .14s ease,opacity .14s ease}.onsen-actions button:last-child{border-color:#ffcd5abf}.onsen-actions button:hover:not(:disabled){filter:brightness(1.18);transform:translateY(-1px)}.onsen-actions button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px #ffffff1f,0 1px #061014}.onsen-actions button:focus-visible{outline:3px solid #fff;outline-offset:3px}.onsen-actions button:disabled{opacity:.34;cursor:default}.onsen-actions svg{width:24px;height:24px}.onsen-actions button:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 10px);right:0;width:max-content;max-width:180px;padding:6px 9px;border-radius:8px;color:#fff;background:#071216f0;font-size:13px;opacity:0;pointer-events:none;transform:translateY(-4px);transition:.15s}.onsen-actions button:hover:after,.onsen-actions button:focus-visible:after{opacity:1;transform:none}.game-wrap{--board-size:min( calc(100vw - 28px) , calc(100dvh - 188px) ,650px);width:100%;height:100%;display:grid;grid-template-rows:31px var(--board-size) 30px;align-content:center;justify-items:center;gap:5px;touch-action:none}.game-head{position:relative;z-index:8;display:flex;justify-content:center;width:var(--board-size)}.size-button{min-width:230px;height:31px;padding:0 24px;border:2px solid #4d5557;border-radius:15px;color:#fff7df;background:linear-gradient(#2b3335,#151c1f);box-shadow:inset 0 1px #ffffff24,0 3px #0000008c,0 0 12px #ffb4412e;font-size:14px;font-weight:760;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.size-button b{margin-left:10px;color:#62edf0;font-variant-numeric:tabular-nums}.size-button:hover{filter:brightness(1.13)}.size-button:focus-visible{outline:3px solid var(--aqua);outline-offset:2px}.size-button:disabled{opacity:.58;cursor:default}.board{position:relative;width:var(--board-size);height:var(--board-size);border:10px solid #252d31;border-radius:28px;background-color:#22292c;background-image:linear-gradient(#181c1e8f,#121719a8),var(--onsen-basalt);background-size:auto,360px;box-shadow:inset 0 0 0 2px #ffffff17,inset 0 0 30px #00000073,0 6px #0a1012,0 20px 42px #030b0e7a,0 0 20px #23dede24;touch-action:none;overflow:hidden;container-type:inline-size}.board:after{content:"";position:absolute;inset:0;z-index:10;pointer-events:none;border-radius:18px;box-shadow:inset 8px 10px 18px #ffffff0b,inset -10px -12px 20px #0000006b}.cell,.tile{position:absolute;left:var(--x);top:var(--y);width:var(--cell);height:var(--cell);border-radius:clamp(9px,1.55vw,20px)}.cell{background:linear-gradient(145deg,#04090bc9,#232a2cbd);box-shadow:inset 0 5px 9px #000000c7,inset 0 -1px #ffffff14,0 1px #ffffff0d}.tile{--tile-tint:#8699a6;z-index:2;display:grid;place-items:center;color:#15232a;background-color:var(--tile-tint);background-image:linear-gradient(var(--tile-tint),var(--tile-tint)),var(--onsen-stone);background-size:cover;background-position:center;background-blend-mode:color,normal;filter:drop-shadow(0 5px 3px rgba(0,0,0,.48));font:850 30px/1 var(--sans);font-size:clamp(13px,var(--tile-font),55px);font-variant-numeric:tabular-nums;text-shadow:0 1px rgba(255,255,255,.22);transition:left 145ms cubic-bezier(.2,.72,.25,1),top 145ms cubic-bezier(.2,.72,.25,1);will-change:left,top}.tile span{display:block;transform:translateY(-.03em)}.tile.digits-3 span{font-size:.88em}.tile.digits-4 span{font-size:max(13px,.7em);letter-spacing:-.045em}.tile.digits-5 span,.tile.digits-6 span{font-size:max(13px,.54em);letter-spacing:-.055em}.tile.v2{--tile-tint:#95a7b3}.tile.v4{--tile-tint:#b4c1c6}.tile.v8{--tile-tint:#4aa7c1;color:#f8f3e5}.tile.v16{--tile-tint:#19bdb8;color:#f7fae7}.tile.v32{--tile-tint:#00a6a8;color:#efffe9}.tile.v64{--tile-tint:#65c59d;color:#153237}.tile.v128{--tile-tint:#e2c55c;color:#322815}.tile.v256{--tile-tint:#f0a039;color:#fff8df}.tile.v512{--tile-tint:#ff6a24;color:#fff9dc;text-shadow:0 2px 4px #7d180d}.tile.v1024{--tile-tint:#ef4031;color:#fff7d4;text-shadow:0 2px 5px #5c0804}.tile.v2048{--tile-tint:#ff9a21;color:#fffce5;text-shadow:0 0 6px #fff,0 2px 7px #8f1600;filter:drop-shadow(0 5px 3px rgba(0,0,0,.48)) drop-shadow(0 0 9px #ff6c22)}.tile.vhigh{--tile-tint:#6d2fc1;color:#fff9dc;text-shadow:0 0 6px #7defff}body[data-stone=jade] .tile{background-blend-mode:hue,normal}body[data-stone=obsidian] .tile{background-blend-mode:soft-light,normal}body[data-stone=moon] .tile{background-blend-mode:multiply,normal}.tile.spawned{animation:tile-spawn .22s cubic-bezier(.2,1.7,.42,1) both}.tile.merged{animation:tile-merge .27s cubic-bezier(.2,1.65,.35,1) both}.board.blocked{animation:board-nudge .16s ease-out}.board.restored .tile{animation:tile-restore .18s ease-out both}.move-help{min-width:370px;margin:0;padding:5px 20px;border:2px solid #555d5e;border-radius:15px;color:#fff7df;background:linear-gradient(#202729f0,#0f1517f0);box-shadow:0 3px #00000080;font-size:13px;font-weight:650;letter-spacing:.025em;text-align:center;white-space:nowrap}.celebration{position:fixed;inset:0;z-index:75;overflow:hidden;pointer-events:none}.celebration i{position:absolute;top:-10%;left:var(--x);animation-delay:var(--d)}.celebration.on .leaf{width:20px;height:13px;border-radius:80% 12% 80% 15%;background:linear-gradient(135deg,#ffad27,#f33324);box-shadow:0 0 8px #ff5b1a99;animation:leaf-fall 2.7s ease-in both}.celebration.on .spark{width:9px;height:9px;border-radius:50%;background:#ffd462;box-shadow:0 0 8px #ff6d20,0 0 16px #ffb329;animation:spark-fall 2.2s ease-in both}.celebration.on .steam{width:22px;height:55px;border-radius:50%;background:#dcffff57;filter:blur(6px);animation:steam-rise 2.6s ease-out both}.celebration.reduced:after{content:"2048";position:absolute;left:50%;top:50%;translate:-50% -50%;padding:18px 30px;border:2px solid var(--lantern);border-radius:22px;color:#fff8dc;background:#121f23e6;font-size:42px;box-shadow:0 0 35px #ff9c2e}.settings-group{display:grid;gap:8px;margin:16px 0}.settings-label{color:#f3cb74;font-size:13px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.look-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.look-picker button{min-width:0;min-height:88px;display:grid;grid-template-rows:52px auto;gap:6px;padding:5px;border:2px solid #50666a;border-radius:14px;color:#d9e7e4;background:#17262b;box-shadow:0 3px #071114;font-size:13px;font-weight:720;cursor:pointer}.look-picker button.on{border-color:var(--aqua);background:#16373c;box-shadow:0 3px #05747d,0 0 12px #1dd7dd3b}.look-picker img,.stone-swatch{width:100%;height:52px;display:block;border-radius:9px;object-fit:cover}.stone-swatch{background-position:center;background-size:cover}.stone-river{background-image:var(--stone-river)}.stone-jade{background-image:var(--stone-jade)}.stone-obsidian{background-image:var(--stone-obsidian)}.stone-moon{background-image:var(--stone-moon)}#veil{padding:16px;background:#040c0f9e;backdrop-filter:blur(12px);overscroll-behavior:contain}#veil.on{display:flex;animation:veil-in .18s ease-out}#veil.on .dlg{animation:dialog-in .2s cubic-bezier(.2,.8,.3,1.08)}.dlg{width:min(530px,100%);max-height:calc(100dvh - 32px);padding:0 22px 20px;overflow:auto;overscroll-behavior:contain;border:2px solid rgba(64,226,226,.38);border-radius:26px;color:#eaf3ec;background:linear-gradient(150deg,#1f3136fa,#0a161afa);box-shadow:0 6px #050d10,0 28px 70px #0000008c,0 0 25px #17dbdc1f}.dlg.wide{width:min(680px,100%)}.dialog-head{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:40px minmax(0,1fr) 42px;align-items:center;gap:10px;margin:0 -8px 10px;padding:17px 5px 11px;background:linear-gradient(#1b2c31fc 72%,#1b2c3100)}.dialog-head h2{min-width:0;margin:0;overflow:hidden;color:#fff5d8;font:820 27px/1.05 var(--sans);letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap}.dialog-mark{position:relative;width:36px;height:32px}.dialog-mark i{position:absolute;bottom:1px;width:25px;height:25px;border-radius:50%;box-shadow:inset 2px 2px 4px #ffffff47}.dialog-mark i:first-child{left:0;background:#899da8}.dialog-mark i:nth-child(2){right:0;background:#14bdc4}.dialog-mark b{position:absolute;left:12px;top:0;width:16px;height:24px;border:2px solid #ffb940;border-radius:50%;box-shadow:0 0 8px #ff9127}.dialog-close{width:40px;height:40px;border:2px solid #4e6266;border-radius:50%;color:#fff4d7;background:#142328;box-shadow:0 3px #071013;font-size:27px;line-height:1;cursor:pointer}.dialog-close:focus-visible,.dlg button:focus-visible,.dlg select:focus-visible,.dlg input:focus-visible{outline:3px solid var(--aqua);outline-offset:2px}.dlg p,.dlg li{font-size:15px}.dlg .row{gap:9px;margin-top:17px}.dlg .btn{min-height:46px;height:auto;padding:9px 18px;border:2px solid #50656a;border-radius:14px;color:#edf6ef;background:#1a2b30;box-shadow:0 3px #071114;font-size:15px;font-weight:800}.dlg .btn.primary{border-color:#22cdd0;color:#071518;background:linear-gradient(#65edf0,#21c6ca);box-shadow:0 3px #08747c}.dlg .choice{border-color:#4b6267;color:#ecf4ed;background:#16282d}.dlg .choice.on{border-color:var(--aqua);background:#194149}.dlg .choice small{color:#b9cfcb}.dlg .statgrid{gap:8px}.dlg .stat{border:2px solid #405b60;border-radius:14px;background:#14252a}.dlg .stat b{color:#5ae4e4;font-family:var(--sans)}.dlg .rules h3{color:#66e2e1;font-family:var(--sans)}.dlg label.opt{color:#edf5ee;border-color:#41585d;background:#14252a}.dlg label.opt small{display:block;color:#adc1be;font-size:13px}.dlg input.vol{accent-color:var(--aqua)}.dlg select{color:#edf5ee;background:#0f2025;border-color:#4d6367}.stats-extra{text-align:center}.daily-countdown{color:#68e7e6;font-variant-numeric:tabular-nums}#veil:has(.onsen-menu-dialog){align-items:flex-start;padding-top:104px}.onsen-menu-dialog{width:min(480px,calc(100vw - 24px));max-height:calc(100dvh - 122px)}.menu-profile{min-height:57px;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:10px;margin:-3px 0 10px;padding:6px 9px;border:1px solid #425b60;border-radius:15px;background:#07131773}.menu-profile img{width:42px;height:42px;border:2px solid #42d8da;border-radius:50%}.menu-profile span{display:grid}.menu-profile small{color:#a9bfbc;font-size:13px}.menu-profile b{font-size:15px}.menu-profile em{max-width:145px;overflow:hidden;color:#f0c879;font-size:13px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.onsen-menu-grid{display:grid;gap:7px}.onsen-menu-grid>button{width:100%;min-height:58px;display:grid;grid-template-columns:35px minmax(0,1fr) 14px;align-items:center;gap:10px;padding:7px 12px;border:1px solid #405b60;border-radius:15px;color:#edf5ed;background:#13272cdb;box-shadow:0 2px #071215;text-align:left;cursor:pointer}.onsen-menu-grid>button>svg{width:24px;height:24px;color:#4de0e1}.onsen-menu-grid span{display:grid}.onsen-menu-grid b{font-size:15px}.onsen-menu-grid small{color:#abc1bd;font-size:13px}.onsen-menu-grid em{font-size:25px;font-style:normal;color:#efbd66}.onsen-menu-grid>button:hover{border-color:#2fdadd;background:#1b444b}.journey-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.journey-tiles div{display:grid;place-items:center;padding:12px 5px;border:1px solid #466166;border-radius:14px;background:#14262b;text-align:center}.journey-tiles b{color:#56e3e3;font-size:24px;font-variant-numeric:tabular-nums}.journey-tiles span{color:#b9cbc8;font-size:13px}.journey-progress{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:12px;padding:12px;border:1px solid #466166;border-radius:14px;background:#14262b}.journey-progress span{font-size:13px}.journey-progress b{color:#f2cb76;font-size:13px;font-variant-numeric:tabular-nums}.journey-progress i{grid-column:1/-1;height:8px;overflow:hidden;border-radius:8px;background:#07171b}.journey-progress i span{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#15bfc5,#ffbd55)}#toast{bottom:18px;padding:9px 16px;border:1px solid rgba(80,224,222,.55);border-radius:20px;color:#fff8df;background:#0c1f24ed;box-shadow:0 4px 15px #0000005c;font-size:13px;backdrop-filter:blur(9px)}@keyframes tile-spawn{0%{opacity:.15;scale:.25}to{opacity:1;scale:1}}@keyframes tile-merge{0%{scale:.78}58%{scale:1.14}to{scale:1}}@keyframes tile-restore{0%{opacity:.2;scale:.9}to{opacity:1;scale:1}}@keyframes board-nudge{0%,to{translate:0}40%{translate:-4px}70%{translate:4px}}@keyframes veil-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px) scale(.97)}}@keyframes leaf-fall{to{translate:calc((var(--i) % 2) * 90px - 45px) 115vh;rotate:720deg}}@keyframes spark-fall{0%{opacity:0;translate:0 65vh;scale:.3}35%{opacity:1}to{opacity:0;translate:calc((var(--i) % 2) * 140px - 70px) 105vh;scale:1.4}}@keyframes steam-rise{0%{opacity:0;translate:0 100vh}30%{opacity:.65}to{opacity:0;translate:calc((var(--i) % 2) * 80px - 40px) 10vh;scale:1.8}}@keyframes sheet-in{0%{transform:translateY(30px);opacity:0}}@media (max-width:760px) and (min-height:520px){body:before{background-image:var(--onsen-scene-phone);background-position:center;background-size:cover}.onsen-stage{grid-template-rows:104px minmax(0,1fr);gap:4px;padding:8px 7px max(7px,env(safe-area-inset-bottom))}.onsen-hud{width:100%;min-height:100px;grid-template-columns:1fr auto;grid-template-rows:49px 39px;gap:3px 6px;padding:6px 7px;border-radius:23px}.onsen-brand{grid-column:1;grid-row:1}.onsen-brand strong{font-size:27px}.brand-mark{width:43px;height:35px}.brand-mark i{width:29px;height:29px}.brand-mark b{left:14px;width:21px;height:29px}.onsen-actions{grid-column:2;grid-row:1;gap:4px}.onsen-actions button{width:39px;height:39px}.onsen-actions svg{width:20px;height:20px}.onsen-actions button:after{display:none}.onsen-stats{grid-column:1/-1;grid-row:2;width:100%;gap:6px}.onsen-stats div{flex:1;min-width:0;height:37px;padding:0 12px}.onsen-stats b{font-size:16px}.game-wrap{--board-size:min( calc(100vw - 20px) , calc(100dvh - 176px) ,570px);grid-template-rows:29px var(--board-size) 28px;gap:4px}.board{border-width:8px;border-radius:23px}.size-button{height:29px;min-width:205px;padding-inline:15px;font-size:13px}.move-help{min-width:0;width:min(360px,calc(100vw - 35px));padding:4px 10px}.look-picker{grid-template-columns:repeat(2,1fr)}#veil:has(.onsen-menu-dialog){align-items:flex-end;padding:0}.onsen-menu-dialog{width:100%;max-height:min(84dvh,700px);border-radius:27px 27px 0 0;padding-bottom:max(20px,env(safe-area-inset-bottom));animation:sheet-in .2s ease-out!important}.dlg{max-height:calc(100dvh - 20px)}}@media (max-height:519px){.onsen-stage{grid-template-rows:44px minmax(0,1fr);gap:3px;padding:4px 7px}.onsen-hud{width:100%;height:42px;min-height:42px;grid-template-columns:minmax(92px,1fr) auto auto;gap:5px;padding:3px 6px;border-radius:18px}.onsen-brand strong{font-size:21px}.brand-mark{width:35px;height:29px}.brand-mark i{width:23px;height:23px}.brand-mark b{left:12px;width:16px;height:22px}.onsen-stats{gap:4px}.onsen-stats div{min-width:70px;height:34px;padding:0 7px;gap:5px}.onsen-stats span{font-size:13px;letter-spacing:0}.onsen-stats b{max-width:62px;font-size:14px}.onsen-actions{gap:3px}.onsen-actions button{width:34px;height:34px;border-width:1px}.onsen-actions svg{width:18px;height:18px}.onsen-actions button:after{display:none}.game-wrap{--board-size:min( calc(100vw - 16px) , calc(100dvh - 54px) ,650px);position:relative;display:block}.board{position:absolute;left:50%;top:50%;translate:-50% -50%;border-width:6px;border-radius:18px}.game-head{position:absolute;z-index:20;top:2px;left:50%;translate:-50%;width:auto}.size-button{height:25px;min-width:170px;padding:0 11px;border-width:1px;font-size:13px}.move-help{position:absolute;z-index:20;bottom:2px;left:50%;translate:-50%;min-width:250px;width:auto;padding:3px 12px;border-width:1px;font-size:13px}.tile{filter:drop-shadow(0 2px 2px rgba(0,0,0,.45))}#veil:has(.onsen-menu-dialog){align-items:center;padding:7px}.onsen-menu-dialog{width:min(650px,100%);max-height:calc(100dvh - 14px);border-radius:20px}.onsen-menu-grid{grid-template-columns:repeat(2,1fr);gap:5px}.onsen-menu-grid>button{min-height:48px}.onsen-menu-grid small,.menu-profile{display:none}.dialog-head{padding-top:8px;margin-bottom:4px}.dlg{max-height:calc(100dvh - 14px);padding:0 14px 12px}.dlg .row{margin-top:8px}.dlg .btn{min-height:38px}.dlg p,.dlg li{font-size:13px}}@media (max-width:400px) and (max-height:270px){.onsen-hud{grid-template-columns:minmax(70px,1fr) auto auto}.brand-mark{display:none}.onsen-brand strong{font-size:18px}.onsen-stats div{min-width:60px;padding:0 5px}.onsen-stats span{display:none}.onsen-stats b{font-size:13px}.onsen-actions button{width:31px;height:31px}.onsen-actions button:nth-child(3){display:none}.game-wrap{--board-size:min( calc(100vw - 12px) , calc(100dvh - 76px) )}.board{top:calc(50% + 10px)}.move-help,.dialog-mark{display:none}.dialog-head{grid-template-columns:1fr 34px}.dialog-head h2{grid-column:1;font-size:18px}.dialog-close{grid-column:2;width:32px;height:32px}.onsen-menu-grid>button{min-height:42px;padding:4px 8px}.onsen-menu-grid b{font-size:13px}}@media (prefers-reduced-motion:reduce){.tile{transition-duration:1ms}.tile.spawned,.tile.merged,.board.blocked,.board.restored .tile,#veil.on,.dlg{animation-duration:1ms!important}}.tile{background:var(--tile-tint)}.tile:before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--onsen-stone) center/cover no-repeat;opacity:.7}.tile span{position:relative;z-index:1}body[data-stone=obsidian] .tile:before{opacity:.82}body[data-stone=moon] .tile:before{opacity:.62}.dlg p,.dlg li{color:#eaf3ec}.dlg p strong,.dlg .club-lines{color:#fff0b7}.dlg .stat span{color:#b9cbc8}
