  :root {
    --bg: #f4f1ea; --card: #fff; --ink: #2b2b2b; --muted: #777;
    --ok: #2e9e5b; --bad: #d64545; --accent: #3d5a98; --line: #5b4636;
  }
  * { box-sizing: border-box; }
  [hidden] { display: none !important; }
  body { margin: 0; background: var(--bg); color: var(--ink); font-family: system-ui, sans-serif; }
  header { padding: 14px 16px 0; text-align: center; }
  h1 { margin: 0 0 10px; font-size: 22px; }
  .levels { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
  .levels button { border: 2px solid var(--accent); background: #fff; color: var(--accent); border-radius: 10px;
    padding: 8px 14px; font-size: 15px; cursor: pointer; }
  .levels button.active { background: var(--accent); color: #fff; }
  main { display: grid; grid-template-columns: 1fr 300px; gap: 16px; max-width: 980px; margin: 16px auto; padding: 0 16px; }
  @media (max-width: 760px) { main { grid-template-columns: 1fr; } }
  .card { background: var(--card); border-radius: 16px; padding: 16px; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
  .counters { display: flex; gap: 8px; margin-bottom: 12px; }
  .counter { flex: 1; text-align: center; background: var(--bg); border-radius: 10px; padding: 6px 4px; }
  .counter b { display: block; font-size: 24px; }
  .counter span { font-size: 12px; color: var(--muted); }
  .counter.ok b { color: var(--ok); } .counter.bad b { color: var(--bad); }
  .stage { min-height: 260px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; }
  #word { font-family: "Noto Sans Hebrew", "Arial Hebrew", "Arial", sans-serif; font-size: 120px; line-height: 1.5; direction: rtl; }
  #word.long { font-size: 80px; }
  #word { display: grid; justify-content: center; align-items: baseline; }
  #word > span { grid-area: 1 / 1; }
  #word .vow { color: #d64545; }
  #word .base { -webkit-text-stroke: 1px var(--ink); }
  #listen { font-size: 18px; padding: 8px 16px; border: 2px solid var(--accent); background: #fff; color: var(--accent);
    border-radius: 10px; cursor: pointer; }
  #pic { font-size: 80px; line-height: 1; min-height: 80px; }
  #tr { font-size: 22px; color: var(--muted); min-height: 30px; }
  .buttons { display: flex; gap: 12px; margin-top: 8px; }
  .buttons button { flex: 1; font-size: 22px; padding: 16px; border: 0; border-radius: 14px; color: #fff; cursor: pointer; }
  #okBtn { background: var(--ok); } #badBtn { background: var(--bad); }
  .buttons button:active { transform: scale(.97); }
  .keys { text-align: center; font-size: 12px; color: var(--muted); margin-top: 8px; }
  svg { width: 100%; height: auto; max-height: 360px; }
  svg .p { stroke: var(--line); stroke-width: 6; stroke-linecap: round; fill: none; }
  svg .man { stroke: var(--bad); }
  #over { position: fixed; inset: 0; background: rgba(0,0,0,.55); display: none; align-items: center; justify-content: center; }
  #over.show { display: flex; }
  #over .box { background: #fff; border-radius: 18px; padding: 28px; text-align: center; max-width: 340px; }
  #over h2 { margin-top: 0; }
  #over button { font-size: 18px; padding: 12px 22px; border: 0; border-radius: 12px; background: var(--accent); color: #fff; cursor: pointer; }
  .modes { display: flex; gap: 8px; justify-content: center; align-items: center; margin-top: 10px; font-size: 14px; color: var(--muted); }
  .modes button { border: 2px solid var(--accent); background: #fff; color: var(--accent); border-radius: 10px;
    padding: 6px 12px; font-size: 14px; cursor: pointer; }
  .modes button.active { background: var(--accent); color: #fff; }
  #micStatus { font-size: 20px; min-height: 28px; color: var(--accent); }
  #smiley { position: fixed; left: 50%; top: 50%; font-size: 30vmin; line-height: 1; pointer-events: none; opacity: 0;
    transform: translate(-50%, -50%) scale(.2); z-index: 10; }
  #smiley.pop { animation: pop .9s ease-out forwards; }
  @keyframes pop {
    0%   { opacity: 0; transform: translate(-50%, -50%) scale(.2); }
    25%  { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(1.6); }
  }
