|
|
<!DOCTYPE html> |
|
|
<html lang="en"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>Characters - Lingua Noel</title> |
|
|
<script src="https://cdn.tailwindcss.com"></script> |
|
|
<script src="https://unpkg.com/feather-icons"></script> |
|
|
<link rel="stylesheet" href="style.css"> |
|
|
<script> |
|
|
tailwind.config = { |
|
|
theme: { |
|
|
extend: { |
|
|
colors: { |
|
|
primary: '#C62828', |
|
|
secondary: '#388E3C', |
|
|
accent: '#D32F2F', |
|
|
background: '#FFF3E0', |
|
|
text: '#263238', |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
</head> |
|
|
<body class="bg-background text-text min-h-screen"> |
|
|
<custom-header></custom-header> |
|
|
|
|
|
<main class="container mx-auto px-4 py-8"> |
|
|
<div class="max-w-6xl mx-auto"> |
|
|
|
|
|
<div class="bg-gradient-to-r from-secondary to-primary text-white rounded-2xl p-8 mb-8 shadow-xl"> |
|
|
<div class="flex items-center justify-between"> |
|
|
<div> |
|
|
<h1 class="text-3xl font-bold mb-2">Meet the Characters of Noëlville</h1> |
|
|
<p class="text-lg opacity-90">Each character helps you learn different aspects of French language and culture</p> |
|
|
</div> |
|
|
<a href="/" class="bg-white text-primary px-6 py-2 rounded-full font-bold hover:bg-gray-100 transition"> |
|
|
← Back to Story |
|
|
</a> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 mb-12"> |
|
|
|
|
|
<div class="bg-white rounded-2xl shadow-lg overflow-hidden"> |
|
|
<div class="h-48 bg-red-100 relative"> |
|
|
<img src="http://static.photos/people/640x360/10" alt="Pierre" class="w-full h-full object-cover"> |
|
|
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black to-transparent p-4"> |
|
|
<h3 class="text-2xl font-bold text-white">Pierre</h3> |
|
|
<p class="text-white opacity-90">The Baker</p> |
|
|
</div> |
|
|
</div> |
|
|
<div class="p-6"> |
|
|
<div class="flex items-center mb-4"> |
|
|
<div class="bg-primary text-white p-2 rounded-full mr-3"> |
|
|
<i data-feather="coffee"></i> |
|
|
</div> |
|
|
<div> |
|
|
<p class="font-bold">Teaches: Food & Greetings</p> |
|
|
<p class="text-sm text-gray-600">Appears in: Chapters 1, 3, 7</p> |
|
|
</div> |
|
|
</div> |
|
|
<p class="text-gray-700 mb-4">A friendly baker who runs "La Boulangerie de Pierre." He loves teaching visitors about French pastries and basic conversational phrases.</p> |
|
|
<div class="space-y-2"> |
|
|
<p class="font-bold text-primary">Key Phrases:</p> |
|
|
<p class="text-sm bg-gray-50 p-3 rounded">"Bonjour! Je suis Pierre. Voulez-vous goûter un croissant?"</p> |
|
|
<p class="text-sm bg-gray-50 p-3 rounded">"C'est délicieux, n'est-ce pas?"</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="bg-white rounded-2xl shadow-lg overflow-hidden"> |
|
|
<div class="h-48 bg-green-100 relative"> |
|
|
<img src="http://static.photos/people/640x360/11" alt="Claire" class="w-full h-full object-cover"> |
|
|
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black to-transparent p-4"> |
|
|
<h3 class="text-2xl font-bold text-white">Claire</h3> |
|
|
<p class="text-white opacity-90">Market Vendor</p> |
|
|
</div> |
|
|
</div> |
|
|
<div class="p-6"> |
|
|
<div class="flex items-center mb-4"> |
|
|
<div class="bg-secondary text-white p-2 rounded-full mr-3"> |
|
|
<i data-feather="shopping-bag"></i> |
|
|
</div> |
|
|
<div> |
|
|
<p class="font-bold">Teaches: Shopping & Numbers</p> |
|
|
<p class="text-sm text-gray-600">Appears in: Chapters 2, 5, 8</p> |
|
|
</div> |
|
|
</div> |
|
|
<p class="text-gray-700 mb-4">Runs a Christmas ornament stall at the market. She'll help you learn numbers, prices, and holiday vocabulary while shopping.</p> |
|
|
<div class="space-y-2"> |
|
|
<p class="font-bold text-secondary">Key Phrases:</p> |
|
|
<p class="text-sm bg-gray-50 p-3 rounded">"Combien ça coûte? Cinq euros, s'il vous plaît."</p> |
|
|
<p class="text-sm bg-gray-50 p-3 rounded">"C'est pour offrir? (Is it a gift?)"</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="bg-white rounded-2xl shadow-lg overflow-hidden"> |
|
|
<div class="h-48 bg-blue-100 relative"> |
|
|
<img src="http://static.photos/people/640x360/12" alt="Luc" class="w-full h-full object-cover"> |
|
|
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black to-transparent p-4"> |
|
|
<h3 class="text-2xl font-bold text-white">Luc</h3> |
|
|
<p class="text-white opacity-90">Town Musician</p> |
|
|
</div> |
|
|
</div> |
|
|
<div class="p-6"> |
|
|
<div class="flex items-center mb-4"> |
|
|
<div class="bg-accent text-white p-2 rounded-full mr-3"> |
|
|
<i data-feather="music"></i> |
|
|
</div> |
|
|
<div> |
|
|
<p class="font-bold">Teaches: Music & Culture</p> |
|
|
<p class="text-sm text-gray-600">Appears in: Chapters 4, 9, 12</p> |
|
|
</div> |
|
|
</div> |
|
|
<p class="text-gray-700 mb-4">A talented musician who plays Christmas carols in the town square. He teaches French through songs and cultural traditions.</p> |
|
|
<div class="space-y-2"> |
|
|
<p class="font-bold text-accent">Key Phrases:</p> |
|
|
<p class="text-sm bg-gray-50 p-3 rounded">"Chantez avec moi! (Sing with me!)"</p> |
|
|
<p class="text-sm bg-gray-50 p-3 rounded">"Connaissez-vous cette chanson? (Do you know this song?)"</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="bg-white rounded-2xl shadow-lg p-8"> |
|
|
<h2 class="text-2xl font-bold text-primary mb-6">Practice Conversations</h2> |
|
|
<div class="space-y-6"> |
|
|
<div class="p-6 bg-gradient-to-r from-blue-50 to-green-50 rounded-xl"> |
|
|
<h3 class="font-bold text-xl mb-4">Dialogue Exercise with Pierre</h3> |
|
|
<div class="space-y-4"> |
|
|
<div class="flex items-start"> |
|
|
<div class="bg-primary text-white rounded-full p-2 mr-4"> |
|
|
<i data-feather="user"></i> |
|
|
</div> |
|
|
<div class="flex-1"> |
|
|
<p class="font-medium">You enter the bakery. What do you say?</p> |
|
|
<div class="mt-3 space-y-2"> |
|
|
<button class="text-left block w-full p-3 bg-white rounded-lg border hover:border-primary transition"> |
|
|
A. "Bonjour, je voudrais une baguette, s'il vous plaît." |
|
|
</button> |
|
|
<button class="text-left block w-full p-3 bg-white rounded-lg border hover:border-primary transition"> |
|
|
B. "Où est la gare?" |
|
|
</button> |
|
|
<button class="text-left block w-full p-3 bg-white rounded-lg border hover:border-primary transition"> |
|
|
C. "Merci, au revoir!" |
|
|
</button> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="text-center"> |
|
|
<p class="text-gray-600 mb-4">Ready to interact with these characters in the main story?</p> |
|
|
<a href="/" class="inline-block bg-primary text-white px-8 py-3 rounded-full font-bold hover:bg-red-800 transition"> |
|
|
Return to Today's Story → |
|
|
</a> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</main> |
|
|
|
|
|
<custom-footer></custom-footer> |
|
|
<script src="components/header.js"></script> |
|
|
<script src="components/footer.js"></script> |
|
|
<floating-action></floating-action> |
|
|
<script src="components/floating-action.js"></script> |
|
|
<script src="script.js"></script> |
|
|
<script> |
|
|
feather.replace(); |
|
|
</script> |
|
|
</body> |
|
|
</html> |