@font-face{font-family:Geist;src:url(https://cdn.jsdelivr.net/npm/geist@1.0.0/dist/fonts/geist-sans/Geist-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(https://cdn.jsdelivr.net/npm/geist@1.0.0/dist/fonts/geist-sans/Geist-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(https://cdn.jsdelivr.net/npm/geist@1.0.0/dist/fonts/geist-sans/Geist-Black.woff2) format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(https://cdn.jsdelivr.net/npm/geist@1.0.0/dist/fonts/geist-mono/GeistMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(https://cdn.jsdelivr.net/npm/geist@1.0.0/dist/fonts/geist-mono/GeistMono-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg-deep: #050510;--bg-primary: #0a0a1a;--bg-surface: #12122a;--bg-elevated: #1a1a3e;--border-dim: rgba(0, 240, 255, .08);--border-mid: rgba(0, 240, 255, .15);--border-bright: rgba(0, 240, 255, .4);--cyan: #00f0ff;--magenta: #ff00aa;--yellow: #ffee00;--text-primary: #e0e0ff;--text-secondary: #8888aa;--text-dim: #555577;--cell-size: 90px;--cell-gap: 10px;--grid-pad: 12px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--move-duration: .14s;--pop-duration: .2s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent}body{font-family:Geist,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-deep);color:var(--text-primary);min-height:100vh;overflow-x:hidden;line-height:1.6;background-image:radial-gradient(ellipse at 15% 10%,rgba(0,240,255,.04) 0%,transparent 55%),radial-gradient(ellipse at 85% 85%,rgba(255,0,170,.04) 0%,transparent 55%)}.hero{text-align:center;padding:2.5rem 1rem 1rem}.hero h1{font-size:clamp(2rem,5vw,3.2rem);font-weight:900;letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(135deg,var(--cyan) 0%,var(--magenta) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 20px rgba(0,240,255,.3))}.hero .subtitle{color:var(--text-secondary);font-size:clamp(.85rem,2vw,1.05rem);margin-top:.4rem;letter-spacing:.06em}.game-layout{display:flex;justify-content:center;align-items:flex-start;gap:1.5rem;padding:1rem;max-width:1100px;margin:0 auto}.game-column{flex:1;max-width:420px;min-width:0}.score-bar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.score-box{background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:var(--radius-md);padding:.5rem 1.1rem;text-align:center;min-width:100px}.score-label{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.15em;color:var(--text-secondary)}.score-value{display:block;font-size:1.4rem;font-weight:700;font-family:Geist Mono,Courier New,monospace;color:var(--cyan);text-shadow:0 0 10px rgba(0,240,255,.4);transition:transform .15s ease}.score-value.bump{transform:scale(1.15)}.btn-restart{margin-left:auto;background:transparent;border:1px solid var(--magenta);color:var(--magenta);padding:.55rem 1.2rem;border-radius:var(--radius-md);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:all .25s ease}.btn-restart:hover{background:var(--magenta);color:var(--bg-deep);box-shadow:0 0 20px #ff00aa80}.game-container{position:relative;touch-action:none}.grid-board{position:relative;width:calc(4 * var(--cell-size) + 3 * var(--cell-gap) + 2 * var(--grid-pad));height:calc(4 * var(--cell-size) + 3 * var(--cell-gap) + 2 * var(--grid-pad));background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:var(--radius-lg);padding:var(--grid-pad);box-shadow:0 0 40px #00f0ff0f,inset 0 0 60px #0000004d;overflow:hidden}.grid-bg{position:absolute;inset:0;pointer-events:none}.grid-bg span{position:absolute;width:var(--cell-size);height:var(--cell-size);background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border-dim)}.tile-layer{position:absolute;inset:0;pointer-events:none}.tile{position:absolute;width:var(--cell-size);height:var(--cell-size);display:flex;align-items:center;justify-content:center;font-family:Geist Mono,Courier New,monospace;font-weight:800;font-size:1.7rem;border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border-mid);color:var(--text-primary);transition:transform var(--move-duration) ease-in-out;will-change:transform;z-index:1;user-select:none}.tile[data-value="2"]{color:#a0d4db;background:#00c8dc1a;border-color:#00c8dc4d}.tile[data-value="4"]{color:#00d4e6;background:#00d4e61f;border-color:#00d4e666;box-shadow:0 0 8px #00d4e633}.tile[data-value="8"]{color:#00b8ff;background:#00a0ff26;border-color:#00a0ff80;box-shadow:0 0 12px #00a0ff40}.tile[data-value="16"]{color:#38f;background:#2864ff26;border-color:#2864ff80;box-shadow:0 0 16px #2864ff4d}.tile[data-value="32"]{color:#74f;background:#6432ff2e;border-color:#6432ff8c;box-shadow:0 0 20px #6432ff59}.tile[data-value="64"]{color:#b4f;background:#a028ff2e;border-color:#a028ff8c;box-shadow:0 0 24px #a028ff66}.tile[data-value="128"]{color:#f4c;background:#ff28b42e;border-color:#ff28b48c;box-shadow:0 0 28px #ff28b466;font-size:1.5rem}.tile[data-value="256"]{color:#f48;background:#ff286433;border-color:#ff286499;box-shadow:0 0 32px #ff286473;font-size:1.5rem}.tile[data-value="512"]{color:#f84;background:#ff782833;border-color:#ff782899;box-shadow:0 0 36px #ff782873;font-size:1.5rem}.tile[data-value="1024"]{color:#fc0;background:#ffc8002e;border-color:#ffc80099;box-shadow:0 0 40px #ffc80080;font-size:1.3rem}.tile[data-value="2048"]{color:#fff;background:linear-gradient(135deg,#ffc80040,#ff286440);border-color:#ffdc00cc;box-shadow:0 0 30px #ffdc0099,0 0 60px #ff28644d;font-size:1.3rem;animation:pulse-glow 2s ease-in-out infinite}.tile[data-value="4096"],.tile[data-value="8192"]{color:#fff;background:linear-gradient(135deg,#ff00aa40,#00f0ff40,#ffee0040,#ff00aa40);background-size:300% 300%;border-color:#ffffffb3;box-shadow:0 0 50px #ffffff4d;font-size:1.2rem;animation:shimmer 3s ease infinite}.game-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#050510e0;border-radius:var(--radius-lg);z-index:100;opacity:0;pointer-events:none;transition:opacity .4s ease}.game-overlay.visible{opacity:1;pointer-events:auto}.game-overlay h2{font-size:2rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}.game-overlay.game-over h2{color:var(--magenta);text-shadow:0 0 20px rgba(255,0,170,.5)}.game-overlay.won h2{color:var(--yellow);text-shadow:0 0 20px rgba(255,238,0,.5)}.game-overlay p{color:var(--text-secondary);font-size:1rem;margin-bottom:1.5rem}.overlay-buttons{display:flex;gap:.8rem}.btn-overlay{padding:.6rem 1.4rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:all .25s ease}.btn-overlay.primary{background:var(--cyan);border:none;color:var(--bg-deep)}.btn-overlay.primary:hover{box-shadow:0 0 25px #00f0ff80}.btn-overlay.secondary{background:transparent;border:1px solid var(--text-secondary);color:var(--text-secondary)}.btn-overlay.secondary:hover{border-color:var(--text-primary);color:var(--text-primary)}.ad-slot{background:var(--bg-surface);border:1px dashed var(--border-dim);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;min-height:250px}.ad-slot-bottom{margin:1.5rem auto 0;max-width:728px}.content-section{max-width:800px;margin:2.5rem auto;padding:0 1rem}.content-section h2{font-size:1.3rem;color:var(--cyan);margin-bottom:1rem;letter-spacing:.06em}.content-section p{color:var(--text-secondary);margin-bottom:.8rem;font-size:.95rem}.controls-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem;margin:1rem 0}.control-item{background:var(--bg-surface);border:1px solid var(--border-dim);border-radius:var(--radius-md);padding:.8rem 1rem;text-align:center}.control-item kbd{display:inline-block;background:var(--bg-elevated);border:1px solid var(--border-mid);border-radius:4px;padding:.15rem .5rem;font-family:monospace;font-size:.8rem;color:var(--cyan)}.control-item p{color:var(--text-secondary);font-size:.85rem;margin-top:.3rem}.tips-list{list-style:none;padding:0}.tips-list li{color:var(--text-secondary);padding:.5rem 0 .5rem 1.2rem;position:relative;font-size:.92rem}.tips-list li:before{content:"▸";position:absolute;left:0;color:var(--cyan)}.faq-item{background:var(--bg-surface);border:1px solid var(--border-dim);border-radius:var(--radius-md);padding:1rem 1.2rem;margin-bottom:.8rem}.faq-item h3{font-size:.95rem;color:var(--text-primary);margin-bottom:.4rem}.faq-item p{font-size:.88rem;color:var(--text-secondary);margin:0}.site-footer{text-align:center;padding:2rem 1rem;border-top:1px solid var(--border-dim);margin-top:2rem}.site-footer p{color:var(--text-dim);font-size:.8rem}.site-footer a{color:var(--cyan);text-decoration:none}.site-footer a:hover{text-decoration:underline}@keyframes pulse-glow{0%,to{box-shadow:0 0 30px #ffdc0099,0 0 60px #ff28644d}50%{box-shadow:0 0 50px #ffdc00cc,0 0 90px #ff286480}}@keyframes shimmer{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.tile{transition:none!important}}@media(max-width:900px){.game-layout{flex-direction:column;align-items:center}.ad-slot{width:100%;max-width:320px;min-height:100px}}@media(max-width:440px){:root{--cell-size: 68px;--cell-gap: 8px;--grid-pad: 10px}.tile{font-size:1.4rem}.tile[data-value="128"],.tile[data-value="256"],.tile[data-value="512"]{font-size:1.2rem}.tile[data-value="1024"],.tile[data-value="2048"]{font-size:1.05rem}.tile[data-value="4096"],.tile[data-value="8192"]{font-size:.95rem}.hero h1{letter-spacing:.08em}.score-box{min-width:80px;padding:.4rem .7rem}.score-value{font-size:1.15rem}}
