:root{--bg-color: #0a0a0f;--container-bg: #1a1a2e;--text-color: #fff;--text-light: #fff;--btn-bg: #e94560;--btn-hover: #ff6b6b;--cell-bg: rgba(255, 255, 255, .05);--tile-2: #ff00ff;--tile-4: #00ffff;--tile-8: #ff6600;--tile-16: #ff0066;--tile-32: #6600ff;--tile-64: #00ff66;--tile-128: #e6b800;--tile-256: #ff3399;--tile-512: #33ff99;--tile-1024: #9933ff;--tile-2048: #ff9933;--tile-super: #ff9933;--tile-shadow: 0 0 20px currentColor;--title-color: #e94560;--score-bg: #16213e;--font-family: "Tilt Neon", sans-serif;--tile-radius: 8px;--tile-font-weight: bold;--cell-border: 1px solid rgba(255, 255, 255, .1);--tile-border: 2px solid currentColor}*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0}body{min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-color);display:flex;justify-content:center;align-items:center;transition:background-color .3s ease;overflow-y:auto}.container{max-width:500px;width:100%;padding:20px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.title{display:flex;flex-direction:column;align-items:center;line-height:1}.title-digits{font-family:Neonderthaw,cursive;font-size:5rem;letter-spacing:.02em;text-shadow:0 0 20px var(--title-color),0 0 40px var(--title-color);animation:neon-flicker 3s infinite}.title-digits .d-2{color:#f0f;text-shadow:0 0 20px #ff00ff,0 0 40px #ff00ff}.title-digits .d-0{color:#0ff;text-shadow:0 0 20px #00ffff,0 0 40px #00ffff}.title-digits .d-4{color:#f60;text-shadow:0 0 20px #ff6600,0 0 40px #ff6600}.title-digits .d-8{color:#0f6;text-shadow:0 0 20px #00ff66,0 0 40px #00ff66}.title-fusion{font-size:1.8rem;color:#f8f8f8!important;text-shadow:0 0 10px #fff,0 0 20px rgba(255,255,255,.5);letter-spacing:.3em;font-weight:400;text-transform:uppercase}.scores{display:flex;gap:10px}.score-box{background-color:var(--score-bg);padding:10px 15px;border-radius:6px;text-align:center;min-width:80px;border:2px solid rgba(255,0,255,.6);box-shadow:0 0 20px #f0f6,0 0 40px #ff69b433}.score-label{display:block;font-size:.75rem;text-transform:uppercase;color:var(--text-light);opacity:.7}.score-value{display:block;font-size:1.5rem;font-weight:700;color:var(--text-light)}.controls{display:flex;gap:10px;margin-bottom:20px;justify-content:flex-start;transition:filter .3s ease,opacity .3s ease}#undo{margin-left:auto}.container.overlay-active .controls{filter:blur(4px);opacity:.3;pointer-events:none}.btn{background:linear-gradient(135deg,#f0f,#ff69b4);border:2px solid #ff69b4;padding:10px 20px;border-radius:8px;color:#fff;font-size:.9rem;font-weight:700;cursor:pointer;box-shadow:0 0 15px #f0f6,inset 0 0 10px #fff3;text-shadow:0 0 10px rgba(255,255,255,.8);transition:all .2s ease}.btn:hover:not(:disabled){box-shadow:0 0 25px #f0f9,inset 0 0 15px #ffffff4d;transform:scale(1.02)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-icon{padding:10px 12px;font-size:1.2rem;min-width:auto}.game-container{position:relative;background-color:var(--container-bg);border-radius:10px;padding:15px}.grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:15px;aspect-ratio:1}.cell{background-color:var(--cell-bg);border-radius:var(--tile-radius);border:var(--cell-border)}.tile{position:absolute;display:flex;justify-content:center;align-items:center;font-size:2.5rem;font-weight:var(--tile-font-weight);border-radius:var(--tile-radius);transition:top .15s cubic-bezier(.25,.46,.45,.94),left .15s cubic-bezier(.25,.46,.45,.94),transform .1s ease;-webkit-user-select:none;user-select:none;border:var(--tile-border);box-shadow:var(--tile-shadow);text-shadow:0 0 5px currentColor;z-index:10}.tile-2{background-color:var(--tile-2);color:#fff}.tile-4{background-color:var(--tile-4);color:#fff}.tile-8{background-color:var(--tile-8);color:#fff}.tile-16{background-color:var(--tile-16);color:#fff}.tile-32{background-color:var(--tile-32);color:#fff}.tile-64{background-color:var(--tile-64);color:#fff}.tile-128{background-color:var(--tile-128);color:#fff;font-size:2rem}.tile-256{background-color:var(--tile-256);color:#fff;font-size:2rem}.tile-512{background-color:var(--tile-512);color:#fff;font-size:2rem}.tile-1024{background-color:var(--tile-1024);color:#fff;font-size:1.75rem}.tile-2048{background-color:var(--tile-2048);color:#fff;font-size:1.75rem}.tile-super{background-color:var(--tile-super);color:#fff;font-size:1.5rem}.game-message{position:absolute;inset:0;background:#0a0a0fd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;opacity:0;visibility:hidden;transition:all .3s ease}.game-message.active{opacity:1;visibility:visible}.game-message p{font-size:3rem;font-weight:700;color:#fff;margin-bottom:20px;text-shadow:0 0 20px var(--title-color)}.game-message .message-actions{display:flex;gap:15px}.btn-secondary{background:linear-gradient(135deg,#0ff,#00b7ff)!important;border-color:#00b7ff!important;box-shadow:0 0 15px #0ff6,inset 0 0 10px #fff3!important}.btn-secondary:hover:not(:disabled){box-shadow:0 0 25px #0ff9,inset 0 0 15px #ffffff4d!important}.btn-tertiary{background:linear-gradient(135deg,#f60,#f93)!important;border-color:#f93!important;box-shadow:0 0 15px #f606,inset 0 0 10px #fff3!important}.btn-tertiary:hover:not(:disabled){box-shadow:0 0 25px #f609,inset 0 0 15px #ffffff4d!important}.instructions{margin-top:30px;font-size:.9rem;opacity:.8;text-align:center;line-height:1.6}.instructions strong{color:#ff69b4;text-shadow:0 0 5px #ff69b4}.instructions-desktop{display:block}.instructions-mobile{display:none}@media(max-width:520px){.container{padding:10px}.header,.controls{margin-bottom:10px}.instructions-desktop{display:none}.instructions-mobile{display:block;margin-top:15px}.title-digits{font-size:3.5rem}.title-fusion{font-size:1.4rem}.game-message p{font-size:2.2rem}}.about-link{display:block;text-align:center;margin-top:15px;color:#fff;text-decoration:none;font-size:.9rem;opacity:.6;transition:opacity .2s ease}.about-link:hover{opacity:1;text-shadow:0 0 10px #fff}@keyframes neon-flicker{0%,18%,22%,25%,53%,57%,to{opacity:1;text-shadow:0 0 20px currentColor,0 0 40px currentColor,0 0 60px currentColor}20%,24%,55%{opacity:.7;text-shadow:0 0 10px currentColor}}.tile-new{animation:appear .2s ease .1s;animation-fill-mode:backwards}.tile-merged{z-index:20;animation:pop .2s ease}@keyframes appear{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes shake-left{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.shake-left{animation:shake-left .2s}@keyframes shake-right{0%,to{transform:translate(0)}25%{transform:translate(10px)}75%{transform:translate(-10px)}}.shake-right{animation:shake-right .2s}@keyframes shake-up{0%,to{transform:translateY(0)}25%{transform:translateY(-10px)}75%{transform:translateY(10px)}}.shake-up{animation:shake-up .2s}@keyframes shake-down{0%,to{transform:translateY(0)}25%{transform:translateY(10px)}75%{transform:translateY(-10px)}}.shake-down{animation:shake-down .2s}
