:root{--ink:#1c2340;--dusk:#1c2340;--dusk-2:#283163;--sky:#eaf0f5;--sun:#f6c453;--sea:#3fa796;--blush:#fbe3da;--quiet:#5b6478;--line:#c9d3de;--danger:#d6455d;--display:"Bricolage Grotesque", system-ui, sans-serif;--body:"Atkinson Hyperlegible", system-ui, sans-serif;--step--1:.875rem;--step-0:1.0625rem;--step-1:1.3rem;--step-2:1.75rem;--step-3:clamp(2.1rem, 6vw, 3.1rem);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{font:400 var(--step-0)/1.5 var(--body);color:var(--ink);background:var(--sky);-webkit-font-smoothing:antialiased;margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--sea);outline-offset:2px}h1,h2{font-family:var(--display);margin:0}p{margin:0}.muted{color:var(--quiet)}.small{font-size:var(--step--1)}.setup,.recap{gap:2rem;max-width:40rem;margin:0 auto;padding:1.5rem 1rem 3rem;display:grid}.brand{font:700 var(--step-0) var(--display);letter-spacing:-.01em}.setup__head{gap:.75rem;padding-top:1rem;display:grid}.setup h1,.recap h1{font-size:var(--step-3);letter-spacing:-.03em;max-width:16ch;font-weight:700;line-height:1.05}.lede{font-size:var(--step-1);color:var(--quiet);max-width:34ch}.setup h2,.recap h2{font-size:var(--step-1);letter-spacing:-.01em;margin-bottom:.75rem;font-weight:600}.langs{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.5rem;display:grid}.lang{text-align:left;border:1.5px solid var(--line);background:#fff;border-radius:14px;gap:.1rem;padding:.85rem 1rem;transition:border-color .15s,background .15s;display:grid}.lang__native{font:600 var(--step-2)/1.1 var(--display);letter-spacing:-.02em}.lang__name{font-size:var(--step--1);color:var(--quiet)}.lang[aria-checked=true]{border-color:var(--ink);background:var(--ink);color:#fff}.lang[aria-checked=true] .lang__name{color:#c8cfe6}.segments{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.segment{text-align:left;border:1.5px solid var(--line);background:0 0;border-radius:10px;gap:.15rem;padding:.75rem;display:grid}.segment span{font-size:var(--step--1);color:var(--quiet);line-height:1.3}.segment[aria-checked=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:#fff}.field{gap:.35rem;margin-top:.75rem;display:grid}.field span{font-weight:700}.field select{border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:.7rem .8rem}.setup__cta{background:linear-gradient(transparent, var(--sky) 30%);gap:.6rem;padding:1rem 0 .5rem;display:grid;position:sticky;bottom:0}.call-btn{background:var(--sun);min-width:12rem;color:var(--ink);font:700 var(--step-1) var(--display);letter-spacing:-.01em;border:0;border-radius:999px;justify-self:start;padding:1rem 1.75rem}.call-btn:disabled{background:var(--line);color:var(--quiet);cursor:not-allowed}.call{height:100dvh;padding:max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));background:radial-gradient(120% 70% at 50% 30%, var(--dusk-2), var(--dusk));color:#f4f6fb;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.75rem;display:grid}.call__top{font:600 var(--step-0) var(--display);justify-content:space-between;display:flex}.call__time{font-variant-numeric:tabular-nums}.call .muted{color:#9aa3c4}.call__body{overscroll-behavior:contain;scrollbar-width:none;flex-direction:column;gap:.85rem;min-height:0;margin:0 -1rem;padding:0 1rem .25rem;display:flex;overflow-y:auto}.call__body>*{flex-shrink:0}.call__body{padding-top:.5rem;-webkit-mask-image:linear-gradient(#0000,#000 .75rem calc(100% - 1.25rem),#0000);mask-image:linear-gradient(#0000,#000 .75rem calc(100% - 1.25rem),#0000)}.call__stage{flex:1 0 8.5rem;align-content:center;place-items:center;gap:3.75rem;display:grid;container-type:size}.call__error,.call__notice{color:#ffd3da;text-align:center;max-width:30ch}.call--message{grid-template-rows:none;place-content:center;justify-items:center}.orb{aspect-ratio:1;place-items:center;width:max(5rem,min(62vw,15rem,100cqh - 5rem));display:grid;position:relative}.call__stage:has(>.ghost-btn,>.call__error) .orb{width:max(5rem,min(62vw,15rem,100cqh - 10rem))}.orb__sun,.orb__ring{border-radius:50%;position:absolute;inset:0}.orb__sun{background:radial-gradient(circle at 38% 34%, #ffe7a8, var(--sun) 55%, #e0a63a);transition:transform .4s,opacity .4s;inset:14%;box-shadow:0 0 60px #f6c45359}.orb__ring{border:3px solid #0000;transition:transform 80ms linear,border-color .3s}.orb__label{font:600 var(--step-0) var(--display);color:#c8cfe6;white-space:nowrap;position:absolute;bottom:-2.25rem}.orb--speaking .orb__sun{animation:1.6s ease-in-out infinite breathe}.orb--listening .orb__ring{border-color:var(--sea)}.orb--thinking .orb__sun{opacity:.75;animation:2.6s ease-in-out infinite breathe}.orb--thinking .orb__ring{border:3px dashed #f6c453d9;animation:6s linear infinite spin}.orb--thinking .orb__label{color:var(--sun)}@keyframes spin{to{transform:rotate(360deg)}}.orb--connecting .orb__sun,.orb--idle .orb__sun{opacity:.5;transform:scale(.92)}@keyframes breathe{50%{transform:scale(1.06)}}.captions{gap:.4rem;width:100%;max-width:36rem;min-height:4.5rem;margin:0 auto;display:grid}.caption{font-size:var(--step-1);line-height:1.35}.caption--assistant{color:#fff}.caption--user{color:#9fe0d3;font-size:var(--step-0)}.caption--interim{opacity:.7}.teacher-tools{justify-content:center;gap:.5rem;width:100%;max-width:36rem;margin:-.25rem auto 0;display:flex}.tool{color:#f4f6fb;min-height:2.5rem;font-weight:700;font-size:var(--step--1);background:0 0;border:1.5px solid #ffffff47;border-radius:999px;align-items:center;gap:.35rem;padding:.5rem .95rem;display:inline-flex}.tool[aria-pressed=true]{color:var(--ink);background:#f4f6fb;border-color:#f4f6fb}.tool:disabled{opacity:.45}.tool span{font-size:1.1em;line-height:1}.fixes{gap:.5rem;width:100%;max-width:36rem;margin:0 auto;padding:0;list-style:none;display:grid}.fix{background:var(--blush);color:var(--ink);border-radius:14px;gap:.1rem;padding:.75rem 1rem;animation:.35s ease-out rise;display:grid}.fix__was{color:#8a5b4f;font-size:var(--step--1)}.fix__now{font:600 var(--step-1)/1.25 var(--display)}.fix__why{font-size:var(--step--1);color:#4b3a37}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.phrasebook{gap:.35rem;width:100%;min-width:0;max-width:36rem;margin:0 auto;display:grid}.phrasebook__head{justify-content:space-between;align-items:baseline;display:flex}.phrasebook__head h2{font:700 .78rem var(--body);letter-spacing:.06em;text-transform:uppercase;color:#9aa3c4}.phrasebook__all{color:#c9d3ff;font-weight:700;font-size:var(--step--1);text-underline-offset:3px;background:0 0;border:0;padding:.25rem 0;text-decoration:underline}.phrasebook__row{scrollbar-width:thin;gap:.45rem;margin:0;padding:0 0 .25rem;list-style:none;display:flex;overflow-x:auto}.phrasebook__row li{flex:none}.phrase{text-align:left;color:#f4f6fb;background:#ffffff12;border:1px solid #ffffff29;border-radius:12px;gap:.05rem;max-width:14rem;min-height:2.75rem;padding:.45rem .8rem;display:grid}.phrase__latin{font-weight:700;font-size:var(--step--1);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.phrase__meaning{color:#b8c0dc;white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.phrase--new{border-color:#f6c45399}.phrase--playing{border-color:var(--sun);background:#f6c4532e}.phrase[aria-disabled=true]{cursor:default}.sheet__say:disabled{opacity:.4}.sheet{background:var(--sky);width:min(36rem,100vw - 2rem);max-height:min(80dvh,40rem);color:var(--ink);border:0;border-radius:18px;padding:1rem 1rem 1.25rem}@keyframes sheet-up{0%{opacity:0;transform:translateY(40px)}}.sheet::backdrop{background:#0a0e1e99}.sheet__head{align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.sheet__head h2{font:700 var(--step-1) var(--display);flex:1}.sheet__head .ghost-btn{padding:.45rem .9rem}.sheet .muted{color:var(--quiet)}.sheet__list{gap:.4rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.sheet__list li{background:#fff;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.55rem .75rem;display:grid}.sheet__say,.sheet__remove{border:1px solid var(--line);width:2.5rem;height:2.5rem;color:var(--ink);background:#fff;border-radius:50%;font-size:.95rem}.sheet__remove{color:var(--quiet);border-color:#0000;font-size:1.3rem}.sheet__latin{font-weight:700}.sheet__native{font-size:var(--step--1);color:var(--quiet)}.sheet__meaning{font-size:var(--step--1)}.type-row{gap:.5rem;width:100%;max-width:36rem;margin:0 auto;display:flex}.type-row input{background:#ffffff14;border:1.5px solid #48508a;border-radius:999px;flex:1;min-width:0;padding:.75rem 1rem}.controls{grid-template-columns:repeat(4,1fr);gap:.5rem;width:100%;max-width:30rem;margin:0 auto;display:grid}.ctrl{background:#ffffff1a;border:0;border-radius:14px;padding:.9rem .25rem;font-weight:700}.ctrl[aria-pressed=true]{color:var(--ink);background:#f4f6fb}.ctrl--end{background:var(--danger);color:#fff}.ghost-btn{background:0 0;border:1.5px solid;border-radius:999px;padding:.7rem 1.2rem;font-weight:700}.ghost-btn--light{border-color:var(--ink)}.link-btn{text-underline-offset:3px;color:var(--quiet);background:0 0;border:0;justify-self:start;padding:.5rem 0;text-decoration:underline}.recap{padding-top:3rem}.recap__fixes{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.recap__fixes li{background:var(--blush);border-radius:14px;gap:.1rem;padding:.85rem 1rem;display:grid}.recap__fixes s{color:#8a5b4f;font-size:var(--step--1)}.recap__fixes strong{font:600 var(--step-1) var(--display)}.recap__fixes span{font-size:var(--step--1)}.recap__words{gap:.5rem;margin:0;display:grid}.recap__words div{border-bottom:1px solid var(--line);align-items:baseline;gap:.75rem;padding-bottom:.5rem;display:flex}.recap__words dt{font:600 var(--step-1) var(--display)}.recap__words dd{color:var(--quiet);margin:0}.recap__roman{font:400 var(--step--1) var(--body);color:var(--quiet)}.recap__actions{gap:.75rem;display:grid}.logs{background:var(--sky);min-height:100dvh;color:var(--ink);align-content:start;gap:1rem;max-width:60rem;margin:0 auto;padding:1.5rem 1rem 3rem;display:grid}.logs__head{justify-items:start;gap:.5rem;display:grid}.logs h1{font:700 var(--step-2) var(--display);letter-spacing:-.02em}.logs h2{font:600 var(--step-0) var(--display);margin-bottom:.4rem}.logs__bar{flex-wrap:wrap;align-items:end;gap:.6rem;display:flex}.logs__filters{flex-wrap:wrap;gap:.4rem;display:flex}.chip{font:600 var(--step--1) var(--body);border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:.3rem .75rem}.chip[aria-pressed=false]{color:var(--quiet);background:0 0;text-decoration:line-through}.logs__setup{border:1px solid var(--line);background:#fff;border-radius:14px;padding:.9rem 1rem}.logs__setup dl{gap:.35rem;margin:0;display:grid}.logs__setup div{grid-template-columns:9rem 1fr;gap:.75rem;display:grid}.logs__setup dt{color:var(--quiet);font-size:var(--step--1)}.logs__setup dd{font-size:var(--step--1);overflow-wrap:anywhere;margin:0}.logs__warn{color:var(--danger)}.logs__voicetest{justify-items:start;gap:.4rem;margin-top:.75rem;display:grid}.logs__voicetest ul{font-size:var(--step--1);gap:.2rem;margin:0;padding:0;list-style:none;display:grid}.logs__bad{color:#9b2638}.logs__call ol{gap:2px;margin:0;padding:0;list-style:none;display:grid}.log details{border-left:4px solid var(--line);background:#fff;border-radius:6px}.log summary{cursor:pointer;font-size:var(--step--1);grid-template-columns:5.5rem 4rem 1fr;gap:.5rem;padding:.45rem .6rem;list-style:none;display:grid}.log summary::-webkit-details-marker{display:none}.log time{color:var(--quiet);font-variant-numeric:tabular-nums}.log__kind{text-transform:uppercase;letter-spacing:.04em;color:var(--quiet);align-self:center;font-size:.72rem;font-weight:700}.log__summary{overflow-wrap:anywhere}.log pre{border-top:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f8fb;margin:0;padding:.6rem .75rem;font-size:.78rem;line-height:1.4;overflow-x:auto}.log--llm details{border-left-color:var(--sun)}.log--tts details{border-left-color:#8e7cf0}.log--stt details{border-left-color:var(--sea)}.log--turn details{border-left-color:var(--dusk-2)}.log--call details{border-left-color:var(--ink)}.log--error details,.log--failed details{border-left-color:var(--danger)}.log--failed .log__summary{color:#9b2638}.caption__roman{color:#f3dfa8;font-size:var(--step--1);font-style:italic}.line{flex-wrap:wrap;align-items:flex-start;gap:.45rem .7rem;display:flex}.seg{text-align:start;color:inherit;background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:flex-start;max-width:100%;margin:0 -.15rem;padding:.1rem .15rem;display:inline-flex}[dir=rtl] .seg{align-items:flex-end}.seg:hover:not([aria-disabled=true]),.seg:focus-visible{background:#ffffff14}.seg[aria-disabled=true]{cursor:default}.seg__text{font-size:var(--step-1);color:#fff;line-height:1.3}.seg__roman{color:#f3dfa8;font-size:.8rem;font-style:italic;line-height:1.25}.seg__meaning{color:#c9d3ff;max-width:12em;font-size:.8rem;line-height:1.25}.line__native{font-size:var(--step--1);color:#aeb6d6;flex-basis:100%}.thinking{color:var(--sun);font-size:var(--step--1);align-items:center;gap:.6rem;font-weight:700;display:flex}.thinking__dots{gap:.25rem;display:inline-flex}.thinking__dots i{background:var(--sun);border-radius:50%;width:.45rem;height:.45rem;animation:1.2s ease-in-out infinite blink}.thinking__dots i:nth-child(2){animation-delay:.2s}.thinking__dots i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.hints{gap:.4rem;width:100%;max-width:36rem;margin:0 auto;display:grid}.hints__title{font:700 .78rem var(--body);letter-spacing:.06em;text-transform:uppercase;color:#9aa3c4}.hints__list{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.hint{text-align:left;color:#f4f6fb;background:#7fd6c41a;border:1px solid #7fd6c473;border-radius:12px;align-items:center;gap:.55rem;max-width:100%;min-height:2.75rem;padding:.4rem .8rem .4rem .5rem;display:flex}.hint[aria-disabled=true]{cursor:default}.hint__say{background:#ffffff1f;border-radius:50%;flex:none;place-items:center;width:1.6rem;height:1.6rem;font-size:.6rem;display:grid}.hint__body{display:grid}.hint__latin{font-weight:700;font-size:var(--step--1)}.hint__meaning{color:#b8c0dc;font-size:.78rem}.hints__loading{color:#b8c0dc;font-size:var(--step--1)}.hints__tip{color:#9aa3c4;font-size:.8rem}.caption__gloss{color:#c9d3ff;font-size:var(--step--1)}@media (width<=30rem){.sheet{width:100%;max-width:100%;max-height:85dvh;padding-bottom:max(1.25rem, env(safe-area-inset-bottom));border-radius:18px 18px 0 0;margin:auto 0 0;animation:.25s ease-out sheet-up}.logs__setup div{grid-template-columns:1fr;gap:0}.log summary{grid-template-columns:4.5rem 1fr}.log__kind{display:none}.segments{grid-template-columns:1fr}.segment{grid-template-columns:auto 1fr;align-items:baseline;gap:.75rem}}@media (height<=680px){.call{gap:.55rem}.call__body{gap:.6rem}.call__stage{flex-basis:7.5rem}.orb{width:max(4rem,min(62vw,15rem,100cqh - 4.5rem))}.orb__label{bottom:-1.95rem}.fix{padding:.55rem .85rem}.tool{min-height:2.25rem;padding:.35rem .85rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}a.ghost-btn{color:inherit;text-decoration:none;display:inline-block}
