-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
763 lines (750 loc) · 43 KB
/
Copy pathindex.html
File metadata and controls
763 lines (750 loc) · 43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<title>Deutsch 1 Flashcards</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: transparent; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: #1a2a1a; color: #f0ead6; min-height: 100vh; overflow-x: hidden; }
.screen { display: none; min-height: 100vh; flex-direction: column; }
.screen.active { display: flex; }
.header { background: #0f1a0f; border-bottom: 2px solid #4a7c3f; padding: 14px 16px; display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.header-flag { font-size: 26px; }
.header-title { font-size: 18px; font-weight: 700; color: #d4af37; }
.header-sub { font-size: 11px; color: #8aaf7a; font-style: italic; }
.back-btn { background: transparent; border: 1px solid #4a7c3f; color: #8aaf7a; padding: 6px 12px; border-radius: 8px; font-size: 13px; cursor: pointer; margin-left: auto; flex-shrink: 0; }
.picker-body { padding: 16px; overflow-y: auto; flex: 1; }
.picker-intro { font-size: 13px; color: #8aaf7a; margin-bottom: 16px; line-height: 1.5; }
.select-controls { display: flex; gap: 8px; margin-bottom: 14px; }
.select-btn { background: #0f1a0f; border: 1px solid #4a7c3f; color: #8aaf7a; padding: 6px 14px; border-radius: 8px; font-size: 12px; cursor: pointer; }
.unit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 20px; }
.unit-card { background: #0f1a0f; border: 1px solid #2d4a2d; border-radius: 10px; padding: 10px 12px; cursor: pointer; user-select: none; }
.unit-card.selected { border-color: #d4af37; background: #1c2e1c; }
.unit-card.review { opacity: 0.45; cursor: default; }
.unit-num { font-size: 11px; color: #8aaf7a; margin-bottom: 2px; }
.unit-name { font-size: 12px; color: #d4af37; font-weight: 600; line-height: 1.3; }
.unit-count { font-size: 10px; color: #5a7a5a; margin-top: 3px; }
.start-btn { width: 100%; background: #d4af37; border: none; color: #0f1a0f; font-size: 17px; font-weight: 700; padding: 16px; border-radius: 12px; cursor: pointer; margin-bottom: 30px; }
.start-btn:disabled { opacity: 0.4; cursor: default; }
.study-body { flex: 1; display: flex; flex-direction: column; padding: 16px; }
.progress-row { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-shrink: 0; }
.progress-bar-wrap { flex: 1; height: 6px; background: #2d4a2d; border-radius: 3px; overflow: hidden; }
.progress-bar { height: 100%; background: #d4af37; border-radius: 3px; transition: width 0.3s; }
.progress-text { font-size: 12px; color: #8aaf7a; white-space: nowrap; }
.card-area { flex: 1; display: flex; align-items: center; justify-content: center; perspective: 1000px; }
.card-wrap { width: 100%; max-width: 380px; height: 280px; position: relative; }
.card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.45s cubic-bezier(0.4,0,0.2,1); cursor: pointer; }
.card.flipped { transform: rotateY(180deg); }
.card-face { position: absolute; inset: 0; border-radius: 18px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; text-align: center; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.card-front { background: #0f1a0f; border: 2px solid #4a7c3f; }
.card-back { background: #162616; border: 2px solid #d4af37; transform: rotateY(180deg); }
.card-emoji { font-size: 44px; margin-bottom: 10px; line-height: 1; }
.card-label { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: #5a7a5a; margin-bottom: 8px; }
.card-de { font-size: 22px; font-weight: 700; color: #f0ead6; line-height: 1.25; }
.card-en { font-size: 19px; color: #d4af37; font-weight: 600; line-height: 1.3; margin-bottom: 8px; }
.card-unit { font-size: 11px; color: #5a7a5a; }
.tap-hint { font-size: 12px; color: #4a6a4a; text-align: center; margin: 8px 0; flex-shrink: 0; }
.action-row { display: flex; gap: 10px; flex-shrink: 0; margin-top: 8px; }
.btn-no { flex: 1; background: #2d1a1a; border: 1px solid #7c3f3f; color: #d47a7a; padding: 14px; border-radius: 12px; font-size: 15px; font-weight: 600; cursor: pointer; }
.btn-yes { flex: 1; background: #1a2d1a; border: 1px solid #3f7c3f; color: #7ad47a; padding: 14px; border-radius: 12px; font-size: 15px; font-weight: 600; cursor: pointer; }
.btn-skip { flex: 0 0 auto; background: #0f1a0f; border: 1px solid #2d4a2d; color: #5a7a5a; padding: 14px 18px; border-radius: 12px; font-size: 13px; cursor: pointer; }
.hidden-btns { opacity: 0; pointer-events: none; }
.results-body { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px; text-align: center; }
.results-emoji { font-size: 56px; margin-bottom: 16px; }
.results-title { font-size: 24px; font-weight: 700; color: #d4af37; margin-bottom: 8px; }
.results-sub { font-size: 14px; color: #8aaf7a; margin-bottom: 24px; line-height: 1.5; }
.results-stats { background: #0f1a0f; border: 1px solid #2d4a2d; border-radius: 14px; padding: 18px; width: 100%; max-width: 300px; margin-bottom: 24px; }
.stat-row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #1a2a1a; font-size: 14px; }
.stat-row:last-child { border-bottom: none; }
.stat-label { color: #8aaf7a; }
.stat-val { color: #f0ead6; font-weight: 600; }
.results-btn { width: 100%; max-width: 300px; background: #d4af37; border: none; color: #0f1a0f; font-size: 16px; font-weight: 700; padding: 14px; border-radius: 12px; cursor: pointer; margin-bottom: 12px; }
.results-btn-sec { width: 100%; max-width: 300px; background: transparent; border: 1px solid #4a7c3f; color: #8aaf7a; font-size: 15px; padding: 13px; border-radius: 12px; cursor: pointer; }
</style>
</head>
<body>
<div class="screen active" id="screen-picker">
<div class="header">
<span class="header-flag">🇩🇪</span>
<div><div class="header-title">Berlitz Deutsch 1</div><div class="header-sub">Vokabel-Karten</div></div>
</div>
<div class="picker-body">
<p class="picker-intro">Wähle deine Einheiten — pick the units you want to practice, then tap Start.</p>
<div class="select-controls">
<button class="select-btn" onclick="selectAll()">Select all</button>
<button class="select-btn" onclick="clearAll()">Clear</button>
</div>
<div class="unit-grid" id="unit-grid"></div>
<button class="start-btn" id="start-btn" onclick="startStudy()" disabled>Start — 0 cards</button>
</div>
</div>
<div class="screen" id="screen-study">
<div class="header">
<span class="header-flag">🇩🇪</span>
<div><div class="header-title" id="study-title">Studying…</div><div class="header-sub" id="study-sub"></div></div>
<button class="back-btn" onclick="goBack()">← Units</button>
</div>
<div class="study-body">
<div class="progress-row">
<div class="progress-bar-wrap"><div class="progress-bar" id="progress-bar"></div></div>
<div class="progress-text" id="progress-text">0 / 0</div>
</div>
<div class="card-area">
<div class="card-wrap">
<div class="card" id="flashcard" onclick="flipCard()">
<div class="card-face card-front">
<div class="card-emoji" id="card-emoji"></div>
<div class="card-label">Auf Deutsch</div>
<div class="card-de" id="card-de">–</div>
</div>
<div class="card-face card-back">
<div class="card-emoji" id="card-emoji-back"></div>
<div class="card-label">In English</div>
<div class="card-en" id="card-en">–</div>
<div class="card-unit" id="card-unit-label"></div>
</div>
</div>
</div>
</div>
<div class="tap-hint">Tap card to reveal · then mark yourself</div>
<div class="action-row hidden-btns" id="action-row">
<button class="btn-no" onclick="markCard(false)">✗ Not yet</button>
<button class="btn-skip" onclick="skipCard()">Skip</button>
<button class="btn-yes" onclick="markCard(true)">✓ Got it</button>
</div>
</div>
</div>
<div class="screen" id="screen-results">
<div class="header">
<span class="header-flag">🇩🇪</span>
<div><div class="header-title">Ergebnisse</div><div class="header-sub">Results</div></div>
</div>
<div class="results-body">
<div class="results-emoji" id="results-emoji">🎉</div>
<div class="results-title" id="results-title">Gut gemacht!</div>
<div class="results-sub" id="results-sub"></div>
<div class="results-stats" id="results-stats"></div>
<button class="results-btn" onclick="reviewMissed()">Review missed cards</button>
<button class="results-btn-sec" onclick="goHome()">← Back to unit picker</button>
</div>
</div>
<script>
const UNITS=[
{num:1,name:"Begrüßung & Vorstellung",en:"Greetings & Introductions",review:false,cards:[
{de:"Hallo",en:"Hello / Hi",emoji:"👋"},
{de:"Guten Morgen",en:"Good morning",emoji:"🌅"},
{de:"Guten Tag",en:"Good day / Good afternoon",emoji:"☀️"},
{de:"Guten Abend",en:"Good evening",emoji:"🌆"},
{de:"Ich heiße …",en:"My name is …",emoji:"🏷️"},
{de:"Wie heißen Sie?",en:"What is your name? (formal)",emoji:"🤝"},
{de:"Freut mich.",en:"Nice to meet you.",emoji:"😊"},
{de:"Mich auch.",en:"Nice to meet you too.",emoji:"🤗"},
{de:"Und Sie?",en:"And you? (formal)",emoji:"🙋"},
{de:"Ja",en:"Yes",emoji:"✅"},
{de:"Nein",en:"No",emoji:"❌"},
{de:"Das ist …",en:"This is …",emoji:"👆"},
{de:"Das ist nicht …",en:"This is not …",emoji:"🚫"},
{de:"Wer?",en:"Who?",emoji:"🤔"},
{de:"oder",en:"or",emoji:"↔️"},
]},
{num:2,name:"Andere vorstellen",en:"Introducing Others",review:false,cards:[
{de:"Herr",en:"Mr.",emoji:"👨"},
{de:"Frau",en:"Mrs. / Ms.",emoji:"👩"},
{de:"Wie geht es Ihnen?",en:"How are you? (formal)",emoji:"🤝"},
{de:"Wie geht es dir?",en:"How are you? (informal)",emoji:"👋"},
{de:"Gut, danke.",en:"Fine, thank you.",emoji:"😊"},
{de:"Auch gut, danke.",en:"Also fine, thank you.",emoji:"👍"},
{de:"Und Ihnen?",en:"And you? (formal)",emoji:"🙋"},
{de:"Und dir?",en:"And you? (informal)",emoji:"🙋"},
{de:"Wie geht's?",en:"How's it going?",emoji:"💬"},
{de:"du",en:"you (informal singular)",emoji:"☝️"},
{de:"er",en:"he",emoji:"👨"},
{de:"sie",en:"she",emoji:"👩"},
{de:"Sie",en:"you (formal)",emoji:"🎩"},
{de:"heißen",en:"to be called / named",emoji:"📛"},
{de:"ich heiße / du heißt / er heißt",en:"I am / you are / he is called",emoji:"🏷️"},
]},
{num:3,name:"Wo ist eine Stadt?",en:"Where Is a City?",review:false,cards:[
{de:"eine Stadt",en:"a city",emoji:"🏙️"},
{de:"ein Land",en:"a country",emoji:"🗺️"},
{de:"ein Kontinent",en:"a continent",emoji:"🌍"},
{de:"Wo …?",en:"Where …?",emoji:"📍"},
{de:"Deutschland",en:"Germany",emoji:"🇩🇪"},
{de:"Österreich",en:"Austria",emoji:"🇦🇹"},
{de:"die Schweiz",en:"Switzerland",emoji:"🇨🇭"},
{de:"Frankreich",en:"France",emoji:"🇫🇷"},
{de:"Spanien",en:"Spain",emoji:"🇪🇸"},
{de:"Italien",en:"Italy",emoji:"🇮🇹"},
{de:"Polen",en:"Poland",emoji:"🇵🇱"},
{de:"Russland",en:"Russia",emoji:"🇷🇺"},
{de:"Europa",en:"Europe",emoji:"🌍"},
{de:"Amerika",en:"America",emoji:"🌎"},
{de:"Asien",en:"Asia",emoji:"🌏"},
{de:"Afrika",en:"Africa",emoji:"🌍"},
{de:"Australien",en:"Australia",emoji:"🦘"},
{de:"Welcher / Welche / Welches?",en:"Which? (m / f / n)",emoji:"❓"},
{de:"kein / keine",en:"not a / no (m+n / f+pl)",emoji:"🚫"},
]},
{num:4,name:"Woher kommen Sie?",en:"Where Are You From?",review:false,cards:[
{de:"Woher kommen Sie?",en:"Where are you from? (formal)",emoji:"📍"},
{de:"Ich komme aus …",en:"I come from …",emoji:"✈️"},
{de:"Woher?",en:"From where?",emoji:"🗺️"},
{de:"die USA",en:"the USA",emoji:"🇺🇸"},
{de:"Tschechien",en:"Czech Republic",emoji:"🇨🇿"},
{de:"Dänemark",en:"Denmark",emoji:"🇩🇰"},
{de:"Griechenland",en:"Greece",emoji:"🇬🇷"},
{de:"die Niederlande",en:"the Netherlands",emoji:"🇳🇱"},
{de:"China",en:"China",emoji:"🇨🇳"},
{de:"Japan",en:"Japan",emoji:"🇯🇵"},
{de:"Brasilien",en:"Brazil",emoji:"🇧🇷"},
{de:"Indien",en:"India",emoji:"🇮🇳"},
{de:"nicht",en:"not",emoji:"🚫"},
]},
{num:5,name:"Nationalität",en:"Nationality",review:false,cards:[
{de:"Welche Nationalität haben Sie?",en:"What is your nationality?",emoji:"🌍"},
{de:"Ich bin …",en:"I am …",emoji:"👤"},
{de:"Deutscher / Deutsche",en:"German (m / f)",emoji:"🇩🇪"},
{de:"Franzose / Französin",en:"French (m / f)",emoji:"🇫🇷"},
{de:"Schweizer / Schweizerin",en:"Swiss (m / f)",emoji:"🇨🇭"},
{de:"Spanier / Spanierin",en:"Spanish (m / f)",emoji:"🇪🇸"},
{de:"Italiener / Italienerin",en:"Italian (m / f)",emoji:"🇮🇹"},
{de:"Amerikaner / Amerikanerin",en:"American (m / f)",emoji:"🇺🇸"},
{de:"Russe / Russin",en:"Russian (m / f)",emoji:"🇷🇺"},
{de:"ich bin / du bist / er ist / sie ist / Sie sind",en:"I / you / he / she / you (formal) am/are/is",emoji:"🔄"},
{de:"ich habe / du hast / er hat / sie hat / Sie haben",en:"I / you / he / she / you (formal) have/has",emoji:"🤲"},
]},
{num:6,name:"Sprachen sprechen",en:"Languages You Speak",review:false,cards:[
{de:"Sprechen Sie …?",en:"Do you speak …? (formal)",emoji:"💬"},
{de:"Ich spreche …",en:"I speak …",emoji:"🗣️"},
{de:"Deutsch",en:"German (language)",emoji:"🇩🇪"},
{de:"Englisch",en:"English",emoji:"🇬🇧"},
{de:"Französisch",en:"French",emoji:"🇫🇷"},
{de:"Spanisch",en:"Spanish",emoji:"🇪🇸"},
{de:"Italienisch",en:"Italian",emoji:"🇮🇹"},
{de:"Chinesisch",en:"Chinese",emoji:"🇨🇳"},
{de:"Japanisch",en:"Japanese",emoji:"🇯🇵"},
{de:"Russisch",en:"Russian",emoji:"🇷🇺"},
{de:"Arabisch",en:"Arabic",emoji:"🇸🇦"},
{de:"sehr gut",en:"very well",emoji:"⭐"},
{de:"gut",en:"well / good",emoji:"👍"},
{de:"ein bisschen",en:"a little bit",emoji:"🤏"},
{de:"auch",en:"also / too",emoji:"➕"},
{de:"aber",en:"but",emoji:"↕️"},
]},
{num:7,name:"Berufe",en:"Professions",review:false,cards:[
{de:"Was sind Sie von Beruf?",en:"What do you do for a living?",emoji:"💼"},
{de:"der Beruf",en:"the profession / job",emoji:"🏷️"},
{de:"Lehrer / Lehrerin",en:"teacher (m / f)",emoji:"📚"},
{de:"Arzt / Ärztin",en:"doctor (m / f)",emoji:"🩺"},
{de:"Anwalt / Anwältin",en:"lawyer (m / f)",emoji:"⚖️"},
{de:"IT-Manager / IT-Managerin",en:"IT manager (m / f)",emoji:"💻"},
{de:"Ingenieur / Ingenieurin",en:"engineer (m / f)",emoji:"🔧"},
{de:"Student / Studentin",en:"student (m / f)",emoji:"🎓"},
{de:"Geschäftsmann / Geschäftsfrau",en:"businessman / businesswoman",emoji:"💼"},
{de:"interessant",en:"interesting",emoji:"🤩"},
]},
{num:8,name:"Das Büro",en:"The Office",review:false,cards:[
{de:"das Büro",en:"the office",emoji:"🏢"},
{de:"der Computer",en:"the computer",emoji:"🖥️"},
{de:"der Drucker",en:"the printer",emoji:"🖨️"},
{de:"der Kugelschreiber / Kuli",en:"the pen",emoji:"🖊️"},
{de:"der Tisch",en:"the table",emoji:"🪑"},
{de:"der Schreibtisch",en:"the desk",emoji:"🖥️"},
{de:"der Bleistift",en:"the pencil",emoji:"✏️"},
{de:"der Laptop",en:"the laptop",emoji:"💻"},
{de:"der Papierkorb",en:"the wastepaper basket",emoji:"🗑️"},
{de:"der Stuhl",en:"the chair",emoji:"🪑"},
{de:"die Uhr",en:"the clock / watch",emoji:"⏰"},
{de:"die Zeitung",en:"the newspaper",emoji:"📰"},
{de:"die Lampe",en:"the lamp",emoji:"💡"},
{de:"die Schublade",en:"the drawer",emoji:"🗄️"},
{de:"die Tasse",en:"the cup",emoji:"☕"},
{de:"das Papier",en:"the paper",emoji:"📄"},
{de:"das Buch",en:"the book",emoji:"📖"},
{de:"das Handy",en:"the mobile phone",emoji:"📱"},
{de:"das Tablet",en:"the tablet",emoji:"📱"},
{de:"das Telefon",en:"the telephone",emoji:"📞"},
]},
{num:9,name:"Farben & Adjektive",en:"Colors & Adjectives",review:false,cards:[
{de:"die Farbe",en:"the color",emoji:"🎨"},
{de:"Welche Farbe hat …?",en:"What color is …?",emoji:"🎨"},
{de:"weiß",en:"white",emoji:"⬜"},
{de:"schwarz",en:"black",emoji:"⬛"},
{de:"grau",en:"gray",emoji:"🩶"},
{de:"blau",en:"blue",emoji:"🔵"},
{de:"rot",en:"red",emoji:"🔴"},
{de:"gelb",en:"yellow",emoji:"🟡"},
{de:"grün",en:"green",emoji:"🟢"},
{de:"braun",en:"brown",emoji:"🟫"},
{de:"rosa",en:"pink",emoji:"🩷"},
{de:"orange",en:"orange",emoji:"🟠"},
{de:"groß",en:"big / large",emoji:"🐘"},
{de:"klein",en:"small / little",emoji:"🐭"},
{de:"neu",en:"new",emoji:"✨"},
{de:"alt",en:"old",emoji:"🏺"},
{de:"modern",en:"modern",emoji:"🆕"},
]},
{num:10,name:"Wiederholung 1–9",en:"Review",review:true,cards:[]},
{num:11,name:"Besitz (Possessivpronomen)",en:"Possession",review:false,cards:[
{de:"mein / meine",en:"my (m+n / f+pl)",emoji:"👤"},
{de:"dein / deine",en:"your informal (m+n / f+pl)",emoji:"☝️"},
{de:"sein / seine",en:"his (m+n / f+pl)",emoji:"👨"},
{de:"ihr / ihre",en:"her (m+n / f+pl)",emoji:"👩"},
{de:"unser / unsere",en:"our (m+n / f+pl)",emoji:"👥"},
{de:"euer / eure",en:"your plural informal (m+n / f+pl)",emoji:"👫"},
{de:"Ihr / Ihre",en:"your formal (m+n / f+pl)",emoji:"🎩"},
{de:"Das ist mein Handy.",en:"That is my phone.",emoji:"📱"},
{de:"Das ist seine Zeitung.",en:"That is his newspaper.",emoji:"📰"},
{de:"Ist das Ihr Büro?",en:"Is that your office? (formal)",emoji:"🏢"},
]},
{num:12,name:"haben + Akkusativ",en:"Having Things",review:false,cards:[
{de:"Ich weiß nicht.",en:"I don't know.",emoji:"🤷"},
{de:"Aber sicher!",en:"Of course!",emoji:"💯"},
{de:"Hier, bitte.",en:"Here you go.",emoji:"🤲"},
{de:"Ich habe einen Stuhl.",en:"I have a chair. (m, Akk.)",emoji:"🪑"},
{de:"Ich habe eine Tasse.",en:"I have a cup. (f, Akk.)",emoji:"☕"},
{de:"Ich habe ein Buch.",en:"I have a book. (n, Akk.)",emoji:"📖"},
{de:"keinen / keine / kein",en:"no / not a (m / f / n, Akk.)",emoji:"🚫"},
{de:"Hast du einen Computer?",en:"Do you have a computer?",emoji:"💻"},
{de:"Er hat keinen Drucker.",en:"He has no printer.",emoji:"🖨️"},
]},
{num:13,name:"Wo arbeiten Sie?",en:"Where Do You Work?",review:false,cards:[
{de:"die Firma",en:"the company / firm",emoji:"🏢"},
{de:"arbeiten",en:"to work",emoji:"💼"},
{de:"Ich arbeite bei …",en:"I work at / for …",emoji:"🏢"},
{de:"Bei welcher Firma?",en:"At which company?",emoji:"🔍"},
{de:"ich arbeite / du arbeitest / er arbeitet",en:"I / you / he work(s)",emoji:"🔄"},
{de:"wir / ihr / sie arbeiten",en:"we / you all / they work",emoji:"👥"},
]},
{num:14,name:"Zahlen & Kontakte",en:"Numbers & Contacts",review:false,cards:[
{de:"null, eins, zwei, drei, vier, fünf",en:"0, 1, 2, 3, 4, 5",emoji:"🔢"},
{de:"sechs, sieben, acht, neun, zehn",en:"6, 7, 8, 9, 10",emoji:"🔢"},
{de:"elf, zwölf, dreizehn, vierzehn, fünfzehn",en:"11, 12, 13, 14, 15",emoji:"🔢"},
{de:"sechzehn, siebzehn, achtzehn, neunzehn, zwanzig",en:"16, 17, 18, 19, 20",emoji:"🔢"},
{de:"die Adresse",en:"the address",emoji:"📍"},
{de:"die Telefonnummer",en:"the phone number",emoji:"📞"},
{de:"die Handynummer",en:"the mobile number",emoji:"📱"},
{de:"die E-Mail-Adresse",en:"the email address",emoji:"📧"},
{de:"die Visitenkarte",en:"the business card",emoji:"💳"},
{de:"buchstabieren",en:"to spell",emoji:"🔤"},
{de:"Wie schreibt man das?",en:"How do you spell / write that?",emoji:"✍️"},
]},
{num:15,name:"Wie viel Uhr ist es?",en:"What Time Is It?",review:false,cards:[
{de:"Wie viel Uhr ist es?",en:"What time is it?",emoji:"⏰"},
{de:"Wie spät ist es?",en:"What time is it? (alt.)",emoji:"🕐"},
{de:"Es ist … Uhr.",en:"It is … o'clock.",emoji:"🕐"},
{de:"halb",en:"half past (the previous hour)",emoji:"🕧"},
{de:"Viertel nach",en:"quarter past",emoji:"🕒"},
{de:"Viertel vor",en:"quarter to",emoji:"🕔"},
{de:"morgens",en:"in the morning (a.m.)",emoji:"🌅"},
{de:"vormittags",en:"late morning",emoji:"🌤️"},
{de:"mittags",en:"at noon",emoji:"☀️"},
{de:"nachmittags",en:"in the afternoon",emoji:"🌤️"},
{de:"abends",en:"in the evening",emoji:"🌆"},
{de:"nachts",en:"at night",emoji:"🌙"},
{de:"Entschuldigung.",en:"Excuse me.",emoji:"🙏"},
{de:"Gern geschehen.",en:"You're welcome.",emoji:"😊"},
]},
{num:16,name:"Getränke bestellen",en:"Ordering Drinks",review:false,cards:[
{de:"Was darf's sein?",en:"What would you like? (waiter)",emoji:"🙋"},
{de:"Ich möchte …",en:"I would like …",emoji:"🙏"},
{de:"der Tee",en:"the tea",emoji:"🍵"},
{de:"der Kaffee",en:"the coffee",emoji:"☕"},
{de:"die Milch",en:"the milk",emoji:"🥛"},
{de:"der Zucker",en:"the sugar",emoji:"🍬"},
{de:"die Zitrone",en:"the lemon",emoji:"🍋"},
{de:"das Wasser",en:"the water",emoji:"💧"},
{de:"das Bier",en:"the beer",emoji:"🍺"},
{de:"der Wein",en:"the wine",emoji:"🍷"},
{de:"der Weißwein",en:"the white wine",emoji:"🥂"},
{de:"der Rotwein",en:"the red wine",emoji:"🍷"},
{de:"der Saft",en:"the juice",emoji:"🧃"},
{de:"der Orangensaft",en:"the orange juice",emoji:"🍊"},
{de:"der Apfelsaft",en:"the apple juice",emoji:"🍎"},
{de:"mit",en:"with",emoji:"➕"},
{de:"ohne",en:"without",emoji:"➖"},
{de:"nur",en:"only",emoji:"☝️"},
{de:"Danke schön.",en:"Thank you very much.",emoji:"🙏"},
{de:"Bitte schön.",en:"Here you go. / You're welcome.",emoji:"😊"},
]},
{num:17,name:"Frühstück bestellen",en:"Ordering Breakfast",review:false,cards:[
{de:"das Frühstück",en:"breakfast",emoji:"🍳"},
{de:"frühstücken",en:"to have breakfast",emoji:"🌅"},
{de:"das Brot",en:"the bread",emoji:"🍞"},
{de:"das Brötchen",en:"the bread roll",emoji:"🥐"},
{de:"das Croissant",en:"the croissant",emoji:"🥐"},
{de:"die Butter",en:"the butter",emoji:"🧈"},
{de:"die Marmelade",en:"the jam",emoji:"🫙"},
{de:"das Obst",en:"the fruit",emoji:"🍎"},
{de:"der Apfel",en:"the apple",emoji:"🍎"},
{de:"die Orange",en:"the orange",emoji:"🍊"},
{de:"der Käse",en:"the cheese",emoji:"🧀"},
{de:"das Ei / die Eier",en:"the egg / the eggs",emoji:"🥚"},
{de:"die Wurst",en:"the sausage / cold cuts",emoji:"🌭"},
{de:"essen",en:"to eat",emoji:"🍽️"},
{de:"trinken",en:"to drink",emoji:"🥤"},
{de:"um … Uhr",en:"at … o'clock",emoji:"⏰"},
{de:"Um wie viel Uhr?",en:"At what time?",emoji:"🕐"},
{de:"zu Mittag / zu Abend",en:"for lunch / for dinner",emoji:"🍽️"},
]},
{num:18,name:"Mittagessen & Abendessen",en:"Lunch & Dinner",review:false,cards:[
{de:"das Mittagessen",en:"lunch",emoji:"🍽️"},
{de:"das Abendessen",en:"dinner",emoji:"🌙"},
{de:"Ich hätte gern …",en:"I would like … (polite)",emoji:"🙏"},
{de:"Kommt sofort!",en:"Coming right away!",emoji:"⚡"},
{de:"der Salat",en:"the salad",emoji:"🥗"},
{de:"der Tomatensalat",en:"the tomato salad",emoji:"🍅"},
{de:"die Kartoffel",en:"the potato",emoji:"🥔"},
{de:"die Pommes frites",en:"french fries",emoji:"🍟"},
{de:"die Suppe",en:"the soup",emoji:"🍲"},
{de:"die Tomate",en:"the tomato",emoji:"🍅"},
{de:"das Gemüse",en:"the vegetables",emoji:"🥦"},
{de:"das Hähnchen",en:"the chicken",emoji:"🍗"},
{de:"das Steak",en:"the steak",emoji:"🥩"},
{de:"die Pizza",en:"the pizza",emoji:"🍕"},
{de:"das Fischfilet",en:"the fish fillet",emoji:"🐟"},
{de:"der Imbiss",en:"the snack bar",emoji:"🥙"},
]},
{num:19,name:"Speisekarte",en:"Reading a Menu",review:false,cards:[
{de:"die Speisekarte",en:"the menu",emoji:"📋"},
{de:"die Vorspeise",en:"the starter / appetizer",emoji:"🥗"},
{de:"die Hauptspeise",en:"the main course",emoji:"🍽️"},
{de:"die Nachspeise / der Nachtisch",en:"the dessert",emoji:"🍰"},
{de:"der Kuchen",en:"the cake",emoji:"🎂"},
{de:"das Eis",en:"the ice cream",emoji:"🍦"},
{de:"Ich esse den Kuchen.",en:"I eat the cake. (definite Akk., m)",emoji:"🎂"},
{de:"Sie trinkt die Milch.",en:"She drinks the milk. (definite Akk., f)",emoji:"🥛"},
{de:"Er isst das Brot.",en:"He eats the bread. (definite Akk., n)",emoji:"🍞"},
{de:"Doch.",en:"Yes I am. (contradicting a negative)",emoji:"✅"},
]},
{num:20,name:"Wiederholung 11–19",en:"Review",review:true,cards:[]},
{num:21,name:"Kleidung beschreiben",en:"Describing Clothing",review:false,cards:[
{de:"die Kleidung",en:"clothing",emoji:"👗"},
{de:"die Jacke",en:"the jacket",emoji:"🧥"},
{de:"die Bluse",en:"the blouse",emoji:"👚"},
{de:"die Hose",en:"the trousers / pants",emoji:"👖"},
{de:"das Hemd",en:"the shirt",emoji:"👔"},
{de:"das T-Shirt",en:"the T-shirt",emoji:"👕"},
{de:"das Jackett",en:"the suit jacket / blazer",emoji:"🧥"},
{de:"der Pulli / Pullover",en:"the sweater / pullover",emoji:"🧶"},
{de:"die Jeans",en:"the jeans",emoji:"👖"},
{de:"der Anzug",en:"the suit",emoji:"🤵"},
{de:"der Rock",en:"the skirt",emoji:"👗"},
{de:"der Mantel",en:"the coat",emoji:"🧥"},
{de:"das Kleid",en:"the dress",emoji:"👗"},
]},
{num:22,name:"Kleidung tragen",en:"Wearing Clothing",review:false,cards:[
{de:"tragen",en:"to wear / carry",emoji:"👕"},
{de:"ich trage / du trägst / er trägt",en:"I / you / he wear(s)",emoji:"🔄"},
{de:"der Gürtel",en:"the belt",emoji:"🔗"},
{de:"die Krawatte",en:"the tie",emoji:"👔"},
{de:"der Schuh / die Schuhe",en:"the shoe / the shoes",emoji:"👟"},
{de:"die Socke / die Socken",en:"the sock / the socks",emoji:"🧦"},
{de:"Er trägt einen blauen Pullover.",en:"He wears a blue sweater.",emoji:"🧶"},
{de:"Sie trägt eine weiße Jacke.",en:"She wears a white jacket.",emoji:"🧥"},
{de:"Ich trage ein rotes T-Shirt.",en:"I wear a red T-shirt.",emoji:"👕"},
]},
{num:23,name:"Kleidergrößen",en:"Clothing Sizes",review:false,cards:[
{de:"die Größe",en:"the size",emoji:"📏"},
{de:"die Schuhgröße",en:"the shoe size",emoji:"👟"},
{de:"der Handschuh / die Handschuhe",en:"the glove / the gloves",emoji:"🧤"},
{de:"ein Paar",en:"a pair",emoji:"2️⃣"},
{de:"Kann ich Ihnen helfen?",en:"Can I help you?",emoji:"🙋"},
{de:"Leider nicht.",en:"Unfortunately not.",emoji:"😞"},
{de:"Haben Sie … in Größe …?",en:"Do you have … in size …?",emoji:"🔍"},
{de:"Vielen Dank!",en:"Thank you very much!",emoji:"🙏"},
]},
{num:24,name:"Was gefällt Ihnen?",en:"What Do You Like?",review:false,cards:[
{de:"schön",en:"beautiful / nice",emoji:"😍"},
{de:"kurz",en:"short",emoji:"⬇️"},
{de:"lang",en:"long",emoji:"⬆️"},
{de:"elegant",en:"elegant",emoji:"💃"},
{de:"sportlich",en:"sporty / casual",emoji:"🏃"},
{de:"zu kurz / zu lang",en:"too short / too long",emoji:"📏"},
{de:"Das gefällt mir.",en:"I like that.",emoji:"❤️"},
{de:"Das gefällt mir nicht.",en:"I don't like that.",emoji:"💔"},
{de:"dieser / diese / dieses",en:"this (m / f / n)",emoji:"👆"},
{de:"Dieser Pulli ist grün.",en:"This sweater is green.",emoji:"🧶"},
{de:"Diese Bluse ist schön.",en:"This blouse is beautiful.",emoji:"👚"},
{de:"Dieses Hemd gefällt mir nicht.",en:"I don't like this shirt.",emoji:"👔"},
]},
{num:25,name:"Kleidung bezahlen",en:"Paying for Clothing",review:false,cards:[
{de:"bezahlen / zahlen",en:"to pay",emoji:"💳"},
{de:"kosten",en:"to cost",emoji:"💰"},
{de:"kaufen",en:"to buy",emoji:"🛍️"},
{de:"das Geld",en:"the money",emoji:"💵"},
{de:"der Euro",en:"the euro",emoji:"💶"},
{de:"der Cent",en:"the cent",emoji:"🪙"},
{de:"der Franken",en:"the Swiss franc",emoji:"🇨🇭"},
{de:"bar",en:"cash",emoji:"💵"},
{de:"mit Kreditkarte",en:"by credit card",emoji:"💳"},
{de:"mit Bankkarte",en:"by debit card",emoji:"💳"},
{de:"Das macht … Euro.",en:"That comes to … euros.",emoji:"🧾"},
{de:"Wie viel kostet das?",en:"How much does that cost?",emoji:"💰"},
{de:"Auf Wiedersehen.",en:"Goodbye. (formal)",emoji:"👋"},
]},
{num:26,name:"Was gibt es in der Stadt?",en:"What's in the City?",review:false,cards:[
{de:"die Straße",en:"the street",emoji:"🛣️"},
{de:"der Platz",en:"the square / plaza",emoji:"⛲"},
{de:"der Park",en:"the park",emoji:"🌳"},
{de:"das Café",en:"the café",emoji:"☕"},
{de:"das Hotel",en:"the hotel",emoji:"🏨"},
{de:"das Restaurant",en:"the restaurant",emoji:"🍽️"},
{de:"der Taxistand",en:"the taxi stand",emoji:"🚕"},
{de:"der Parkplatz",en:"the parking lot",emoji:"🅿️"},
{de:"das Geschäft",en:"the shop / store",emoji:"🏪"},
{de:"die Post",en:"the post office",emoji:"📮"},
{de:"die Bank",en:"the bank",emoji:"🏦"},
{de:"die Schule",en:"the school",emoji:"🏫"},
{de:"die Kirche",en:"the church",emoji:"⛪"},
{de:"das Museum",en:"the museum",emoji:"🏛️"},
{de:"das Kino",en:"the cinema",emoji:"🎬"},
{de:"das Theater",en:"the theater",emoji:"🎭"},
{de:"Es gibt …",en:"There is / there are …",emoji:"🔍"},
{de:"Gibt es … in der Nähe?",en:"Is there … nearby?",emoji:"📍"},
{de:"Entschuldigen Sie, …?",en:"Excuse me, …?",emoji:"🙏"},
]},
{num:27,name:"Wo ist etwas?",en:"Where Is Something?",review:false,cards:[
{de:"vor (dem / der)",en:"in front of (+ dative)",emoji:"⬆️"},
{de:"hinter (dem / der)",en:"behind (+ dative)",emoji:"⬇️"},
{de:"neben (dem / der)",en:"next to (+ dative)",emoji:"↔️"},
{de:"zwischen … und …",en:"between … and … (+ dative)",emoji:"↔️"},
{de:"gegenüber von",en:"opposite / across from",emoji:"🔄"},
{de:"in der Nähe von",en:"near / in the vicinity of",emoji:"📍"},
{de:"Der Parkplatz ist hinter dem Café.",en:"The parking lot is behind the café.",emoji:"🅿️"},
{de:"Das Kino ist zwischen der Bank und der Schule.",en:"The cinema is between the bank and the school.",emoji:"🎬"},
{de:"Das Hotel ist gegenüber vom Bahnhof.",en:"The hotel is across from the train station.",emoji:"🏨"},
{de:"hier",en:"here",emoji:"📍"},
{de:"dort",en:"there",emoji:"🗺️"},
]},
{num:28,name:"Verkehrsmittel",en:"Transportation",review:false,cards:[
{de:"der Zug",en:"the train",emoji:"🚂"},
{de:"das Auto",en:"the car",emoji:"🚗"},
{de:"das Fahrrad",en:"the bicycle",emoji:"🚲"},
{de:"das Flugzeug",en:"the airplane",emoji:"✈️"},
{de:"der Bus",en:"the bus",emoji:"🚌"},
{de:"die Straßenbahn",en:"the tram / streetcar",emoji:"🚊"},
{de:"die U-Bahn",en:"the subway / underground",emoji:"🚇"},
{de:"das Taxi",en:"the taxi",emoji:"🚕"},
{de:"der Bahnhof",en:"the train station",emoji:"🚉"},
{de:"der Flughafen",en:"the airport",emoji:"🛫"},
{de:"die Haltestelle",en:"the bus / tram stop",emoji:"🚏"},
{de:"fahren",en:"to drive / travel (by vehicle)",emoji:"🚗"},
{de:"fliegen",en:"to fly",emoji:"✈️"},
{de:"gehen",en:"to go / walk",emoji:"🚶"},
{de:"zu Fuß",en:"on foot",emoji:"👟"},
{de:"mit dem Bus / Zug / Auto",en:"by bus / train / car",emoji:"🚌"},
{de:"mit der Straßenbahn / U-Bahn",en:"by tram / subway",emoji:"🚊"},
{de:"wohnen",en:"to live / reside",emoji:"🏠"},
{de:"nach Hause",en:"home(ward)",emoji:"🏠"},
]},
{num:29,name:"Woher & Wohin?",en:"From & To",review:false,cards:[
{de:"der Stadtplan",en:"the city map",emoji:"🗺️"},
{de:"die Apotheke",en:"the pharmacy",emoji:"💊"},
{de:"das Stadion",en:"the stadium",emoji:"🏟️"},
{de:"von dem = vom",en:"from the (m/n, dative)",emoji:"⬅️"},
{de:"von der",en:"from the (f, dative)",emoji:"⬅️"},
{de:"zu dem = zum",en:"to the (m/n, dative)",emoji:"➡️"},
{de:"zu der = zur",en:"to the (f, dative)",emoji:"➡️"},
{de:"Ich fahre vom Bahnhof zum Flughafen.",en:"I travel from the station to the airport.",emoji:"🚂"},
{de:"Ich gehe zur Schule.",en:"I go to school.",emoji:"🏫"},
{de:"Wohin fahren Sie?",en:"Where are you going?",emoji:"🗺️"},
]},
{num:30,name:"Wiederholung 21–29",en:"Review",review:true,cards:[]},
{num:31,name:"Nach dem Weg fragen",en:"Asking for Directions",review:false,cards:[
{de:"nach dem Weg fragen",en:"to ask for directions",emoji:"🗺️"},
{de:"geradeaus",en:"straight ahead",emoji:"⬆️"},
{de:"nach links",en:"to the left",emoji:"⬅️"},
{de:"nach rechts",en:"to the right",emoji:"➡️"},
{de:"links von",en:"to the left of",emoji:"⬅️"},
{de:"rechts von",en:"to the right of",emoji:"➡️"},
{de:"direkt",en:"directly / right there",emoji:"📍"},
{de:"Es tut mir leid.",en:"I'm sorry.",emoji:"😔"},
{de:"Wie komme ich zum / zur …?",en:"How do I get to the …?",emoji:"🗺️"},
{de:"Gehen Sie geradeaus bis zur …",en:"Go straight ahead to the …",emoji:"⬆️"},
{de:"Nehmen Sie … bis zum …",en:"Take … as far as the …",emoji:"🚶"},
{de:"nicht weit von hier",en:"not far from here",emoji:"📍"},
]},
{num:32,name:"Meine Familie",en:"My Family",review:false,cards:[
{de:"die Familie",en:"the family",emoji:"👨👩👧👦"},
{de:"der Vater / die Mutter",en:"the father / the mother",emoji:"👨👩👦"},
{de:"die Eltern",en:"the parents",emoji:"👨👩👦"},
{de:"der Bruder / die Schwester",en:"the brother / the sister",emoji:"👫"},
{de:"die Geschwister",en:"the siblings",emoji:"👫"},
{de:"der Sohn / die Tochter",en:"the son / the daughter",emoji:"👦👧"},
{de:"die Kinder",en:"the children",emoji:"👶"},
{de:"der Ehemann / die Ehefrau",en:"the husband / the wife",emoji:"💍"},
{de:"der Großvater / die Großmutter",en:"the grandfather / the grandmother",emoji:"👴👵"},
{de:"die Großeltern",en:"the grandparents",emoji:"👴👵"},
{de:"das Haustier",en:"the pet",emoji:"🐾"},
{de:"die Katze",en:"the cat",emoji:"🐱"},
{de:"der Hund",en:"the dog",emoji:"🐶"},
{de:"Haben Sie Kinder?",en:"Do you have children?",emoji:"👶"},
]},
{num:33,name:"Wie alt sind Sie?",en:"How Old Are You?",review:false,cards:[
{de:"Wie alt sind Sie?",en:"How old are you? (formal)",emoji:"🎂"},
{de:"Ich bin … Jahre alt.",en:"I am … years old.",emoji:"🎂"},
{de:"jung",en:"young",emoji:"🌱"},
{de:"alt",en:"old",emoji:"🌳"},
{de:"der Junge",en:"the boy",emoji:"👦"},
{de:"das Mädchen",en:"the girl",emoji:"👧"},
{de:"der Freund / die Freundin",en:"the friend (m / f)",emoji:"👫"},
]},
{num:34,name:"Jemanden beschreiben",en:"Describing Someone",review:false,cards:[
{de:"Wie sieht … aus?",en:"What does … look like?",emoji:"👁️"},
{de:"das Haar / die Haare",en:"the hair",emoji:"💇"},
{de:"die Haarfarbe",en:"the hair color",emoji:"🎨"},
{de:"das Auge / die Augen",en:"the eye / the eyes",emoji:"👀"},
{de:"blond",en:"blonde",emoji:"👱"},
{de:"glatt",en:"straight (hair)",emoji:"〰️"},
{de:"lockig",en:"curly",emoji:"🌀"},
{de:"hübsch",en:"pretty (f)",emoji:"😍"},
{de:"attraktiv",en:"attractive (m)",emoji:"😎"},
{de:"ungefähr",en:"approximately",emoji:"🔢"},
]},
{num:35,name:"Wen kennen Sie?",en:"Who Do You Know?",review:false,cards:[
{de:"kennen",en:"to know (a person)",emoji:"🤝"},
{de:"sehen",en:"to see",emoji:"👁️"},
{de:"Wen …?",en:"Whom …? (Akkusativ)",emoji:"🤔"},
{de:"mich",en:"me (Akkusativ)",emoji:"👤"},
{de:"dich",en:"you informal (Akkusativ)",emoji:"☝️"},
{de:"ihn",en:"him (Akkusativ)",emoji:"👨"},
{de:"sie",en:"her / them (Akkusativ)",emoji:"👩"},
{de:"uns",en:"us (Akkusativ)",emoji:"👥"},
{de:"euch",en:"you all informal (Akkusativ)",emoji:"👫"},
{de:"Ich kenne ihn nicht.",en:"I don't know him.",emoji:"🤷"},
]},
{num:36,name:"Beziehungen",en:"Relationships",review:false,cards:[
{de:"verheiratet",en:"married",emoji:"💍"},
{de:"ledig",en:"single",emoji:"🔓"},
{de:"verlobt",en:"engaged",emoji:"💍"},
{de:"geschieden",en:"divorced",emoji:"💔"},
{de:"getrennt",en:"separated",emoji:"↔️"},
{de:"der Partner / die Partnerin",en:"the partner (m / f)",emoji:"👫"},
{de:"der Ex-Mann / die Ex-Frau",en:"the ex-husband / ex-wife",emoji:"💔"},
{de:"Ich sehe meinen Freund.",en:"I see my friend. (m, Akk.)",emoji:"👁️"},
{de:"Ich kenne Ihren Mann nicht.",en:"I don't know your husband. (formal)",emoji:"🤷"},
]},
{num:37,name:"Das Wetter",en:"The Weather",review:false,cards:[
{de:"das Wetter",en:"the weather",emoji:"🌤️"},
{de:"Wie ist das Wetter?",en:"What is the weather like?",emoji:"🌡️"},
{de:"Es regnet.",en:"It is raining.",emoji:"🌧️"},
{de:"Es schneit.",en:"It is snowing.",emoji:"❄️"},
{de:"Es ist sonnig.",en:"It is sunny.",emoji:"☀️"},
{de:"Es ist windig.",en:"It is windy.",emoji:"💨"},
{de:"Es ist bewölkt.",en:"It is cloudy.",emoji:"☁️"},
{de:"Die Sonne scheint.",en:"The sun is shining.",emoji:"☀️"},
{de:"der Frühling / Sommer / Herbst / Winter",en:"spring / summer / fall / winter",emoji:"🌸"},
{de:"Januar, Februar, März, April, Mai, Juni",en:"January through June",emoji:"📅"},
{de:"Juli, August, September, Oktober, November, Dezember",en:"July through December",emoji:"📅"},
]},
{num:38,name:"Temperaturen & Wochentage",en:"Temperatures & Days",review:false,cards:[
{de:"kalt",en:"cold",emoji:"🥶"},
{de:"warm",en:"warm",emoji:"🌡️"},
{de:"Es sind … Grad Celsius.",en:"It is … degrees Celsius.",emoji:"🌡️"},
{de:"herrlich",en:"wonderful / lovely",emoji:"😍"},
{de:"schrecklich",en:"terrible",emoji:"😱"},
{de:"eiskalt",en:"ice cold",emoji:"🧊"},
{de:"heute",en:"today",emoji:"📅"},
{de:"morgen",en:"tomorrow",emoji:"🌅"},
{de:"gestern",en:"yesterday",emoji:"⏪"},
{de:"übermorgen",en:"the day after tomorrow",emoji:"📅"},
{de:"vorgestern",en:"the day before yesterday",emoji:"⏪"},
{de:"Montag, Dienstag, Mittwoch",en:"Monday, Tuesday, Wednesday",emoji:"📅"},
{de:"Donnerstag, Freitag, Samstag, Sonntag",en:"Thursday, Friday, Saturday, Sunday",emoji:"📅"},
{de:"Gestern war es kalt.",en:"Yesterday it was cold. (Präteritum)",emoji:"❄️"},
{de:"war / warst / wart / waren",en:"was / were (Präteritum of sein)",emoji:"🔄"},
]},
{num:39,name:"Wochenende & Freizeit",en:"Weekend & Leisure",review:false,cards:[
{de:"das Wochenende",en:"the weekend",emoji:"🎉"},
{de:"Wohin fahren Sie?",en:"Where are you going?",emoji:"🗺️"},
{de:"ans Meer",en:"to the sea",emoji:"🌊"},
{de:"in die Berge",en:"into the mountains",emoji:"⛰️"},
{de:"aufs Land",en:"to the countryside",emoji:"🌾"},
{de:"ins Restaurant",en:"to the restaurant",emoji:"🍽️"},
{de:"ins Kino",en:"to the cinema",emoji:"🎬"},
{de:"Mir ist kalt.",en:"I am cold. (lit: to me it is cold)",emoji:"🥶"},
{de:"Es regnet in Strömen.",en:"It is pouring with rain.",emoji:"⛈️"},
]},
{num:40,name:"Wiederholung 31–39",en:"Review",review:true,cards:[]},
];
let deck=[],current=0,isFlipped=false,score={got:0,missed:0,skipped:0},missedCards=[];
function init(){
const grid=document.getElementById('unit-grid');
UNITS.forEach(u=>{
const c=document.createElement('div');
c.className='unit-card'+(u.review?' review':'');
c.id='unit-'+u.num;
c.innerHTML=`<div class="unit-num">Einheit ${u.num}${u.review?' · 🔁':''}</div><div class="unit-name">${u.name}</div><div class="unit-count">${u.review?'Wiederholung':u.cards.length+' Karten'}</div>`;
if(!u.review)c.onclick=()=>toggleUnit(u.num);
grid.appendChild(c);
});
}
function toggleUnit(num){document.getElementById('unit-'+num).classList.toggle('selected');updateStartBtn();}
function updateStartBtn(){
const total=UNITS.filter(u=>!u.review&&document.getElementById('unit-'+u.num).classList.contains('selected')).reduce((a,u)=>a+u.cards.length,0);
const btn=document.getElementById('start-btn');
btn.textContent=total>0?`Start — ${total} cards`:'Start — 0 cards';
btn.disabled=total===0;
}
function selectAll(){UNITS.forEach(u=>{if(!u.review)document.getElementById('unit-'+u.num).classList.add('selected');});updateStartBtn();}
function clearAll(){UNITS.forEach(u=>{if(!u.review)document.getElementById('unit-'+u.num).classList.remove('selected');});updateStartBtn();}
function startStudy(cardsOverride){
deck=cardsOverride?[...cardsOverride]:[];
if(!cardsOverride)UNITS.forEach(u=>{if(!u.review&&document.getElementById('unit-'+u.num).classList.contains('selected'))u.cards.forEach(c=>deck.push({...c,unitNum:u.num,unitName:u.name}));});
shuffle(deck);current=0;score={got:0,missed:0,skipped:0};missedCards=[];
const sel=UNITS.filter(u=>!u.review&&document.getElementById('unit-'+u.num).classList.contains('selected'));
document.getElementById('study-title').textContent=cardsOverride?'Missed cards':`${sel.length} Einheit${sel.length!==1?'en':''}`;
document.getElementById('study-sub').textContent=`${deck.length} Karten`;
showScreen('screen-study');showCard();
}
function showCard(){
if(current>=deck.length){showResults();return;}
const c=deck[current];isFlipped=false;
document.getElementById('flashcard').classList.remove('flipped');
document.getElementById('card-emoji').textContent=c.emoji||'';
document.getElementById('card-emoji-back').textContent=c.emoji||'';
document.getElementById('card-de').textContent=c.de;
document.getElementById('card-en').textContent=c.en;
document.getElementById('card-unit-label').textContent=`Einheit ${c.unitNum} — ${c.unitName}`;
document.getElementById('action-row').classList.add('hidden-btns');
updateProgress();
}
function flipCard(){if(isFlipped)return;isFlipped=true;document.getElementById('flashcard').classList.add('flipped');document.getElementById('action-row').classList.remove('hidden-btns');}
function markCard(got){if(!isFlipped)return;if(got)score.got++;else{score.missed++;missedCards.push(deck[current]);}current++;setTimeout(showCard,200);}
function skipCard(){score.skipped++;current++;setTimeout(showCard,200);}
function updateProgress(){const pct=deck.length>0?(current/deck.length)*100:0;document.getElementById('progress-bar').style.width=pct+'%';document.getElementById('progress-text').textContent=`${current} / ${deck.length}`;}
function showResults(){
showScreen('screen-results');
const pct=(score.got+score.missed)>0?Math.round(score.got/(score.got+score.missed)*100):0;
let emoji='🎉',title='Ausgezeichnet!',sub='Fantastic work, Mike!';
if(pct<50){emoji='💪';title='Weiter üben!';sub="Keep practicing — you'll get there!";}
else if(pct<75){emoji='👍';title='Gut gemacht!';sub='Good work! Review the missed cards.';}
else if(pct<90){emoji='⭐';title='Sehr gut!';sub='Really solid. A few more to nail down.';}
document.getElementById('results-emoji').textContent=emoji;
document.getElementById('results-title').textContent=title;
document.getElementById('results-sub').textContent=sub;
document.getElementById('results-stats').innerHTML=`<div class="stat-row"><span class="stat-label">✓ Got it</span><span class="stat-val">${score.got}</span></div><div class="stat-row"><span class="stat-label">✗ Not yet</span><span class="stat-val">${score.missed}</span></div><div class="stat-row"><span class="stat-label">→ Skipped</span><span class="stat-val">${score.skipped}</span></div><div class="stat-row"><span class="stat-label">Score</span><span class="stat-val">${pct}%</span></div>`;
const btn=document.querySelector('.results-btn');btn.disabled=missedCards.length===0;btn.style.opacity=missedCards.length===0?'0.4':'1';
btn.textContent=`Review ${missedCards.length} missed card${missedCards.length!==1?'s':''}`;
}
function reviewMissed(){if(missedCards.length>0)startStudy(missedCards);}
function goHome(){showScreen('screen-picker');}
function goBack(){showScreen('screen-picker');}
function showScreen(id){document.querySelectorAll('.screen').forEach(s=>s.classList.remove('active'));document.getElementById(id).classList.add('active');}
function shuffle(arr){for(let i=arr.length-1;i>0;i--){const j=Math.floor(Math.random()*(i+1));[arr[i],arr[j]]=[arr[j],arr[i]];}}
document.addEventListener('keydown',e=>{
if(document.getElementById('screen-study').classList.contains('active')){
if(e.key===' '){e.preventDefault();flipCard();}
if(e.key==='ArrowRight'||e.key==='y')markCard(true);
if(e.key==='ArrowLeft'||e.key==='n')markCard(false);
if(e.key==='s')skipCard();
}
});
init();
</script>
</body>
</html>