/* Warm paper, Fanke orange, and ink text keep the exam coherent with the handbook.
   The recording visual is driven by actual capture state, not a decorative fake waveform. */
.automatic-stage{--ae-ink:#26364b;--ae-muted:#647082;--ae-accent:#bd4c2b;--ae-paper:#fffaf5;--ae-line:#e7d9ca;box-sizing:border-box;position:relative;isolation:isolate;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;min-height:100vh;min-height:100dvh;padding:28px clamp(20px,4vw,64px) max(18px,env(safe-area-inset-bottom,0px));background:var(--ae-paper);color:var(--ae-ink);overflow-x:clip;overflow-y:visible;font-family:Inter,"Noto Sans SC","Microsoft YaHei",sans-serif}
.automatic-stage *{box-sizing:border-box}.automatic-stage button,.automatic-stage input,.automatic-stage textarea{font:inherit}.automatic-stage h1,.automatic-stage h2,.automatic-stage p{margin:0}.automatic-stage button{cursor:pointer}.automatic-stage button:disabled{cursor:wait;opacity:.46}.automatic-stage :focus-visible{outline:3px solid #d25430;outline-offset:5px}.automatic-stage ::selection{background:#ffe0c8;color:#26364b}
.ae-atmosphere,.ae-atmosphere span{position:absolute;inset:0;z-index:-1;pointer-events:none;user-select:none}.ae-atmosphere{overflow:hidden;background:radial-gradient(ellipse at 50% 18%,#fff 0,transparent 62%),linear-gradient(145deg,#fffaf5,#fff7f0 56%,#fffaf5)}
.ae-atmosphere .ae-glow{inset:auto;width:52vw;height:52vw;max-width:840px;max-height:840px;filter:blur(110px);opacity:.2;border-radius:50%;animation:ae-drift 18s ease-in-out infinite alternate}.ae-atmosphere .ae-glow-one{background:#f2b17c;top:-29vw;left:-10vw}.ae-atmosphere .ae-glow-two{background:#efc794;bottom:-35vw;right:-20vw;animation-delay:-9s}.ae-atmosphere .ae-light-line{inset:0 15%;height:1px;top:106px;background:linear-gradient(90deg,transparent,#d8bba040,transparent)}.ae-grain{opacity:.025;background-image:radial-gradient(#8f745e .7px,transparent .7px);background-size:5px 5px}
.ae-header{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1540px;width:100%;margin:0 auto}.ae-brand{display:flex;align-items:center;gap:15px;min-width:0}.ae-brand img{width:46px;height:46px;object-fit:contain;border-radius:11px;padding:5px;background:#fff;opacity:.95}.ae-brand div{display:grid;gap:5px;min-width:0}.ae-brand span{font-size:10px;font-weight:600;letter-spacing:2.7px;color:var(--ae-accent)}.ae-brand strong{max-width:650px;font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.4px}.ae-progress{display:grid;text-align:right;gap:7px;flex-shrink:0}.ae-progress span{font-size:11px;letter-spacing:1px;color:var(--ae-muted)}.ae-progress strong{font-size:15px;font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:3px}
.ae-scene{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:100%;max-width:1080px;margin:0 auto;padding:45px 0 30px;min-height:620px}.ae-interviewer{position:relative;display:grid;place-items:center;flex-shrink:0;width:240px;height:240px;margin:18px 0 36px}.ae-avatar{width:144px;height:144px;overflow:hidden;border-radius:50%;box-shadow:0 0 0 1px #ddc8b657,0 22px 46px #79503512;z-index:1;transition:transform 500ms ease,box-shadow 500ms ease}.ae-avatar svg{display:block;width:100%;height:100%}.ae-orbit{position:absolute;border-radius:50%;border:1px solid #dcac8870;transition:border-color 500ms ease,transform 500ms ease}.ae-orbit-one{width:190px;height:190px}.ae-orbit-two{width:220px;height:220px;border-style:dashed;border-color:#e3c9b373;animation:ae-orbit-turn 80s linear infinite}.ae-orbit-three{width:260px;height:260px;border-color:#e5d5c86b}.ae-avatar-label{position:absolute;bottom:-13px;left:0;right:0;font-size:11px;text-align:center;letter-spacing:2px;color:#7c6655}.ae-voice-points{position:absolute;top:177px;display:flex;align-items:center;gap:4px;z-index:2;height:28px;padding:4px 9px;border-radius:20px;background:#fff;border:1px solid #e7d7c6;opacity:0;transition:opacity 240ms ease}.ae-voice-points i{display:block;width:3px;height:4px;background:#b94e2b;border-radius:6px;transition:height 120ms ease,background 120ms ease}.ae-recording .ae-voice-points{opacity:1}.ae-level-1 .ae-voice-points i:nth-child(2n){height:8px}.ae-level-2 .ae-voice-points i{height:8px}.ae-level-2 .ae-voice-points i:nth-child(2n){height:13px}.ae-level-3 .ae-voice-points i{height:12px}.ae-level-3 .ae-voice-points i:nth-child(2n){height:18px}.ae-level-4 .ae-voice-points i{height:16px}.ae-level-4 .ae-voice-points i:nth-child(2n){height:23px}
.ae-narrating .ae-avatar{transform:scale(1.045);box-shadow:0 0 0 1px #dd9c6f70,0 0 50px #f1ac6b21}.ae-narrating .ae-orbit-one{border-color:#d9976b85;animation:ae-voice-pulse 2.2s ease-in-out infinite}.ae-narrating .ae-avatar-mouth{transform-box:fill-box;transform-origin:center;animation:ae-speech-mouth .65s ease-in-out infinite alternate}.ae-recording .ae-orbit-one{border-color:#7f9d898a}.ae-recording .ae-orbit-three{border-color:#9eb8a860}.ae-status-preparing .ae-orbit-one{border-color:#d99e7685;animation:ae-preparation-pulse 4.2s ease-in-out infinite}.ae-status-processing .ae-orbit-two,.ae-status-arming .ae-orbit-two{border-color:#d8997180;animation-duration:13s}.ae-status-paused .ae-orbit,.ae-status-error .ae-orbit{animation-play-state:paused}.ae-status-paused .ae-avatar{opacity:.68}.ae-status-error .ae-orbit-one{border-color:#c5745790}
.ae-conversation,.ae-start,.ae-pause,.ae-recovery{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:900px;width:100%;animation:ae-scene-arrive 450ms ease both}.ae-state-label{display:inline-flex;gap:7px;align-items:center;color:var(--ae-accent);font-size:12px;letter-spacing:2px;line-height:1.5;margin-bottom:13px}.ae-recording .ae-state-label:before{content:"";display:block;width:6px;height:6px;border-radius:50%;background:#4d8065;box-shadow:0 0 0 4px #91b09b25}.ae-conversation h1,.ae-start h1,.ae-pause h1,.ae-recovery h2{font-size:clamp(24px,3vw,38px);letter-spacing:1px;font-weight:500;line-height:1.5;color:var(--ae-ink)}.ae-conversation .ae-status-detail{max-width:640px;margin-top:20px;color:var(--ae-muted);line-height:1.9;font-size:13px}.ae-start>p,.ae-pause>p,.ae-recovery>p{font-size:14px;line-height:1.9;color:var(--ae-muted);margin-top:14px;max-width:620px}.ae-question{width:100%;max-width:880px;margin:26px auto 0;padding:0 20px;animation:ae-question-arrive 600ms cubic-bezier(.2,.65,.25,1) both}.ae-question>span{display:block;font-size:10px;letter-spacing:2px;color:#7c695a;margin-bottom:12px}.ae-question h2{font-size:clamp(22px,2.4vw,32px);line-height:1.5;font-weight:400;letter-spacing:.15px;overflow-wrap:anywhere;color:#26364b}.ae-audio-only .ae-conversation h1{font-size:clamp(26px,3.8vw,46px)}.ae-audio-only .ae-interviewer{width:300px;height:300px;margin-bottom:30px}.ae-audio-only .ae-avatar{width:176px;height:176px}.ae-audio-only .ae-orbit-one{width:228px;height:228px}.ae-audio-only .ae-orbit-two{width:264px;height:264px}.ae-audio-only .ae-orbit-three{width:302px;height:302px}.ae-audio-only .ae-voice-points{top:219px}
.ae-clock{position:absolute;right:10px;top:45px;min-width:96px;text-align:right;display:grid;gap:7px;color:var(--ae-muted);transition:opacity 240ms ease}.ae-clock>span{font-size:11px;letter-spacing:1px}.ae-clock>strong{font-size:29px;font-weight:300;color:var(--ae-accent);font-variant-numeric:tabular-nums;line-height:1.3;letter-spacing:1px}.ae-clock>small{font-size:10px;opacity:.75}.ae-clock-open>strong{font-size:21px;color:#647082}.ae-caption{width:100%;max-width:760px;color:#58677a;font-size:14px;line-height:1.8;padding:16px 24px;border-radius:14px;background:#f3ebe4;margin:24px 0 0;text-align:left;overflow-wrap:anywhere;max-height:124px;overflow:auto}.ae-caption[hidden]{display:none}.ae-waiting-dots{display:inline-flex;gap:6px;margin-top:18px}.ae-waiting-dots i{display:block;width:4px;height:4px;background:#c97c52;border-radius:50%;animation:ae-thinking 1.5s ease-in-out infinite}.ae-waiting-dots i:nth-child(2){animation-delay:150ms}.ae-waiting-dots i:nth-child(3){animation-delay:300ms}
.ae-button{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:44px;border-radius:999px;border:1px solid #dfd2c7;background:transparent;color:#42536b;padding:11px 20px;font-size:13px;font-weight:500;transition:background 180ms ease,border-color 180ms ease,transform 180ms ease;white-space:nowrap}.ae-button svg{width:17px;height:17px;flex-shrink:0}.ae-button:hover{background:#fff1e4;border-color:#cba98f}.ae-primary{min-height:54px;padding:14px 34px;font-size:15px;letter-spacing:1px;background:#c64b2a;color:#fff;border:1px solid #c64b2a;box-shadow:0 9px 25px #bb613b24}.ae-primary:hover{background:#b74023;border-color:#b74023;transform:translateY(-1px)}.ae-primary svg{width:19px;height:19px}.ae-quiet{border-color:transparent;color:#647082;background:transparent}.ae-quiet:hover{border-color:transparent;background:#f2e7dc;color:#26364b}
.ae-start-options{display:flex;gap:26px;justify-content:center;flex-wrap:wrap;margin-top:30px}.ae-start-options label{display:flex;align-items:center;gap:8px;font-size:12px;color:#59677b;min-height:28px;cursor:pointer}.ae-start-options input{accent-color:#c64b2a;width:15px;height:15px;cursor:pointer}.ae-start-options input:disabled{opacity:.35;cursor:not-allowed}.ae-start-options label:has(input:disabled){opacity:.5}.ae-start-action{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:24px}.ae-start .ae-start-note{font-size:11px;letter-spacing:.15px;margin-top:19px;color:#647082}.ae-start .ae-permission-note{font-size:11px;color:#7a604c}.ae-pause .ae-primary{margin-top:28px}.ae-recovery>div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:26px 0 16px}.ae-recovery small{color:#647082;font-size:11px}.ae-fallback{margin:20px auto 0;display:flex;flex-direction:column;gap:14px;width:100%;max-width:760px;text-align:left}.ae-fallback h2{font-size:24px;font-weight:500;margin:0;color:var(--ae-ink)}.ae-fallback label{font-size:12px;color:var(--ae-muted)}.ae-fallback textarea{width:100%;resize:vertical;min-height:140px;max-height:38vh;color:#354960;background:#fff;border:1px solid #ded5ce;border-radius:16px;padding:18px;line-height:1.8;font-size:15px}.ae-fallback>div{display:flex;gap:12px;justify-content:center}.ae-fallback textarea::placeholder{color:#69798b}.ae-fallback p{font-size:12px;color:var(--ae-muted);text-align:center}.ae-written{max-width:820px}
.ae-controls{position:sticky;bottom:0;z-index:4;background:#fffaf5ef;backdrop-filter:blur(12px);display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;max-width:1540px;margin:0 auto;border-top:1px solid #e7d9ca;padding-top:12px}.ae-controls>div{display:flex;gap:3px;align-items:center}.ae-controls .ae-button{font-size:11px;padding:9px 13px;min-height:44px;gap:7px}.ae-controls .ae-button svg{width:15px;height:15px}.ae-session-note{font-size:10px;letter-spacing:1.3px;color:#647082}.ae-status-preparing .ae-conversation>.ae-button{margin-top:17px;font-size:12px}
.ae-controls-early-submit>.ae-session-note{max-width:42ch;line-height:1.5;letter-spacing:.25px}.ae-controls-early-submit>div{flex-shrink:0}.ae-controls-early-submit [data-action="auto-complete-response"]{margin-right:8px;letter-spacing:.4px}
@media(max-width:600px){.ae-controls-early-submit>.ae-session-note{display:none}.ae-controls-early-submit>div{width:100%;gap:2px}.ae-controls-early-submit [data-action="auto-complete-response"]{margin-right:auto;min-height:44px}}
@keyframes ae-drift{from{transform:translate(0,0)}to{transform:translate(9%,12%)}}@keyframes ae-orbit-turn{to{transform:rotate(360deg)}}@keyframes ae-voice-pulse{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(1.055);opacity:1}}@keyframes ae-speech-mouth{to{transform:scaleY(1.75)}}@keyframes ae-preparation-pulse{0%,100%{opacity:.45}50%{opacity:1}}@keyframes ae-thinking{0%,70%,100%{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}@keyframes ae-scene-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes ae-question-arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1400px){.ae-scene{padding-top:55px}.ae-interviewer{width:270px;height:270px;margin-bottom:45px}.ae-avatar{width:164px;height:164px}.ae-orbit-one{width:210px;height:210px}.ae-orbit-two{width:242px;height:242px}.ae-orbit-three{width:284px;height:284px}.ae-voice-points{top:202px}}
@media(max-height:800px) and (min-width:861px){.automatic-stage{padding-top:21px}.ae-scene{min-height:510px;padding-top:25px}.ae-interviewer{width:204px;height:204px;margin-top:12px;margin-bottom:24px}.ae-avatar{width:128px;height:128px}.ae-orbit-one{width:166px;height:166px}.ae-orbit-two{width:190px;height:190px}.ae-orbit-three{width:226px;height:226px}.ae-voice-points{top:153px}.ae-avatar-label{bottom:-7px}.ae-question{margin-top:18px}.ae-question h2{font-size:clamp(21px,2.5vw,30px)}.ae-conversation .ae-status-detail{margin-top:16px}.ae-clock{top:28px}.ae-audio-only .ae-interviewer{width:245px;height:245px}.ae-audio-only .ae-avatar{width:146px;height:146px}.ae-audio-only .ae-orbit-one{width:192px;height:192px}.ae-audio-only .ae-orbit-two{width:220px;height:220px}.ae-audio-only .ae-orbit-three{width:254px;height:254px}.ae-audio-only .ae-voice-points{top:182px}}
@media(max-width:860px){.automatic-stage{padding:22px 25px max(16px,env(safe-area-inset-bottom,0px))}.ae-brand strong{max-width:360px;font-size:13px}.ae-brand span{font-size:9px;letter-spacing:2px}.ae-brand img{width:39px;height:39px}.ae-scene{min-height:590px;padding:64px 0 26px}.ae-interviewer{width:220px;height:220px;margin-top:0;margin-bottom:38px}.ae-avatar{width:136px;height:136px}.ae-orbit-one{width:176px;height:176px}.ae-orbit-two{width:202px;height:202px}.ae-orbit-three{width:238px;height:238px}.ae-voice-points{top:164px}.ae-clock{top:19px;right:0;gap:3px}.ae-clock strong{font-size:23px}.ae-clock>small{font-size:9px}.ae-question{padding:0;margin-top:22px}.ae-question h2{font-size:25px}.ae-conversation h1,.ae-start h1,.ae-pause h1,.ae-recovery h2{font-size:27px}.ae-audio-only .ae-interviewer{width:250px;height:250px}.ae-audio-only .ae-avatar{width:152px;height:152px}.ae-audio-only .ae-orbit-one{width:202px;height:202px}.ae-audio-only .ae-orbit-two{width:228px;height:228px}.ae-audio-only .ae-orbit-three{width:260px;height:260px}.ae-audio-only .ae-voice-points{top:186px}.ae-caption{padding:14px 17px;font-size:13px}}
@media(max-width:480px){.automatic-stage{padding:18px 19px max(12px,env(safe-area-inset-bottom,0px))}.ae-header{gap:12px}.ae-brand{gap:10px}.ae-brand img{width:35px;height:35px}.ae-brand strong{max-width:210px;font-size:11px}.ae-brand span{font-size:8px;letter-spacing:1.6px}.ae-progress span{font-size:9px}.ae-progress strong{font-size:12px;letter-spacing:1px}.ae-scene{min-height:580px;padding:64px 0 28px}.ae-interviewer{width:195px;height:195px;margin-bottom:34px}.ae-avatar{width:122px;height:122px}.ae-orbit-one{width:158px;height:158px}.ae-orbit-two{width:181px;height:181px}.ae-orbit-three{width:214px;height:214px}.ae-voice-points{top:145px}.ae-avatar-label{bottom:-13px;font-size:10px;letter-spacing:1.5px}.ae-conversation h1,.ae-start h1,.ae-pause h1,.ae-recovery h2{font-size:23px;letter-spacing:.2px}.ae-start>p,.ae-pause>p,.ae-recovery>p{font-size:12px;line-height:1.9}.ae-question h2{font-size:22px;line-height:1.55}.ae-question>span{font-size:9px;margin-bottom:10px}.ae-state-label{font-size:10px;letter-spacing:1.5px;margin-bottom:11px}.ae-conversation .ae-status-detail{font-size:11px;margin-top:18px}.ae-start-options{gap:12px;margin-top:24px}.ae-start-options label{font-size:11px}.ae-start .ae-start-note{font-size:10px;max-width:275px;line-height:1.9}.ae-clock{top:15px;min-width:80px}.ae-clock>span{font-size:9px}.ae-clock>strong{font-size:22px}.ae-controls{gap:4px}.ae-controls .ae-button{padding:9px 10px;font-size:10px}.ae-controls .ae-button svg{width:14px;height:14px}.ae-session-note{font-size:9px;letter-spacing:.3px}.ae-audio-only .ae-conversation h1{font-size:27px}.ae-audio-only .ae-interviewer{width:224px;height:224px}.ae-audio-only .ae-avatar{width:140px;height:140px}.ae-audio-only .ae-orbit-one{width:184px;height:184px}.ae-audio-only .ae-orbit-two{width:210px;height:210px}.ae-audio-only .ae-orbit-three{width:238px;height:238px}.ae-audio-only .ae-voice-points{top:167px}.ae-fallback h2{font-size:21px}.ae-fallback textarea{font-size:14px}.ae-fallback .ae-primary{min-height:48px;padding:12px 22px;font-size:13px}}
@media(max-height:700px) and (max-width:860px){.ae-scene{min-height:500px;padding-top:52px}.ae-interviewer{margin-bottom:27px}.ae-question{margin-top:17px}.ae-conversation .ae-status-detail{margin-top:13px}.ae-start-options{margin-top:18px}.ae-start-action{margin-top:19px}}
/* A text recovery question is a block, not an action row. */
.ae-fallback>.ae-question{display:block;text-align:center;padding:0;margin:10px auto 4px}.ae-fallback>.ae-question>span{white-space:nowrap}.ae-fallback>.ae-question h2{font-size:clamp(20px,2.1vw,28px);line-height:1.5}.ae-fallback audio,.ae-recovery audio{width:min(100%,500px)}
@media(max-height:820px) and (min-width:861px){.automatic-stage:has(.ae-fallback) .ae-scene{padding-top:12px;min-height:520px}.automatic-stage:has(.ae-fallback) .ae-interviewer{width:145px;height:145px;margin:4px 0 20px}.automatic-stage:has(.ae-fallback) .ae-avatar.ae-mascot-avatar{width:120px;height:130px}.automatic-stage:has(.ae-fallback) .ae-orbit-one{width:132px;height:132px}.automatic-stage:has(.ae-fallback) .ae-orbit-two{width:153px;height:153px}.automatic-stage:has(.ae-fallback) .ae-orbit-three{width:172px;height:172px}.automatic-stage:has(.ae-fallback) .ae-fallback{gap:10px;margin-top:12px}.automatic-stage:has(.ae-fallback) .ae-fallback textarea{min-height:110px;padding:12px}}
/* Little Ke is a code-native fox. Only a confirmed speech onstart moves its mouth. */
.ae-avatar.ae-mascot-avatar{width:176px;height:190px;overflow:visible;border-radius:0;box-shadow:none;transition:transform 500ms ease}.ae-fox{overflow:visible}.ae-fox-character{transform-origin:50% 90%;transform-box:fill-box;animation:ae-fox-breathe 5.8s ease-in-out infinite}.ae-fox-shadow{transform-origin:center;transform-box:fill-box;animation:ae-fox-shadow-breathe 5.8s ease-in-out infinite}.ae-fox-eyes{transform-origin:center;transform-box:fill-box;animation:ae-fox-blink 7.6s linear infinite}.ae-fox-head{transform-origin:50% 90%;transform-box:fill-box;transition:transform 650ms ease}.ae-fox-tail{transform-origin:8% 86%;transform-box:fill-box;animation:ae-fox-tail-sway 6.5s ease-in-out infinite}.ae-fox-ear,.ae-fox-paw{transform-box:fill-box;transform-origin:50% 88%;transition:transform 650ms ease}.ae-fox-mouth-open{opacity:0;transform-box:fill-box;transform-origin:center;transition:opacity 120ms ease}.ae-mascot-interviewer .ae-avatar-label{bottom:-24px;letter-spacing:1.4px;color:#7a604c}.ae-mascot-interviewer .ae-voice-points{top:auto;bottom:-3px}.ae-narrating .ae-avatar.ae-mascot-avatar{box-shadow:none;transform:scale(1.025)}.ae-narrating .ae-fox-mouth-open{opacity:1;animation:ae-fox-talk .55s ease-in-out infinite alternate}.ae-narrating .ae-fox-head{animation:ae-fox-speak-nod 3.6s ease-in-out infinite}.ae-narrating .ae-fox-paw-right{animation:ae-fox-wave 3.6s ease-in-out infinite}.ae-recording .ae-fox-head{transform:rotate(-3deg)}.ae-recording .ae-fox-ear-left{animation:ae-fox-listen-ear 4.8s ease-in-out infinite}.ae-recording .ae-fox-ear-right{transform:rotate(7deg)}.ae-mascot-processing .ae-fox-head,.ae-mascot-arming .ae-fox-head{animation:ae-fox-think 4.6s ease-in-out infinite}.ae-mascot-processing .ae-fox-paw-left{transform:translate(5px,-12px) rotate(12deg)}.ae-mascot-preparing .ae-fox-head{transform:rotate(3deg)}.ae-mascot-idle .ae-fox-paw-right{animation:ae-fox-hello 8s ease-in-out infinite}.ae-mascot-paused .ae-fox-character,.ae-mascot-paused .ae-fox-shadow,.ae-mascot-paused .ae-fox-tail,.ae-mascot-paused .ae-fox-eyes{animation:none}.ae-mascot-error .ae-fox-head{transform:rotate(-4deg)}
.ae-interviewer.ae-completion-mascot{width:240px;height:240px;margin:0 auto 38px}.ae-completion-mascot .ae-avatar.ae-mascot-avatar{width:188px;height:204px}.ae-completion-mascot .ae-orbit-one{width:200px;height:200px;border-color:#d8a47b85}.ae-completion-mascot .ae-orbit-two{width:228px;height:228px;border-color:#c8a78b57}.ae-completion-mascot .ae-orbit-three{width:256px;height:256px;border-color:#d5bca75c}.ae-completion-mascot .ae-avatar-label{color:#7a604c}.ae-completion-mascot .ae-voice-points{display:none}.ae-completion-mascot.ae-mascot-completed .ae-fox-head{animation:ae-fox-happy 4.8s ease-in-out infinite}.ae-completion-mascot.ae-mascot-completed .ae-fox-paw-right{animation:ae-fox-wave 4.8s ease-in-out infinite}
@keyframes ae-fox-breathe{0%,100%{transform:translateY(1px)}50%{transform:translateY(-2.5px)}}@keyframes ae-fox-shadow-breathe{0%,100%{transform:scaleX(1);opacity:.38}50%{transform:scaleX(.92);opacity:.28}}@keyframes ae-fox-blink{0%,88%,94%,100%{transform:scaleY(1)}90%,92%{transform:scaleY(.08)}}@keyframes ae-fox-tail-sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(5deg)}}@keyframes ae-fox-talk{0%{transform:scale(.75,.65)}55%{transform:scale(1.05,1.45)}100%{transform:scale(.9,1)}}@keyframes ae-fox-speak-nod{0%,100%{transform:rotate(0)}30%{transform:rotate(-2deg)}65%{transform:rotate(2.5deg)}}@keyframes ae-fox-wave{0%,100%{transform:rotate(0)}22%{transform:rotate(-8deg)}44%{transform:rotate(5deg)}66%{transform:rotate(-6deg)}}@keyframes ae-fox-listen-ear{0%,60%,100%{transform:rotate(-3deg)}68%,82%{transform:rotate(-10deg)}74%,90%{transform:rotate(-5deg)}}@keyframes ae-fox-think{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(3deg)}}@keyframes ae-fox-hello{0%,7%,23%,100%{transform:rotate(0)}11%,18%{transform:rotate(-9deg)}14%,21%{transform:rotate(5deg)}}@keyframes ae-fox-happy{0%,100%{transform:rotate(0) translateY(0)}20%,60%{transform:rotate(-2deg) translateY(-2px)}40%,80%{transform:rotate(2deg) translateY(0)}}
@media(min-width:1400px){.ae-avatar.ae-mascot-avatar{width:188px;height:204px}}
@media(max-height:800px) and (min-width:861px){.ae-avatar.ae-mascot-avatar{width:156px;height:169px}}
.ae-audio-only .ae-avatar.ae-mascot-avatar{width:214px;height:232px}
@media(max-width:860px){.ae-avatar.ae-mascot-avatar{width:163px;height:177px}.ae-audio-only .ae-avatar.ae-mascot-avatar{width:190px;height:206px}}
@media(max-width:480px){.ae-avatar.ae-mascot-avatar{width:146px;height:158px}.ae-audio-only .ae-avatar.ae-mascot-avatar{width:170px;height:184px}.ae-mascot-interviewer .ae-avatar-label{font-size:10px;letter-spacing:1px}.ae-interviewer.ae-completion-mascot{width:210px;height:210px;margin-bottom:36px}.ae-completion-mascot .ae-avatar.ae-mascot-avatar{width:165px;height:179px}.ae-completion-mascot .ae-orbit-one{width:174px;height:174px}.ae-completion-mascot .ae-orbit-two{width:200px;height:200px}.ae-completion-mascot .ae-orbit-three{width:228px;height:228px}}
@media(prefers-reduced-motion:reduce){.automatic-stage *,.automatic-stage *:before,.automatic-stage *:after,.ae-completion-mascot *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* An active text editor gets a work area, rather than the spoken hero layout.
   The artwork stays connected; this does not alter a deadline or an action.
   ID-scoped rules intentionally outrank the later shared visual themes. */
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body){height:100dvh;min-height:0;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;padding:16px clamp(12px,3vw,36px) max(10px,env(safe-area-inset-bottom,0px));overflow-y:visible}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-header{gap:14px;min-height:36px}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-brand img{width:34px;height:34px}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-brand strong{font-size:12px;max-width:54vw}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-brand span{font-size:8px;letter-spacing:1.5px}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-progress{font-size:11px;gap:3px}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-interviewer{display:none}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-scene{position:static;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:8px;min-height:0;height:auto;max-width:1140px;margin:0 auto;padding:0}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-clock{position:static;align-self:flex-end;display:flex;align-items:baseline;gap:8px;min-width:0;flex:none}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-clock>strong{font-size:22px}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-clock>span{font-size:10px;letter-spacing:0}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-clock>small:not([data-question-recording-window]){display:none}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-workspace-body{display:flex;flex-direction:column;align-items:stretch;gap:8px;width:100%;min-height:0;flex:1;text-align:left}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-workspace-body :is(.ae-conversation,.ae-fallback){display:contents}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-conversation>:is(h1,#portal-phase-label,#portal-voice-label){display:none}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-question{height:clamp(64px,22dvh,224px);min-height:0;max-height:224px;flex:none;width:100%;max-width:none;margin:0;padding:12px 14px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;border:1px solid #d8e5dc;border-radius:13px;background:#ffffffa8;text-align:left}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-question>span{display:block;font-size:10px;margin-bottom:6px}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-question h2{font-size:clamp(15px,1.2vw,18px);line-height:1.65;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-question-group{gap:12px;padding-left:22px}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-status{display:block;flex:none;max-height:64px;overflow:auto;overscroll-behavior:contain;text-align:left}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-status h2{font-size:15px;line-height:1.5;margin:0 0 3px}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-status :is(p,small){font-size:11px;line-height:1.55;margin:0;color:var(--ae-muted)}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-editor{display:flex;flex-direction:column;align-items:stretch;gap:6px;flex:1;min-height:100px;min-width:0;width:100%;position:relative}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex:none;min-width:0}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-heading>span{font-size:10px;text-align:right;overflow-wrap:anywhere}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-editor label{font-size:11px;line-height:1.5;margin:0;flex:none}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-editor textarea{width:100%;height:auto;min-height:76px;max-height:none;flex:1;resize:none;margin:0;padding:10px 12px;font:16px/1.6 'Segoe UI','Microsoft YaHei',sans-serif;text-align:left;scrollbar-width:thin}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-editor audio{width:100%;height:32px;flex:none;margin:0}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) #portal-answer-limit:not([hidden]){font-size:11px;line-height:1.5;margin:0;max-height:40px;overflow:auto;flex:none}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px;flex:none;margin:0;padding:6px 0 0;border-top:1px solid #dbe6dd;background:#f8fbf5e8;position:relative;z-index:2}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-actions .ae-button{min-height:44px;padding:10px 15px;font-size:12px;line-height:1.4;white-space:normal;flex:1}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-actions .ae-quiet{flex:0 1 auto}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-note{flex-basis:100%;max-height:28px;overflow:auto;margin:0;font-size:10px;line-height:1.4;text-align:left}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-controls{position:static;gap:8px;margin:0;max-width:none;padding:0;border-top:0;min-height:44px;background:transparent;backdrop-filter:none}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-controls .ae-session-note{font-size:9px}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-main{display:flex;flex-direction:column;gap:10px;min-height:0;margin:0 auto;position:static}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-topline{position:static;flex:none;padding:8px 12px;margin:0;min-height:0}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) :is(.as-phase-copy,.as-steps){display:none}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-workspace{flex:1;min-height:0;grid-template-rows:minmax(0,1fr);gap:14px;align-items:stretch}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-question-zone{display:flex;min-height:0;padding:0;gap:0}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-prompt-card{width:100%;height:100%;min-height:0;padding:0;overflow:visible}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-question-zone .ae-question{height:100%;max-height:none;border:0}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-answer-zone{display:flex;flex-direction:column;min-height:0;padding:14px;overflow:visible}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-application-frame{flex:1;min-height:0}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-application-content{display:flex;flex-direction:column;gap:8px;min-height:0}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-permission-note{flex:none;max-height:64px;overflow:auto;margin:0}
@media(max-width:760px){
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body){padding:10px 12px max(8px,env(safe-area-inset-bottom,0px));gap:8px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-brand span{display:none}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-progress{max-width:32%;font-size:10px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:clamp(64px,20dvh,180px) minmax(0,1fr);gap:8px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-answer-zone{padding:8px;border-radius:14px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-application-nav{display:none}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-question{padding:9px 11px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-controls .ae-session-note{max-width:36%;line-height:1.4}
}
@media(max-height:500px){
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body){padding-block:8px;gap:6px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-header{min-height:30px;padding-right:100px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-brand img{width:28px;height:28px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-brand strong{max-width:45vw;font-size:11px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-progress{display:none}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-scene>.ae-clock{position:absolute;top:8px;right:12px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-topline{position:absolute;top:8px;right:12px;padding:0;border:0;background:transparent;box-shadow:none}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-topline>:not(.ae-clock){display:none}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-question{height:52px;max-height:52px;padding:6px 10px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-question-zone .ae-question{height:100%;max-height:none}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-status{max-height:36px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-status :is(p,small){font-size:10px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-workspace-body{gap:6px}
}
@media(max-height:500px) and (max-width:760px){:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .as-workspace{grid-template-rows:52px minmax(0,1fr)}}

.automatic-stage .ae-choice-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(120px,100%),1fr));gap:4px 8px}
.automatic-stage .ae-choice-options .ae-choice-option{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;min-height:44px;margin:0;text-align:left;overflow-wrap:anywhere}
.automatic-stage .ae-choice-options input[type=radio]{width:auto;flex:0 0 auto;margin:0}
.automatic-stage .ae-choice-options .ae-choice-option span{min-width:0}
/* Saved learning context and its editor share one viewport budget. Goals and
   scope text stay complete in a keyboard-scrollable region above the stage. */
:is(#portal-app,#demo-root) .portal-simulation-content:has(.ae-writing-workspace-body){height:100dvh;min-height:0;display:flex;flex-direction:column;gap:0}
:is(#portal-app,#demo-root) .portal-simulation-content:has(.ae-writing-workspace-body)>.automatic-stage:has(.ae-writing-workspace-body){height:auto;min-height:0;flex:1 1 0}
:is(#portal-app,#demo-root) .portal-simulation-content:has(.ae-writing-workspace-body)>.rp-practice-banner{flex:0 0 auto;min-height:0;max-height:clamp(40px,12dvh,96px);width:min(1100px,calc(100% - 24px));margin:0 auto;padding:8px 12px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;border-radius:0 0 12px 12px}
:is(#portal-app,#demo-root) .portal-simulation-content:has(.ae-writing-workspace-body)>.rp-practice-banner:focus-visible{outline:3px solid #347d70;outline-offset:-3px}
:is(#portal-app,#demo-root) .portal-simulation-content:has(.ae-writing-workspace-body):has(>.rp-practice-banner~.rp-practice-banner)>.rp-practice-banner{max-height:clamp(28px,6dvh,48px)}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-editor:has(>.math-input){display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto minmax(76px,1fr);align-content:stretch;gap:6px}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-editor:has(>.math-input)>.ae-writing-heading{grid-column:1;grid-row:1;align-self:center;flex-wrap:wrap;row-gap:1px}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-editor:has(>.math-input)>textarea{grid-column:1/-1;grid-row:2;min-height:76px}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-editor:has(>.math-input)>#portal-answer-limit{grid-column:1/-1;grid-row:3}

/* Draft notices are part of the same work area, including late save status.
   Recovery controls remain full touch targets within the scrollable notice. */
#portal-draft-notice[hidden]{display:none!important}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) #portal-draft-notice{flex:0 0 auto;min-height:0;max-height:50px;width:100%;margin:0;padding:6px 10px;font-size:12px;line-height:1.5;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) #portal-draft-notice p{font-size:12px;line-height:1.5;margin:4px 0}
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) #portal-draft-notice button{min-height:44px;white-space:normal}
@media(max-height:500px){
 :is(#portal-app,#demo-root) .portal-simulation-content:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden]))>.rp-practice-banner{max-height:32px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden])){padding-block:6px;gap:4px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden])) .as-main{gap:4px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden])) .as-workspace{gap:4px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden])) .as-answer-zone{padding:4px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden])) .ae-writing-workspace-body{gap:4px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden])) .ae-question{height:44px;max-height:44px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden])) .as-question-zone .ae-question{height:100%;max-height:none}
}
@media(max-height:500px) and (max-width:760px){:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden])) .as-workspace{grid-template-rows:44px minmax(0,1fr)}}
/* The formula heading and its 76px editor share the same physical budget,
   including when the draft status is empty. Keep the full goal scrollable. */
@media(max-height:500px){:is(#portal-app,#demo-root) .portal-simulation-content:has(.ae-writing-workspace-body)>.rp-practice-banner{max-height:32px}}

/* Recovery is real content even when its status span is empty. A 46px region
   has a 44px client area so either recovery button can scroll fully into view. */
:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) #portal-draft-notice:has(button){min-height:46px;max-height:46px;padding:0 10px}
@media(max-height:500px){
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden]) button) .ae-question{height:32px;max-height:32px;padding-block:2px}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden]) button) .ae-question>span{display:none}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden]) button) .as-question-zone .ae-question{height:100%;max-height:none}
 :is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden]) button) .as-answer-zone{padding:0}
}
@media(max-height:500px) and (max-width:760px){:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body):has(#portal-draft-notice:not([hidden]) button) .as-workspace{grid-template-rows:32px minmax(0,1fr)}}

:is(#portal-app,#demo-root) .automatic-stage:has(.ae-writing-workspace-body) .ae-writing-note.ae-timed-submit{font-size:12px;line-height:1.5;max-height:64px;padding:6px 9px;background:#fff4e8;border-radius:8px;overscroll-behavior:contain}
:is(#portal-app,#demo-root) .ae-timed-submit:focus-visible{outline:2px solid #9b4e2e;outline-offset:2px}
