:root{--bg:#f4f2ee;--pane:#fbfaf8;--ink:#1a1917;--mut:#6f6862;--line:#ddd8cf;--accent:#c2410c;--accent-soft:#fdf0e8;--ok:#3f7c53;--ok-soft:#eaf3ec;--shadow:0 1px 2px rgba(0,0,0,.05),0 8px 24px rgba(0,0,0,.05);--on-accent:#fff;--r:14px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#14130f;--pane:#1c1a16;--ink:#f0ece3;--mut:#9d968a;--line:#302c25;--accent:#f97316;--accent-soft:#2c1a0f;--ok:#7fc9a3;--ok-soft:#152219;--on-accent:#14130f;--shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35)}}:root[data-theme=dark]{--bg:#14130f;--pane:#1c1a16;--ink:#f0ece3;--mut:#9d968a;--line:#302c25;--accent:#f97316;--accent-soft:#2c1a0f;--ok:#7fc9a3;--ok-soft:#152219;--on-accent:#14130f;--shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Noto Sans TC,Helvetica,sans-serif}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}.stage{min-height:100vh;flex-direction:column;gap:14px;padding:0}.stage,.whoami{display:flex;align-items:center}.whoami{gap:4px;padding:14px 0 0}.whoami button{font-size:13px;padding:7px 15px;border-radius:99px;color:var(--mut);border:1px solid transparent}.whoami button[aria-pressed=true]{background:var(--pane);color:var(--ink);border-color:var(--line);box-shadow:var(--shadow)}.device{width:100%;max-width:400px;background:var(--pane);position:relative;overflow:hidden;display:flex;flex-direction:column;flex:1 1}@media(min-width:760px){.stage{padding-bottom:34px}.device{height:812px;flex:none;border-radius:34px;border:1px solid var(--line);box-shadow:var(--shadow)}}.statusbar{padding:11px 20px 3px;font-size:12px;color:var(--mut);font-weight:600}.appbar,.statusbar{display:flex;justify-content:space-between}.appbar{align-items:center;gap:10px;padding:6px 18px 12px}.appbar h1{font-size:19px;margin:0;letter-spacing:-.02em}.flame{display:flex;align-items:center;gap:5px;background:var(--accent-soft);color:var(--accent);font-size:13px;font-weight:700;padding:5px 11px;border-radius:99px}.pane{flex:1 1;overflow-y:auto;padding:0 18px 96px}.nav{position:absolute;left:0;right:0;bottom:0;display:flex;background:var(--pane);border-top:1px solid var(--line);padding:8px 6px 22px}.nav button{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--mut);min-height:44px;justify-content:center}.nav button[aria-pressed=true]{color:var(--accent);font-weight:700}.nav .ic{font-size:19px;line-height:1}.card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:15px}.tut{gap:11px;align-items:flex-start;margin:2px 0 16px}.av,.tut{display:flex}.av{width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent);align-items:center;justify-content:center;font-size:20px;flex:none;font-weight:700}.bub{background:var(--bg);border:1px solid var(--line);border-radius:4px 15px 15px 15px;padding:11px 14px;font-size:15px}.who{font-size:11px;margin:0 0 5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.who,.zy{color:var(--mut)}.zy{font-size:.62em;display:block;line-height:1.3;letter-spacing:.06em}.eyebrow{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--mut);font-weight:700;margin:22px 0 9px}.big{width:100%;background:var(--accent);color:var(--on-accent);border-radius:var(--r);padding:16px;font-size:17px;font-weight:700;min-height:52px;box-shadow:var(--shadow)}.ghost{width:100%;padding:13px;font-size:15px;min-height:46px}.ghost,.lesson{border:1px solid var(--line);border-radius:var(--r)}.lesson{background:var(--accent-soft);padding:17px;margin-bottom:12px}.lesson .t{font-size:26px;font-weight:700;letter-spacing:-.02em;margin:2px 0 4px}.lesson .why{font-size:14px;color:var(--mut);margin:0 0 15px}.sess{position:absolute;inset:0;background:var(--pane);display:flex;flex-direction:column;z-index:5}.sesshead{display:flex;align-items:center;gap:12px;padding:16px 18px 10px}.bar{flex:1 1;height:5px;border-radius:99px;background:var(--line);overflow:hidden}.bar i{display:block;height:100%;background:var(--accent);transition:width .35s ease}.sessbody{flex:1 1;overflow-y:auto;padding:8px 18px 18px;display:flex;flex-direction:column}.sessbody .hero{margin-top:auto;margin-bottom:auto}.hero{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:30px 18px;text-align:center;margin:6px 0 16px}.hero .ch{font-size:62px;line-height:1.12;font-weight:600}.hero .ch .zy{font-size:.2em;margin-top:5px}.hero .en{font-size:14px;color:var(--mut);margin-top:9px}.sessfoot{padding:12px 18px 26px;border-top:1px solid var(--line)}.mic{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:15px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:15px;font-weight:600;min-height:54px}.mic[data-state=rec]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.mic[data-state=ok]{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.wave{display:inline-flex;gap:3px;align-items:flex-end;height:17px}.wave i{width:3px;background:currentColor;border-radius:2px;animation:w .8s ease-in-out infinite}.wave i:nth-child(2){animation-delay:.15s}.wave i:nth-child(3){animation-delay:.3s}.wave i:nth-child(4){animation-delay:.45s}.wave i:nth-child(5){animation-delay:.6s}@keyframes w{0%,to{height:5px}50%{height:17px}}@media(prefers-reduced-motion:reduce){.wave i{animation:none;height:11px}}.word{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.word .c{font-size:26px;font-weight:600;min-width:62px}.word .m{font-size:14px;color:var(--mut);flex:1 1}.tick{color:var(--ok);font-size:16px}.dots{display:flex;gap:6px;margin:10px 0 0}.dots i{width:26px;height:26px;border-radius:7px;background:var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--mut);font-style:normal}.dots i.on{background:var(--accent);font-weight:700}.tutor{display:flex;gap:13px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:10px;background:var(--bg);width:100%;text-align:left}.tutor[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.tutor>span:last-child{display:block;flex:1 1;min-width:0}.tutor .n{display:block;font-weight:700;font-size:15px}.tutor .d{color:var(--mut);margin-top:3px}.tutor .d,.tutor .s{display:block;font-size:13px}.tutor .s{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);color:var(--ink)}.stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:9px;gap:9px;margin-bottom:16px}.stat{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:13px 10px;text-align:center}.stat b{display:block;font-size:24px;letter-spacing:-.02em}.stat span{font-size:11px;color:var(--mut)}.clip>span:last-child{flex:1 1;min-width:0}.clip{gap:12px;background:var(--ok-soft);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:8px}.clip,.play{display:flex;align-items:center}.play{width:38px;height:38px;border-radius:50%;background:var(--ok);color:var(--on-accent);justify-content:center;flex:none;font-size:13px}.ask{background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--r);padding:15px}.ask .q{font-size:19px;font-weight:700;margin:7px 0 5px}[hidden]{display:none!important}.load{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1 1;gap:12px;color:var(--mut);font-size:14px;padding:60px 20px;text-align:center}.dotsp{display:flex;gap:5px}.dotsp i{width:7px;height:7px;border-radius:50%;background:var(--mut);opacity:.35;animation:p 1.1s ease-in-out infinite}.dotsp i:nth-child(2){animation-delay:.15s}.dotsp i:nth-child(3){animation-delay:.3s}@keyframes p{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:.9;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.dotsp i{animation:none;opacity:.5}}.intro{padding:26px 20px 40px}.intro h2{font-size:27px;line-height:1.25;letter-spacing:-.02em;margin:0 0 8px}.intro p.sub{color:var(--mut);font-size:15px;margin:0 0 26px}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:700;color:var(--mut);letter-spacing:.03em;margin-bottom:7px}.field input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:14px;font:inherit;color:inherit;min-height:50px}.field input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.field .hint{font-size:12px;color:var(--mut);margin:6px 0 0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);border-radius:99px;padding:9px 15px;font-size:14px;background:var(--bg);min-height:40px}.chip[aria-pressed=true]{border-color:var(--accent)}.chip[aria-pressed=true],.code{background:var(--accent-soft);color:var(--accent);font-weight:700}.code{font-size:30px;letter-spacing:.22em;border:1px solid var(--line);border-radius:var(--r);padding:18px 10px;margin:4px 0 10px}.code,.empty{text-align:center}.empty{border:1px dashed var(--line);border-radius:var(--r);padding:20px;color:var(--mut);font-size:14px}.hero.talk{padding:22px 18px}.hero.talk .ch{font-size:46px}.err{background:var(--accent-soft);border:1px solid var(--accent);color:var(--accent);border-radius:var(--r);padding:13px;font-size:14px;margin:10px 0}.big:focus-visible,.chip:focus-visible,.ghost:focus-visible,.mic:focus-visible,.nav button:focus-visible,.tutor:focus-visible,.whoami button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}ruby.rb{ruby-align:center}ruby.rb rt{font-size:.46em;font-weight:400;color:var(--mut);letter-spacing:.02em;line-height:1.15;padding-bottom:.12em}.hero .ch ruby.rb rt{font-size:.3em;color:var(--mut)}.ask .q ruby.rb rt{font-size:.5em}.word{flex-wrap:wrap;align-items:baseline;row-gap:2px}.word .c{min-width:0;flex:0 1 auto;max-width:100%}.word .m{flex:1 1 100%;order:3;font-size:13px}.word .tick,.word>span:last-child{order:2;margin-left:auto}@media(min-width:420px){.word .m{flex:1 1 auto;order:2;margin-left:14px;font-size:14px}.word>span:last-child{order:3}}.sessbody .hero{padding:38px 18px}.dots i:not(.on){color:#5d5751}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .dots i:not(.on){color:#a89f92}}:root[data-theme=dark] .dots i:not(.on){color:#a89f92}.dots i.on{color:var(--on-accent)}.intro .lede{background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--r);padding:15px 16px;margin:0 0 22px;font-size:15px;line-height:1.5}.intro .lede b{font-weight:700}.intro .lede span{display:block;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font-size:13px;color:var(--mut)}