:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#121314;background:#faf9f7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible{outline:3px solid #006bff;outline-offset:5px}.recall-app{--blue: #006bff;--cream: #f4f2ed;min-height:100dvh;background:#faf9f7}.recall-app button{border:0}.recall-home,.recall-classroom{position:relative;max-width:620px;min-height:100dvh;margin:auto;display:flex;flex-direction:column;overflow:hidden}.recall-home{background:#fff}.recall-home-header{height:166px;padding:max(30px,env(safe-area-inset-top)) 24px 30px;display:flex;align-items:center;justify-content:space-between;background:#faf9f7;border-radius:0 0 50% 10%;flex-shrink:0}.level-pill,.streak-pill{display:flex;gap:10px;align-items:center;border-radius:40px;padding:10px;background:var(--cream);font-size:15px;font-weight:650}.language-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;color:var(--blue);font-size:12px;letter-spacing:1px}.level-pill{padding-right:16px}.streak-pill{padding-left:17px}.flame{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;color:#fff;background:#ffdc56;font-size:27px}.flame svg{width:24px;height:24px}.progress-link{display:flex;flex-direction:column;align-items:center;gap:12px;background:none;color:#125de9;font-size:16px;font-weight:550}.chevron{display:block;width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.chevron.up{transform:rotate(180deg)}.course-focus{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:40px 24px 44px;min-height:440px;text-align:center}.course-art{position:relative;width:clamp(132px,34vw,186px);aspect-ratio:1;border:clamp(36px,9vw,49px) solid var(--blue);border-radius:50%;margin:0 0 33px}.course-art i{position:absolute;height:54px;width:54px;background:#ffdc49;border-radius:50%;top:54%;left:-39px}.course-category{margin:0 0 13px;color:#777772;font-size:17px}.course-focus h1{font-size:clamp(28px,7.2vw,39px);line-height:1.16;letter-spacing:-1.25px;margin:0 0 37px;font-weight:650}.feed-description{margin:-17px 0 30px;max-width:310px;color:#777772;font-size:16px;line-height:1.5}.feed-label{color:#7f8a96;font-size:14px}.recall-home.has-nodes{height:100dvh;min-height:0}.has-nodes .recall-home-header{height:clamp(92px,17dvh,150px);padding-top:max(16px,env(safe-area-inset-top));padding-bottom:16px}.has-nodes>.recall-bottom{min-height:86px;padding-top:16px;padding-bottom:max(18px,env(safe-area-inset-bottom));gap:6px}.node-browser{flex:1;min-height:0;display:flex;flex-direction:column}.node-pages{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scroll-snap-type:y mandatory;scrollbar-width:none}.node-pages::-webkit-scrollbar{display:none}.node-card{min-height:100%;scroll-snap-align:start;scroll-snap-stop:always;padding:22px 24px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.node-card .course-art{flex-shrink:0;width:clamp(92px,21dvh,174px);border-width:clamp(25px,5.6dvh,46px);margin-bottom:24px}.node-card .course-art i{width:40px;height:40px;left:-29px}.node-card .course-category{font-size:15px;margin-bottom:10px}.node-card h1{font-size:clamp(26px,6.5vw,36px);line-height:1.25;letter-spacing:-.7px;font-weight:650;margin:0;overflow-wrap:anywhere}.node-state{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 12px;color:#656963;font-size:13px;margin:18px 0 24px}.recommended-mark{background:#eaf2ff;border-radius:15px;color:#125de9;padding:5px 10px}.node-card .start-button{width:auto;min-width:160px;min-height:62px}.node-navigation{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:22px;padding:5px 16px 12px}.node-navigation button{min-width:44px;min-height:44px;background:#f4f2ed;color:#145fe6;border-radius:50%;font-size:22px}.node-navigation span{min-width:92px;text-align:center;font-size:14px;color:#52606e}.node-navigation small{display:block;color:#767770;font-size:11px;margin-top:3px}.node-empty{min-height:0;overflow-y:auto}.plan-error{flex-shrink:0;max-height:25dvh;overflow-y:auto;padding:8px 24px;text-align:center;font-size:14px;color:#8d3f31;background:#fff6f0}.plan-error p{margin:6px 0}.plan-error .recall-secondary{margin-top:0;padding:5px;min-height:40px;font-size:14px}@media(max-height:740px){.node-card{padding-top:14px;padding-bottom:14px}.node-card .course-art{width:94px;border-width:25px;margin-bottom:17px}.node-card .course-art i{width:30px;height:30px;left:-21px}.node-state{margin:13px 0 17px}}@media(max-height:600px){.node-card .course-art{display:none}.has-nodes .recall-home-header{height:82px;padding:10px 20px}.has-nodes>.recall-bottom{min-height:64px;padding:10px 20px;font-size:15px}.node-card h1{font-size:26px}}@media(max-width:360px){.has-nodes .recall-home-header{padding-left:16px;padding-right:16px}.has-nodes .progress-link{white-space:nowrap;font-size:13px;gap:8px}}.plan-item[aria-pressed=true]{background:#eaf2ff}.recall-primary{min-height:62px;padding:15px 28px;border-radius:40px;background:var(--blue);color:#fff;font-size:20px;font-weight:550;width:100%}.start-button{width:160px;min-height:74px}.course-position{width:26px;height:9px;background:var(--blue);border-radius:8px;margin-top:46px}.recall-bottom{background:#f7f7f5;color:#145fe6;min-height:128px;flex-shrink:0;padding:24px 24px max(40px,env(safe-area-inset-bottom));border-radius:50% 45% 0 0/16% 14% 0 0;display:flex;flex-direction:column;align-items:center;gap:14px;font-size:18px;font-weight:550;width:100%}.recall-topbar{display:flex;align-items:center;justify-content:space-between;padding:max(30px,env(safe-area-inset-top)) 24px 18px;height:124px;flex-shrink:0}.recall-circle{width:52px;height:52px;border-radius:50%;background:#fdfcfa;color:#111;font-size:32px;display:grid;place-items:center;box-shadow:0 16px 35px #555c6c06;font-weight:350}.recall-stage{flex:1;min-height:330px;display:grid;place-items:center;padding:28px 26px 42px}.recall-orb{width:min(66vw,310px);position:relative;aspect-ratio:1}.recall-orb:after{content:"";position:absolute;left:24%;right:24%;height:14%;bottom:-15%;background:#8196a944;border-radius:50%;filter:blur(18px)}.recall-orb img{display:block;width:100%;height:100%;object-fit:contain}.recall-orb.active{animation:breathe 3s ease-in-out infinite}.recall-orb.compact{width:53px}.recall-orb.compact:after{display:none}.transcript-brand{background:#fff;border-radius:40px;padding:3px 26px;box-shadow:0 8px 24px #35414b08}.recall-sentence{text-align:center;width:100%;min-width:0;max-width:520px;animation:arrive .25s ease-out}.sentence-english{font-size:clamp(26px,6.5vw,36px);line-height:1.55;font-weight:500;letter-spacing:-.5px;margin:0;overflow-wrap:anywhere}.sentence-word{display:inline-block;white-space:pre}.sentence-gap{color:#8a9ba9;font-size:.9em;letter-spacing:.04em}.sentence-chinese{color:#818894;font-size:19px;line-height:1.65;margin:24px 0 0}.listening-light{display:block;width:5px;height:5px;border-radius:50%;background:#708faf;margin:31px auto 0;opacity:.65}.hearing .listening-light{animation:breathe .7s infinite;background:#006bff}.listening-light.quiet{opacity:.18}.recall-transcript{height:calc(100dvh - 252px);min-height:220px;overflow-y:auto;padding:16px 24px 30px;display:flex;flex-direction:column;gap:20px}.recall-bubble{background:#f2f0e9;border-radius:28px;padding:23px;max-width:92%;width:fit-content}.recall-bubble p{font-size:18px;line-height:1.5;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.recall-bubble.learner{background:#eaf2ff;color:#145fe6;align-self:flex-end}.recall-bubble footer{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-top:20px;color:#797975;font-size:14px}.recall-bubble footer button{display:grid;place-items:center;background:transparent;color:inherit;min-height:40px;min-width:44px}.recall-bubble svg,.recall-secondary svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.recall-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#242c3a30;display:flex;justify-content:center;align-items:end;z-index:10;padding:10px}.recall-dialog{width:min(100%,560px);max-height:calc(100dvh - 30px);overflow-y:auto;position:relative;border-radius:38px;background:#fff;padding:54px 26px 28px;box-shadow:0 -15px 100px #5b657017;animation:arrive .22s ease-out}.recall-dialog h2{font-size:32px;font-weight:650;letter-spacing:-1px;margin:7px 0 13px}.dialog-close{position:absolute;top:16px;right:18px;width:44px;height:44px;font-size:32px;background:transparent}.dialog-subtitle{font-size:17px;color:#767770;line-height:1.5;margin:0 0 28px;overflow-wrap:anywhere}.help-actions{display:flex;flex-direction:column;gap:10px;margin:28px 0 12px}.help-actions button{display:flex;gap:18px;align-items:center;text-align:left;background:#f8f7f5;border-radius:23px;padding:23px;font-size:19px}.help-actions button span{width:24px;text-align:center}.help-secondary{display:flex;justify-content:space-between;gap:10px;margin-bottom:22px}.help-secondary button{padding:12px 0;color:#777;font-size:13px;background:none;min-height:44px}.input-mode-switch{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:18px 0;margin:0 0 20px;background:none;text-align:left;color:#303e4c;font-size:17px}.input-mode-switch small{display:block;margin-top:5px;color:#80868d;font-size:12px;line-height:1.45;font-weight:400}.switch-track{position:relative;width:46px;height:28px;flex-shrink:0;background:#dcdee2;border-radius:20px}.switch-track i{position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 1px 4px #0002}.input-mode-switch[aria-checked=true] .switch-track{background:var(--blue)}.input-mode-switch[aria-checked=true] .switch-track i{left:21px}.manual-input .recall-stage,.asr-recovery .recall-stage{min-height:180px;padding:20px 24px 28px}.recall-input-bottom{padding:18px 24px max(22px,env(safe-area-inset-bottom));gap:16px}.transcript-link{display:flex;flex-direction:column;align-items:center;gap:6px;color:#7f8a96;background:none;font-size:15px;min-width:100px;min-height:44px}.transcript-link .chevron{width:18px;height:18px}.hold-control{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.hold-button{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:#fff;color:#435361;box-shadow:0 12px 30px #36465d12;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.hold-button svg{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}.holding .hold-button{background:var(--blue);color:#fff;box-shadow:0 0 0 7px #006bff12}.canceling .hold-button{background:#ca5f57;box-shadow:0 0 0 7px #ca5f5712}.hold-hint{color:#7b8792;font-size:13px;font-weight:400;text-align:center;line-height:1.5;min-height:38px}.hold-hint small{display:block;min-height:18px;font-size:11px;color:#9299a0}.asr-keyboard,.asr-resume{background:none;color:var(--blue);font-size:14px;font-weight:400;min-height:44px;padding:8px 14px}.asr-resume{color:#7b8792}.recall-secondary{display:flex;align-items:center;justify-content:center;gap:10px;background:transparent;color:#155de7;padding:14px;width:100%;min-height:48px;margin-top:8px}.revealed-answer{border-radius:20px;background:#f5f8fb;padding:17px;text-align:center}.revealed-answer p{font-size:24px;line-height:1.5;margin:0}.recall-dialog input{width:100%;background:#f6f6f3;color:#222;border:1px solid #ddd;border-radius:18px;padding:18px;margin:10px 0 26px}.plan-item{display:flex;align-items:center;gap:18px;background:#f8f7f5;width:100%;padding:22px;border-radius:22px;text-align:left;margin:12px 0}.plan-item>span:last-child{margin-left:auto}.plan-item strong,.plan-item small{display:block}.plan-item small{margin-top:6px;color:#777}.plan-number{color:#006bff;font-weight:650}.progress-stats{display:flex;gap:24px;margin:30px 0}.progress-stats div{flex:1;display:flex;flex-direction:column;gap:8px}.progress-stats strong{color:#006bff;font-size:38px}.progress-stats span{color:#777;font-size:14px}.history-messages{display:flex;flex-direction:column;gap:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes breathe{50%{transform:scale(1.035);opacity:.9}}@keyframes arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-height:720px){.recall-home-header{height:118px}.course-focus{min-height:370px;padding-top:24px;padding-bottom:24px}.course-art{width:125px;border-width:33px;margin-bottom:24px}.course-art i{width:40px;height:40px;left:-27px}.course-position{margin-top:26px}.recall-bottom{min-height:104px;padding-bottom:24px}.recall-transcript{height:calc(100dvh - 228px)}}@media(min-width:800px){.recall-home,.recall-classroom{min-height:100dvh}.recall-home-header{height:180px}.course-art{width:190px;border-width:50px}.recall-dialog{margin-bottom:22px}}@media(max-height:640px){.manual-input .recall-stage,.asr-recovery .recall-stage{min-height:140px;padding:12px 24px 16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}.course-roadmap{background:#fbfaf7;color:#1a2b40;height:100dvh;overflow-y:auto;padding:48px max(24px,calc((100vw - 700px)/2)) 110px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;box-sizing:border-box}.course-roadmap button,.course-chat button{font:inherit;cursor:pointer}.course-roadmap button:disabled,.course-chat button:disabled{cursor:default}.roadmap-header{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:48px}.roadmap-eyebrow,.chapter-heading>span{font-size:11px;letter-spacing:2px;font-weight:700;color:#687382}.roadmap-header h1{font-size:clamp(26px,5vw,38px);line-height:1.2;max-width:380px;margin:14px 0}.roadmap-header p{color:#687382;font-size:14px}.roadmap-header>button,.roadmap-footer button,.roadmap-back{border:1px solid #dcdedc;background:#fff;border-radius:22px;padding:12px 18px;white-space:nowrap;color:#263f73}.roadmap-chapter{margin:0 0 30px}.chapter-heading{margin:0 0 24px 58px}.chapter-heading h2{margin:8px 0;font-size:21px}.roadmap-path{list-style:none;padding:0;margin:0}.roadmap-path li{display:flex;position:relative;gap:18px;padding-bottom:24px}.roadmap-path li:before{content:"";position:absolute;top:32px;bottom:-8px;left:18px;width:2px;background:#e0e4e8}.path-marker{position:relative;z-index:1;display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:#e9edf0;color:#7c8490;font-size:12px;font-weight:700}.available .path-marker{background:#304f91;color:#fff;box-shadow:0 0 0 5px #e7edf7}.available .path-marker.done{background:#37705c}.course-node{flex:1;min-width:0;border:1px solid #e4e5e2;background:#fff;border-radius:22px;overflow:hidden}.node-heading{display:flex;flex-direction:column;align-items:start;gap:8px;width:100%;border:0;background:transparent;padding:20px;text-align:left;color:inherit}.node-heading strong{font-size:18px}.node-heading>span{color:#73808e;font-size:12px}.upcoming .course-node{background:#f4f4f1;color:#69737d}.course-activities{padding:0 10px 10px;display:grid;gap:6px}.activity-button{display:flex;gap:10px;align-items:center;border:1px solid transparent;background:#f8f9fa;border-radius:14px;padding:16px 10px;text-align:left;color:#24384f}.activity-button.recommended{background:#edf3fd;border-color:#c6d7f0}.activity-number{font-weight:700;min-width:20px;text-align:center}.activity-button strong{display:block;font-size:14px}.activity-button small{display:block;font-size:11px;color:#768191;margin-top:5px}.activity-action{margin-left:auto;font-size:11px;white-space:nowrap;color:#2d5294}.roadmap-footer{position:fixed;bottom:0;left:0;right:0;z-index:3;padding:20px;text-align:center;background:linear-gradient(transparent,#fbfaf7 30%)}.roadmap-back{position:fixed;z-index:5;top:80px;left:20px}.course-chat{display:flex;flex-direction:column;height:100dvh;max-width:780px;margin:auto;background:#fbfaf7;color:#1a2b40;font-family:-apple-system,BlinkMacSystemFont,sans-serif}.course-chat>header{display:flex;align-items:center;gap:20px;padding:20px;border-bottom:1px solid #e5e6e4}.course-chat header small{display:block;margin-top:5px;color:#687382}.course-chat button{border:1px solid #d5dce5;border-radius:20px;padding:10px 16px;background:#fff;color:#2d5294}.course-messages{flex:1;min-height:0;overflow-y:auto;padding:20px}.course-message{border-radius:20px;padding:10px 18px;background:#fff;border:1px solid #e5e6e4;max-width:85%;margin-bottom:18px;line-height:1.65}.course-message.user{margin-left:auto;background:#e8eff9}.course-message p{white-space:pre-wrap;margin:8px 0}.course-message button{border:0;font-size:12px;padding:4px 0}.course-chat>footer{padding:14px 24px max(20px,env(safe-area-inset-bottom));text-align:center;border-top:1px solid #e5e6e4}.course-chat footer p{color:#687382;font-size:12px}.course-chat .course-mic{touch-action:none;-webkit-user-select:none;user-select:none;padding:20px 36px;background:#304f91;color:#fff}.course-chat .course-mic:disabled{opacity:.45}.course-chat .input-toggle{display:block;margin:10px auto 0;border:0;background:transparent;font-size:12px}.course-chat form{display:flex;gap:8px}.course-chat input{min-width:0;flex:1;border-radius:16px;padding:12px;border:1px solid #d5dce5;font:inherit}.course-error{padding:16px;color:#963f36;font-size:14px}.course-error button{margin-left:10px}.course-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#12243b55;display:grid;place-items:center;padding:20px}.course-modal>div{background:#fbfaf7;border-radius:24px;padding:24px;max-height:80dvh;max-width:650px;overflow:auto}.course-modal details{margin:16px 0}.course-modal summary{cursor:pointer}@media(max-width:500px){.course-roadmap{padding:28px 16px 100px}.roadmap-header{gap:8px}.roadmap-header>button{font-size:11px;padding:10px}.roadmap-path li{gap:12px}.activity-button{flex-wrap:wrap}.activity-action{width:100%;text-align:right}.chapter-heading{margin-left:50px}}
