*{margin:0;padding:0;box-sizing:border-box}body{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(45deg,#2c3e50,#3498db);font-family:Arial,sans-serif}.container{text-align:center}.puzzle{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;background:#34495e;padding:10px;border-radius:8px;box-shadow:0 0 20px rgba(0,0,0,.3);margin:20px}.tile{width:80px;height:80px;background:#ecf0f1;display:flex;justify-content:center;align-items:center;font-size:24px;font-weight:bold;cursor:pointer;transition:all .3s ease;border-radius:4px;position:relative;overflow:hidden}.tile-image{width:100%;height:100%;position:absolute;top:0;left:0;pointer-events:none}.tile:hover{background:#bdc3c7}.empty{background:transparent}button{padding:10px 20px;font-size:18px;background:#2ecc71;border:0;border-radius:4px;color:white;cursor:pointer;transition:all .3s ease;margin:0 5px}button:hover{background:#27ae60}.moves{color:white;font-size:20px;margin:10px}.win{color:#2ecc71;font-size:24px;margin:10px;font-weight:bold;animation:pulse 1s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}100%{transform:scale(1)}}.gallery-modal{display:none;position:fixed;inset:0;width:100%;height:100%;background:rgba(0,0,0,.8);z-index:1000;overflow-y:auto}.gallery-content{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;padding:20px;max-width:1200px;margin:40px auto}.gallery-item{position:relative;aspect-ratio:1;cursor:pointer;border-radius:8px;overflow:hidden;transition:transform .3s ease}.gallery-item:hover{transform:scale(1.05)}.gallery-item img{width:100%;height:100%;object-fit:cover}.close-gallery{position:fixed;top:20px;right:20px;color:white;font-size:30px;cursor:pointer;z-index:1001}