:root{font-family:Inter,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;color:#153855;background:#edf5fa;--navy:#123958;--blue:#087fce;--ink:#153855;--muted:#607c91;--line:#dbe8f1;--cream:#fff3d8;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:radial-gradient(ellipse at 10% 10%,#d1edfc,transparent 60%),radial-gradient(ellipse at 90% 85%,#f8e9cb,transparent 50%),#eef6fb}button,input,textarea,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.5;cursor:wait}a{color:#126ba4;text-decoration:none}button,a,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:3px solid #be842e;outline-offset:3px}button:hover{filter:brightness(.97)}h1,h2,p,figure{margin:0}h1{font-size:1.12rem;line-height:1.4;letter-spacing:-.025em}h2{font-size:1.05rem}p{line-height:1.65}.icon{width:1.25em;height:1.25em;flex-shrink:0}#app{height:100%;display:flex;align-items:center;justify-content:center;gap:7vw;padding:18px}.phone-app{background:#fff;width:min(100%,460px);height:min(940px,calc(100dvh - 36px));border:1px solid #d6e5ef;box-shadow:0 22px 70px #12395816;border-radius:26px;display:flex;flex-direction:column;overflow:hidden}.desktop-brand{max-width:350px;color:#183e5b}.desktop-brand>img{width:62px;height:62px;border-radius:16px;margin-bottom:26px}.desktop-brand h1{font-size:1.7rem;letter-spacing:.03em}.desktop-brand p{font-size:1.04rem;color:#4a7898;margin-top:14px}.desktop-brand>span{display:block;font-size:.68rem;color:#6d8b9f;margin-top:26px;line-height:1.8}.desktop-brand small{display:block;margin-top:80px;font-size:.65rem;color:#7b98aa}.app-header{height:64px;min-height:64px;padding:9px 20px;display:flex;align-items:center;gap:9px;background:#fff;border-bottom:1px solid #edf2f7}.app-header>img{border-radius:9px}.wordmark{color:#153b5d;font-size:1.1rem;font-weight:750;white-space:nowrap}.wordmark small{display:none}.header-actions{margin-left:auto;display:flex;align-items:center;gap:9px}.font-button{background:#edf5fd;color:#27547a;border:0;border-radius:16px;padding:7px 10px;font-size:.66rem;font-weight:600;min-height:36px;white-space:nowrap}.icon-button{background:transparent;border:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;color:#2d577a;border-radius:10px;flex-shrink:0}.screen{padding:16px 19px 12px;flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;outline:0;overflow:hidden}.primary,.secondary,.outline{border-radius:13px;border:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:49px;padding:11px 16px;font-size:.9rem;font-weight:650;line-height:1.3;text-align:center}.primary{background:linear-gradient(120deg,#079cf0,#087aca);color:#fff;box-shadow:0 3px 0 #0569ad}.secondary{background:#f2f7fb;border:1px solid #d5e4ee;color:#255f86}.outline{background:#fff;border:1.5px solid #1189cf;color:#0a7abf;min-height:41px;padding:8px 14px;font-size:.82rem;box-shadow:none}.text-button{background:transparent;border:0;color:#326d95;font-size:.75rem;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 5px;min-height:38px;line-height:1.4}.fixed-actions{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding:5px 0 3px;flex-shrink:0}.fixed-actions>.primary,.fixed-actions>.secondary{width:100%}.fixed-actions>.text-button{font-size:.73rem;min-height:33px}.micro-note{font-size:.59rem;color:#72889b;text-align:center;line-height:1.6}.bottom-nav{border-top:1px solid #e0ebf3;display:flex;justify-content:space-around;min-height:65px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:#fff;flex-shrink:0}.bottom-nav button{background:transparent;border:0;color:#7893a7;min-width:60px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:5px;font-size:.6rem}.bottom-nav button[aria-current]{color:#087fce}.bottom-nav .icon{width:21px;height:21px}.page-head{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.page-head p{font-size:.72rem;color:#6b8497}.eyebrow{font-size:.65rem;color:#7d97a9;letter-spacing:.06em}.scene{position:relative;min-height:60px;overflow:hidden;border-radius:13px;flex-shrink:1;background:#f9efd9}.scene img{width:100%;height:100%;object-fit:cover;display:block}.scene figcaption{position:absolute;right:6px;bottom:5px;color:#fff;background:#392b1766;border-radius:4px;padding:2px 4px;font-size:.39rem;line-height:1.3}.home-intro{height:130px;min-height:85px;display:flex;position:relative;border-radius:14px;overflow:hidden;background:#fbf2df}.home-intro .scene{width:48%;height:100%;border-radius:0;min-width:48%}.home-intro .scene img{object-position:65% center}.home-intro>div{padding:17px 13px;display:flex;flex-direction:column;justify-content:center;gap:9px}.home-intro strong{font-size:.79rem;color:#765728}.home-intro span{font-size:.63rem;color:#8a7758;line-height:1.8}.bank-info{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:.62rem;color:#547a96}.bank-info .text-button{font-size:.62rem;padding:0;min-height:30px}.lesson-list{display:flex;flex-direction:column;gap:9px;flex-shrink:0}.lesson-tile{background:white;border:1px solid #d6e6f1;border-radius:12px;display:flex;align-items:center;gap:12px;padding:8px;text-align:left;color:var(--ink);min-height:78px;width:100%}.lesson-tile img{width:64px;height:57px;object-fit:cover;border-radius:7px}.lesson-tile>span{flex:1;min-width:0}.lesson-tile strong{font-size:.77rem;font-weight:650;display:block}.lesson-tile small{font-size:.62rem;color:#7690a4;display:block;margin-top:6px}.lesson-tile .icon{color:#5f91b0;width:19px;margin-right:3px}.pagination{display:flex;align-items:center;justify-content:center;gap:19px;font-size:.66rem;color:#6d879b;min-height:38px;flex-shrink:0}.pagination .secondary{font-size:.7rem;min-height:40px;padding:8px 16px}.home-foot{display:flex;align-items:center;gap:7px;background:#fff7e7;color:#9b752f;border-radius:10px;padding:11px 12px;font-size:.65rem;margin-top:auto}.home-foot>span{margin-left:auto;color:#7e8b94;font-size:.6rem}.steps{padding:0;margin:0;list-style:none;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:6px}.steps li{display:flex;align-items:center;gap:7px;color:#9aaabc;font-size:.73rem;flex:1;white-space:nowrap}.steps li:not(:last-child):after{content:'';height:2px;min-width:5px;flex:1;background:#e5edf4;margin-right:2px}.steps b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#e1e8ef;color:#fff;font-size:.73rem;font-weight:500}.steps .active{color:#087fce;font-weight:650}.steps .active b{background:#1499e9}.steps .done{color:#6b9fbe}.steps .done b{background:#91c3de}.mini-progress{display:flex;gap:12px;align-items:center;font-size:.62rem;color:#72889d;flex-shrink:0;min-height:22px}.mini-progress progress{flex:1;min-width:30px;appearance:none;border:0;height:6px;border-radius:9px;background:#e5edf4;overflow:hidden}progress::-webkit-progress-bar{background:#e5edf4}progress::-webkit-progress-value{background:#309fe4;border-radius:9px}progress::-moz-progress-bar{background:#309fe4}.learning-image{height:clamp(85px,20dvh,185px)}.english-question{font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:1.13rem;line-height:1.35;text-align:center;font-weight:700;letter-spacing:-.02em;flex-shrink:0;overflow-wrap:break-word}.translation{font-size:.83rem;color:#687c93;line-height:1.45;text-align:center;flex-shrink:0}.listen-row{display:flex;gap:12px;justify-content:center;align-items:center;flex-shrink:0}.listen-row .text-button{font-size:.7rem}.answer-card{border:1px solid #d3e7f6;background:linear-gradient(130deg,#edf7fe,#f9fcff);padding:11px 15px;border-radius:13px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;flex-shrink:0}.answer-card>span{font-size:.55rem;color:#7c99af}.answer-card strong{font-size:1rem;line-height:1.4;font-weight:650;overflow-wrap:anywhere}.answer-card .text-button{font-size:.65rem;min-height:26px;padding:3px}.question-pages{display:flex;align-items:center;justify-content:center;gap:14px;color:#91a3b1;font-size:.55rem;flex-shrink:0;min-height:24px}.question-pages .text-button{font-size:.59rem;min-height:24px;padding:1px}.record-image{height:clamp(65px,15dvh,135px)}.record-image img,.feedback-image img,.large-scene img{object-position:center 39%}.record-zone{border:1px solid #dceaf3;background:#f7fbff;border-radius:14px;padding:14px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;flex-shrink:0}.record-zone.recording{border-color:#e5aaaa;background:#fff6f4}.record-guide{font-size:.75rem;color:#6c869b;text-align:center}.mic-action{width:100%;font-size:.9rem}.mic-action.stop{background:#bd584c;box-shadow:0 3px #914339}.record-hint{font-size:.57rem;color:#8499a9;line-height:1.5;text-align:center}.record-meta{display:flex;align-items:center;gap:6px;font-size:.63rem;color:#3a9353}.record-meta>span:last-child{font-size:.5rem;color:#8d9eac}.green-dot{width:7px;height:7px;border-radius:50%;background:#54b667}.waveform{height:50px;display:flex;align-items:center;justify-content:center;gap:4px;width:100%;padding:4px 10px}.waveform i{width:3px;border-radius:3px;background:#52b5f1;height:var(--h);max-height:100%}.replay-button{border:0;background:transparent;color:#078ad8;min-height:43px;font-size:.88rem;font-weight:650}.record-tools{display:flex;gap:30px}.record-tools .text-button{font-size:.66rem;min-height:28px;padding:1px}.typed-answer{display:flex;flex-direction:column;gap:5px;flex-shrink:0}.typed-answer label{font-size:.64rem;color:#6a8297}.typed-answer textarea{font-size:.83rem;line-height:1.45;padding:10px 12px;border:1px solid #c9dfe9;border-radius:11px;resize:none;max-height:85px;min-height:62px;width:100%;color:#224e6f;background:#fcfdff}.type-link{align-self:center;font-size:.68rem;min-height:30px;padding:3px}.button-pair{display:flex;gap:12px}.button-pair button{flex:1}.feedback-image{height:clamp(85px,21dvh,190px)}.feedback-title{display:flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0}.feedback-title>.icon{color:#379975;background:#e5f5eb;border-radius:50%;width:30px;height:30px;padding:5px}.feedback-title h1{font-size:1rem}.reward{display:flex;align-items:center;justify-content:center;gap:8px;background:#fff4d9;border-radius:10px;padding:11px 8px;color:#a77822;font-size:.76rem;flex-shrink:0}.feedback-description{font-size:.75rem;color:#6b8596;line-height:1.7;text-align:center}.large-scene{height:clamp(100px,29dvh,240px)}.center-copy{text-align:center;display:flex;flex-direction:column;gap:15px;align-items:center;margin:12px 0;flex-shrink:0}.center-copy h1{font-size:1.17rem}.center-copy p{font-size:.8rem;color:#7690a3}.center-copy h2{font-size:1.1rem}.result-metrics{display:flex;justify-content:center;gap:45px;text-align:center;margin:15px 0;flex-shrink:0}.result-metrics>div{display:flex;flex-direction:column;gap:9px}.result-metrics strong{font-size:1.8rem;color:#248fca}.result-metrics small{font-size:.8rem;color:#91a5b5;font-weight:400}.result-metrics span{font-size:.65rem;color:#738da3}.voice-status{font-size:.61rem;background:#fff5e0;color:#947035;padding:9px 12px;border-radius:8px;line-height:1.5;flex-shrink:0}.voice-status.ready{background:#e8f4ed;color:#4c8568}.voice-list{display:flex;flex-direction:column;gap:10px;flex-shrink:0}.voice-row{border:1px solid #dde7ef;border-radius:13px;padding:9px;display:flex;align-items:center;gap:8px;background:#fff;min-height:73px}.voice-row.selected{border-color:#1898ed;background:#f7fcff;box-shadow:0 0 0 1px #1898ed20}.voice-choice{display:flex;align-items:center;gap:10px;flex:1;border:0;background:transparent;text-align:left;padding:0;color:#163e60;min-width:0}.voice-avatar{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;color:#44647d;font-size:1.1rem;flex-shrink:0}.voice-choice strong{font-size:.88rem;display:block}.voice-choice small{font-size:.6rem;color:#7b8da3;display:block;margin-top:5px}.voice-play{border:1px solid #229ce2;color:#1598e0;background:#fff;border-radius:50%;width:36px;height:36px;display:grid;place-items:center}.voice-play .icon{width:19px}.radio{border:1px solid #b1c5d5;border-radius:50%;width:19px;height:19px;flex-shrink:0;display:grid;place-items:center;color:white;font-size:.55rem}.selected .radio{background:#1398e8;border-color:#1398e8}.compact-setting{display:flex;align-items:center;gap:12px;flex-shrink:0}.compact-setting>span{font-size:.73rem;white-space:nowrap}.segmented{display:flex;background:#f0f5fa;border-radius:20px;padding:3px;gap:3px;flex:1}.segmented button{border:0;color:#58748a;background:transparent;border-radius:18px;padding:8px;min-height:37px;font-size:.67rem;flex:1;white-space:nowrap}.segmented button[aria-pressed=true]{background:#0c92e2;color:#fff}.settings-list{display:flex;flex-direction:column;gap:19px;padding:12px 0;flex-shrink:0}.settings-list>div{display:flex;flex-direction:column;gap:9px}.settings-list strong{font-size:.8rem;font-weight:600}.utility-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:8px;flex-shrink:0}.utility-grid .secondary{font-size:.67rem;min-height:47px;padding:10px 6px}.service-info{font-size:.6rem;color:#889faf;line-height:1.8;margin-top:auto;text-align:center}.points-summary{display:flex;align-items:center;justify-content:center;gap:9px;background:#fff5e0;border-radius:12px;padding:15px;font-size:.75rem;color:#a6792e;flex-wrap:wrap}.points-summary strong{font-size:1.4rem}.points-summary span{font-size:.66rem}.detail-image{height:clamp(65px,16dvh,135px)}.detail-text{background:#f5faff;border:1px solid #dfecf6;padding:18px;border-radius:12px;font-size:.86rem;line-height:1.75;overflow-wrap:anywhere;flex-shrink:0}.source-link{font-size:.68rem;text-align:center;min-height:30px}.loading{display:flex;flex-direction:column;align-items:center;gap:25px}.loading img{width:66px}.loading h1{font-size:1.5rem}.loading p{font-size:.9rem;color:#7991a3}.skip{position:absolute;top:-100px;z-index:30}.skip:focus{top:5px;left:5px;padding:10px;background:white}#toast{position:fixed;left:50%;bottom:80px;transform:translate(-50%,12px);background:#163c5eed;color:white;border-radius:12px;padding:12px 18px;font-size:.72rem;line-height:1.6;max-width:min(420px,90vw);width:max-content;opacity:0;pointer-events:none;z-index:100;transition:.15s}#toast.visible{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #d0e0ee;border-radius:18px;padding:25px;color:#173e5d;max-width:min(470px,92vw);max-height:90dvh;box-shadow:0 20px 60px #102a5040}dialog::backdrop{background:#19355077;backdrop-filter:blur(3px)}dialog h2{font-size:1.1rem;margin-bottom:14px}dialog p{font-size:.77rem;line-height:1.9;color:#678398}.dialog-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}.dialog-actions button{font-size:.78rem}.reduce-motion *{transition:none!important;animation:none!important}
@media(max-width:760px){#app{padding:0;display:block}.desktop-brand{display:none}.phone-app{width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0;box-shadow:none;padding-top:env(safe-area-inset-top)}.app-header{height:59px;min-height:59px;padding:8px 17px}.screen{padding:13px 17px 10px;gap:9px}.in-lesson .screen{padding-bottom:max(10px,env(safe-area-inset-bottom))}.home-intro{height:128px}.learning-image{height:clamp(80px,21dvh,195px)}.bottom-nav{min-height:61px;padding-top:4px}.fixed-actions .primary{min-height:49px}.scene{border-radius:11px}.settings-list{gap:16px}.voice-row{min-height:72px}.large-font .screen{gap:7px}.large-font .learning-image{height:15dvh;min-height:65px}.large-font .record-image{height:12dvh;min-height:50px}.large-font .answer-card strong{font-size:.87rem}.large-font .translation{font-size:.75rem}.large-font .english-question{font-size:1rem}.large-font .home-intro{height:100px}.large-font .lesson-tile{min-height:76px}.large-font .page-head h1{font-size:1rem}}
@media(max-height:740px){.screen{gap:7px;padding-top:10px}.app-header{height:54px;min-height:54px}.learning-image{height:15dvh;min-height:65px}.record-image{height:11dvh;min-height:55px}.home-intro{height:90px;min-height:60px}.lesson-tile{min-height:67px;padding:6px}.lesson-tile img{height:48px;width:55px}.lesson-list{gap:7px}.page-head h1{font-size:1rem}.home-foot{padding:8px 10px}.home-intro>div{padding:8px 10px;gap:5px}.answer-card{padding:8px 12px;gap:3px}.english-question{font-size:1.05rem}.translation{font-size:.77rem}.listen-row .outline{min-height:37px;padding:7px 12px}.fixed-actions{gap:3px;padding:2px 0}.fixed-actions>.text-button{min-height:29px}.fixed-actions .primary,.fixed-actions .secondary{min-height:45px;padding:10px}.record-zone{padding:10px;gap:5px}.waveform{height:37px}.voice-list{gap:7px}.voice-row{min-height:63px;padding:7px}.voice-avatar{height:38px;width:38px}.voices .pagination{min-height:28px}.voices .pagination .text-button{min-height:28px}.voices .page-head p{font-size:.65rem}.settings-list{gap:12px;padding:5px 0}.settings-list>div{gap:7px}.utility-grid{gap:8px}.center-copy{gap:10px;margin:5px 0}.large-scene{height:25dvh}.result-metrics{margin:10px 0}.feedback-image{height:16dvh}.feedback-description{font-size:.7rem}.record-tools .text-button{min-height:24px}.typed-answer textarea{min-height:55px;max-height:65px}.record-meta{font-size:.6rem}.detail-text{font-size:.79rem;padding:13px}.detail-image{height:12dvh;min-height:50px}}
@media(max-height:620px){.screen{gap:5px;padding:8px 15px}.app-header{height:48px;min-height:48px}.app-header>img{width:27px;height:27px}.wordmark{font-size:.95rem}.page-head{gap:3px}.page-head h1{font-size:.95rem}.page-head p{font-size:.62rem}.eyebrow{font-size:.55rem}.home-intro{height:66px;min-height:45px}.home-intro>div{gap:3px}.home-intro strong{font-size:.7rem}.home-intro span{font-size:.52rem}.lesson-tile{min-height:59px}.lesson-tile img{width:47px;height:43px}.lesson-tile strong{font-size:.7rem}.lesson-tile small{font-size:.55rem;margin-top:3px}.lesson-list{gap:5px}.bottom-nav{min-height:52px;padding:3px}.bottom-nav button{font-size:.5rem;gap:3px}.bottom-nav .icon{width:18px;height:18px}.pagination{min-height:29px}.pagination .icon-button{height:28px}.home-foot{padding:6px 10px;font-size:.58rem}.home-foot>span{font-size:.53rem}.steps b{width:23px;height:23px}.steps li{font-size:.65rem;gap:5px}.mini-progress{min-height:16px;font-size:.53rem}.learning-image{height:65px;min-height:45px}.english-question{font-size:.96rem}.translation{font-size:.68rem}.answer-card strong{font-size:.9rem}.answer-card{padding:6px 10px}.answer-card .text-button{min-height:23px}.listen-row .outline{min-height:33px;font-size:.7rem}.listen-row .text-button{min-height:30px;font-size:.62rem}.fixed-actions .primary,.fixed-actions .secondary{min-height:42px;font-size:.78rem;padding:9px 10px}.fixed-actions .text-button{min-height:25px;font-size:.6rem}.record-image{height:55px;min-height:40px}.record-zone{padding:8px}.record-guide{font-size:.65rem}.record-zone .primary{min-height:40px;padding:9px;font-size:.78rem}.record-hint{font-size:.48rem}.record-tools{gap:20px}.replay-button{font-size:.75rem;min-height:34px}.waveform{height:27px}.record-meta>span:last-child{display:none}.typed-answer textarea{min-height:49px;max-height:53px;padding:6px 9px;font-size:.73rem}.typed-answer label{font-size:.55rem}.type-link{min-height:26px;font-size:.6rem}.micro-note{font-size:.5rem}.large-scene{height:20dvh;min-height:75px}.center-copy h1{font-size:1.03rem}.center-copy p{font-size:.68rem}.voice-row{min-height:56px;padding:6px;gap:5px}.voice-list{gap:5px}.voice-choice strong{font-size:.8rem}.voice-choice small{font-size:.54rem;margin-top:3px}.voice-avatar{height:34px;width:34px}.voice-play{height:31px;width:31px}.voice-status{padding:6px 9px;font-size:.53rem}.compact-setting{gap:9px}.compact-setting>span{font-size:.65rem}.segmented button{padding:6px;min-height:32px;font-size:.58rem}.settings-list{gap:10px}.utility-grid .secondary{min-height:40px;font-size:.61rem}.settings-list strong{font-size:.72rem}.service-info{font-size:.53rem}.feedback-image{height:70px;min-height:45px}.feedback-title h1{font-size:.86rem}.feedback-description{font-size:.62rem}.reward{padding:8px;font-size:.64rem}.detail-image{height:60px}.detail-text{font-size:.72rem;line-height:1.6}.large-font .learning-image,.large-font .record-image{height:45px;min-height:35px}.large-font .translation{font-size:.65rem}.large-font .english-question{font-size:.88rem}.large-font .home-intro{height:62px}.large-font .lesson-tile{min-height:60px}.large-font .page-head h1{font-size:.88rem}}
@media(max-height:450px){.in-lesson .scene{display:none}.in-lesson .translation,.in-lesson .micro-note,.in-lesson .mini-progress{display:none}.screen{overflow-y:auto}.home-intro{display:none}}
.learning-image img{object-position:center 22%}.record-image img,.feedback-image img{object-position:center 16%}
@media(max-height:620px){.voices{gap:4px}.voices .page-head p{display:none}.voices .fixed-actions>.text-button{font-size:.52rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media(max-height:620px) and (max-width:359px){.large-font .learn{gap:2px;padding-top:6px;padding-bottom:6px}.large-font .learn .learning-image{height:35px;min-height:35px}}

/* Quiet speaking screen: one task, no typing or transcription controls. */
.practice{align-items:stretch;gap:16px}.practice .record-image{height:clamp(85px,21dvh,180px);min-height:65px}.practice-label{text-align:center;color:var(--muted);font-size:.72rem;margin-top:6px}.practice .phrase{font-size:1.4rem;line-height:1.35}.practice .record-zone{background:none;border:0;padding:16px 0;gap:12px;box-shadow:none}.practice .record-zone .primary{min-height:56px}.practice .record-guide{font-size:.68rem}.practice .replay-button{color:var(--blue);font-size:1rem;min-height:50px}.practice .fixed-actions .secondary{background:#eef7fd;border:0;color:#17689e;box-shadow:none}.learn .answer-card{box-shadow:none}.learn .mini-progress,.practice .mini-progress{margin-bottom:3px}.in-lesson .app-header{border-bottom:0}
@media(max-height:620px){.practice{gap:8px}.practice .record-image{height:90px;min-height:55px}.practice .phrase{font-size:1.05rem}.practice .record-zone{padding:8px 0;gap:7px}.practice .record-zone .primary{min-height:46px}.practice-label{font-size:.65rem}.large-font .practice .record-image{height:60px}}

.bottom-nav{grid-template-columns:repeat(5,1fr)}
.speech-levels{display:grid;gap:12px}.speech-level{display:flex;align-items:center;gap:12px;width:100%;padding:16px 12px;border:1px solid #dbe8f1;border-radius:16px;background:#f7fbff;color:var(--navy);text-align:left}.speech-level>b{display:grid;place-items:center;background:#dcefff;color:#087fce;border-radius:50%;width:34px;height:34px;flex-shrink:0}.speech-level>span{flex:1}.speech-level strong{font-size:.88rem}.speech-level small{display:block;font-size:.65rem;color:var(--muted);margin-top:5px}.oral-score{text-align:center;color:#087fce;line-height:1.2;padding:8px}.oral-score strong{font-size:3.3rem}.oral-score span{font-size:.8rem;margin-left:8px}.oral-metrics{display:grid;grid-template-columns:repeat(3,1fr);background:#eff8ff;border-radius:14px;padding:14px}.oral-metrics>div{display:grid;text-align:center;gap:5px}.oral-metrics b{font-size:1.15rem}.oral-metrics span,.oral-comparison,.oral-content{font-size:.7rem;color:var(--muted);text-align:center}.word-tip{display:flex;flex-direction:column;gap:4px;background:#fff4df;padding:12px;border-radius:12px}.word-tip strong{font-size:.9rem}.word-tip span{font-size:.68rem}.practice .detail-text span{font-size:.62rem;color:var(--muted)}
@media(max-height:620px){.speech-levels{gap:7px}.speech-level{padding:10px;gap:9px}.speech-level strong{font-size:.75rem}.speech-level small{font-size:.54rem;margin-top:3px}.oral-score{padding:2px}.oral-score strong{font-size:2rem}.oral-metrics{padding:8px}.oral-comparison,.oral-content{font-size:.59rem}.oral-metrics span{font-size:.6rem}.word-tip{padding:8px}.practice .fixed-actions .primary{min-height:40px}.practice .fixed-actions .secondary{min-height:36px}.practice .detail-text{font-size:.67rem}.practice .page-head h1{font-size:.85rem}}

.word-tip strong{overflow-wrap:anywhere}@media(max-height:620px){.has-recording .practice .record-image,.has-recording .practice .practice-label{display:none}.has-recording .practice{gap:5px}}

/* One question, one workspace: explanation and feedback stay in place. */
.screen:has(.question-body){display:flex;flex-direction:column;gap:8px;overflow:hidden;min-height:0}
.question-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin}
.question-body>*{flex-shrink:0}.question-body .question-image{height:100px;width:100%;border-radius:14px;overflow:hidden}.question-image img{width:100%;height:100%;object-fit:cover}
.question-body .english-question{font-size:1.05rem;line-height:1.35;overflow-wrap:anywhere}.question-body .answer-card{padding:12px;gap:5px}.question-body .answer-card strong{font-size:.95rem;line-height:1.4}
.question-body .listen-row{margin:0;gap:12px}.inline-chinese{background:#fff6e5;border-radius:12px;padding:12px;font-size:.82rem;line-height:1.55}.inline-chinese p+p{margin-top:6px}
.inline-result{background:#eef8ff;border:1px solid #cce7f8;padding:12px;border-radius:12px;font-size:.78rem;line-height:1.4;overflow-wrap:anywhere}.inline-result p{line-height:1.4;margin-top:5px}.inline-result strong{color:#08679f}
.question-actions{flex-shrink:0;display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px solid #edf2f7}.question-actions button{width:100%;min-height:44px}.question-actions .text-button{min-height:30px;padding:3px}.question-actions .micro-note{text-align:center;font-size:.6rem}
.question-body:has(.inline-result) .question-image,.question-body:has(.inline-chinese) .question-image{display:none}
@media(max-height:650px){.question-body{gap:6px}.question-body .question-image{height:65px}.question-body .answer-card{padding:8px}.question-actions{gap:4px}.question-actions button{min-height:38px}.question-body .english-question{font-size:.92rem}}

@media(min-height:720px){.question-body:has(.inline-result):not(:has(.inline-chinese)) .question-image{display:block;height:85px}}

.live-recorder{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#f1f8fe;border:1px solid #d8eafa;border-radius:15px;--voice-level:0}
.mic-orb{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:50%;background:#dbeeff;color:#087fce;transform:scale(calc(1 + var(--voice-level)*.12));box-shadow:0 0 0 calc(var(--voice-level)*9px) #0a9bec18;transition:transform 70ms linear,box-shadow 70ms linear}
.live-signal{flex:1;min-width:0}.meter-heading,.meter-caption{display:flex;align-items:center;justify-content:space-between;gap:5px}.mic-status{font-size:.62rem;font-weight:650;color:#336287}.record-clock{font-size:.8rem;font-weight:750;font-variant-numeric:tabular-nums;color:#123958}.sound-bars{height:29px;display:flex;align-items:center;gap:3px;margin:4px 0;overflow:hidden}.sound-bars i{flex:1;min-width:2px;height:3px;border-radius:3px;background:#219fdd;transition:height 55ms linear}.signal-hint{font-size:.55rem;line-height:1.25;color:#52768e}.volume-db{font-size:.48rem;white-space:nowrap;color:#668aa2;font-variant-numeric:tabular-nums}.live-recorder[data-signal=clipping],.live-recorder[data-signal=noise]{background:#fff7e8;border-color:#efd39c}.live-recorder[data-signal=clipping] .sound-bars i{background:#ec7250}.live-recorder[data-signal=noise] .sound-bars i{background:#ddac47}.live-recorder:not(.is-recording) .mic-orb{box-shadow:none;transform:none}.live-recorder:not(.is-recording) .sound-bars i{background:#a8cce3}
@media(max-height:650px){.live-recorder{padding:6px 9px;gap:9px}.mic-orb{width:34px;height:34px}.sound-bars{height:20px;margin:2px 0}.record-clock{font-size:.68rem}.signal-hint{font-size:.48rem}}
@media(prefers-reduced-motion:reduce){.mic-orb{transform:none!important;box-shadow:none!important}.sound-bars i{transition:none}}

.reduce-motion .mic-orb{transform:none!important;box-shadow:none!important}.reduce-motion .sound-bars i{transition:none}

/* Large touch targets; results replace the question content in the same workspace. */
.lesson-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:10px 14px;border:1px solid #c5e2f5;border-radius:14px;background:#eff8ff;color:#126a9f;font-size:.85rem;font-weight:650;line-height:1.3;touch-action:manipulation}
.question-body .listen-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.question-body .answer-card .lesson-button{width:100%;margin-top:4px}.question-body .question-image{height:76px}.question-body .answer-card{padding:12px}.question-body .answer-card strong{font-size:1.08rem}
.question-actions .primary{min-height:64px;font-size:1.08rem}.question-actions .secondary{min-height:58px;font-size:1rem}.question-actions .micro-note{display:none}.question-actions .lesson-button{min-height:50px;width:100%;font-size:.8rem}.playback-actions{display:flex;gap:8px}.playback-actions>*{flex:1;min-width:0}.question-actions{gap:9px;padding-top:8px}
.live-recorder:not(.is-recording){padding:6px 10px}.live-recorder:not(.is-recording) .sound-bars,.live-recorder:not(.is-recording) .meter-caption{display:none}.live-recorder:not(.is-recording) .mic-orb{width:30px;height:30px}.question-actions:has(.playback-actions) .live-recorder{display:none}
.question-body.has-result{position:relative;overflow:hidden;display:flex;min-height:180px}.question-body.has-result>*:not(.score-stage){display:none!important}.score-stage.inline-result{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px 12px;text-align:center;border-radius:22px;background:linear-gradient(155deg,#e7f6ff,#f8fcff);overflow:hidden;border:1px solid #c8e7fa}
.score-question{font-size:.72rem;color:#527089;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex-shrink:0}.score-medal{position:relative;width:150px;height:150px;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:50%;background:#fff;box-shadow:0 8px 26px #1687cf18;border:5px solid #9bd9fc;flex-shrink:0;animation:score-pop 550ms cubic-bezier(.18,.8,.3,1.3)}
.score-stars{color:#e9a32b;letter-spacing:4px;font-size:1rem;line-height:1.1}.score-percent{color:#087fc4;line-height:1}.score-percent b{font-size:2.8rem;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.score-percent span{font-size:1.1rem;margin-left:3px}.score-kind{color:#4d7692;font-size:.65rem;margin-top:6px}.score-stage .score-cheer{font-size:1.35rem;line-height:1.35;color:#075c94}.score-stage .score-message{font-size:.8rem;line-height:1.4;margin:0}.score-stage .score-transcript{font-size:.82rem;color:#274c68;background:#ffffffb0;border-radius:10px;padding:8px 12px;max-width:100%;line-height:1.4;margin:0;max-height:3.1em;overflow-y:auto}.score-stage .score-note{font-size:.58rem;color:#648097;line-height:1.3;margin:0}.score-stage.tier-genius{background:linear-gradient(150deg,#fff2ca,#fffaf0);border-color:#f4d58d}.tier-genius .score-medal{border-color:#eec56e}.tier-genius .score-cheer{color:#966216}
.score-confetti{position:absolute;inset:0;pointer-events:none}.score-confetti i{position:absolute;left:50%;top:30%;width:6px;height:10px;border-radius:2px;background:#26a6e0;opacity:0;animation:score-confetti 1s calc(var(--i)*30ms) ease-out both}.score-confetti i:nth-child(3n){background:#f1bc45}.score-confetti i:nth-child(3n+1){background:#ef9372}.thinking-dots{display:block;color:#1592d2;letter-spacing:8px;animation:thinking-pulse 1s ease-in-out infinite}.inline-result.analyzing{display:grid;place-items:center;gap:12px;padding:20px}
.in-lesson .font-button,.in-lesson .icon-button{min-width:44px;min-height:44px}.in-lesson .app-header{padding-top:4px;padding-bottom:4px}
@keyframes score-pop{from{transform:scale(.9)}to{transform:scale(1)}}@keyframes score-confetti{0%{opacity:0;transform:translate(0,0) rotate(0)}25%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--r))}}@keyframes thinking-pulse{50%{opacity:.35}}
@media(max-height:740px){.question-body .question-image{display:none}.question-body .english-question{font-size:.95rem}.question-body{gap:7px}.question-actions{gap:7px}.question-actions .primary{min-height:58px}.question-actions .secondary{min-height:54px}.score-medal{width:126px;height:126px}.score-stage .score-cheer{font-size:1.1rem}.score-stage.inline-result{gap:6px;padding:10px}.lesson-button{min-height:50px}}
@media(max-height:610px){.score-question{display:none}.score-medal{width:96px;height:96px;border-width:3px}.score-percent b{font-size:2rem}.score-stars{font-size:.75rem}.score-kind{font-size:.55rem;margin-top:3px}.score-stage .score-message{font-size:.64rem}.score-stage .score-cheer{font-size:1rem}.score-stage .score-transcript{font-size:.65rem;padding:5px 8px}.score-stage .score-note{font-size:.5rem}.question-actions .primary{min-height:54px}.question-actions .secondary{min-height:50px}.question-actions .lesson-button{min-height:46px}.score-stage.inline-result{gap:4px;padding:8px}.question-body.has-result{min-height:170px}}
@media(prefers-reduced-motion:reduce){.score-medal,.score-confetti i,.thinking-dots{animation:none!important}.score-confetti{display:none}}
.reduce-motion .score-medal,.reduce-motion .score-confetti i,.reduce-motion .thinking-dots{animation:none!important}.reduce-motion .score-confetti{display:none}

.question-keyword{background:#e4f3ff;color:#00659e;font-weight:850;border-radius:4px;padding:0 .06em;text-decoration:underline;text-decoration-color:#86c9ef;text-underline-offset:3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.question-keyword.cue{background:#fff0cc;color:#9a4f00;text-decoration-color:#e9bb65}.score-question .question-keyword{font-weight:750}.question-body .english-question{text-wrap:pretty}
@media(max-height:740px){.question-body .question-image{display:none!important}.question-body .answer-card{padding:8px}.question-body .answer-card strong{font-size:.95rem}}

.bottom-nav{grid-template-columns:repeat(6,1fr)}.bottom-nav button{min-height:52px;min-width:44px}
.mock-start{gap:10px}.mock-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mock-mode{min-height:94px;padding:12px 10px;border:1px solid #d4e6f3;border-radius:15px;background:#f7fbff;color:#163c5a;text-align:left;display:grid;gap:6px;align-content:center}.mock-mode[aria-pressed=true]{border:2px solid #158dce;background:#e9f6ff}.mock-mode strong{font-size:.85rem;line-height:1.3}.mock-mode span{font-size:.64rem;color:#52768d;line-height:1.4}.mock-instructions p{font-size:.77rem;line-height:1.5;margin-bottom:6px}.mock-instructions small{display:block;font-size:.58rem;color:#648097;line-height:1.5}.mock-start .fixed-actions{gap:8px}.mock-start .fixed-actions button{min-height:50px}.mock-last{min-height:46px;font-size:.68rem}.mock-question-body .eyebrow{margin-top:4px}.mock-neutral{font-size:.75rem;color:#617e92;line-height:1.55}.mock-question .mock-skip{background:transparent;color:#54788f;border:0;border-radius:12px;min-height:44px;font-size:.72rem}.mock-question .live-recorder:not(.is-recording){display:none}.mock-heard{background:#f0f8ff;border:1px solid #d4eafa;border-radius:14px;padding:12px}.mock-heard span{font-size:.64rem;color:#557a96}.mock-heard p{font-size:.95rem;line-height:1.4;margin-top:6px;overflow-wrap:anywhere}.mock-heard small{display:block;font-size:.58rem;color:#668397;margin-top:7px;line-height:1.4}
.mock-result{gap:12px}.mock-report-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:14px}.mock-report-body>*{flex-shrink:0}.mock-total{text-align:center;padding:12px;background:linear-gradient(140deg,#e4f4ff,#f7fbff);border:1px solid #d1e8fa;border-radius:20px;display:grid;gap:7px}.mock-total strong{font-size:2.8rem;line-height:1.2;color:#087fc4}.mock-total small{font-size:1.1rem}.mock-total span{font-size:.68rem;color:#597e98}.mock-report-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.mock-report-metrics span{display:grid;gap:5px;font-size:.56rem;text-align:center;color:#587c94}.mock-report-metrics b{font-size:1rem;color:#163f5e}.mock-rule{font-size:.66rem;line-height:1.5;color:#56768c}.mock-weak{border-radius:14px;background:#fff6e4;padding:12px;display:grid;gap:7px}.mock-weak strong{font-size:.74rem;color:#865a1f}.mock-weak span{font-size:.68rem}.mock-wrong-list{display:grid;gap:10px}.mock-wrong-list article{border:1px solid #d8e8f2;border-radius:12px;padding:12px}.mock-wrong-list strong{font-size:.78rem;line-height:1.4}.mock-wrong-list p{font-size:.7rem;margin-top:7px;line-height:1.45}.mock-result .question-actions button{min-height:52px}
@media(max-height:650px){.mock-mode{min-height:76px;padding:8px}.mock-mode strong{font-size:.72rem}.mock-mode span{font-size:.55rem}.mock-start{gap:8px}.mock-start .page-head h1{font-size:.95rem}.mock-instructions p{font-size:.64rem}.mock-instructions small{font-size:.5rem}.mock-start .fixed-actions button{min-height:44px}.mock-last{font-size:.56rem;min-height:42px}.mock-result{gap:8px}.mock-report-body{gap:10px}.mock-total{padding:8px}.mock-total strong{font-size:2rem}.mock-rule{font-size:.58rem}.mock-weak{padding:8px}.mock-heard{padding:9px}.mock-question .question-actions{gap:5px}.mock-question .mock-skip{min-height:40px}.mock-question .question-body{gap:8px}.mock-question .mock-neutral{font-size:.65rem}}

.mock-start-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:10px}.mock-start-body>*{flex-shrink:0}.mock-start .fixed-actions{flex-shrink:0}

.account-chip{max-width:150px;overflow:hidden;text-overflow:ellipsis;background:#e6f3fb;color:#0f5f93}
@media(max-width:400px){.account-chip{max-width:110px}}

/* 加州华人论坛 logo：桌面左栏「出品」+ 会员落地页顶部 */
.brand-by{display:block;margin-top:64px;text-decoration:none}.brand-by small{display:block;font-size:.62rem;color:#7b98aa;margin-bottom:8px}.brand-by img{width:210px;height:auto;display:block}
.member-brand{display:block;margin:2px 0 6px}.member-brand img{width:min(220px,62%);height:auto;display:block}
