@font-face{font-family:Atkinson Hyperlegible;src:url(/fonts/AtkinsonHyperlegible-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(/fonts/AtkinsonHyperlegible-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{color-scheme:light;--paper:#faf6ee;--card:#ffffff;--line:#e3d9c6;--ink:#26211a;--soft:#5c5344;--teacher:#1f5c4d;--learner:#6b4423;--ready:#17573c;--listen:#9c2b1e;--sun:#e8a33d;--scale:1}html[data-textsize=bigger]{--scale:1.18}html[data-textsize=biggest]{--scale:1.36}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:Atkinson Hyperlegible,Segoe UI,system-ui,sans-serif;font-size:calc(1.375rem * var(--scale));line-height:1.45;min-height:100dvh}a,button,input,select{font-family:inherit;font-size:inherit}:focus-visible{outline:4px solid var(--ready);outline-offset:3px;border-radius:8px}main.screen{max-width:560px;margin:0 auto;padding:20px 20px 130px;min-height:100dvh}h1.greeting{font-size:calc(2rem * var(--scale));font-weight:700;margin:8px 0 4px;text-align:center}p.subgreeting{margin:0 0 12px;text-align:center;color:var(--soft)}.talk-button-wrap{margin:18px 0}.talk-button,.talk-button-wrap{display:flex;justify-content:center}.talk-button{width:min(210px,62vw);height:min(210px,62vw);border-radius:50%;border:none;cursor:pointer;flex-direction:column;align-items:center;gap:6px;color:#ffffff;font-weight:700;font-size:calc(1.25rem * var(--scale));letter-spacing:.02em;background:var(--ready);box-shadow:0 6px 0 rgba(38,33,26,.18);transition:background-color .2s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.talk-button .glyph{font-size:calc(2.6rem * var(--scale));line-height:1}.talk-button:active{transform:translateY(2px);box-shadow:0 4px 0 rgba(38,33,26,.18)}.talk-button[data-state=listening]{background:var(--listen)}.talk-button[data-state=speaking]{background:var(--teacher);animation:breathe 4s ease-in-out infinite}.talk-button[data-state=thinking]{background:var(--teacher);animation:breathe 2.6s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.045)}}.talk-button[data-state=listening]:after{content:"";position:absolute;width:min(210px,62vw);height:min(210px,62vw);border-radius:50%;border:4px solid var(--listen);animation:ripple 2s ease-out infinite;pointer-events:none}.talk-button-wrap{position:relative}@keyframes ripple{0%{transform:scale(1);opacity:.7}to{transform:scale(1.25);opacity:0}}@media (prefers-reduced-motion:reduce){.talk-button,.talk-button:after{animation:none!important}}.transcript{background:var(--card);border:2px solid var(--line);border-radius:16px;padding:16px 18px;margin:10px 0;min-height:120px}.transcript .turn{margin:0 0 14px}.transcript .turn:last-child{margin-bottom:0}.transcript .who{display:block;font-weight:700;font-size:calc(1rem * var(--scale));margin-bottom:2px}.transcript .turn.teacher .who{color:var(--teacher)}.transcript .turn.learner .who{color:var(--learner)}.transcript .said{font-size:calc(1.5rem * var(--scale))}.big-row{display:flex;flex-direction:column;gap:12px;margin:14px 0}.big-button{min-height:64px;padding:12px 18px;border-radius:14px;border:3px solid var(--ink);background:var(--card);color:var(--ink);font-weight:700;cursor:pointer;text-align:center;width:100%}.big-button:active{transform:translateY(1px)}.big-button.primary{background:var(--ready);border-color:var(--ready);color:#fff}.big-button.choice{border-color:var(--teacher);color:var(--teacher)}.big-button:disabled{opacity:.45;cursor:default}.quiet-note{color:var(--soft);margin:8px 0}.quiet-note,.voice-status{text-align:center;font-size:calc(1.05rem * var(--scale))}.voice-status{color:var(--teacher);background:color-mix(in srgb,var(--teacher) 8%,var(--paper));border:2px solid color-mix(in srgb,var(--teacher) 25%,var(--paper));border-radius:14px;padding:10px 14px;margin:8px auto;max-width:34rem}.voice-details{margin-top:10px;font-size:14px;color:var(--soft)}.voice-details summary{cursor:pointer;padding:6px 0}.voice-details ul{margin:6px 0;padding-left:18px}.voice-details .seg button{font-size:14px;min-height:40px}.word-count{font-size:calc(2rem * var(--scale));font-weight:700;text-align:center;margin:10px 0 18px}.word-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--card);border:2px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:10px;min-height:64px}.word-row .w{font-weight:700;font-size:calc(1.5rem * var(--scale))}.word-row .ex{color:var(--soft);font-size:calc(1.05rem * var(--scale))}.word-row button{min-width:64px;min-height:64px;border-radius:12px;border:3px solid var(--teacher);background:var(--card);color:var(--teacher);font-size:calc(1.4rem * var(--scale));cursor:pointer;flex-shrink:0}.setting{background:var(--card);border:2px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:14px}.setting .label{font-weight:700;display:block;margin-bottom:8px}.seg{display:flex;gap:8px;flex-wrap:wrap}.seg button{flex:1 1;min-height:56px;border-radius:12px;border:3px solid var(--line);background:var(--card);cursor:pointer;padding:8px 10px}.seg button[aria-pressed=true]{border-color:var(--ready);background:var(--ready);color:#fff;font-weight:700}input.text{width:100%;min-height:60px;border:3px solid var(--line);border-radius:12px;padding:8px 14px;color:var(--ink)}input.text,nav.tabs{background:var(--card)}nav.tabs{position:fixed;bottom:0;left:0;right:0;border-top:3px solid var(--line);display:flex;padding-bottom:env(safe-area-inset-bottom);z-index:10}nav.tabs a{flex:1 1;min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--soft);font-weight:700;font-size:calc(1.1rem * var(--scale))}nav.tabs a .tab-glyph{font-size:calc(1.3rem * var(--scale));line-height:1}nav.tabs a[aria-current=page]{color:var(--teacher);border-top:4px solid var(--teacher);margin-top:-3px}.onboard{display:flex;flex-direction:column;justify-content:center;min-height:80dvh;gap:16px}.onboard h1{font-size:calc(2rem * var(--scale))}.onboard h1,.onboard p{text-align:center;margin:0}.onboard p{color:var(--soft)}