.game-tool-description{color: var(--primary-dark);margin: 0;max-width: none;font-size: 1rem;font-weight: 400;line-height: 1.5}.game2048-tool{--game2048-accent: var(--outil-accent,#7c3aed);--game2048-dark: var(--outil-fonce,#173c6c);--game2048-border: #e5e7eb;--game2048-panel-border: #c4b5fd;--game2048-soft: #f8f5ff;--game2048-soft-2: #f3edff;--game2048-text: #111827;--game2048-muted: #6b7280;width: 100%;max-width: none;margin: 0;color: var(--game2048-text)}.game2048-tool *{box-sizing: border-box}.game2048-header{display: flex;justify-content: space-between;gap: 16px;align-items: flex-start;margin-bottom: 16px}.game2048-header h2{margin: 0 0 6px;color: var(--game2048-accent);font-size: 1.55rem}.game2048-header p{margin: 0;color: var(--game2048-muted);line-height: 1.45}.game2048-scoreboxes{display: flex;gap: 10px;flex: 0 0 auto}.game2048-scorebox{min-width: 92px;border: 1px solid var(--game2048-border);border-radius: 14px;padding: 10px 12px;text-align: center;background: #fafafa}.game2048-scorebox span{display: block;color: var(--game2048-muted);font-size: 0.8rem}.game2048-scorebox strong{display: block;color: var(--game2048-accent);font-size: 1.45rem;line-height: 1.1}.game2048-status{margin: 14px 0 18px;padding: 12px 14px;border: 1px solid #ddd1ff;border-radius: 12px;background: var(--game2048-soft);color: var(--game2048-dark);font-weight: 800}.game2048-play-wrap{position: relative;width: min(520px,100%);margin: 0 auto}.game2048-board{display: grid;gap: 12px;width: 100%;aspect-ratio: 1 / 1;padding: 14px;border: 3px solid #111827;border-radius: 18px;background: #1f3f69;box-shadow: 0 12px 30px rgba(17,24,39,0.16);outline: none;touch-action: none;user-select: none;-webkit-user-select: none;cursor: grab}.game2048-row{display: grid;grid-template-columns: repeat(4,minmax(0,1fr));gap: 12px;min-width: 0}.game2048-board:active{cursor: grabbing}.game2048-board:focus-visible{outline: 3px solid rgba(124,58,237,0.42);outline-offset: 4px}.game2048-tile{display: flex;align-items: center;justify-content: center;aspect-ratio: 1 / 1;border-radius: 14px;background: #fff;color: var(--game2048-dark);font-size: clamp(1.25rem,7vw,2.4rem);font-weight: 950;line-height: 1;box-shadow: inset 0 0 0 2px rgba(255,255,255,0.4),0 5px 12px rgba(17,24,39,0.15)}.game2048-tile[data-v="0"]{color: transparent;background: rgba(255,255,255,0.9);box-shadow: inset 0 4px 12px rgba(17,24,39,0.18)}.game2048-tile[data-v="2"]{background: #ede9fe}.game2048-tile[data-v="4"]{background: #ddd6fe}.game2048-tile[data-v="8"]{background: #c4b5fd}.game2048-tile[data-v="16"]{background: #a78bfa}.game2048-tile[data-v="32"]{background: #8b5cf6;color: #fff}.game2048-tile[data-v="64"]{background: #7c3aed;color: #fff}.game2048-tile[data-v="128"]{background: #fcd34d}.game2048-tile[data-v="256"]{background: #fbbf24}.game2048-tile[data-v="512"]{background: #f59e0b;color: #fff}.game2048-tile[data-v="1024"],.game2048-tile[data-v="2048"],.game2048-tile[data-v="4096"],.game2048-tile[data-v="8192"]{font-size: clamp(1rem,6vw,2rem)}.game2048-tile[data-v="1024"]{background: #d97706;color: #fff}.game2048-tile[data-v="2048"]{background: var(--game2048-accent);color: #fff}.game2048-tile[data-v="4096"],.game2048-tile[data-v="8192"]{background: #111827;color: #fff}.game2048-controls{display: flex;flex-wrap: wrap;gap: 14px;justify-content: center;margin-top: 18px}.game2048-controls .bouton,.game2048-overlay-actions .bouton{min-width: 170px;min-height: 52px;padding: 14px 22px;border-radius: 999px;font-size: 1.05rem;font-weight: 900;line-height: 1.1;cursor: pointer}.game2048-touch-controls{display: none}.game2048-touch-middle{display: flex;justify-content: center;gap: 10px}.game2048-touch-control{border: 1px solid var(--game2048-panel-border);border-radius: 16px;background: #fff;color: var(--game2048-accent);font: inherit;font-size: 1.55rem;font-weight: 950;line-height: 1;cursor: pointer;box-shadow: 0 5px 14px rgba(17,24,39,0.1)}.game2048-touch-control:hover,.game2048-touch-control:focus-visible{background: var(--game2048-soft-2)}.game2048-overlay{position: absolute;inset: 0;z-index: 20;display: flex;align-items: center;justify-content: center;padding: 22px;border-radius: 18px;background: rgba(17,24,39,0.34);opacity: 0;visibility: hidden;pointer-events: none;transition: opacity 0.18s ease,visibility 0.18s ease}.game2048-overlay[hidden]{display: none}.game2048-overlay.is-visible{opacity: 1;visibility: visible;pointer-events: auto}.game2048-overlay-box{min-width: min(82%,360px);padding: 18px 22px;border: 3px solid #fff;border-radius: 18px;background: rgba(255,255,255,0.96);color: var(--game2048-accent);text-align: center;box-shadow: 0 18px 50px rgba(0,0,0,0.35);transform: scale(0.94);transition: transform 0.18s ease}.game2048-overlay.is-visible .game2048-overlay-box{transform: scale(1)}.game2048-overlay-box strong{display: block;font-size: clamp(2rem,8vw,4rem);font-weight: 950;line-height: 1;letter-spacing: -0.04em}.game2048-overlay-box span{display: block;margin-top: 10px;color: var(--game2048-dark);font-size: clamp(1rem,3.2vw,1.35rem);font-weight: 900}.game2048-overlay-actions{display: flex;flex-wrap: wrap;gap: 12px;justify-content: center;margin-top: 16px}@media (max-width: 900px){.game2048-touch-controls{display: flex;flex-direction: column;align-items: center;gap: 10px;margin: 16px auto 0}.game2048-touch-control{display: inline-grid;place-items: center;inline-size: clamp(70px,16vw,92px);block-size: clamp(56px,12vw,68px)}}@media (max-width: 760px){.game2048-play-wrap{width: 100%}.game2048-board,.game2048-row{gap: 9px}.game2048-board{padding: 10px}}@media (max-width: 560px){.game2048-header{flex-direction: column}.game2048-scoreboxes{width: 100%}.game2048-scorebox{flex: 1 1 0}.game2048-controls{gap: 12px;margin-top: 20px}.game2048-controls .bouton,.game2048-overlay-actions .bouton{min-width: 0;width: 100%;min-height: 58px;padding: 16px 20px;font-size: 1.12rem}}@media (max-width: 420px){.game2048-touch-controls{gap: 8px;margin-top: 14px}.game2048-touch-middle{gap: 8px}.game2048-touch-control{inline-size: clamp(62px,25vw,78px);block-size: 58px;border-radius: 14px;font-size: 1.45rem}}@media (prefers-reduced-motion: reduce){.game2048-overlay,.game2048-overlay-box{transition: none}}