.memory-match{width:100%;height:100%;display:flex;flex-direction:column;padding:20px;background:var(--nes-black);color:var(--nes-white)}.win-screen{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000e6;padding:30px;border-radius:12px;border:2px solid var(--nes-yellow);text-align:center;z-index:100;animation:winGlow 2s ease-in-out infinite alternate}@keyframes winGlow{0%{box-shadow:0 0 20px var(--nes-yellow)}to{box-shadow:0 0 40px var(--nes-orange)}}.win-screen h3{font-size:18px;margin-bottom:10px;color:var(--nes-yellow)}.win-screen p{font-size:12px;margin-bottom:20px}.game-board{flex:1;display:flex;align-items:center;justify-content:center;padding:20px}.cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:400px;width:100%}.memory-card{aspect-ratio:1;perspective:1000px;cursor:pointer}.card-inner{position:relative;width:100%;height:100%;text-align:center;transition:transform .6s;transform-style:preserve-3d;border-radius:8px;border:2px solid var(--nes-blue);background:var(--nes-gray)}.memory-card.flipped .card-inner{transform:rotateY(180deg)}.memory-card.matched .card-inner{border-color:var(--nes-yellow);box-shadow:0 0 15px var(--nes-yellow)}.card-front,.card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;font-size:24px;border-radius:6px}.card-front{background:var(--nes-blue);color:var(--nes-white)}.card-back{background:var(--nes-gray);color:var(--nes-white);transform:rotateY(180deg)}.game-controls{text-align:center;padding:15px;background:#0000004d;border-radius:8px;border:1px solid var(--nes-blue);margin-top:20px}.game-instructions{text-align:center;margin-bottom:20px}@media (max-width: 768px){.memory-match{padding:15px}.game-header{flex-direction:column;gap:10px;text-align:center}.game-stats{gap:10px}.cards-grid{gap:8px}.card-front,.card-back{font-size:20px}.win-screen{padding:20px}.win-screen h3{font-size:16px}.win-screen p{font-size:10px}}@media (max-width: 480px){.cards-grid{gap:6px}.card-front,.card-back{font-size:18px}.game-title{font-size:14px}.stat{font-size:8px}}.music-box{width:100%;height:100%;display:flex;flex-direction:column;padding:20px;background:var(--nes-black);color:var(--nes-white)}.music-controls{display:flex;align-items:center;gap:10px}.current-track{display:flex;align-items:center;gap:8px;font-size:10px}.playing-indicator{animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.music-player{background:#0000004d;border-radius:8px;border:1px solid var(--nes-blue);padding:20px;margin-bottom:20px}.player-display{display:flex;align-items:center;gap:20px;margin-bottom:20px}.track-artwork{font-size:48px;background:var(--nes-gray);border:2px solid var(--nes-blue);border-radius:8px;width:80px;height:80px;display:flex;align-items:center;justify-content:center}.track-details{flex:1}.track-title{font-size:14px;margin:0 0 5px;color:var(--nes-yellow)}.track-artist{font-size:10px;margin:0 0 8px;opacity:.8}.track-description{font-size:8px;margin:0 0 8px;opacity:.7}.track-duration{font-size:10px;color:var(--nes-green)}.player-controls{display:flex;gap:10px}.play-button,.stop-button{background:var(--nes-green);border:2px solid var(--nes-white);color:var(--nes-black);padding:10px 15px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s ease}.play-button:hover,.stop-button:hover{background:var(--nes-white);color:var(--nes-green);transform:translateY(-2px)}.play-button.playing{background:var(--nes-yellow);animation:glow 2s ease-in-out infinite alternate}@keyframes glow{0%{box-shadow:0 0 10px var(--nes-yellow)}to{box-shadow:0 0 20px var(--nes-orange)}}.volume-control{display:flex;align-items:center;gap:10px;padding:10px;background:#0003;border-radius:4px}.volume-slider{flex:1;height:6px;background:var(--nes-gray);border-radius:3px;outline:none;cursor:pointer}.volume-slider::-webkit-slider-thumb{appearance:none;width:16px;height:16px;background:var(--nes-blue);border-radius:50%;cursor:pointer}.volume-value{font-size:8px;min-width:30px}.music-library{flex:1;background:#0000004d;border-radius:8px;border:1px solid var(--nes-blue);padding:20px;margin-bottom:20px}.library-title{font-size:14px;margin:0 0 15px;text-align:center;color:var(--nes-yellow)}.tracks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;max-height:300px;overflow-y:auto}.track-card{display:flex;align-items:center;gap:15px;padding:15px;background:#0003;border:2px solid var(--nes-blue);border-radius:8px;cursor:pointer;transition:all .2s ease}.track-card:hover{background:#0006;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.track-card.active{border-color:var(--nes-yellow);background:#00000080;box-shadow:0 0 15px var(--nes-yellow)}.track-emoji{font-size:24px;background:var(--nes-gray);border:1px solid var(--nes-blue);border-radius:4px;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.track-info{flex:1}.track-name{font-size:12px;margin:0 0 5px;color:var(--nes-white)}.track-artist{font-size:8px;margin:0 0 3px;opacity:.8}.track-duration{font-size:8px;color:var(--nes-green)}.track-play-button{font-size:16px;opacity:.7}.track-card:hover .track-play-button{opacity:1}.music-footer{text-align:center;padding:10px;background:#0000004d;border-radius:8px;border:1px solid var(--nes-blue)}.music-footer p{font-size:10px;margin:0;opacity:.8}@media (max-width: 768px){.music-box{padding:15px}.game-header{flex-direction:column;gap:10px;text-align:center}.player-display{flex-direction:column;text-align:center}.tracks-grid{grid-template-columns:1fr;gap:10px}.track-card{padding:12px}.track-emoji{font-size:20px;width:35px;height:35px}}@media (max-width: 480px){.game-title{font-size:14px}.track-artwork{font-size:36px;width:60px;height:60px}.track-title{font-size:12px}.track-name{font-size:10px}}.secret-messages{width:100%;height:100%;display:flex;flex-direction:column;padding:20px;background:var(--nes-black);color:var(--nes-white)}.game-stats{display:flex;gap:15px}.puzzle-container{flex:1;display:flex;align-items:center;justify-content:center;padding:20px}.puzzle-card{background:#0000004d;border:2px solid var(--nes-blue);border-radius:12px;padding:30px;max-width:500px;width:100%;text-align:center;animation:cardGlow 3s ease-in-out infinite alternate}@keyframes cardGlow{0%{box-shadow:0 0 20px var(--nes-blue)}to{box-shadow:0 0 30px var(--nes-yellow)}}.puzzle-question{font-size:14px;margin-bottom:25px;color:var(--nes-yellow);line-height:1.4}.answer-form{display:flex;flex-direction:column;gap:15px;margin-bottom:20px}.answer-input{background:var(--nes-gray);border:2px solid var(--nes-blue);border-radius:6px;padding:12px 15px;font-size:12px;color:var(--nes-white);text-align:center;outline:none}.answer-input:focus{border-color:var(--nes-yellow);box-shadow:0 0 10px var(--nes-yellow)}.answer-input::placeholder{color:var(--nes-green);opacity:.7}.submit-button{background:var(--nes-green);border:2px solid var(--nes-white);color:var(--nes-black);padding:12px 20px;border-radius:6px;cursor:pointer;font-size:12px;transition:all .2s ease}.submit-button:hover{background:var(--nes-white);color:var(--nes-green);transform:translateY(-2px)}.hint-box{background:#0006;border:1px solid var(--nes-yellow);border-radius:6px;padding:15px;margin-top:15px;animation:hintPulse 2s ease-in-out infinite alternate}@keyframes hintPulse{0%{box-shadow:0 0 10px var(--nes-yellow)}to{box-shadow:0 0 20px var(--nes-orange)}}.hint-text{font-size:10px;color:var(--nes-yellow);font-style:italic}.hint-button{background:var(--nes-yellow);border:2px solid var(--nes-white);color:var(--nes-black);padding:8px 12px;border-radius:4px;cursor:pointer;font-size:10px;transition:all .2s ease;margin-top:10px}.hint-button:hover{background:var(--nes-white);color:var(--nes-yellow);transform:translateY(-1px)}.progress-indicator{display:flex;justify-content:center;gap:10px;margin-top:20px}.progress-bar{display:flex;gap:8px}.progress-dot{width:12px;height:12px;border-radius:50%;background:var(--nes-gray);border:1px solid var(--nes-blue);transition:all .3s ease}.progress-dot.completed{background:var(--nes-green);border-color:var(--nes-green);box-shadow:0 0 8px var(--nes-green)}.progress-dot.current{background:var(--nes-yellow);border-color:var(--nes-yellow);animation:currentPulse 1.5s ease-in-out infinite alternate}@keyframes currentPulse{0%{box-shadow:0 0 8px var(--nes-yellow)}to{box-shadow:0 0 16px var(--nes-orange)}}.game-instructions{text-align:center;padding:15px;background:#0000004d;border-radius:8px;border:1px solid var(--nes-blue);margin-top:20px}.game-instructions p{font-size:10px;opacity:.8;margin:5px 0}.completion-screen{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000f2;padding:30px;border-radius:12px;border:2px solid var(--nes-yellow);text-align:center;z-index:100;animation:celebration 2s ease-in-out infinite alternate}@keyframes celebration{0%{box-shadow:0 0 20px var(--nes-yellow)}to{box-shadow:0 0 40px var(--nes-orange)}}.completion-screen h3{font-size:18px;margin-bottom:15px;color:var(--nes-yellow)}.messages-revealed{display:flex;flex-direction:column;gap:15px;margin-top:20px;max-height:300px;overflow-y:auto}.revealed-message{background:#0006;border:1px solid var(--nes-blue);border-radius:8px;padding:15px;animation:messageReveal .5s ease-out}@keyframes messageReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.message-number{font-size:10px;color:var(--nes-yellow);margin-bottom:8px}.message-text{font-size:12px;line-height:1.4;color:var(--nes-white)}@media (max-width: 768px){.secret-messages{padding:15px}.game-header{flex-direction:column;gap:10px;text-align:center}.puzzle-card{padding:20px}.puzzle-question{font-size:12px}.answer-input,.submit-button{font-size:10px}.messages-revealed{max-height:250px}}@media (max-width: 480px){.game-title{font-size:14px}.puzzle-question{font-size:11px}.answer-input{font-size:9px}.message-text{font-size:10px}.progress-dot{width:10px;height:10px}}.love-letters{width:100%;height:100%;display:flex;flex-direction:column;padding:20px;background:var(--nes-black);color:var(--nes-white)}.game-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding:10px;background:#0000004d;border-radius:8px;border:1px solid var(--nes-blue)}.back-button{background:var(--nes-gray);border:2px solid var(--nes-white);color:var(--nes-white);padding:8px 12px;border-radius:4px;cursor:pointer;font-size:10px;transition:all .2s ease}.back-button:hover{background:var(--nes-white);color:var(--nes-black);transform:translateY(-2px)}.game-title{font-size:16px;margin:0;text-shadow:0 0 10px var(--nes-yellow)}.letter-stats{display:flex;gap:15px}.stat{font-size:10px;color:var(--nes-green)}.letter-container{flex:1;display:flex;flex-direction:column;gap:20px;overflow-y:auto}.letter-type-selector{background:#0000004d;border:1px solid var(--nes-blue);border-radius:8px;padding:15px}.letter-type-selector h3{font-size:12px;margin:0 0 10px;color:var(--nes-yellow)}.type-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.type-button{background:var(--nes-gray);border:2px solid var(--nes-blue);color:var(--nes-white);padding:8px 12px;border-radius:4px;cursor:pointer;font-size:9px;transition:all .2s ease}.type-button:hover{background:var(--nes-blue);transform:translateY(-1px)}.type-button.active{background:var(--nes-yellow);border-color:var(--nes-yellow);box-shadow:0 0 10px var(--nes-yellow)}.letter-editor{background:#0000004d;border:1px solid var(--nes-blue);border-radius:8px;padding:20px}.letter-editor h3{font-size:12px;margin:0 0 15px;color:var(--nes-yellow)}.suggestions{margin-bottom:15px}.suggestions p{font-size:9px;margin:0 0 8px;opacity:.8}.suggestion-buttons{display:flex;flex-wrap:wrap;gap:8px}.suggestion-button{background:var(--nes-green);border:1px solid var(--nes-white);color:var(--nes-black);padding:4px 8px;border-radius:3px;cursor:pointer;font-size:8px;transition:all .2s ease}.suggestion-button:hover{background:var(--nes-white);color:var(--nes-green);transform:translateY(-1px)}.letter-textarea{width:100%;min-height:200px;background:var(--nes-gray);border:2px solid var(--nes-blue);border-radius:6px;padding:15px;font-size:11px;color:var(--nes-white);font-family:inherit;resize:vertical;outline:none;line-height:1.4}.letter-textarea:focus{border-color:var(--nes-yellow);box-shadow:0 0 10px var(--nes-yellow)}.letter-textarea::placeholder{color:var(--nes-green);opacity:.7}.letter-actions{display:flex;gap:10px;margin-top:15px}.save-button,.load-button{background:var(--nes-green);border:2px solid var(--nes-white);color:var(--nes-black);padding:8px 16px;border-radius:4px;cursor:pointer;font-size:10px;transition:all .2s ease}.save-button:hover,.load-button:hover{background:var(--nes-white);color:var(--nes-green);transform:translateY(-1px)}.save-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.saved-letters{background:#0000004d;border:1px solid var(--nes-blue);border-radius:8px;padding:20px}.saved-letters h3{font-size:12px;margin:0 0 15px;color:var(--nes-yellow)}.letters-list{display:flex;flex-direction:column;gap:10px;max-height:200px;overflow-y:auto}.saved-letter-item{background:#0003;border:1px solid var(--nes-blue);border-radius:6px;padding:12px;transition:all .2s ease}.letter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.letter-title{font-size:10px;color:var(--nes-white);font-weight:700}.letter-date{font-size:8px;color:var(--nes-green)}.letter-preview{font-size:9px;color:var(--nes-white);opacity:.8;line-height:1.3;margin-bottom:8px}.saved-letter-item .letter-actions{margin-top:8px}.load-button,.delete-button{background:var(--nes-blue);border:1px solid var(--nes-white);color:var(--nes-white);padding:4px 8px;border-radius:3px;cursor:pointer;font-size:8px;transition:all .2s ease}.load-button:hover{background:var(--nes-white);color:var(--nes-blue)}.delete-button:hover{background:var(--nes-red);color:var(--nes-white)}.letter-viewer{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;animation:viewerSlide .3s ease-out}@keyframes viewerSlide{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.viewer-content{background:var(--nes-black);border:2px solid var(--nes-yellow);border-radius:12px;padding:30px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;position:relative}.viewer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid var(--nes-blue)}.viewer-header h3{font-size:14px;margin:0;color:var(--nes-yellow)}.close-button{background:var(--nes-red);border:1px solid var(--nes-white);color:var(--nes-white);width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-button:hover{background:var(--nes-white);color:var(--nes-red)}.letter-content{font-size:12px;line-height:1.5;color:var(--nes-white);margin-bottom:20px}.letter-footer{text-align:center;padding-top:15px;border-top:1px solid var(--nes-blue);font-size:10px;color:var(--nes-green)}.letter-footer p{margin:5px 0;opacity:.8}@media (max-width: 768px){.love-letters{padding:15px}.game-header{flex-direction:column;gap:10px;text-align:center}.type-buttons{grid-template-columns:1fr}.letter-actions{flex-direction:column}.letter-viewer{padding:20px}.viewer-header{flex-direction:column;gap:10px;text-align:center}}@media (max-width: 480px){.game-title{font-size:14px}.letter-textarea{min-height:150px;font-size:10px}.suggestion-button{font-size:7px;padding:3px 6px}.letter-content{font-size:11px}}
