.game-shell { min-height: 100dvh; padding: clamp(var(--size-md), 2vw, var(--size-xl)); } .game-card { max-width: 1400px; margin: 0 auto; background: var(--color-bg-main); border: var(--border-width) solid var(--color-border); border-radius: var(--border-radius-lg); padding: clamp(var(--size-lg), 2vw, var(--size-xl)); box-shadow: var(--shadow-md); } header { margin-bottom: var(--size-xl); } h1, h2 { color: var(--color-text-primary); margin: 0 0 var(--size-md); font-size: var(--heading-h1); } .meta { color: var(--color-text-primary); font-size: 0.95rem; } .back-link { display: inline-block; margin-bottom: var(--size-sm); color: var(--color-text-primary); text-decoration: none; font-weight: 600; } .back-link:hover { text-decoration: underline; } .top-section { display: grid; gap: var(--size-md); margin-top: var(--size-sm); flex: 0 0 auto; } .move-card { padding: var(--size-lg-padding); } .move-card .btn { align-self: flex-start; width: auto; } .center-column { width: 100%; } .board-section { background: var(--color-bg-board); border: var(--border-width) solid var(--color-border); border-radius: var(--border-radius-md); padding: clamp(var(--size-sm), 1vw, var(--size-lg)); min-height: 400px; container-type: size; } .alert { border-radius: var(--border-radius-sm); border: var(--border-width) solid var(--color-border); } .game-completion-alert { background: linear-gradient(135deg, var(--color-secondary-mint, #B9DAD1) 0%, var(--color-secondary-blue, #B9C2DA) 100%); border: 2px solid var(--color-secondary-mint, #B9DAD1) !important; border-radius: var(--border-radius-lg) !important; padding: var(--size-xl-padding) !important; box-shadow: 0 8px 16px rgba(185, 218, 209, 0.3); animation: slideIn 0.4s ease-out; } @keyframes slideIn { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } .completion-title { color: var(--color-text-primary); font-size: 1.75rem; margin: 0 0 var(--size-md) 0; font-weight: 700; text-align: center; } .completion-subtitle { text-align: center; color: var(--color-text-primary); font-size: 1rem; } .completion-link { color: var(--color-text-primary); text-decoration: none; font-weight: 600; border-bottom: 2px solid var(--color-text-primary); transition: all 0.3s ease; padding-bottom: 2px; } .completion-link:hover { color: var(--color-secondary-blue); border-bottom-color: var(--color-secondary-blue); } @media (max-width: 991px) { .game-card { padding: clamp(var(--size-md), 1.5vw, var(--size-lg)); } .board-section { min-height: 350px; } h1, h2 { font-size: var(--heading-h1-tablet); } } @media (max-width: 768px) { .game-shell { padding: clamp(var(--size-sm), 1.5vw, var(--size-lg)); } .game-card { padding: clamp(var(--size-sm), 1vw, var(--size-md)); } header { margin-bottom: var(--size-lg); } h1, h2 { font-size: var(--heading-h1-mobile); } .meta { font-size: 0.85rem; } .top-section { gap: var(--size-xs); margin-bottom: var(--size-xs); } .board-section { min-height: 300px; } } @media (max-width: 480px) { .game-shell { padding: var(--size-sm); } .game-card { padding: var(--size-sm); border-radius: var(--border-radius-md); } header { margin-bottom: var(--size-md); } h1 { font-size: var(--heading-h1-small); } .meta { font-size: 0.75rem; } .top-section { gap: var(--size-xs-gap); margin-bottom: var(--size-xs); } .board-section { min-height: 250px; } }