:root{--bg: #f4f4f9;--card: #ffffff;--primary: #3182f6;--primary-dark: #1b64da;--text: #191f28;--text-secondary: #8b95a1;--grid-bg: #cdc1b4;--cell-bg: #eee4da59;--radius: 12px;--radius-lg: 16px;--shadow: 0 2px 8px rgba(0,0,0,.08);--tile-gap: 8px;--header-height: 60px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Pretendard,Noto Sans KR,sans-serif;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:none}#app{max-width:480px;margin:0 auto;height:100%;display:flex;flex-direction:column;position:relative}.screen-start{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;background:linear-gradient(160deg,#f4f4f9,#e8f0fe)}.start-content{text-align:center;padding:32px}.logo{font-size:72px;margin-bottom:16px}.start-content h1{font-size:36px;font-weight:800;margin-bottom:8px}.subtitle{color:var(--text-secondary);margin-bottom:32px;font-size:16px}.best-score-display{margin-top:16px;color:var(--text-secondary);font-size:14px}.btn-primary{background:var(--primary);color:#fff;border:none;padding:14px 48px;border-radius:100px;font-size:18px;font-weight:700;cursor:pointer;transition:all .15s}.btn-primary:active{background:var(--primary-dark);transform:scale(.97)}.btn-secondary{background:transparent;color:var(--text-secondary);border:1.5px solid #d5dce4;padding:12px 40px;border-radius:100px;font-size:16px;font-weight:600;cursor:pointer;margin-top:12px}.btn-icon{background:var(--card);border:1px solid #e5e8eb;border-radius:10px;width:40px;height:40px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.screen-game{display:flex;flex-direction:column;height:100%}.game-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;height:var(--header-height)}.game-title{font-size:22px;font-weight:800}.header-right{display:flex;gap:8px}.score-box{background:var(--primary);color:#fff;border-radius:var(--radius);padding:4px 14px;text-align:center;min-width:70px}.score-box.best{background:#f59f00}.score-label{font-size:10px;text-transform:uppercase;opacity:.85;font-weight:600}.score-value{font-size:18px;font-weight:800}.toolbar{display:flex;gap:8px;padding:0 16px 8px}.game-container{position:relative;width:calc(100vw - 32px);max-width:448px;aspect-ratio:1;margin:0 auto;background:var(--grid-bg);border-radius:var(--radius-lg);padding:var(--tile-gap);box-shadow:var(--shadow)}.grid-bg{position:absolute;inset:0;padding:var(--tile-gap);display:grid;grid-template:repeat(4,1fr) / repeat(4,1fr);gap:var(--tile-gap)}.grid-cell{background:var(--cell-bg);border-radius:var(--radius)}.tile-container{position:absolute;inset:0;padding:var(--tile-gap);display:grid;grid-template:repeat(4,1fr) / repeat(4,1fr);gap:var(--tile-gap)}.tile{display:flex;align-items:center;justify-content:center;font-weight:800;border-radius:var(--radius);font-size:clamp(1.2rem,5vw,2rem);z-index:1}.tile-new{animation:tileAppear .2s ease}.tile-merge{animation:tilePop .2s ease;z-index:2}@keyframes tileAppear{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes tilePop{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.tile-2{background:#eee4da;color:#776e65}.tile-4{background:#ede0c8;color:#776e65}.tile-8{background:#f2b179;color:#fff}.tile-16{background:#f59563;color:#fff}.tile-32{background:#f67c5f;color:#fff}.tile-64{background:#f65e3b;color:#fff}.tile-128{background:#edcf72;color:#fff}.tile-256{background:#edcc61;color:#fff}.tile-512{background:#edc850;color:#fff}.tile-1024{background:#edc53f;color:#fff}.tile-2048{background:#edc22e;color:#fff}.tile-super{background:#3c3a32;color:#fff}.game-hint{text-align:center;color:var(--text-secondary);font-size:13px;padding:12px}.overlay{position:fixed;inset:0;background:#00000073;z-index:100;display:flex;justify-content:center;align-items:center;animation:fadeIn .2s ease}.overlay-content{background:var(--card);border-radius:20px;padding:32px;text-align:center;max-width:320px;width:90%;box-shadow:0 8px 32px #00000026}.overlay-content h2{margin-bottom:12px;font-size:24px}.overlay-content p{color:var(--text-secondary);margin-bottom:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@supports (padding: env(safe-area-inset-top)){.game-header{padding-top:calc(12px + env(safe-area-inset-top))}}
