:root {
  color-scheme: light;
  --ink: #17211b;
  --muted: #5f6e65;
  --paper: #fbfaf5;
  --card: #ffffff;
  --line: #dfe5df;
  --accent: #087f5b;
  --accent-soft: #dff5eb;
  --code: #132019;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 17px/1.7 ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
main { width: min(760px, calc(100% - 32px)); margin: 64px auto 96px; }
h1, h2 { line-height: 1.18; letter-spacing: -.025em; }
h1 { font-size: clamp(2.2rem, 7vw, 4.2rem); margin: .15em 0 .35em; }
h2 { margin-top: 2.4em; font-size: 1.55rem; }
p, li { max-width: 68ch; }
.eyebrow { color: var(--accent); font-weight: 750; letter-spacing: .08em; text-transform: uppercase; font-size: .78rem; }
.lede { color: var(--muted); font-size: 1.18rem; }
.card, .quiz { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 20px 24px; margin: 24px 0; }
.win { border-left: 5px solid var(--accent); }
code { background: #edf0ed; padding: .12em .34em; border-radius: 5px; font-size: .9em; }
pre { background: var(--code); color: #e9f3ec; padding: 20px; overflow-x: auto; border-radius: 12px; line-height: 1.5; }
pre code { background: transparent; padding: 0; }
a { color: var(--accent); text-underline-offset: 3px; }
button { display: block; width: 100%; text-align: left; margin: 10px 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--ink); cursor: pointer; font: inherit; }
button:hover { border-color: var(--accent); }
button.correct { background: var(--accent-soft); border-color: var(--accent); }
button.wrong { background: #fff0f0; border-color: #c92a2a; }
.feedback { min-height: 1.7em; font-weight: 650; }
.phrase { margin: .4em 0; font-size: clamp(1.3rem, 4vw, 1.8rem); font-weight: 760; letter-spacing: -.015em; }
.translation { color: var(--muted); }
.speech-status { min-height: 1.7em; color: var(--muted); font-size: .92rem; }
.speak-button { width: auto; display: inline-block; padding: 8px 13px; color: var(--accent); font-weight: 720; }
.practice-form label { display: block; margin-bottom: 6px; font-weight: 720; }
.practice-form input { width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: 12px 14px; background: white; color: var(--ink); font: inherit; }
.practice-form input:focus { outline: 3px solid color-mix(in srgb, var(--accent) 22%, transparent); border-color: var(--accent); }
.practice-form button[type="submit"] { background: var(--accent); color: white; border-color: var(--accent); text-align: center; font-weight: 760; }
.practice-output { min-height: 2em; padding: 12px 0 2px; font-size: 1.15rem; font-weight: 720; }
details { margin: 18px 0; border-left: 3px solid var(--line); padding: 4px 0 4px 18px; }
summary { cursor: pointer; color: var(--accent); font-weight: 700; }
.checklist li { margin: .5em 0; }
.meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0; }
.meta span { border: 1px solid var(--line); border-radius: 999px; padding: 5px 10px; color: var(--muted); font-size: .86rem; background: white; }
.flow { display: grid; grid-template-columns: repeat(5, 1fr); align-items: center; gap: 8px; text-align: center; font-size: .88rem; }
.flow span { border: 1px solid var(--line); border-radius: 9px; padding: 12px 4px; background: white; }
.flow b { color: var(--accent); }
footer { margin-top: 64px; padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted); }
@media (max-width: 620px) { .flow { grid-template-columns: 1fr; } .flow b { transform: rotate(90deg); } }
@media print { body { background: white; font-size: 12pt; } main { margin: 0 auto; } .quiz button { display: none; } }
