:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f4fbff;background:#080b16;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--panel: rgba(13, 20, 38, .74);--panel-strong: rgba(18, 28, 52, .88);--line: rgba(190, 235, 255, .22);--cyan: #73e7ff;--violet: #a78bfa;--gold: #ffe08a;--text-muted: #9eb8c7}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;background:radial-gradient(circle at 15% 18%,rgba(80,212,255,.28),transparent 32rem),radial-gradient(circle at 80% 12%,rgba(148,93,255,.24),transparent 30rem),radial-gradient(circle at 52% 96%,rgba(255,214,128,.13),transparent 26rem),linear-gradient(135deg,#070914,#10162b 48%,#050816)}button{font:inherit;color:inherit}.app-shell{min-height:100vh;display:grid;place-items:center;padding:28px;position:relative}.app-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:58px 58px;-webkit-mask-image:radial-gradient(circle at center,black,transparent 75%);mask-image:radial-gradient(circle at center,black,transparent 75%)}.game-panel{width:min(100%,920px);padding:clamp(18px,3vw,34px);border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,#ffffff1c,#ffffff08),var(--panel);box-shadow:0 24px 80px #0000006b,inset 0 1px #ffffff2e;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);position:relative;overflow:hidden}.game-panel:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:27px;pointer-events:none;box-shadow:inset 0 0 64px #73e7ff14}.hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:26px;position:relative;z-index:1}.eyebrow{margin:0 0 8px;color:var(--cyan);font-size:.78rem;font-weight:800;letter-spacing:.16em}h1{margin:0;font-size:clamp(2.4rem,7vw,5.2rem);line-height:.92;letter-spacing:0;text-shadow:0 0 34px rgba(115,231,255,.36)}.subtitle{max-width:30rem;margin:14px 0 0;color:#c4d5df;line-height:1.7}.score-row{display:flex;gap:12px}.score-card,.status-card,.controls{border:1px solid var(--line);background:var(--panel-strong);box-shadow:inset 0 1px #ffffff1f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.score-card{min-width:112px;border-radius:18px;padding:12px 14px;text-align:right}.score-card span,.status-kicker{display:block;color:var(--text-muted);font-size:.78rem;font-weight:800}.score-card strong{display:block;margin-top:4px;color:#fff;font-size:1.55rem;line-height:1}.play-layout{display:grid;grid-template-columns:minmax(300px,560px) minmax(220px,1fr);gap:24px;align-items:stretch;position:relative;z-index:1}.board-wrap{border-radius:24px;padding:clamp(10px,2.4vw,18px);background:linear-gradient(145deg,#73e7ff2e,#a78bfa14),#080e1dd1;border:1px solid rgba(182,233,255,.24);box-shadow:0 18px 48px #00000057,inset 0 0 42px #73e7ff12;touch-action:none}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,2vw,14px);aspect-ratio:1}.cell{border-radius:18px;background:linear-gradient(145deg,#ffffff14,#ffffff06);border:1px solid rgba(255,255,255,.08);min-width:0;position:relative;overflow:hidden}.tile{width:100%;height:100%;display:grid;place-items:center;border-radius:18px;font-weight:900;font-size:clamp(1.35rem,5.2vw,3.4rem);color:#07101e;box-shadow:0 10px 24px #00000047,inset 0 1px #ffffff61;animation:tile-pop .15s ease-out;transition:transform .15s ease,filter .15s ease,box-shadow .15s ease}.tile span{max-width:100%;overflow:hidden;text-overflow:ellipsis}.tile:hover{transform:translateY(-2px)}.tile-2{background:linear-gradient(135deg,#dff8ff,#9cecff)}.tile-4{background:linear-gradient(135deg,#e8ddff,#bca8ff)}.tile-8{background:linear-gradient(135deg,#93f6d7,#4edfc8)}.tile-16{background:linear-gradient(135deg,#ffe7a3,#ffc15f)}.tile-32{background:linear-gradient(135deg,#ffb3d8,#ff6ca8)}.tile-64{background:linear-gradient(135deg,#ff9d8d,#ff5d6c)}.tile-128{background:linear-gradient(135deg,#b2f5ff,#54d6ff);box-shadow:0 0 26px #54d6ff61}.tile-256{background:linear-gradient(135deg,#d6c4ff,#8f7cff);box-shadow:0 0 30px #8f7cff6b}.tile-512{background:linear-gradient(135deg,#fff0a8,#ffcd5f);box-shadow:0 0 34px #ffcd5f75}.tile-1024,.tile-2048{color:#fff;background:linear-gradient(135deg,#50e7ff,#8f7cff 52%,#ff7adf);text-shadow:0 2px 12px rgba(0,0,0,.36);box-shadow:0 0 40px #73e7ff85}.side-panel{display:grid;gap:16px;align-content:start}.status-card{border-radius:22px;padding:20px}.status-card strong{display:block;margin-top:8px;font-size:1.45rem}.status-card p{margin:10px 0 0;color:#c4d5df;line-height:1.6}.status-won{border-color:#ffe08a9e;box-shadow:0 0 38px #ffe08a2e}.status-lost{border-color:#ff69808c}.controls{border-radius:22px;padding:16px}.control-button,.icon-button{border:1px solid rgba(255,255,255,.18);background:linear-gradient(145deg,#ffffff26,#ffffff0f);cursor:pointer;transition:transform .14s ease,border-color .14s ease,background .14s ease}.control-button:hover,.icon-button:hover{transform:translateY(-1px);border-color:#73e7ff8f}.restart-button{width:100%;min-height:48px;border-radius:16px;font-weight:800}.direction-pad{display:grid;grid-template-columns:repeat(3,52px);grid-template-areas:". up ." "left . right" ". down .";justify-content:center;gap:10px;margin-top:16px}.icon-button{width:52px;height:52px;border-radius:16px;font-size:1.2rem;font-weight:900}.up{grid-area:up}.right{grid-area:right}.down{grid-area:down}.left{grid-area:left}@keyframes tile-pop{0%{transform:scale(.9);filter:brightness(1.35)}to{transform:scale(1);filter:brightness(1)}}@media(max-width:760px){.app-shell{padding:14px;align-items:start}.game-panel{border-radius:22px}.hero,.play-layout{grid-template-columns:1fr}.hero{display:grid}.score-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.score-card{min-width:0}.side-panel{grid-template-columns:1fr}}@media(max-width:420px){.board,.direction-pad{gap:8px}.cell,.tile{border-radius:14px}.tile{font-size:clamp(1.05rem,11vw,2.1rem)}}
