:root{--bg: #f6f3ee;--card: #ffffff;--text: #2b2620;--muted: #8a8178;--line: #e7e0d6;--accent: #7c5cff;--accent-2: #a78bfa;--accent-text: #ffffff;--gold: #f5b301;--danger: #e5484d;--shadow: 0 2px 10px rgba(60, 40, 20, .08);--radius: 16px;color-scheme:light}:root[data-scheme=dark]{--bg: #17151f;--card: #221f2d;--text: #f1eef8;--muted: #9d97ad;--line: #322d40;--accent: #8b6dff;--accent-2: #b39dff;--shadow: 0 2px 12px rgba(0, 0, 0, .35);color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font:15px/1.35 -apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;overscroll-behavior:none;user-select:none;-webkit-user-select:none}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}button:disabled{opacity:.45;cursor:default}h1,h2,h3{margin:0}#app{max-width:480px;margin:0 auto;min-height:100%}.screen{padding:12px 16px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.topbar{display:flex;align-items:center;gap:10px;min-height:44px}.topbar h1{font-size:20px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-btn{width:40px;height:40px;border-radius:12px;background:var(--card);box-shadow:var(--shadow);font-size:20px;display:grid;place-items:center;flex:none}.coins-pill{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:var(--card);box-shadow:var(--shadow);font-variant-numeric:tabular-nums}.coins-pill.bump{animation:bump .35s}.coin{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:-2px;margin-right:2px;background:radial-gradient(circle at 35% 35%,#ffe68a,var(--gold) 60%,#c98a00);box-shadow:inset 0 0 0 1.5px #965a0059}@keyframes bump{40%{transform:scale(1.15)}}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;text-align:left}.card-title{font-weight:700;margin-bottom:10px}.section{font-size:16px;color:var(--muted);font-weight:600;margin-top:6px}.muted{color:var(--muted);font-size:13px}.center{text-align:center}.daily{display:flex;flex-direction:column;gap:10px}.daily .card-title{margin:0}.daily .streak{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.daily .day{position:relative;border-radius:10px;background:var(--bg);padding:6px 0 7px;text-align:center;border:2px solid transparent;display:flex;flex-direction:column;align-items:center;gap:3px}.daily .day small{font-size:10px;color:var(--muted);white-space:nowrap}.daily .day b{font-size:13px;display:flex;align-items:center;gap:2px}.daily .day b .coin{width:12px;height:12px;margin:0}.daily .day.chest{background:color-mix(in srgb,var(--gold) 22%,var(--bg))}.daily .day.done{opacity:.5}.daily .day.done i{position:absolute;top:-6px;right:-4px;font-style:normal;font-size:11px;background:#3cb371;color:#fff;border-radius:50%;width:16px;height:16px;display:grid;place-items:center}.daily .day.today{border-color:var(--accent)}.daily .btn{width:100%}.daily .btn>span{display:flex;align-items:center;gap:6px}.games{display:grid;grid-template-columns:1fr 1fr;gap:10px}.game-tile{display:flex;flex-direction:column;gap:4px;align-items:stretch;padding:10px}.game-tile b{font-size:16px}.game-tile small{color:var(--muted);font-size:12px;line-height:1.25}.game-tile .best{color:var(--accent);font-weight:600}.game-tile .play-btn{margin-top:6px;padding:9px;flex-direction:row;justify-content:center}.game-icon{width:100%;aspect-ratio:1;border-radius:14px;padding:6px;display:grid;gap:5px;margin-bottom:4px}.game-icon.cols2{grid-template-columns:1fr 1fr}.game-icon.cols4{grid-template-columns:repeat(4,1fr);gap:3px}.game-icon .mini-tile{font-size:15px;border-radius:9px}.game-icon.cols4 .mini-tile{border-radius:5px}.mini-tile.blank{background:#ffffff14}.soon{align-items:center;justify-content:center;text-align:center;opacity:.8;border:2px dashed var(--line);box-shadow:none;background:transparent}.soon-icon{font-size:34px;color:var(--muted);line-height:1}.task-card{display:flex;flex-direction:column;gap:6px}.task{background:var(--card);border-radius:12px;padding:8px 10px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px}.task-card .task{box-shadow:none;padding:0}.task-top{display:flex;justify-content:space-between;align-items:center;font-size:12px}.task-label{color:var(--accent);font-weight:700}.task.done .task-label{color:#2e9d5a}.task-reward{display:flex;align-items:center;gap:3px;font-weight:700}.task-text{font-size:14px;font-weight:600}.task-progress{position:relative;height:16px;border-radius:8px;background:var(--bg);overflow:hidden}.task-progress i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--accent-2),var(--accent));border-radius:8px;transition:width .3s}.task.done .task-progress i{background:#3cb371}.task-progress small{position:relative;display:block;text-align:center;font-size:11px;line-height:16px;font-weight:700}.ad-rows{display:flex;flex-direction:column;gap:8px}.ad-row{display:flex;align-items:center;gap:10px;padding:10px 12px}.ad-icon{font-size:26px;flex:none;width:36px;text-align:center}.ad-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.ad-info small{color:var(--muted);font-size:12px;line-height:1.25}.ad-info .ad-status{color:var(--accent);font-weight:600}.btn.small{padding:8px 12px;font-size:13px;flex:none}.mini-tile{border-radius:7px;display:grid;place-items:center;font-weight:800;font-size:11px;overflow:hidden}.btn{border-radius:14px;padding:12px 16px;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:2px}.btn small{font-weight:400;font-size:12px;opacity:.85}.btn.primary{background:linear-gradient(135deg,var(--accent-2),var(--accent));color:var(--accent-text)}.btn.secondary{background:var(--bg)}.btn.ghost{color:var(--muted)}.link{color:var(--accent);font-weight:600;padding:4px 8px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0f0a198c;display:grid;place-items:center;padding:16px;animation:fade .16s}.overlay.closing{animation:fade .16s reverse forwards}.modal{background:var(--card);border-radius:22px;padding:20px;width:min(100%,380px);max-height:90vh;overflow:auto;animation:pop .2s}.modal h2{font-size:20px;margin-bottom:8px;text-align:center}.modal>p{color:var(--muted);text-align:center;margin:0 0 12px}.modal-buttons{display:flex;flex-direction:column;gap:8px;margin-top:14px}.result{display:flex;flex-direction:column;gap:6px;text-align:center;font-size:16px}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{transform:scale(.92);opacity:0}}.toast{position:fixed;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:60;background:var(--text);color:var(--bg);padding:10px 16px;border-radius:12px;font-weight:600;box-shadow:var(--shadow);transition:opacity .3s;animation:fade .2s;max-width:90vw;text-align:center}.toast.hide{opacity:0}.overlay.ad{background:#000000d9}.ad-box{background:#fff;color:#222;border-radius:16px;padding:24px;width:min(100%,340px);text-align:center}.ad-label{font-size:11px;letter-spacing:.15em;color:#999;margin-bottom:8px}.ad-box .muted{color:#888}.ad-timer{font-weight:700;margin:12px 0;min-height:20px}.ad-box .btn{margin:0 auto}.settings{display:flex;flex-direction:column;gap:4px}.settings h3{font-size:15px;margin:12px 0 6px}.toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 2px;border-bottom:1px solid var(--line);cursor:pointer}.toggle input{display:none}.toggle i{width:46px;height:28px;border-radius:999px;background:var(--line);position:relative;transition:background .2s}.toggle i:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s}.toggle input:checked+i{background:var(--accent)}.toggle input:checked+i:after{transform:translate(18px)}.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.theme-card{border:2px solid var(--line);border-radius:14px;padding:6px;display:flex;flex-direction:column;gap:4px;align-items:center}.theme-card.active{border-color:var(--accent)}.theme-card span{font-size:13px;font-weight:600}.theme-sample{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:4px;border-radius:9px;width:100%}.theme-sample .mini-tile{aspect-ratio:1;font-size:10px}.tabs{display:flex;background:var(--card);border-radius:12px;padding:3px;box-shadow:var(--shadow)}.tabs button{flex:1;padding:8px 4px;border-radius:10px;font-weight:600;font-size:14px;color:var(--muted)}.tabs button.active{background:var(--accent);color:var(--accent-text)}.scores{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.score{background:var(--card);border-radius:12px;padding:6px 8px;text-align:center;box-shadow:var(--shadow);position:relative;display:flex;flex-direction:column;min-height:58px;justify-content:center}.score span{font-size:12px;color:var(--muted)}.score b{font-size:19px;font-variant-numeric:tabular-nums}.score b.warn{color:var(--danger)}.score small{font-size:10px;color:var(--accent);line-height:1.1}.gain{position:absolute;left:0;right:0;top:4px;font-weight:800;color:var(--accent);opacity:0;pointer-events:none}.gain.go{animation:gain .7s ease-out}@keyframes gain{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-26px)}}.board-wrap{touch-action:none;padding:4px 0}.board{--gap: 10px;--size: 70px;position:relative;width:100%;aspect-ratio:1;border-radius:18px;background:var(--board);padding:var(--gap)}.board.bump{animation:nudge .18s}@keyframes nudge{30%{transform:translate(-4px)}60%{transform:translate(4px)}}.cells{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:var(--gap);width:100%;height:100%}.cell{background:var(--cell);border-radius:10px}.tiles{position:absolute;inset:var(--gap)}.tile{position:absolute;left:0;top:0;width:var(--size);height:var(--size);transform:translate(calc(var(--c) * (var(--size) + var(--gap))),calc(var(--r) * (var(--size) + var(--gap))));transition:transform .1s ease-in-out;z-index:2}.tile.ghost{z-index:1}.tile.gone{transition:opacity .15s;opacity:0}.tile-in{width:100%;height:100%;border-radius:10px;display:grid;place-items:center;position:relative;font-weight:800;font-size:calc(var(--size) * .42);line-height:1;overflow:hidden;box-shadow:inset 0 -3px #0000001f}.tile-in.d3{font-size:calc(var(--size) * .36)}.tile-in.d4{font-size:calc(var(--size) * .29)}.tile-in.d5{font-size:calc(var(--size) * .24)}.tile-in.d6{font-size:calc(var(--size) * .2)}.tile-in.d7,.tile-in.d8{font-size:calc(var(--size) * .17)}.tile-in.has-icon.d6 .num,.tile-in.has-icon.d7 .num,.tile-in.has-icon.d8 .num{font-size:calc(var(--size) * .14)}.tile-in.has-icon .icon{font-size:calc(var(--size) * .5)}.tile-in .art{position:absolute;top:3%;right:6%;bottom:9%;left:6%;display:block}.tile-in:has(.art) .num{background:#ffffffc7;color:#2d2438;border-radius:6px;padding:1px 4px;right:4px;bottom:4px}.tile-in .art svg,.mini-tile svg{width:100%;height:100%;display:block}.mini-tile svg{padding:6%}.tile-in.has-icon .num{position:absolute;right:5px;bottom:3px;font-size:calc(var(--size) * .17);opacity:.9}.tile-in.glow{box-shadow:0 0 calc(var(--size) * .25) #ffdc78a6,inset 0 -3px #0000001f}.tile-in.neon{color:color-mix(in srgb,var(--neon) 82%,white);box-shadow:inset 0 0 0 2px var(--neon),0 0 8px color-mix(in srgb,var(--neon) 35%,transparent);text-shadow:0 0 3px color-mix(in srgb,var(--neon) 55%,transparent)}.mini-tile.neon{box-shadow:inset 0 0 0 1.5px var(--neon);text-shadow:0 0 2px color-mix(in srgb,var(--neon) 55%,transparent)}.tile.new .tile-in{animation:appear .18s ease-out .09s backwards}.tile.merged .tile-in{animation:merge .2s ease-out .08s backwards}.tile.picked .tile-in{outline:3px solid var(--accent);outline-offset:2px;animation:wobble .6s infinite}@keyframes appear{0%{transform:scale(0)}}@keyframes merge{0%{transform:scale(0)}60%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes wobble{50%{transform:scale(.92)}}.hint{display:none;align-items:center;justify-content:center;gap:8px;text-align:center;font-size:14px;color:var(--accent);font-weight:600;min-height:32px}.hint.show{display:flex}.tools{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.tool{background:var(--card);border-radius:12px;box-shadow:var(--shadow);padding:8px 2px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}.tool i{font-style:normal;font-size:20px;line-height:1.1}.tool span{font-size:12px;font-weight:600}.tool small{font-size:11px;color:var(--muted);white-space:nowrap}.tool.active{outline:2px solid var(--accent)}@media (max-width: 360px){.screen{padding-left:10px;padding-right:10px}.tool span{font-size:11px}}.rboard{--gap: 3px;position:relative;width:100%;aspect-ratio:1;border-radius:16px;background:var(--board);padding:6px;display:grid;grid-template-columns:repeat(8,1fr);gap:var(--gap)}.rcell{background:var(--cell);border-radius:5px;position:relative;overflow:hidden}.rcell svg,.pblock svg{position:absolute;top:6%;right:6%;bottom:6%;left:6%;width:88%;height:88%}.rcell.filled,.pblock{box-shadow:inset 0 -2px #00000026}.rcell.neon,.pblock.neon{background:#16132c!important;box-shadow:inset 0 0 0 2px var(--neon)}.rcell.preview{opacity:.55}.rcell.will-clear{box-shadow:0 0 0 2px #fff,0 0 10px 2px #ffe678e6;z-index:1}.rcell.clearing{animation:blast .26s ease-in forwards;z-index:2}@keyframes blast{40%{transform:scale(1.15);filter:brightness(1.6)}to{transform:scale(0);opacity:0}}.tray{display:grid;grid-template-columns:.8fr 1fr 1fr 1fr;gap:8px;align-items:stretch}.slot{position:relative;aspect-ratio:1;border-radius:14px;background:var(--card);box-shadow:var(--shadow);display:grid;place-items:center;touch-action:none;cursor:grab}.slot.empty{cursor:default;background:transparent;box-shadow:inset 0 0 0 2px var(--line)}.slot.nofit{opacity:.45}.slot.lifted .piece{opacity:.25}.hold-wrap{display:flex;flex-direction:column;align-items:center;gap:3px}.hold-wrap small{font-size:11px;color:var(--muted);font-weight:600}.slot.hold{width:100%;border:2px dashed var(--accent-2);box-shadow:none}.piece{position:relative}.pblock{position:absolute;border-radius:4px;overflow:hidden}.piece.dragging{position:fixed;left:0;top:0;z-index:40;pointer-events:none;filter:drop-shadow(0 8px 10px rgba(0,0,0,.3))}.rows .tools{grid-template-columns:repeat(5,1fr)}.rcell svg.gem{top:14%;right:14%;bottom:14%;left:14%;width:72%;height:72%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4));z-index:1}.rcell.preview svg.gem{display:none}.goal-hint{color:var(--muted);font-weight:600;font-size:13px}.rows .tray,.rows .board-wrap{touch-action:none}.rows .tray{margin-bottom:2px}.rows.screen{gap:8px;padding-top:8px}.rows .score{min-height:50px;padding:4px 6px}.rows .task{padding:6px 10px;gap:2px}.rows .task-text{font-size:13px}.rows .tabs button{padding:6px 4px}
