feat(01-05): forest screen with level map and complete app flow

- Add forest overview screen with 6-level map showing locked/current/completed states
- Create src/forest/scene.ts with getLevelStatus, renderLevelMap, initForestScreen
- Wire complete flow: welcome -> forest -> lesson -> forest with progress updates
- Add forest CSS with level card styles and continue button

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-29 11:15:18 +02:00
co-authored by Claude Opus 4.6
parent d04e09a5a3
commit 5bac8501bf
4 changed files with 225 additions and 37 deletions
+97
View File
@@ -162,6 +162,103 @@ h3 {
cursor: not-allowed;
}
/* Forest screen */
.forest {
display: flex;
flex-direction: column;
align-items: center;
padding: 2rem;
min-height: 100vh;
background: var(--bg-forest);
}
.forest__title {
font-family: "Quicksand", sans-serif;
font-size: 2rem;
color: var(--text-dark);
margin-bottom: 1.5rem;
}
.forest__level-map {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1rem;
max-width: 500px;
width: 100%;
margin-bottom: 2rem;
}
.level-card {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.3rem;
padding: 1rem;
border-radius: 12px;
border: 2px solid transparent;
font-family: "Nunito", sans-serif;
cursor: pointer;
transition:
transform 0.2s ease,
border-color 0.2s ease;
background: white;
}
.level-card:hover:not(:disabled) {
transform: scale(1.05);
}
.level-card--current {
border-color: var(--accent-gold);
background: #fff8e0;
box-shadow: 0 2px 8px rgba(232, 184, 75, 0.3);
}
.level-card--completed {
border-color: var(--accent-green);
background: #e8f5e4;
}
.level-card--locked {
opacity: 0.5;
cursor: not-allowed;
background: #f0f0f0;
}
.level-card__number {
font-weight: 700;
font-size: 0.9rem;
color: var(--text-dark);
}
.level-card__keys {
font-family: "Quicksand", sans-serif;
font-weight: 600;
font-size: 1.1rem;
color: var(--accent-purple);
}
.level-card__status {
font-size: 1.2rem;
}
.forest__continue-btn {
padding: 1rem 3rem;
border-radius: 12px;
background: var(--accent-green);
color: white;
border: none;
font-family: "Quicksand", sans-serif;
font-weight: 700;
font-size: 1.3rem;
cursor: pointer;
transition: transform 0.2s ease;
}
.forest__continue-btn:hover {
transform: scale(1.05);
}
/* Lesson screen */
.lesson {
display: flex;