* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Comic Sans MS', 'Arial Rounded MT Bold', sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; padding: 20px; color: #333; } .header { text-align: center; margin-bottom: 30px; animation: bounce 2s infinite; } .header h1 { font-size: clamp(32px, 6vw, 56px); color: #fff; text-shadow: 3px 3px 0 #ff6b6b, 6px 6px 0 #ffd93d; margin-bottom: 10px; } .subtitle { font-size: clamp(16px, 3vw, 22px); color: #fff; text-shadow: 2px 2px 0 #667eea; } .game-container { max-width: 900px; margin: 0 auto; background: #fff; border-radius: 30px; padding: 30px; box-shadow: 0 20px 60px rgba(0,0,0,0.3); } .hidden { display: none !important; } /* Меню игр */ .menu-section h2 { font-size: clamp(24px, 4vw, 32px); text-align: center; color: #667eea; margin-bottom: 30px; } .game-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; margin-bottom: 30px; } .game-card { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); border: none; border-radius: 20px; padding: 25px 20px; cursor: pointer; transition: all 0.3s ease; display: flex; flex-direction: column; align-items: center; gap: 10px; box-shadow: 0 8px 20px rgba(0,0,0,0.2); } .game-card:hover { transform: translateY(-10px) scale(1.05); box-shadow: 0 15px 30px rgba(0,0,0,0.3); } .game-card:active { transform: translateY(-5px) scale(1.02); } .card-icon { font-size: clamp(40px, 8vw, 64px); filter: drop-shadow(2px 2px 0 rgba(0,0,0,0.2)); } .card-title { font-size: clamp(16px, 3vw, 20px); font-weight: bold; color: #fff; text-shadow: 2px 2px 0 rgba(0,0,0,0.2); } .card-desc { font-size: clamp(12px, 2vw, 14px); color: #fff; opacity: 0.9; } /* Карточки других цветов */ .game-card:nth-child(2) { background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%); } .game-card:nth-child(3) { background: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%); } .game-card:nth-child(4) { background: linear-gradient(135deg, #ff9a9e 0%, #fecfef 100%); } /* Секции игр */ .game-section { animation: fadeIn 0.5s ease; } .game-section h2 { font-size: clamp(24px, 4vw, 32px); color: #667eea; margin-bottom: 20px; text-align: center; } .back-btn { background: #f0f0f0; border: 2px solid #ddd; border-radius: 10px; padding: 10px 20px; font-size: 16px; cursor: pointer; margin-bottom: 20px; transition: all 0.3s ease; } .back-btn:hover { background: #e0e0e0; transform: translateX(-5px); } /* Выбор категории */ .category-selector { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 30px; } .category-btn { background: #f8f9fa; border: 2px solid #667eea; border-radius: 20px; padding: 10px 20px; font-size: 16px; cursor: pointer; transition: all 0.3s ease; } .category-btn:hover { background: #667eea; color: #fff; } .category-btn.active { background: #667eea; color: #fff; box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4); } /* Флеш-карточка */ .flashcard-container { display: flex; flex-direction: column; align-items: center; gap: 30px; } .flashcard { width: 100%; max-width: 400px; height: 350px; perspective: 1000px; cursor: pointer; } .flashcard-front { width: 100%; height: 100%; background: linear-gradient(135deg, #fff6b7 0%, #f6416c 100%); border-radius: 25px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; box-shadow: 0 15px 35px rgba(0,0,0,0.2); transition: transform 0.6s; } .flashcard-image { font-size: clamp(80px, 15vw, 140px); filter: drop-shadow(3px 3px 0 rgba(0,0,0,0.2)); } .flashcard-word { font-size: clamp(28px, 6vw, 42px); font-weight: bold; color: #fff; text-shadow: 3px 3px 0 rgba(0,0,0,0.3); } /* Кнопки управления */ .controls { display: flex; flex-wrap: wrap; gap: 15px; justify-content: center; } .control-btn { background: #f8f9fa; border: 2px solid #667eea; border-radius: 15px; padding: 12px 25px; font-size: 16px; cursor: pointer; transition: all 0.3s ease; font-weight: bold; } .control-btn:hover { background: #667eea; color: #fff; transform: scale(1.05); } .control-btn:active { transform: scale(0.98); } .control-btn.primary { background: #667eea; color: #fff; } .control-btn.primary:hover { background: #5568d3; box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4); } /* Игра со звуками */ .sound-exercise { text-align: center; padding: 30px; } .letter-display { font-size: clamp(100px, 20vw, 180px); font-weight: bold; color: #667eea; text-shadow: 4px 4px 0 #f5576c; margin-bottom: 20px; animation: pulse 2s infinite; } .exercise-text { font-size: clamp(18px, 3vw, 24px); color: #333; margin-bottom: 30px; } .mouth-animation { width: 150px; height: 150px; background: #ffe5e5; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 30px; border: 4px solid #ff6b6b; } .mouth { width: 60px; height: 60px; background: #ff6b6b; border-radius: 50%; animation: speak 1s infinite; } /* Викторина */ .quiz-container { text-align: center; padding: 30px; } .quiz-question { margin-bottom: 30px; } .listen-btn { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: #fff; border: none; border-radius: 50px; padding: 20px 40px; font-size: clamp(18px, 3vw, 22px); cursor: pointer; transition: all 0.3s ease; box-shadow: 0 8px 20px rgba(0,0,0,0.2); } .listen-btn:hover { transform: scale(1.1); box-shadow: 0 12px 30px rgba(0,0,0,0.3); } .listen-btn:active { transform: scale(0.95); } .quiz-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 15px; margin-bottom: 30px; } .quiz-option { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); border: none; border-radius: 15px; padding: 20px; font-size: clamp(16px, 3vw, 20px); color: #fff; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 6px 15px rgba(0,0,0,0.2); } .quiz-option:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0,0,0,0.3); } .quiz-option.correct { background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%); animation: celebrate 0.5s ease; } .quiz-option.wrong { background: linear-gradient(135deg, #ff416c 0%, #ff4b2b 100%); animation: shake 0.5s ease; } .feedback { font-size: clamp(20px, 4vw, 28px); font-weight: bold; margin-bottom: 20px; min-height: 40px; } .feedback.success { color: #11998e; animation: popIn 0.5s ease; } .feedback.error { color: #ff416c; } /* История */ .story-container { padding: 20px; } .story-slots { display: flex; gap: 15px; justify-content: center; margin-bottom: 30px; flex-wrap: wrap; } .story-slot { width: 120px; height: 120px; border: 3px dashed #667eea; border-radius: 15px; display: flex; align-items: center; justify-content: center; font-size: 40px; color: #667eea; background: #f8f9fa; cursor: pointer; transition: all 0.3s ease; } .story-slot.filled { border: 3px solid #11998e; background: #e8f8f5; } .story-slot .piece { font-size: 60px; cursor: grab; } .story-pieces { display: flex; gap: 15px; justify-content: center; flex-wrap: wrap; padding: 20px; background: #f8f9fa; border-radius: 15px; } .story-piece { font-size: 60px; cursor: grab; transition: all 0.3s ease; padding: 10px; background: #fff; border-radius: 10px; box-shadow: 0 4px 10px rgba(0,0,0,0.1); } .story-piece:hover { transform: scale(1.1); box-shadow: 0 6px 15px rgba(0,0,0,0.2); } .story-piece.selected { background: #667eea; border-radius: 15px; transform: scale(1.15); box-shadow: 0 8px 20px rgba(102, 126, 234, 0.4); } .instruction { font-size: clamp(16px, 3vw, 20px); text-align: center; color: #667eea; margin-bottom: 20px; padding: 15px; background: #f0f4ff; border-radius: 15px; } /* Footer */ .footer { text-align: center; margin-top: 30px; padding-top: 20px; border-top: 3px solid #f0f0f0; } .footer p { font-size: clamp(18px, 3vw, 24px); color: #667eea; animation: glow 2s infinite; } /* Анимации */ @keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } @keyframes speak { 0%, 100% { transform: scaleY(0.3); } 50% { transform: scaleY(1); } } @keyframes celebrate { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } } @keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-10px); } 75% { transform: translateX(10px); } } @keyframes popIn { 0% { opacity: 0; transform: scale(0.5); } 100% { opacity: 1; transform: scale(1); } } @keyframes glow { 0%, 100% { text-shadow: 0 0 10px #667eea; } 50% { text-shadow: 0 0 20px #667eea, 0 0 30px #764ba2; } } /* Адаптивность */ @media (max-width: 600px) { body { padding: 10px; } .game-container { padding: 20px; border-radius: 20px; } .game-cards { grid-template-columns: 1fr; } .controls { flex-direction: column; } .control-btn { width: 100%; } }