*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;background:#faf8ef;color:#776e65;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html,body,#root{height:100%;height:100vh;height:100dvh}#root{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.game *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button{font-family:inherit;outline:none}*{touch-action:manipulation}.tile{position:absolute;width:100px;height:100px;border-radius:8px;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:32px;transition:all .15s ease-in-out;animation:tile-appear .2s ease-in-out;z-index:10;box-shadow:0 4px 8px #0003,0 2px 4px #0000001a,inset 0 1px #ffffff4d;border:1px solid rgba(0,0,0,.1);background-image:linear-gradient(135deg,#fff3,#fff0,#0000001a);text-shadow:0 1px 2px rgba(0,0,0,.3);transform:translateZ(0)}@keyframes tile-appear{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.tile-position-0-0{top:0;left:0}.tile-position-0-1{top:0;left:110px}.tile-position-0-2{top:0;left:220px}.tile-position-0-3{top:0;left:330px}.tile-position-1-0{top:110px;left:0}.tile-position-1-1{top:110px;left:110px}.tile-position-1-2{top:110px;left:220px}.tile-position-1-3{top:110px;left:330px}.tile-position-2-0{top:220px;left:0}.tile-position-2-1{top:220px;left:110px}.tile-position-2-2{top:220px;left:220px}.tile-position-2-3{top:220px;left:330px}.tile-position-3-0{top:330px;left:0}.tile-position-3-1{top:330px;left:110px}.tile-position-3-2{top:330px;left:220px}.tile-position-3-3{top:330px;left:330px}.tile-2{background:linear-gradient(135deg,#f5f0e8,#eee4da,#e6d8c6);color:#776e65;border-color:#eee4dacc;box-shadow:0 4px 8px #00000026,0 2px 4px #0000001a,inset 0 1px #fff6,inset 0 -1px #eee4dacc}.tile-4{background:linear-gradient(135deg,#f4e7d1,#ede0c8,#e5d6b5);color:#776e65;border-color:#ede0c8cc;box-shadow:0 4px 8px #00000026,0 2px 4px #0000001a,inset 0 1px #fff6,inset 0 -1px #ede0c8cc}.tile-8{background:linear-gradient(135deg,#f5c088,#f2b179,#ef9f5f);color:#f9f6f2;border-color:#f2b179cc;box-shadow:0 5px 10px #0003,0 2px 4px #00000026,inset 0 1px #ffffff4d,inset 0 -1px #f2b179cc}.tile-16{background:linear-gradient(135deg,#f8a372,#f59563,#f28749);color:#f9f6f2;border-color:#f59563cc;box-shadow:0 5px 10px #0003,0 2px 4px #00000026,inset 0 1px #ffffff4d,inset 0 -1px #f59563cc}.tile-32{background:linear-gradient(135deg,#f9856e,#f67c5f,#f36d4c);color:#f9f6f2;border-color:#f67c5fcc;box-shadow:0 5px 10px #00000040,0 2px 4px #0003,inset 0 1px #ffffff4d,inset 0 -1px #f67c5fcc}.tile-64{background:linear-gradient(135deg,#f96e4a,#f65e3b,#f34e28);color:#f9f6f2;border-color:#f65e3bcc;box-shadow:0 6px 12px #00000040,0 2px 4px #0003,inset 0 1px #ffffff4d,inset 0 -1px #f65e3bcc}.tile-128{background:linear-gradient(135deg,#f1d681,#edcf72,#e9c863);color:#f9f6f2;font-size:28px;border-color:#edcf72cc;box-shadow:0 6px 12px #0000004d,0 3px 6px #0003,inset 0 1px #fff6,inset 0 -1px #edcf72cc,0 0 20px #edcf724d}.tile-256{background:linear-gradient(135deg,#f1d370,#edcc61,#e9c552);color:#f9f6f2;font-size:28px;border-color:#edcc61cc;box-shadow:0 6px 12px #0000004d,0 3px 6px #0003,inset 0 1px #fff6,inset 0 -1px #edcc61cc,0 0 25px #edcc6166}.tile-512{background:linear-gradient(135deg,#f1d05f,#edc850,#e9c141);color:#f9f6f2;font-size:28px;border-color:#edc850cc;box-shadow:0 7px 14px #0000004d,0 3px 6px #0003,inset 0 1px #fff6,inset 0 -1px #edc850cc,0 0 30px #edc85080}.tile-1024{background:linear-gradient(135deg,#f1cd4e,#edc53f,#e9bd30);color:#f9f6f2;font-size:24px;border-color:#edc53fcc;box-shadow:0 8px 16px #00000059,0 4px 8px #00000040,inset 0 2px #ffffff80,inset 0 -2px #edc53fcc,0 0 40px #edc53f99;transform:translateZ(2px)}.tile-2048{background:linear-gradient(135deg,#f1ca3d,#edc22e,#e9ba1f);color:#f9f6f2;font-size:24px;border-color:#edc22ee6;box-shadow:0 10px 20px #0006,0 5px 10px #0000004d,inset 0 2px #fff9,inset 0 -2px #edc22ee6,0 0 50px #f3d774cc,0 0 100px #f3d77466;transform:translateZ(4px);animation:tile-glow 2s ease-in-out infinite alternate}@keyframes tile-glow{0%{box-shadow:0 10px 20px #0006,0 5px 10px #0000004d,inset 0 2px #fff9,inset 0 -2px #edc22ee6,0 0 50px #f3d774cc,0 0 100px #f3d77466}to{box-shadow:0 12px 24px #0006,0 6px 12px #0000004d,inset 0 2px #ffffffb3,inset 0 -2px #edc22ee6,0 0 60px #f3d774,0 0 120px #f3d77499}}.tile-4096,.tile-8192,.tile-16384,.tile-32768,.tile-65536{background:linear-gradient(135deg,#454340,#3c3a32,#333129);color:#f9f6f2;font-size:20px;border-color:#3c3a32cc;box-shadow:0 8px 16px #00000080,0 4px 8px #0000004d,inset 0 1px #fff3,inset 0 -1px #3c3a32cc,0 0 30px #3c3a3266;text-shadow:0 2px 4px rgba(0,0,0,.5)}@media (max-width: 520px){.tile{width:70px;height:70px;font-size:24px;border-radius:6px;box-shadow:0 3px 6px #0003,0 1px 3px #0000001a,inset 0 1px #ffffff4d;text-shadow:0 1px 2px rgba(0,0,0,.3)}.tile-position-0-0{top:0;left:0}.tile-position-0-1{top:0;left:80px}.tile-position-0-2{top:0;left:160px}.tile-position-0-3{top:0;left:240px}.tile-position-1-0{top:80px;left:0}.tile-position-1-1{top:80px;left:80px}.tile-position-1-2{top:80px;left:160px}.tile-position-1-3{top:80px;left:240px}.tile-position-2-0{top:160px;left:0}.tile-position-2-1{top:160px;left:80px}.tile-position-2-2{top:160px;left:160px}.tile-position-2-3{top:160px;left:240px}.tile-position-3-0{top:240px;left:0}.tile-position-3-1{top:240px;left:80px}.tile-position-3-2{top:240px;left:160px}.tile-position-3-3{top:240px;left:240px}.tile-128,.tile-256,.tile-512{font-size:20px}.tile-1024,.tile-2048{font-size:18px}.tile-4096,.tile-8192,.tile-16384,.tile-32768,.tile-65536{font-size:16px}}.grid-container{position:relative;width:460px;height:460px;margin:0 auto;background:#bbada0;border-radius:10px;padding:15px;box-shadow:0 4px 20px #0000001a}.grid-tiles{position:absolute;top:15px;left:15px;width:430px;height:430px;display:grid;grid-template-columns:repeat(4,100px);grid-template-rows:repeat(4,100px);gap:10px}.grid-cell{background:#eee4da59;border-radius:6px;position:relative}@media (max-width: 520px){.grid-container{width:320px;height:320px;padding:10px}.grid-tiles{top:10px;left:10px;width:300px;height:300px;grid-template-columns:repeat(4,70px);grid-template-rows:repeat(4,70px);gap:10px}}.game-info{display:flex;gap:15px}.score-container{background:linear-gradient(135deg,#cbb5a5,#bbada0,#ab9d90);color:#fff;padding:15px 20px;border-radius:8px;text-align:center;min-width:80px;border:1px solid rgba(0,0,0,.2);box-shadow:0 4px 8px #0003,0 2px 4px #0000001a,inset 0 1px #ffffff4d,inset 0 -1px #bbada0cc;text-shadow:0 1px 2px rgba(0,0,0,.3);transform:translateZ(0);transition:all .2s ease}.score-label{font-size:13px;font-weight:700;text-transform:uppercase;margin-bottom:5px;opacity:.9;text-shadow:0 1px 2px rgba(0,0,0,.4);letter-spacing:.5px}.score-value{font-size:24px;font-weight:700;line-height:1;text-shadow:0 2px 4px rgba(0,0,0,.5);letter-spacing:1px}.score-container:last-child{background:linear-gradient(135deg,#f1d681,#edcf72,#e9c863);border-color:#edcf72cc;box-shadow:0 5px 10px #00000040,0 2px 5px #00000026,inset 0 1px #fff6,inset 0 -1px #edcf72cc,0 0 15px #edcf724d;transform:translateZ(2px)}.score-container:last-child .score-value{color:#8f7a66;text-shadow:0 1px 2px rgba(255,255,255,.3);font-weight:900}.score-container:last-child .score-label{color:#8f7a66;text-shadow:0 1px 2px rgba(255,255,255,.3);opacity:1}.score-container:hover{transform:translateY(-1px) translateZ(2px);box-shadow:0 6px 12px #00000040,0 3px 6px #00000026,inset 0 1px #fff6,inset 0 -1px #bbada0cc}.score-container:last-child:hover{transform:translateY(-1px) translateZ(4px);box-shadow:0 7px 14px #0000004d,0 3px 7px #0003,inset 0 1px #ffffff80,inset 0 -1px #edcf72cc,0 0 20px #edcf7266}@media (max-width: 520px){.game-info{justify-content:center;width:100%}.score-container{flex:1;max-width:120px}.score-value{font-size:20px}}.game{width:100%;max-width:500px;margin:0 auto;padding:20px;text-align:center;font-family:Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif}.game-header{margin-bottom:30px}.game-title{font-size:48px;font-weight:700;color:#776e65;margin:0 0 20px;text-shadow:0 0 6px rgba(119,110,101,.3)}.game-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:20px}.control-buttons{display:flex;gap:10px;align-items:center}.sound-button{background:linear-gradient(135deg,#a08a7a,#8f7a66,#7f6a56);color:#f9f6f2;border:1px solid rgba(0,0,0,.2);border-radius:8px;padding:12px;font-size:18px;cursor:pointer;transition:all .2s ease;min-width:48px;height:48px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 8px #0003,0 2px 4px #0000001a,inset 0 1px #ffffff4d,inset 0 -1px #8f7a66cc;text-shadow:0 1px 2px rgba(0,0,0,.3);transform:translateZ(0)}.sound-button:hover{background:linear-gradient(135deg,#b19a8a,#9f8a76,#8f7a66);transform:translateY(-2px) translateZ(2px);box-shadow:0 6px 12px #00000040,0 3px 6px #00000026,inset 0 1px #fff6,inset 0 -1px #9f8a76cc}.sound-button:active{transform:translateY(0) translateZ(0);box-shadow:0 2px 4px #0003,0 1px 2px #0000001a,inset 0 1px #fff3,inset 0 -1px #8f7a6699}.restart-button{background:linear-gradient(135deg,#a08a7a,#8f7a66,#7f6a56);color:#f9f6f2;border:1px solid rgba(0,0,0,.2);border-radius:8px;padding:12px 24px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 8px #0003,0 2px 4px #0000001a,inset 0 1px #ffffff4d,inset 0 -1px #8f7a66cc;text-shadow:0 1px 2px rgba(0,0,0,.3);transform:translateZ(0)}.restart-button:hover{background:linear-gradient(135deg,#b19a8a,#9f8a76,#8f7a66);transform:translateY(-2px) translateZ(2px);box-shadow:0 6px 12px #00000040,0 3px 6px #00000026,inset 0 1px #fff6,inset 0 -1px #9f8a76cc}.restart-button:active{transform:translateY(0) translateZ(0);box-shadow:0 2px 4px #0003,0 1px 2px #0000001a,inset 0 1px #fff3,inset 0 -1px #8f7a6699}.game-container{position:relative;margin-bottom:30px}.game-message{position:absolute;top:0;left:0;right:0;bottom:0;background:#eee4daf2;display:flex;align-items:center;justify-content:center;z-index:100;border-radius:10px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.message-content{text-align:center;color:#776e65}.message-content h2{font-size:32px;margin:0 0 10px;font-weight:700}.message-content p{font-size:18px;margin:0 0 20px}.message-buttons{display:flex;gap:15px;justify-content:center}.message-buttons button{background:linear-gradient(135deg,#a08a7a,#8f7a66,#7f6a56);color:#f9f6f2;border:1px solid rgba(0,0,0,.2);border-radius:6px;padding:10px 20px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 6px #0003,0 1px 3px #0000001a,inset 0 1px #ffffff4d,inset 0 -1px #8f7a66cc;text-shadow:0 1px 2px rgba(0,0,0,.3);transform:translateZ(0)}.message-buttons button:hover{background:linear-gradient(135deg,#b19a8a,#9f8a76,#8f7a66);transform:translateY(-2px) translateZ(2px);box-shadow:0 5px 10px #00000040,0 2px 5px #00000026,inset 0 1px #fff6,inset 0 -1px #9f8a76cc}.message-buttons button:active{transform:translateY(0) translateZ(0);box-shadow:0 2px 4px #0003,0 1px 2px #0000001a,inset 0 1px #fff3,inset 0 -1px #8f7a6699}.game-instructions{background:#faf8ef;padding:15px;border-radius:8px;margin-top:20px;border:1px solid #ededed}.game-instructions p{margin:0 0 8px;color:#776e65;font-size:14px;line-height:1.5}.game-instructions p:last-child{margin-bottom:0}.instruction-desktop{display:block}.instruction-mobile{display:none}@media (max-width: 520px){.game{padding:10px}.game-title{font-size:36px}.game-controls{flex-direction:column;gap:15px}.control-buttons{flex-direction:row;width:100%;justify-content:center}.restart-button{flex:1}.sound-button{min-width:48px}.message-content h2{font-size:24px}.message-content p{font-size:16px}.message-buttons{flex-direction:column}.message-buttons button{width:100%}.instruction-desktop{display:none}.instruction-mobile{display:block}.game-instructions{padding:12px;margin-top:15px}.game-instructions p{font-size:13px}}@media (min-width: 521px) and (max-width: 768px){.game{padding:15px}.game-title{font-size:42px}.instruction-desktop,.instruction-mobile{display:block}}@media (hover: none) and (pointer: coarse){.instruction-desktop{display:none}.instruction-mobile{display:block}.sound-button,.restart-button,.message-buttons button{min-height:48px;padding:12px 16px}}.App{min-height:100vh;background:linear-gradient(135deg,#faf8ef,#f2f1eb);display:flex;align-items:center;justify-content:center;padding:20px}
