:root{--bg-page:#faf8ef;--bg-container:#bbada0;--bg-cell:#ccc0b3;--text-dark:#776e65;--text-light:#f9f6f2;--tile-size:90px;--tile-gap:12px;--container-padding:12px;--grid-width:calc((var(--tile-size) * 4) + (var(--tile-gap) * 3) + (var(--container-padding) * 2))}*{margin:0;padding:0;box-sizing:border-box;user-select:none;-webkit-user-select:none}body,html{overscroll-behavior:none}body{font-family:Outfit,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--bg-page);color:var(--text-dark);min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;overflow:hidden;display:flex;justify-content:center;align-items:center}.app-container{width:100%;max-width:var(--grid-width);min-height:calc(100dvh - 44px);margin-top:44px;padding:12px 16px;display:flex;flex-direction:column;justify-content:flex-start!important;gap:12px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}.game-header{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:8px;flex-shrink:0}.logo-text{font-size:2.8rem;font-weight:800;color:var(--text-dark);line-height:1}.subtitle-text{font-size:.8rem;color:#8f7a66;margin-top:4px;font-weight:600}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.scores-container{display:flex;gap:6px}.score-box{background:#bbada0;padding:6px 12px;border-radius:6px;color:#fff;text-align:center;min-width:65px;box-shadow:0 2px 5px rgba(0,0,0,.05)}.box-label{font-size:.65rem;font-weight:800;color:#eee4da;display:block;letter-spacing:.5px}.box-val{font-family:'Share Tech Mono',monospace;font-size:1.15rem;font-weight:700;display:block}.action-btn{background:#8f7a66;color:#fff;border:none;border-radius:6px;padding:6px 14px;font-size:.85rem;font-weight:700;cursor:pointer;box-shadow:0 2px 4px rgba(0,0,0,.1);transition:background-color .2s,transform .1s}.action-btn:hover{background:#7f6a56}.action-btn:active{transform:scale(.97)}.game-area{flex:none;display:flex;align-items:center;justify-content:center;min-height:0;padding:10px 0;flex-shrink:0}.grid-container{width:var(--grid-width);height:var(--grid-width);background:var(--bg-container);border-radius:12px;padding:var(--container-padding);position:relative;box-shadow:0 8px 24px rgba(0,0,0,.12);touch-action:none}.grid-row{display:flex;margin-bottom:var(--tile-gap)}.grid-row:last-child{margin-bottom:0}.grid-cell{width:var(--tile-size);height:var(--tile-size);margin-right:var(--tile-gap);background:var(--bg-cell);border-radius:8px}.grid-cell:last-child{margin-right:0}.tile-container{position:absolute;top:var(--container-padding);left:var(--container-padding);width:calc(100% - (var(--container-padding) * 2));height:calc(100% - (var(--container-padding) * 2));z-index:2;pointer-events:none}.tile{position:absolute;width:var(--tile-size);height:var(--tile-size);border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:2.2rem;scale:1;transition:transform 120ms ease-in-out;will-change:transform;backface-visibility:hidden;transform-style:preserve-3d}.tile-new{animation:160ms ease-out spawn}.tile-2{background:#eee4da;color:var(--text-dark);font-size:2.4rem}.tile-4{background:#ede0c8;color:var(--text-dark);font-size:2.4rem}.tile-8{background:#f2b179;color:var(--text-light)}.tile-16{background:#f59563;color:var(--text-light)}.tile-32{background:#f67c5f;color:var(--text-light)}.tile-64{background:#f65e3b;color:var(--text-light)}.tile-128{background:#edcf72;color:var(--text-light);font-size:1.8rem;box-shadow:0 0 10px rgba(237,207,114,.4)}.tile-256{background:#5cbf7a;color:var(--text-light);font-size:1.8rem;box-shadow:0 0 14px rgba(92,191,122,.5)}.tile-512{background:#52a3f7;color:var(--text-light);font-size:1.8rem;box-shadow:0 0 18px rgba(82,163,247,.6)}.tile-1024{background:#af7af2;color:var(--text-light);font-size:1.5rem;box-shadow:0 0 22px rgba(175,122,242,.7)}.tile-2048{background:#edc22e;color:var(--text-light);font-size:1.5rem;box-shadow:0 0 28px rgba(237,194,46,.9);animation:1.5s infinite alternate pulse}.tile-super{background:#3c3a32;color:var(--text-light);font-size:1.5rem}.tile-merged{animation:140ms ease-out pop}.tile.tile-position-1-1{transform:translate(0,0)}.tile.tile-position-2-1{transform:translate(calc(var(--tile-size) + var(--tile-gap)),0)}.tile.tile-position-3-1{transform:translate(calc((var(--tile-size) + var(--tile-gap)) * 2),0)}.tile.tile-position-4-1{transform:translate(calc((var(--tile-size) + var(--tile-gap)) * 3),0)}.tile.tile-position-1-2{transform:translate(0,calc(var(--tile-size) + var(--tile-gap)))}.tile.tile-position-2-2{transform:translate(calc(var(--tile-size) + var(--tile-gap)),calc(var(--tile-size) + var(--tile-gap)))}.tile.tile-position-3-2{transform:translate(calc((var(--tile-size) + var(--tile-gap)) * 2),calc(var(--tile-size) + var(--tile-gap)))}.tile.tile-position-4-2{transform:translate(calc((var(--tile-size) + var(--tile-gap)) * 3),calc(var(--tile-size) + var(--tile-gap)))}.tile.tile-position-1-3{transform:translate(0,calc((var(--tile-size) + var(--tile-gap)) * 2))}.tile.tile-position-2-3{transform:translate(calc(var(--tile-size) + var(--tile-gap)),calc((var(--tile-size) + var(--tile-gap)) * 2))}.tile.tile-position-3-3{transform:translate(calc((var(--tile-size) + var(--tile-gap)) * 2),calc((var(--tile-size) + var(--tile-gap)) * 2))}.tile.tile-position-4-3{transform:translate(calc((var(--tile-size) + var(--tile-gap)) * 3),calc((var(--tile-size) + var(--tile-gap)) * 2))}.tile.tile-position-1-4{transform:translate(0,calc((var(--tile-size) + var(--tile-gap)) * 3))}.tile.tile-position-2-4{transform:translate(calc(var(--tile-size) + var(--tile-gap)),calc((var(--tile-size) + var(--tile-gap)) * 3))}.tile.tile-position-3-4{transform:translate(calc((var(--tile-size) + var(--tile-gap)) * 2),calc((var(--tile-size) + var(--tile-gap)) * 3))}.tile.tile-position-4-4{transform:translate(calc((var(--tile-size) + var(--tile-gap)) * 3),calc((var(--tile-size) + var(--tile-gap)) * 3))}.overlay-screen{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(238,228,218,.73);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;border-radius:12px;z-index:10;animation:.4s ease-out fadeIn}.overlay-content{text-align:center}.overlay-content h2{font-size:2.2rem;font-weight:800;color:var(--text-dark);margin-bottom:8px}.overlay-content p{font-size:.95rem;color:#8f7a66;margin-bottom:20px;font-weight:600}.primary-btn{background:#8f7a66;color:#fff;border:none;border-radius:6px;padding:10px 24px;font-size:.95rem;font-weight:800;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.1);transition:background-color .2s,transform .1s}.primary-btn:hover{background:#7f6a56}.primary-btn:active{transform:scale(.97)}.game-instruction{font-size:.72rem;color:#8f7a66;line-height:1.5;text-align:center;border-top:1px solid #e5dec9;padding-top:12px;margin-top:8px;flex-shrink:0}.hidden{display:none!important}@keyframes spawn{0%{scale:0;opacity:0}100%{scale:1;opacity:1}}@keyframes pop{0%,100%{scale:1}50%{scale:1.25}}@keyframes pulse{0%{box-shadow:0 0 15px rgba(237,194,46,.7)}100%{box-shadow:0 0 35px rgba(237,194,46,.95)}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@media (max-width:520px){:root{--tile-size:calc((100vw - 32px - (var(--container-padding) * 2) - (10px * 3)) / 4);--tile-gap:8px;--container-padding:8px}.app-container{padding:8px 12px}.logo-text{font-size:2.2rem}.subtitle-text{font-size:.7rem}.score-box{padding:4px 6px;min-width:50px}.box-val{font-size:.95rem}.action-btn{padding:5px 12px;font-size:.78rem}.grid-cell,.tile{border-radius:6px}.leaderboard-section{padding:6px 8px;margin-top:4px}.leaderboard-table{font-size:.75rem}.leaderboard-table td,.leaderboard-table th{padding:2px 4px}.game-instruction{padding-top:6px;margin-top:4px;font-size:.65rem}}.leaderboard-section{background:var(--bg-container);border-radius:8px;padding:10px 14px;margin-top:10px;box-shadow:0 4px 10px rgba(0,0,0,.05);flex-shrink:0}.leaderboard-header h3{font-size:.9rem;color:#eee4da;font-weight:800;margin-bottom:8px;text-align:center;letter-spacing:.5px}.leaderboard-table{width:100%;border-collapse:collapse;font-size:.8rem;color:#fff}.leaderboard-table td,.leaderboard-table th{padding:5px 8px;text-align:center}.leaderboard-table th{color:#eee4da;font-weight:700;border-bottom:1.5px solid rgba(238,228,218,.25)}.leaderboard-table td{border-bottom:1px solid rgba(238,228,218,.12);font-weight:600}.leaderboard-table tr:last-child td{border-bottom:none}.leaderboard-rank-1{color:#f2b179;font-weight:800}.leaderboard-rank-2{color:#edcf72;font-weight:800}.leaderboard-rank-3{color:#eee4da;font-weight:800}.modal-card{background:#faf8ef;padding:24px;border-radius:12px;width:85%;max-width:310px;box-shadow:0 10px 30px rgba(0,0,0,.2);border:3px solid #bbada0;animation:180ms ease-out pop}#player-name-input{width:100%;padding:10px;border:2px solid #bbada0;border-radius:6px;font-size:1rem;font-weight:700;color:var(--text-dark);background:#fff;text-align:center;outline:0;transition:border-color .2s}#player-name-input:focus{border-color:#8f7a66}.seo-description{position:absolute;top:220vh;left:50%;transform:translateX(-50%);width:100%;max-width:600px;padding:24px 16px;color:#8f7a66;font-size:.8rem;line-height:1.6;box-sizing:border-box;pointer-events:none}.seo-description h2{font-size:1rem;margin-bottom:8px;color:#776e65}.seo-description p{margin-bottom:12px}