@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/tile-merge/assets/nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2) format("woff2"),url(/play/tile-merge/assets/nunito-cyrillic-ext-600-normal-vnfu4DTE.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/tile-merge/assets/nunito-cyrillic-600-normal-DJGQ2h05.woff2) format("woff2"),url(/play/tile-merge/assets/nunito-cyrillic-600-normal-BUjmtIuu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/tile-merge/assets/nunito-vietnamese-600-normal-BY8O6Cug.woff2) format("woff2"),url(/play/tile-merge/assets/nunito-vietnamese-600-normal-DO1RqFw5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/tile-merge/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2) format("woff2"),url(/play/tile-merge/assets/nunito-latin-ext-600-normal-BKUpuB78.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/tile-merge/assets/nunito-latin-600-normal-Br8yIETf.woff2) format("woff2"),url(/play/tile-merge/assets/nunito-latin-600-normal-Cd0eNu1l.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/tile-merge/assets/nunito-cyrillic-ext-800-normal-B-cvGohL.woff2) format("woff2"),url(/play/tile-merge/assets/nunito-cyrillic-ext-800-normal-pjRatrRO.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/tile-merge/assets/nunito-cyrillic-800-normal-D3igD7Kl.woff2) format("woff2"),url(/play/tile-merge/assets/nunito-cyrillic-800-normal-DymMgApb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/tile-merge/assets/nunito-vietnamese-800-normal-D_CZYdm9.woff2) format("woff2"),url(/play/tile-merge/assets/nunito-vietnamese-800-normal-Dz0hZPb5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/tile-merge/assets/nunito-latin-ext-800-normal-CtU8tJOV.woff2) format("woff2"),url(/play/tile-merge/assets/nunito-latin-ext-800-normal-CDcxIxx8.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/tile-merge/assets/nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(/play/tile-merge/assets/nunito-latin-800-normal-D-J0wlBY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #1a1714;--bg-glow: #26211c;--board: #2a2520;--board-radius: 12px;--board-padding: 8px;--board-margin: 16px;--cell-bg: #363028;--cell-radius: 6px;--cell-gap: 8px;--cell: 72px;--tile-2: #e8eef4;--tile-4: #cfe0ee;--tile-8: #9fd0e8;--tile-16: #7cc4c0;--tile-32: #8ccf8a;--tile-64: #c8d96a;--tile-128: #f2d35a;--tile-256: #f5b942;--tile-512: #f08a3e;--tile-1024: #e8603c;--tile-2048: #ff3d5a;--tile-big: #6d3fd6;--tile-ink-dark: #2a2520;--tile-ink-light: #fff7ee;--tile-font-2: .46;--tile-font-3: .4;--tile-font-4: .32;--tile-font-5: .26;--tile-font-6: .22;--text: #f3ede4;--text-dim: #a89f93;--accent: #f5b942;--accent-ink: #2a1d00;--button: #2a2520;--button-line: #3d362e;--scrim: rgb(12 10 8 / .72);--sheet-bg: #221e1a;--hud-h: 104px;--helper-bar-h: 72px;--touch-min: 48px;--swipe-threshold: 24px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space: 16px;--space-lg: 24px;--radius: 16px;--radius-sm: 8px;--pill-radius: 999px;--line: 1px;--font-xs: 12px;--font-sm: 14px;--font-body: 16px;--font-lg: 18px;--font-counter: 20px;--font-counter-large: 24px;--font-heading: 24px;--font-icon: 26px;--font-score: 32px;--font-title: 40px;--font-win: 36px;--mark-size: 96px;--play-width: 220px;--stat-width: 96px;--sheet-width: 440px;--press: .12s;--flag-width: 28px;--flag-height: 20px;--switch-inset: 12px;--switch-knob: 20px;--switch-track: var(--button-line);--slide: .1s;--slide-ease: ease-out;--pop: .12s;--pop-scale: 1.2;--spawn: .1s;--score-pop: .2s;--score-pop-scale: 1.15;--score-float: .6s;--score-float-rise: 28px;--nudge: .12s;--nudge-distance: 4px;--win-pulse: .3s;--win-pulse-scale: 1.3;--confetti: .9s;--win-delay: .8s;--over-dim: .3s;--over-delay: calc(var(--slide) + var(--spawn) + var(--over-dim));--sheet-slide: .2s;--sheet-ease: cubic-bezier(.2, .9, .3, 1);--screen-in: .2s;--screen-rise: 12px;--mark-float: 3s;--mark-rise: 6px;font-family:Nunito,system-ui,sans-serif;font-weight:600;color:var(--text);color-scheme:dark;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(circle at 50% 50%,var(--bg-glow),var(--bg) 70%) var(--bg);overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:manipulation}@media(min-width:700px)and (min-aspect-ratio:3/4){#root{max-width:clamp(420px,62vh,760px);margin:0 auto}}.screen{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button{font:inherit;color:inherit;cursor:pointer;transition:transform var(--press) ease-out,filter var(--press) ease-out}button:active:not(:disabled){transform:scale(.95);filter:brightness(1.15)}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:var(--space-xs)}h2{margin:0;font-weight:800;font-size:var(--font-heading)}.pill{min-height:var(--touch-min);padding:0 var(--space-lg);border:var(--line) solid var(--button-line);border-radius:var(--pill-radius);background:var(--button);color:var(--text);font-size:var(--font-body)}.pill--primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink);font-weight:800}.pill:disabled{opacity:.4;cursor:default}.icon-button{flex:none;width:var(--touch-min);height:var(--touch-min);padding:0;border:none;border-radius:50%;background:none;color:var(--text);font-size:var(--font-icon);line-height:1}.home{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space);overflow-y:auto}.home-settings{position:absolute;top:calc(var(--space-sm) + env(safe-area-inset-top));right:calc(var(--space-sm) + env(safe-area-inset-right))}.home-mark{width:var(--mark-size);height:var(--mark-size)}.home-title{margin:0;padding:0 var(--space);font-size:var(--font-title);font-weight:800;text-align:center}.home-tagline{margin:calc(-1 * var(--space-sm)) 0 0;padding:0 var(--space);color:var(--text-dim);text-align:center}.home-actions{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.home-play{width:var(--play-width);padding:var(--space-sm) var(--space);font-size:var(--font-lg)}.home-play span{display:block;font-size:var(--font-sm);font-weight:600}.home-actions .pill:not(.home-play){width:var(--play-width)}.home-stats{display:flex;gap:var(--space-sm);padding:0 var(--space)}.stat{display:flex;flex-direction:column;align-items:center;justify-content:space-between;width:var(--stat-width);margin:0;padding:var(--space-sm) var(--space-xs);border-radius:var(--radius-sm);background:var(--button);color:var(--text-dim);font-size:var(--font-xs);text-align:center}.stat strong{color:var(--accent);font-size:var(--font-counter);font-weight:800}.home-moves{margin:calc(-1 * var(--space-sm)) 0 0;color:var(--text-dim);font-size:var(--font-sm)}.home-version{position:absolute;right:calc(var(--space) + env(safe-area-inset-right));bottom:calc(var(--space-md) + env(safe-area-inset-bottom));margin:0;font-size:var(--font-xs);color:var(--text-dim)}.game{display:flex;flex-direction:column}.hud{flex:none;display:flex;flex-direction:column;justify-content:center;gap:var(--space-xs);height:var(--hud-h);padding:0 var(--board-margin)}.hud-row{display:flex;align-items:center;gap:var(--space-sm)}.hud-title{flex:1;min-width:0;margin:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-counter);font-weight:800}.counter{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;min-width:0;padding:var(--space-xs) 0;border-radius:var(--radius-sm);background:var(--button)}.counter--large{flex:1.4}.counter-label{font-size:var(--font-xs);color:var(--text-dim)}.counter-value{font-size:var(--font-counter);font-weight:800;color:var(--accent)}.counter--large .counter-value{font-size:var(--font-counter-large)}.swipe-area{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;touch-action:none}.board-slot{position:relative}.over-notice{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-sm);padding:0 var(--board-margin);font-weight:800}.helper-bar{flex:none;display:flex;align-items:center;justify-content:center;gap:var(--space-md);height:var(--helper-bar-h);padding:0 var(--board-margin)}.helper-bar .pill{flex:1;max-width:var(--play-width)}.win-overlay{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;padding:var(--space);border-radius:var(--board-radius);background:var(--scrim);animation:fade-in var(--sheet-slide) ease-out both}.win-card{display:flex;flex-direction:column;gap:var(--space-sm);width:100%;max-height:100%;overflow-y:auto;padding:var(--space-lg) var(--space);border:var(--line) solid var(--button-line);border-radius:var(--radius);background:var(--sheet-bg);text-align:center;animation:slide-up var(--sheet-slide) var(--sheet-ease) both}.win-card h2{font-size:var(--font-win);color:var(--accent)}.win-card p{margin:0}.win-score{font-size:var(--font-score);font-weight:800}.win-moves{color:var(--text-dim)}.sheet{width:calc(100% - var(--space-lg));max-width:var(--sheet-width);max-height:calc(100dvh - var(--space-lg) - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:var(--space);border:var(--line) solid var(--button-line);border-radius:var(--radius);background:var(--sheet-bg);color:var(--text);overflow-y:auto}.sheet[open]{animation:slide-up var(--sheet-slide) var(--sheet-ease) both}.sheet--bottom{margin-bottom:calc(var(--space-md) + env(safe-area-inset-bottom))}.sheet::backdrop{background:var(--scrim)}.sheet--bottom::backdrop{background:none}.sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:var(--touch-min)}.sheet>.pill{display:block;width:100%;margin-top:var(--space-sm)}.sheet p{margin:var(--space-sm) 0}.over-scores{display:flex;justify-content:space-around;gap:var(--space-sm)}.over-scores p{display:flex;flex-direction:column;align-items:center;color:var(--text-dim)}.over-scores strong{color:var(--accent);font-size:var(--font-score);font-weight:800}.new-best{color:var(--accent);font-weight:800;font-size:var(--font-lg);text-align:center}.languages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin:var(--space) 0}.setting-language .languages{margin-top:0}.language{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:0 var(--space-sm)}.language img{width:var(--flag-width);height:var(--flag-height);object-fit:cover}.chosen{border-color:var(--accent)}.setting{display:flex;align-items:center;justify-content:space-between;gap:var(--space);min-height:var(--touch-min)}.setting input{appearance:none;position:relative;flex:none;width:var(--touch-min);height:var(--touch-min);margin:0;background:none;cursor:pointer}.setting input:before{content:"";position:absolute;inset:var(--switch-inset) 0;border-radius:var(--pill-radius);background:var(--switch-track)}.setting input:after{content:"";position:absolute;top:calc(var(--switch-inset) + (var(--touch-min) - 2 * var(--switch-inset) - var(--switch-knob)) / 2);left:var(--space-xs);width:var(--switch-knob);height:var(--switch-knob);border-radius:50%;background:var(--text-dim);transition:transform var(--press) ease-out}.setting input:checked:before{background:var(--accent)}.setting input:checked:after{transform:translate(var(--switch-knob));background:var(--accent-ink)}@keyframes slide-up{0%{opacity:0;transform:translateY(40%)}}@keyframes fade-in{0%{opacity:0}}.board{--cell: calc((var(--board-size) - 2 * var(--board-padding) - 3 * var(--cell-gap)) / 4);position:relative;flex:none;width:var(--board-size);height:var(--board-size);padding:var(--board-padding);border-radius:var(--board-radius);background:var(--board)}.board--dimmed .board-tiles{opacity:.4}.board-tiles{transition:opacity var(--over-dim) ease-out}.board-cells{display:grid;grid-template-columns:repeat(4,var(--cell));grid-template-rows:repeat(4,var(--cell));gap:var(--cell-gap)}.board-cell{border-radius:var(--cell-radius);background:var(--cell-bg)}.board-tiles{position:absolute;inset:var(--board-padding)}.tile{position:absolute;top:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;width:var(--cell);height:var(--cell);border-radius:var(--cell-radius);background:var(--tile-fill);box-shadow:inset 0 1px #ffffff59;color:var(--tile-ink);font-size:calc(var(--cell) * var(--tile-font));font-weight:800;line-height:1;transform:translate(calc(var(--x) * (var(--cell) + var(--cell-gap))),calc(var(--y) * (var(--cell) + var(--cell-gap))));transition:transform var(--slide) var(--slide-ease)}.tile--source{z-index:0}.tile--merged,.tile--new,.tile--win,.tile--leaving,.tile--split{z-index:2}.tile--glow{box-shadow:inset 0 1px #ffffff59,0 0 calc(var(--cell) * .3) var(--tile-fill)}.tile--merged{animation:tile-wait var(--slide) step-end,tile-pop var(--pop) ease-out var(--slide)}.tile--new{animation:tile-grow var(--spawn) ease-out var(--slide) backwards}.tile--win{animation:tile-wait var(--slide) step-end,tile-win var(--win-pulse) ease-in-out var(--slide) 2}.tile--leaving{animation:tile-grow var(--spawn) ease-in reverse both}@keyframes tile-wait{0%,to{visibility:hidden}}@keyframes tile-pop{50%{scale:var(--pop-scale)}}@keyframes tile-grow{0%{scale:0}}@keyframes tile-win{50%{scale:var(--win-pulse-scale);box-shadow:inset 0 1px #ffffff59,0 0 var(--cell) var(--tile-fill)}}.confetti{position:absolute;top:0;left:0;z-index:3;width:var(--cell);height:var(--cell);pointer-events:none;transform:translate(calc(var(--x) * (var(--cell) + var(--cell-gap))),calc(var(--y) * (var(--cell) + var(--cell-gap))))}.confetti i{position:absolute;top:50%;left:50%;width:calc(var(--cell) * .14);height:calc(var(--cell) * .22);margin:calc(var(--cell) * -.11) 0 0 calc(var(--cell) * -.07);border-radius:2px;background:var(--piece-fill);opacity:0;animation:confetti-burst var(--confetti) cubic-bezier(.1,.7,.3,1) var(--slide) both}@keyframes confetti-burst{0%{opacity:1;transform:rotate(var(--angle)) translateY(0) rotate(0)}70%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translateY(calc(var(--reach) * -1.6 * var(--cell))) rotate(540deg)}}.board--nudge-up{--nudge-x: 0;--nudge-y: -1}.board--nudge-down{--nudge-x: 0;--nudge-y: 1}.board--nudge-left{--nudge-x: -1;--nudge-y: 0}.board--nudge-right{--nudge-x: 1;--nudge-y: 0}.board--nudge-0{animation:board-nudge-0 var(--nudge) ease-out}.board--nudge-1{animation:board-nudge-1 var(--nudge) ease-out}@keyframes board-nudge-0{50%{translate:calc(var(--nudge-x) * var(--nudge-distance)) calc(var(--nudge-y) * var(--nudge-distance))}}@keyframes board-nudge-1{50%{translate:calc(var(--nudge-x) * var(--nudge-distance)) calc(var(--nudge-y) * var(--nudge-distance))}}.counter-value--pop{animation:counter-pop var(--score-pop) ease-out}@keyframes counter-pop{50%{scale:var(--score-pop-scale)}}.score-gain{position:absolute;left:50%;bottom:var(--space-xs);z-index:5;color:var(--accent);font-size:var(--font-lg);font-weight:800;pointer-events:none;translate:-50% 0;animation:score-float var(--score-float) ease-out both}@keyframes score-float{0%{opacity:1}to{opacity:0;translate:-50% calc(-1 * var(--score-float-rise))}}@keyframes score-fade{0%{opacity:1}to{opacity:0}}.new-best-tag{position:absolute;left:50%;bottom:0;z-index:5;padding:0 var(--space-sm);border-radius:var(--pill-radius);background:var(--accent);color:var(--accent-ink);font-size:var(--font-xs);font-weight:800;white-space:nowrap;translate:-50% 50%;animation:tag-pop var(--score-pop) ease-out both}@keyframes tag-pop{0%{scale:0}60%{scale:var(--score-pop-scale)}}.win-overlay--after-celebration{animation:hold-hidden var(--win-delay) step-end,fade-in var(--sheet-slide) ease-out var(--win-delay) both}.win-overlay--after-celebration .win-card{animation:slide-up var(--sheet-slide) var(--sheet-ease) var(--win-delay) both}.sheet--over[open]{animation:hold-hidden var(--over-delay) step-end,slide-up var(--sheet-slide) var(--sheet-ease) var(--over-delay) both}@keyframes hold-hidden{0%,to{visibility:hidden}}.home-mark{animation:mark-float var(--mark-float) ease-in-out infinite}@keyframes mark-float{50%{translate:0 calc(-1 * var(--mark-rise))}}.screen{animation:screen-in var(--screen-in) ease-out backwards}@keyframes screen-in{0%{opacity:0;translate:0 var(--screen-rise)}}:root.reduce-motion{--slide: 0ms;--pop: 0ms;--spawn: 0ms;--score-pop: 0ms;--nudge: 0ms;--win-pulse: 0ms;--win-delay: 0ms;--over-delay: 0ms;--sheet-slide: 0ms;--screen-in: 0ms}.reduce-motion .home-mark{animation:none}.reduce-motion .confetti{display:none}.reduce-motion .score-gain{translate:-50% calc(-1 * var(--score-float-rise));animation-name:score-fade}
