.exercise-menu{max-width:500px;margin:0 auto;text-align:center}.exercise-menu h2{border-bottom:none;margin-bottom:1.5rem;font-size:1.1rem}.exercise-menu .type-links{display:flex;flex-direction:column;gap:.6rem;align-items:stretch}.exercise-menu .type-links a{display:block;padding:.8rem 1.5rem;background:var(--yellow-light);border:1px solid var(--yellow);border-radius:var(--radius);font-weight:700;font-size:1rem;font-family:inherit;text-transform:lowercase;text-decoration:none;color:var(--text);transition:background .12s}.exercise-menu .type-links a::first-letter{text-transform:uppercase}.exercise-menu .type-links a:hover{background:var(--yellow)}.progress-bar-wrap{margin-top:.4rem}.progress-bar{height:6px;background:0 0;border:1px solid var(--border);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--blue);transition:width .3s;width:0%}.pct-0{width:0%}.pct-1{width:1%}.pct-2{width:2%}.pct-3{width:3%}.pct-4{width:4%}.pct-5{width:5%}.pct-6{width:6%}.pct-7{width:7%}.pct-8{width:8%}.pct-9{width:9%}.pct-10{width:10%}.pct-11{width:11%}.pct-12{width:12%}.pct-13{width:13%}.pct-14{width:14%}.pct-15{width:15%}.pct-16{width:16%}.pct-17{width:17%}.pct-18{width:18%}.pct-19{width:19%}.pct-20{width:20%}.pct-21{width:21%}.pct-22{width:22%}.pct-23{width:23%}.pct-24{width:24%}.pct-25{width:25%}.pct-26{width:26%}.pct-27{width:27%}.pct-28{width:28%}.pct-29{width:29%}.pct-30{width:30%}.pct-31{width:31%}.pct-32{width:32%}.pct-33{width:33%}.pct-34{width:34%}.pct-35{width:35%}.pct-36{width:36%}.pct-37{width:37%}.pct-38{width:38%}.pct-39{width:39%}.pct-40{width:40%}.pct-41{width:41%}.pct-42{width:42%}.pct-43{width:43%}.pct-44{width:44%}.pct-45{width:45%}.pct-46{width:46%}.pct-47{width:47%}.pct-48{width:48%}.pct-49{width:49%}.pct-50{width:50%}.pct-51{width:51%}.pct-52{width:52%}.pct-53{width:53%}.pct-54{width:54%}.pct-55{width:55%}.pct-56{width:56%}.pct-57{width:57%}.pct-58{width:58%}.pct-59{width:59%}.pct-60{width:60%}.pct-61{width:61%}.pct-62{width:62%}.pct-63{width:63%}.pct-64{width:64%}.pct-65{width:65%}.pct-66{width:66%}.pct-67{width:67%}.pct-68{width:68%}.pct-69{width:69%}.pct-70{width:70%}.pct-71{width:71%}.pct-72{width:72%}.pct-73{width:73%}.pct-74{width:74%}.pct-75{width:75%}.pct-76{width:76%}.pct-77{width:77%}.pct-78{width:78%}.pct-79{width:79%}.pct-80{width:80%}.pct-81{width:81%}.pct-82{width:82%}.pct-83{width:83%}.pct-84{width:84%}.pct-85{width:85%}.pct-86{width:86%}.pct-87{width:87%}.pct-88{width:88%}.pct-89{width:89%}.pct-90{width:90%}.pct-91{width:91%}.pct-92{width:92%}.pct-93{width:93%}.pct-94{width:94%}.pct-95{width:95%}.pct-96{width:96%}.pct-97{width:97%}.pct-98{width:98%}.pct-99{width:99%}.pct-100{width:100%}.progress-bar-label{display:block;font-size:.7rem;font-weight:400;color:var(--muted);margin-top:.15rem}.exercise-global-progress{margin-bottom:1.2rem}.exercise-global-progress .progress-bar{height:8px}.exercise-global-progress .progress-bar-label{font-size:.8rem}.exercise-container{max-width:600px;margin:0 auto}.exercise-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--blue-light)}.exercise-type-label{font-weight:700;letter-spacing:.08em;text-transform:uppercase}.exercise-progress,.exercise-type-label{font-size:.85rem;color:var(--muted)}.exercise-sub-label{font-weight:400}.exercise-back{text-align:center;margin-top:1rem;font-size:.85rem}.exercise-back a{color:var(--muted);text-decoration:none}.ex-options{display:flex;flex-direction:column;gap:.5rem}.ex-option,.exercise-form input[type=text]{font-family:inherit;border-radius:var(--radius);color:var(--text)}.ex-option{padding:.75rem 1rem;font-size:1.05rem;font-weight:400;text-align:left;background:0 0;border:1px solid var(--border);cursor:pointer;transition:background .12s,border-color .12s}.ex-option:hover{background:var(--yellow-light);border-color:var(--yellow)}.score-bar{display:flex;gap:1.5rem;margin-bottom:1rem;font-size:.85rem;color:var(--muted)}.exercise-prompt{background:var(--yellow-light);border:1px solid var(--yellow);border-radius:var(--radius);padding:1.5rem 2rem;margin-bottom:1.25rem;text-align:center}.exercise-prompt .direction{display:block;font-size:.8rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem}.exercise-prompt .word{font-size:1.8rem;font-weight:800;letter-spacing:.04em}.exercise-prompt .context{font-size:.9rem;color:var(--muted);font-style:italic;margin-bottom:.4rem}.exercise-form{display:flex;gap:.5rem;margin-bottom:1rem}.exercise-form input[type=text]{flex:1;padding:.6rem .75rem;font-size:1.1rem;border:2px solid var(--border);background:#fff;outline:0;transition:border-color .12s}.exercise-form input[type=text]:focus{border-color:var(--blue)}.completion .next-links a,.exercise-form button,.feedback{padding:.6rem 1.5rem;border-radius:var(--radius);font-weight:700}.exercise-form button{font-family:inherit;font-size:1rem;background:var(--blue);color:#fff;border:0;cursor:pointer;transition:background .12s}.exercise-form button:hover{background:#5cb8d6}.feedback{padding:.75rem 1rem;margin-bottom:1rem;font-weight:600}.feedback.correct{background:#e6ffe6;border:1px solid #4caf50;color:#2e7d32}.feedback.incorrect{background:#fff0f0;border:1px solid #ef5350;color:#c62828}.completion{text-align:center;padding:2rem 0;max-width:500px;margin:0 auto}.completion h2{font-size:1.5rem;font-weight:800;text-transform:none;color:var(--text);border-bottom:none;margin-bottom:1rem}.completion .stats{font-size:1.2rem;margin-bottom:2rem}.completion .next-links{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.completion .next-links a{display:inline-block;background:var(--yellow);text-decoration:none}.completion .next-links a:hover{background:#e6c233}.wo-wrapper{display:flex;flex-direction:column;gap:1rem}.wo-answer{min-height:3rem;padding:.5rem;border:2px dashed var(--border);border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.wo-answer:empty::before{content:"tap words to build sentence";color:var(--muted);font-size:.85rem}.wo-bank{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.wo-chip,.wo-submit{font-family:inherit;border-radius:var(--radius);cursor:pointer;transition:background .12s}.wo-chip{padding:.5rem 1rem;font-size:1.05rem;font-weight:600;background:var(--yellow-light);border:1.5px solid var(--yellow);color:var(--text)}.wo-chip:hover{background:var(--yellow)}.wo-answer .wo-chip{background:var(--blue-light);border-color:var(--blue)}.wo-answer .wo-chip:hover{background:#b8dde9}.wo-submit{padding:.6rem 1.5rem;font-size:1rem;font-weight:700;background:var(--blue);color:#fff;border:0;align-self:flex-end}.wo-submit:hover{background:#5cb8d6}:root{--bg:#ffffff;--text:#1a1a1a;--muted:#777;--border:#e8e8e8;--yellow:#ffd84d;--yellow-light:#fffbea;--blue-light:#dff0fb;--blue:#7ec8e3;--radius:6px}*,::after,::before{box-sizing:border-box;margin:0;padding:0}body,h1{color:var(--text)}body{font-family:"JetBrains Mono","Fira Code","SF Mono",ui-monospace,monospace;font-size:16px;background:var(--bg);line-height:1.7;min-height:100vh;display:flex;flex-direction:column}header{position:sticky;top:0;z-index:10;background:var(--yellow-light);border-bottom:2px solid var(--yellow);padding:.6rem 1rem;display:flex;align-items:center;gap:.75rem}nav#main-menu{display:flex;flex-wrap:wrap;gap:2px;flex:1;overflow:hidden}a,nav#main-menu a,nav.lang-switcher a{text-decoration:none}nav#main-menu a{display:block;padding:4px 12px;font-size:1rem;font-family:inherit;color:var(--text);border-bottom:none;border-radius:var(--radius);transition:background .12s}nav#main-menu a:hover{background:var(--yellow)}nav#main-menu a[aria-current]{background:var(--yellow);font-weight:700}nav.lang-switcher{display:flex;gap:4px;flex-shrink:0;margin-left:auto}nav.lang-switcher a{display:inline-block;padding:3px 10px;font-size:.9rem;font-weight:700;letter-spacing:.06em;background:#fff;border:1.5px solid var(--blue);border-radius:var(--radius)}a:hover,nav.lang-switcher a:hover{background:var(--blue-light)}nav.lang-switcher a[aria-current]{background:var(--blue);color:#fff}main{flex:1;max-width:800px;width:100%;margin:0 auto;padding:2.5rem 1.5rem 5rem}footer{border-top:2px solid var(--yellow);padding:1rem;color:var(--muted);text-align:center}h1{font-size:1.7rem;font-weight:800;letter-spacing:.02em;margin-bottom:1.5rem}footer,h2,table{font-size:1rem}h2,h3{font-weight:700}h2{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:2rem;margin-bottom:.6rem;padding-bottom:.3rem;border-bottom:2px solid var(--blue-light)}h3{font-size:1.1rem;margin-top:1.25rem;margin-bottom:.4rem}p{margin-bottom:.8rem}a{color:inherit}button,nav.lang-switcher a,nav.page-tabs a{font-family:inherit;color:var(--text);transition:background .12s}button{padding:.5rem 1rem;font-size:.95rem;border:2px solid var(--text);border-radius:var(--radius);cursor:pointer}button:hover,footer,nav.page-tabs a:hover{background:var(--yellow-light)}.token,code{border-radius:3px}code,pre{background:var(--yellow-light);border:1px solid #f0dc80}code{padding:.1em .4em;font-family:inherit;font-size:.92em}pre{border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;overflow-x:auto}pre code{background:0 0;border:0;padding:0}.token{font-size:.75rem;padding:1px 5px;border:1px solid var(--border);text-decoration:none;white-space:nowrap}.token[data-type=vocab]{background:#f4fbf4;border-color:#b2dfb4}.token[data-type=domain]{background:#f0f8fd;border-color:#b3dff0}.token-meaning{color:var(--muted)}.token-group{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px}.token-subwords{display:flex;gap:2px;padding-left:6px}.token-subwords .token{font-size:.65rem;opacity:.75}.translated{text-decoration:none;border-bottom:1px dotted var(--muted)}nav.page-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:2rem;border-bottom:2px solid var(--yellow);padding-bottom:.5rem}nav.page-tabs a{display:block;padding:6px 16px;font-size:1rem;text-decoration:none;border:0;border-radius:var(--radius) var(--radius)0 0}button,nav.page-tabs a[aria-current]{background:var(--yellow);font-weight:700}table{width:100%;border-collapse:collapse;margin-bottom:1.25rem}td,th{padding:6px 12px}th{text-align:left;font-size:.9rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--blue-light);border-bottom:2px solid var(--blue)}td{border-bottom:1px solid var(--border);vertical-align:baseline}tr:last-child td{border-bottom:none}tr:nth-child(even) td{background:var(--yellow-light)}@media print{button,footer,h1,header,nav.page-tabs,th{display:none}main{max-width:none;padding:0}body{font-size:8pt;line-height:1.25}h2,td{border-bottom:none}h2{margin-top:.5rem;margin-bottom:.2rem;padding-bottom:.1rem}table{margin-bottom:.5rem;width:100%}td{padding:0 4px}td:first-child{width:1%;white-space:nowrap;padding-right:6px}td:last-child{text-align:right}tr:nth-child(even) td{background:0 0}code{background:0 0;border:0;padding:0;font-size:inherit}@page{size:A4 portrait;margin:.3in}}