* {
    box-sizing: border-box
}

body {
    font-family: Inter, Segoe UI, Arial, sans-serif;
    background: linear-gradient(180deg, #0b1020, #061024);
    color: #e6eef8;
    display: flex;
    min-height: 100vh;
    align-items: center;
    justify-content: center;
    margin: 0
}

.puzzle {
    width: 360px;
    padding: 20px
}

.puzzle__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px
}

h1 {
    font-size: 20px;
    margin: 0
}

.controls button {
    background: linear-gradient(135deg, #58a6ff, #a855f7);
    border: none;
    color: #051024;
    padding: 8px 12px;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 700
}

.controls button:disabled {
    opacity: 0.5;
    cursor: not-allowed
}

.board {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    background: rgba(255, 255, 255, 0.02);
    padding: 10px;
    border-radius: 12px
}

.tile {
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #1270d6, #3a2a7a);
    border-radius: 8px;
    font-weight: 800;
    color: white;
    font-size: 20px;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(3, 6, 18, 0.5);
    transition: transform 140ms ease
}

.tile.empty {
    background: transparent;
    box-shadow: none;
    cursor: default
}

.hint {
    opacity: 0.85;
    color: var(--text-300);
    font-size: 13px;
    margin-top: 12px
}