:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--hebrew:"Noto Sans Hebrew", "David Libre", serif;--cursive:"Playpen Sans Hebrew", cursive;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}}#root{--page-padding:1rem;max-width:40rem;padding:var(--page-padding);box-sizing:border-box;margin:0 auto}html,body{overscroll-behavior:none}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.hebrew{font-family:var(--hebrew);line-height:1.7}.flashcard{box-sizing:border-box;flex-direction:column;gap:1rem;min-height:100%;max-height:100%;padding:1rem;display:flex}.flashcard-faces{flex:1;min-width:0;min-height:0;display:grid}.flashcard-faces.is-turning{overflow:hidden}.flashcard-face{text-align:center;flex-direction:column;grid-area:1/1;justify-content:safe center;align-items:center;gap:1rem;min-height:0;display:flex;overflow-y:auto}.flashcard-face.is-leaving{pointer-events:none}.reveal-flip.is-turning{perspective:1200px}.reveal-flip>.flashcard-face{backface-visibility:hidden}.reveal-flip>.is-leaving{animation:flashcard-flip-out calc(var(--flashcard-turn) / 2) ease-in both}.reveal-flip>.is-entering{animation:flashcard-flip-in calc(var(--flashcard-turn) / 2) ease-out both;animation-delay:calc(var(--flashcard-turn) / 2)}.reveal-fade>.is-leaving{animation:flashcard-fade-out var(--flashcard-turn) ease both}.reveal-fade>.is-entering{animation:flashcard-fade-in var(--flashcard-turn) ease both}.reveal-slide>.is-leaving{animation:flashcard-slide-out var(--flashcard-turn) ease-in-out both}.reveal-slide>.is-entering{animation:flashcard-slide-in var(--flashcard-turn) ease-in-out both}@keyframes flashcard-flip-out{to{transform:rotateX(90deg)}}@keyframes flashcard-flip-in{0%{transform:rotateX(-90deg)}}@keyframes flashcard-fade-out{to{opacity:0}}@keyframes flashcard-fade-in{0%{opacity:0}}@keyframes flashcard-slide-out{to{transform:translateY(-100%)}}@keyframes flashcard-slide-in{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.flashcard-faces>.flashcard-face{animation:none}.flashcard-faces>.is-leaving{display:none}}.flashcard-controls,.flashcard-footer{flex-direction:column;gap:.5rem;display:flex}.flashcard-tools{gap:.5rem;display:flex}.flashcard-tools button{font:inherit;flex:1;padding:.75rem .5rem}.flashcard-footer>button,.grade-buttons button{font:inherit;padding:.75rem .5rem}.grade-buttons{gap:.5rem;display:flex}.grade-buttons button{flex:1}.grade-caption{border:1px solid var(--border);text-align:center;border-radius:4px;margin:0;padding:.5rem .75rem}.link-button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.grade-glyph{color:var(--text)}.read-word{font-size:3rem}.read-sentence{font-size:1.75rem}.read-back-word{font-size:2.5rem}.read-meaning{flex-direction:column;gap:.25rem;display:flex}.read-answer{color:var(--text-h);font-size:2.25rem;font-weight:600;line-height:120%}.read-example{border-top:1px solid var(--border);flex-direction:column;align-self:stretch;gap:.5rem;padding-top:1rem;display:flex}.read-hint,.read-also{font-size:.9rem}.card-task{color:var(--text-h);margin:0;font-size:.9rem}.say-cue{color:var(--text-h);font-size:2.25rem;line-height:120%}.say-word{font-size:3rem}.say-sentence{font-size:1.75rem}.say-note{font-size:.9rem}.speaker{font:inherit;color:var(--accent);cursor:pointer;vertical-align:middle;background:0 0;border:0;align-items:center;gap:.4em;padding:0;display:inline-flex;position:relative}.speaker:hover{color:var(--text-h)}.speaker:after{content:"";width:max(100%,44px);height:max(100%,44px);position:absolute;top:50%;left:50%;translate:-50% -50%}.play-button{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:4px;padding:.75rem 1.25rem;font-size:1.1rem}.listen-play{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:50%;justify-content:center;width:7rem;height:7rem;font-size:3rem}.listen-answer{color:var(--text-h);font-size:1.75rem}.listen-word{font-size:2.5rem}.listen-sentence{font-size:1.75rem}.listen-note{font-size:.9rem}.sentence-tail{white-space:nowrap}.word-play{font-size:1.5rem}.sentence-play{font-size:1.1rem}.cursive{font-family:var(--cursive)}.write-cue{color:var(--text-h);font-size:1.5rem}.write-word{font-size:3rem}.write-gloss{color:var(--text-h);font-size:1.25rem}.write-note,.write-trap{font-size:.9rem}.write-front,.write-brief,.write-doing{flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%;display:flex}.write-modes{text-align:left;flex-direction:column;align-items:flex-start;gap:.25rem;font-size:.9rem;display:flex}.write-input{font:inherit;font-family:var(--hebrew);box-sizing:border-box;text-align:center;width:100%;padding:.5rem;font-size:2rem}.write-pad-ink,.write-thumb,.write-preview-drawing{box-sizing:border-box;fill:none;stroke:var(--text-h);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;display:block}.write-pad-ink polyline,.write-thumb polyline,.write-preview-drawing polyline{vector-effect:non-scaling-stroke}.write-pad{box-sizing:border-box;border:1px solid var(--border);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:4px;flex:1;min-width:0;min-height:8rem;display:flex}.write-pad-ink{flex:1;min-width:0}.write-thumb{stroke-width:2px;border:1px solid var(--border);border-radius:4px;width:8rem;height:5rem}.write-preview{box-sizing:border-box;width:100%;font:inherit;color:inherit;border:1px dashed var(--border);background:0 0;border-radius:4px;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem;display:flex}.write-preview-drawing{width:100%;height:7rem}.draw-face{flex-direction:column;flex:1;gap:.75rem;width:100%;min-height:0;display:flex}.draw-bar{grid-template-columns:auto 1fr;grid-template-areas:"back cue""task task";align-items:baseline;gap:.5rem 1rem;font-size:.9rem;display:grid}.draw-back{grid-area:back;justify-self:start}.draw-bar .card-task{grid-area:task}.draw-cue{color:var(--text-h);grid-area:cue;justify-self:end;font-size:1.25rem}.write-artifacts{justify-content:center;align-items:flex-end;gap:1rem;display:flex}.write-artifacts figure{margin:0}.write-cursive{font-size:2.5rem}.write-wrong{font-size:1.25rem}.write-miss{text-underline-offset:.25em;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.write-confirm{border:1px solid var(--border);border-radius:4px;margin:0;padding:.5rem .75rem}.practice{height:calc(100svh - 2 * var(--page-padding));flex-direction:column;gap:.5rem;display:flex}.practice-bar{justify-content:space-between;align-items:baseline;font-size:.9rem;display:flex}.practice-problem{border:1px solid var(--border);border-radius:4px;padding:.5rem .75rem}.practice-card{border:1px solid var(--border);border-radius:8px;flex:1;min-height:0;display:grid}.practice-summary{flex-direction:column;align-items:flex-start;gap:1rem;display:flex}.practice-summary-actions{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.practice-summary-actions button,.practice-summary-actions a{font:inherit;color:inherit;border:1px solid var(--border);background:var(--code-bg);border-radius:4px;padding:.75rem 1rem;text-decoration:none}.gender-phrase{color:var(--text-h);font-size:2.25rem}.gender-blank{border-bottom:2px solid var(--border);width:2.5ch;height:.6em;display:inline-block}.gender-gloss{font-size:.9rem}.gender-trap{border:1px solid var(--border);border-radius:4px;margin:0;padding:.5rem .75rem;font-size:.9rem}.gender-options{flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}.gender-option{cursor:pointer;align-items:center;gap:.75rem;padding:.5rem .25rem;display:flex}.gender-option input{width:1.2rem;height:1.2rem;accent-color:var(--accent)}.gender-option-word{font-size:1.5rem}.gender-mark{color:var(--text)}.conjugate-verb{color:var(--text-h);font-size:1.5rem}.conjugate-gloss{font-size:.9rem}.conjugate-sentence{color:var(--text-h);font-size:1.75rem}.conjugate-gap{border-bottom:2px solid var(--border);width:3.5ch;height:.6em;display:inline-block}.conjugate-answer{color:var(--text-h);font-size:2.25rem}.conjugate-example{border-top:1px solid var(--border);flex-direction:column;gap:.25rem;margin-top:1rem;padding-top:1rem;display:flex}.conjugate-pattern{border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:.5rem;margin-top:1rem;padding:.5rem .75rem;font-size:.9rem;display:flex}.conjugate-family{color:var(--text);font-size:1.1rem}.grade-default{border-color:var(--accent-border);background:var(--accent-bg)}.grade-appeal{visibility:hidden}.grade-appeal.is-shown{visibility:visible}.session{flex-direction:column;min-height:100%;max-height:100%;display:flex}.session-progress{text-align:center;margin:0;padding:.75rem 1rem 0}.session-card{flex-direction:column;flex:1;min-height:0;display:flex}.session-summary{text-align:center;flex-direction:column;flex:1;justify-content:safe center;align-items:center;gap:1rem;padding:1rem;display:flex}.session-score{color:var(--text-h);margin:0;font-size:3rem}.session-missed{margin:0;padding:0;font-size:1.5rem;list-style:none}@media (height<=480px){#root{--page-padding:.5rem;max-width:none}.flashcard{gap:.5rem;padding:.5rem}.flashcard-face{gap:.5rem}.write-word{font-size:2rem}.write-cursive{font-size:1.75rem}.write-thumb{height:4rem}.draw-face{gap:.5rem}.draw-bar{grid-template-columns:auto 1fr auto;grid-template-areas:"back task cue"}.flashcard{flex-direction:row-reverse}.flashcard-controls{flex:0 0 10rem;justify-content:flex-end;overflow-y:auto}.flashcard-tools,.grade-buttons{flex-direction:column}.flashcard-tools button{padding:.4rem .5rem}.write-front{flex-direction:row;align-items:center;gap:1.5rem}.write-brief,.write-doing{flex:1;gap:.5rem}.write-pad{min-height:5rem}}.script-editor,.script-player{flex-direction:column;gap:.75rem;display:flex;container-type:inline-size}.script-source{font:.85rem/1.7 var(--mono);box-sizing:border-box;border:1px solid var(--border);background:var(--code-bg);width:100%;color:var(--text-h);resize:vertical;direction:ltr;border-radius:4px;padding:.6rem}.script-help{font-size:.85rem}.script-help ul{margin:.5rem 0 0;padding-inline-start:1.2rem}.script-help li{margin-bottom:.4rem}.script-title{color:var(--text-h);margin:0;font-weight:600}.script-stage{border:1px solid var(--border);border-radius:4px;flex-direction:column;justify-content:center;gap:.4rem;min-height:9rem;padding:.75rem;display:flex}.script-narration{margin:0;font-size:.95rem}.script-waiting{color:var(--accent);margin:0;font-weight:600}.script-speaker{text-transform:lowercase;margin:0;font-size:.8rem}.script-hebrew{color:var(--text-h);margin:0;font-size:1.5rem}.script-gloss{margin:0;font-size:.85rem}.script-bar{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.script-bar-fill{background:var(--accent);height:100%}.script-clock{margin:0;font-size:.85rem}.script-transport{gap:.5rem;display:flex}.script-transport button{flex:1;padding:.7rem .5rem}@container (height<=26rem) and (width>=30rem){.script-player{grid-template-columns:1fr auto;align-items:start;display:grid}.script-title,.script-stage,.script-bar,.script-clock{grid-column:1}.script-transport{flex-direction:column;grid-area:1/2/span 4;width:8rem}}.letter-pad{flex-direction:column;flex:1;gap:.75rem;min-height:0;display:flex;container-type:inline-size}.letter-row{--letter-h:3.2rem;--letter-row-gap:.35rem;--letter-row-pad:.4rem;--letter-word-gap:1.1rem;align-content:flex-start;gap:var(--letter-row-gap) var(--letter-word-gap);padding:var(--letter-row-pad);box-sizing:border-box;border:1px solid var(--border);--letter-rows:3;min-height:calc(var(--letter-h) + 2 * var(--letter-row-pad) + 2px);max-height:calc(var(--letter-rows) * var(--letter-h) + (var(--letter-rows) - 1) * var(--letter-row-gap) + 2 * var(--letter-row-pad) + 2px);border-radius:4px;flex-wrap:wrap;display:flex;overflow-y:auto}.letter-word{gap:var(--letter-row-gap) 0;flex-wrap:wrap;min-width:0;display:flex}.letter-glyph,.letter-cursor{box-sizing:border-box;flex:none}.letter-glyph{height:var(--letter-h);fill:none;stroke:var(--text-h);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;animation:.18s ease-out both letter-arrive;display:block}.letter-glyph polyline,.ruled-pad-ink polyline,.ruled-pad-ink line,.letter-rule{vector-effect:non-scaling-stroke}.letter-rule{stroke:var(--border);stroke-width:1px}@keyframes letter-arrive{0%{opacity:0;transform:translateY(.5rem)}}.letter-glyph.is-leaving{animation:letter-scatter .26s ease-in calc(var(--leave-i,0) * 35ms) both;pointer-events:none}@keyframes letter-scatter{to{opacity:0;width:0;transform:translateY(-.35rem)scale(1.15)rotate(-6deg)}}.ruled-guide polyline{stroke:var(--accent-border);stroke-width:2px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.ruled-guide-order path{fill:var(--accent-border);stroke:none}.ruled-guide-order text{fill:var(--accent);stroke:none;font-size:.26px;font-family:var(--sans);text-anchor:middle}.letter-cursor{height:calc(var(--letter-h) * var(--letter-band-f));width:2px;margin-top:calc(var(--letter-h) * (var(--letter-baseline-f) - var(--letter-band-f)));background:var(--accent);animation:letter-blink 1.06s step-end infinite, letter-follow .2s ease-out var(--cursor-delay,0s) both;border-radius:1px}@keyframes letter-blink{50%{opacity:0}}@keyframes letter-follow{0%{transform:translateX(var(--cursor-shift,0px))}}@media (prefers-reduced-motion:reduce){.letter-glyph,.letter-glyph.is-leaving,.letter-cursor{animation:none}.letter-glyph.is-leaving{display:none}}.letter-end{width:0;height:var(--letter-h);flex:none}.letter-row-hint{color:var(--text);align-self:center;margin:0}.ruled-pad{box-sizing:border-box;border:1px solid var(--border);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:4px;flex:1;min-width:0;min-height:8rem;display:flex}.ruled-pad-ink{box-sizing:border-box;fill:none;min-width:0;stroke:var(--text-h);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;flex:1;display:block}.ruled-line-top{stroke:var(--border);stroke-width:1px;stroke-dasharray:3 5}.ruled-line-base{stroke:var(--accent-border);stroke-width:1px}.letter-tools,.letter-footer{gap:.5rem;display:flex}.letter-tools>button,.letter-footer>button{flex:none;min-width:2.9rem;min-height:2.9rem;font-size:1rem}.letter-tools>.letter-insert,.letter-tools>.letter-space,.letter-footer>.letter-done{flex:1}.letter-demo{box-sizing:border-box;flex-direction:column;gap:.75rem;height:100%;padding:1rem;display:flex}.letter-demo-target{font-family:var(--hebrew);text-align:center;color:var(--text-h);margin:0;font-size:1.5rem}.letter-demo-readout{text-align:center;margin:0}.letter-demo-scaffold{flex-wrap:wrap;justify-content:center;gap:.4rem;margin:0;display:flex}
