:root {
    --bg: #faf8ef;
    --board: #bbada0;
    --cell: #cdc1b4;
    --dark: #776e65;
    --white: #ffffff;
    --accent: #4CAF50;
}

* {
    box-sizing: border-box
}

html,
body {
    height: 100%
}

body {
    margin: 0;
    background: var(--bg);
    font-family: "Vazirmatn", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    color: var(--dark);
}

.wrap {
    max-width: min(92vw, 560px);
    margin: 24px auto 40px;
    padding: 0 12px;
}

.header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
}

h1 {
    margin: 0;
    line-height: 1.15;
    font-size: clamp(20px, 5vw, 32px);
    font-weight: 800;
}

.scores {
    display: flex;
    gap: 10px
}

.score-box {
    background: #8f7a66;
    color: var(--white);
    padding: 8px 12px;
    border-radius: 8px;
    text-align: center;
    min-width: 84px;
}

.score-box .lbl {
    display: block;
    font-size: 12px;
    opacity: .9
}

.score-box span:last-child {
    display: block;
    font-weight: 700;
    font-size: 18px
}

.controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 14px 0 10px;
    flex-wrap: wrap;
}

.hint {
    font-size: 12px;
    opacity: .8
}

.btn {
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 10px 14px;
    cursor: pointer;
    font-weight: 700;
}

.btn:hover {
    filter: brightness(0.95)
}

.grid {
    background: var(--board);
    border-radius: 12px;
    padding: 10px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    width: 100%;
    aspect-ratio: 1/1;
    /* مربع و رسپانسیو */
}

/* سلول‌های ثابت پس‌زمینه */
.cell {
    background: var(--cell);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: clamp(16px, 6vw, 28px);
    user-select: none;
    transition: transform .06s ease;
}

/* رنگ کاشی‌ها بر اساس مقدار */
.v2 {
    background: #eee4da;
    color: #776e65
}

.v4 {
    background: #ede0c8;
    color: #776e65
}

.v8 {
    background: #f2b179;
    color: #f9f6f2
}

.v16 {
    background: #f59563;
    color: #f9f6f2
}

.v32 {
    background: #f67c5f;
    color: #f9f6f2
}

.v64 {
    background: #f65e3b;
    color: #f9f6f2
}

.v128 {
    background: #edcf72;
    color: #f9f6f2
}

.v256 {
    background: #edcc61;
    color: #f9f6f2
}

.v512 {
    background: #edc850;
    color: #f9f6f2
}

.v1024 {
    background: #edc53f;
    color: #f9f6f2;
    font-size: clamp(14px, 5vw, 24px)
}

.v2048 {
    background: #edc22e;
    color: #f9f6f2;
    font-size: clamp(14px, 5vw, 24px)
}

.v4096 {
    background: #3c3a32;
    color: #f9f6f2;
    font-size: clamp(14px, 5vw, 24px)
}

/* اورلی پایان/برد */
.overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

.hidden {
    display: none
}

.modal {
    background: #fff;
    color: #333;
    padding: 22px 18px;
    border-radius: 12px;
    width: min(92vw, 420px);
    text-align: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .2)
}

.modal h2 {
    margin: 8px 0 6px
}

.modal p {
    margin: 0 0 12px
}

/* جلوگیری از pull-to-refresh/اسکرول حین بازی (جایی که پشتیبانی می‌شود) */
html, body {
  overscroll-behavior: none; /* Chrome/Android */
}

/* روی صفحه بازی، اجازه ژست‌های مرورگر رو محدود کن */
.grid, .wrap, body {
  touch-action: none;       /* Chrome/Edge/Android */
  -ms-touch-action: none;   /* قدیمی‌ها */
  user-select: none;
}
