:root{color:#2f241d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5ecde;font-family:Manrope,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:500;line-height:1.5}html{background:#f5ecde;min-height:100%}body{min-width:320px;min-height:100svh;margin:0}button,input,select{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #c77a5761}img{max-width:100%;display:block}@font-face{font-family:Andika;src:url(/fonts/Andika-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Andika;src:url(/fonts/Andika-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--bg-cream:#fbf3e3;--surface-white:#fff;--text-dark:#2f241d;--text-muted:#8a6a4e;--vowel-tint:#fce4ec;--vowel-border:#f4b6c8;--vowel-text:#5a1430;--digraph-tint:#ffeec9;--digraph-border:#e6c97a;--digraph-text:#3a2a08;--accent:#0a6b55;--highlight:#fff3b0;--key-edge:#e2cfa7;--action-tint:#efe7d8;--letters-font:"Andika", "Iowan Old Style", Georgia, serif;--chrome-font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg-cream);color:var(--text-dark);font-family:var(--chrome-font)}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}#root{height:100%}.app-shell{flex-direction:column;gap:clamp(8px,1.5vh,16px);max-width:720px;height:100svh;margin:0 auto;padding:clamp(12px,2vw,24px);display:flex;overflow:hidden}.app-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:12px}.lesson-pill{color:var(--text-muted);margin:0;font-size:14px;font-weight:700}.app-main{flex-direction:column;flex:1;gap:clamp(8px,1.5vh,14px);min-height:0;display:flex}.display{background:var(--surface-white);border:1px solid var(--key-edge);border-radius:20px;flex:auto;justify-content:center;align-items:center;min-height:clamp(96px,16vh,180px);padding:clamp(8px,1.5vh,16px) 20px;display:flex;overflow:hidden}.display-line{font-family:var(--letters-font);color:var(--text-dark);letter-spacing:.02em;word-break:break-word;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.08em;max-width:100%;font-size:clamp(32px,7vw,72px);font-weight:700;display:inline-flex}.display-unit{border-radius:6px;padding:0 .05em;transition:background-color .5s ease-out;display:inline-block}.display-unit-digraph{text-decoration:underline;-webkit-text-decoration-color:var(--digraph-border);text-decoration-color:var(--digraph-border);text-underline-offset:.12em;letter-spacing:-.02em;text-decoration-thickness:2px}.display-unit-highlight{background:var(--highlight)}.display-unit-space{width:.4em}.display-caret{background:var(--accent);width:3px;height:.85em;margin-left:6px;animation:1s steps(2,end) infinite caret-blink;display:inline-block}@keyframes caret-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.display-caret{animation:none}}.lesson-controls{justify-content:space-between;align-items:end;gap:12px;display:flex}.lesson-control-field{min-width:0;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;flex-direction:column;flex:1;gap:6px;font-size:11px;font-weight:700;display:flex}.lesson-select.compact{border:1px solid var(--key-edge);min-height:44px;color:var(--text-dark);font:inherit;background:#fffaf2;border-radius:12px;padding:10px 12px}.chip-button{background:var(--text-dark);color:#f5ecde;cursor:pointer;font-weight:600;font-family:var(--chrome-font);border:none;border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:10px 18px;display:inline-flex}.chip-button:disabled{opacity:.42;cursor:not-allowed}.chip-button-icon{flex-shrink:0;width:1.1em;height:1.1em}.clear-button{color:var(--text-dark);border:1px solid var(--text-dark);background:0 0;padding-inline:18px}.keyboard{background:var(--bg-cream);border:1px solid #ecdcbd;border-radius:20px;flex-direction:column;flex:none;gap:8px;padding:12px;display:flex}.keyboard-row{justify-content:center;gap:6px;display:flex}.keyboard-row-actions,.keyboard-row-digraphs{border-top:1px dashed var(--key-edge);margin-top:4px;padding-top:8px}.key{background:var(--surface-white);border:1px solid var(--key-edge);min-width:40px;height:clamp(48px,8vh,72px);font-family:var(--letters-font);color:var(--text-dark);cursor:pointer;touch-action:manipulation;border-radius:10px;flex:1;padding:0;font-size:clamp(20px,4.5vw,28px);font-weight:700;transition:transform .12s,opacity .12s}.key-vowel{background:var(--vowel-tint);border-color:var(--vowel-border);color:var(--vowel-text)}.key-digraph{background:var(--digraph-tint);border-color:var(--digraph-border);color:var(--digraph-text);text-underline-offset:3px;flex:1.4;text-decoration:underline;text-decoration-thickness:2px}.key-action{background:var(--action-tint);border-color:var(--key-edge);color:var(--text-muted);font-family:var(--chrome-font);font-size:clamp(20px,4.5vw,26px)}.key-space{flex:5}.key-delete{flex:1}.key-pressed{background:#f3e7cf;transform:translateY(2px)}.key-locked{opacity:.32;cursor:not-allowed;pointer-events:none}.key-spacer{flex:1;min-width:40px}.key:disabled{cursor:not-allowed}@media (width<=480px){.keyboard{gap:6px;padding:8px}.keyboard-row{gap:4px}.key{border-radius:8px;min-width:36px}}@media (height<=560px){.key{height:clamp(36px,6vh,56px)}.display{min-height:clamp(64px,12vh,120px)}.display-line{font-size:clamp(28px,6vw,56px)}}
