Spaces:
Sleeping
Sleeping
| /* ======================================== | |
| NOVA AI GAMES - Memory Game Styles | |
| 3D Cards, Flip Animations & Effects | |
| ======================================== */ | |
| .memory-game-wrapper { | |
| width: 100%; | |
| max-width: 340px; | |
| position: relative; | |
| } | |
| .memory-grid-enhanced { | |
| display: grid; | |
| grid-template-columns: repeat(4, 1fr); | |
| gap: 10px; | |
| perspective: 1000px; | |
| } | |
| .memory-card-3d { | |
| aspect-ratio: 1; | |
| cursor: pointer; | |
| position: relative; | |
| transform-style: preserve-3d; | |
| animation: cardEntrance 0.5s ease backwards; | |
| } | |
| @keyframes cardEntrance { | |
| from { | |
| opacity: 0; | |
| transform: scale(0.5) rotateY(180deg); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: scale(1) rotateY(0); | |
| } | |
| } | |
| .memory-card-3d .card-inner { | |
| position: absolute; | |
| inset: 0; | |
| transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); | |
| transform-style: preserve-3d; | |
| } | |
| .memory-card-3d.flipped .card-inner { | |
| transform: rotateY(180deg); | |
| } | |
| .memory-card-3d .card-face { | |
| position: absolute; | |
| inset: 0; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| backface-visibility: hidden; | |
| border-radius: var(--radius-md); | |
| font-size: 28px; | |
| } | |
| .memory-card-3d .card-front-3d { | |
| background: linear-gradient(145deg, #1e1e2e, #2a2a40); | |
| border: 2px solid rgba(99, 102, 241, 0.3); | |
| box-shadow: | |
| 0 4px 15px rgba(0, 0, 0, 0.3), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.1); | |
| overflow: hidden; | |
| } | |
| .memory-card-3d .card-pattern { | |
| position: absolute; | |
| inset: 0; | |
| background: | |
| repeating-linear-gradient(45deg, | |
| transparent, | |
| transparent 5px, | |
| rgba(99, 102, 241, 0.05) 5px, | |
| rgba(99, 102, 241, 0.05) 10px); | |
| } | |
| .memory-card-3d .card-question { | |
| position: relative; | |
| z-index: 1; | |
| font-size: 32px; | |
| color: var(--text-muted); | |
| text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); | |
| } | |
| .memory-card-3d .card-back-3d { | |
| background: linear-gradient(135deg, #6366f1, #8b5cf6, #a855f7); | |
| transform: rotateY(180deg); | |
| box-shadow: | |
| 0 8px 25px rgba(99, 102, 241, 0.4), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.2); | |
| } | |
| .memory-card-3d .card-emoji { | |
| filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3)); | |
| animation: emojiPop 0.3s ease; | |
| } | |
| @keyframes emojiPop { | |
| 0% { | |
| transform: scale(0); | |
| } | |
| 50% { | |
| transform: scale(1.2); | |
| } | |
| 100% { | |
| transform: scale(1); | |
| } | |
| } | |
| .memory-card-3d:hover:not(.flipped):not(.matched) { | |
| transform: translateY(-3px); | |
| } | |
| .memory-card-3d:hover:not(.flipped):not(.matched) .card-front-3d { | |
| border-color: rgba(99, 102, 241, 0.6); | |
| box-shadow: | |
| 0 8px 25px rgba(99, 102, 241, 0.3), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.1); | |
| } | |
| .memory-card-3d.matched .card-inner { | |
| animation: matchCelebrate 0.5s ease; | |
| } | |
| @keyframes matchCelebrate { | |
| 0%, | |
| 100% { | |
| transform: rotateY(180deg) scale(1); | |
| } | |
| 50% { | |
| transform: rotateY(180deg) scale(1.1); | |
| } | |
| } | |
| .memory-card-3d.matched .card-back-3d { | |
| background: linear-gradient(135deg, #22c55e, #16a34a); | |
| box-shadow: | |
| 0 8px 30px rgba(34, 197, 94, 0.5), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.2); | |
| } | |
| .memory-moves { | |
| text-align: center; | |
| margin-top: var(--spacing-lg); | |
| font-size: 14px; | |
| color: var(--text-secondary); | |
| } | |
| .moves-value { | |
| font-weight: 700; | |
| color: var(--accent-primary); | |
| margin-left: 4px; | |
| } |