536 lines
9.5 KiB
CSS
536 lines
9.5 KiB
CSS
* {
|
||
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%;
|
||
}
|
||
}
|