:root{--bg:#06101c;--panel:#0b1b2b;--panel2:#10263a;--line:#22425c;--text:#f4f8fb;--muted:#9fb4c7;--gold:#e7c477;--gold2:#b98b3e;--blue:#58aef2;--danger:#db6071;--ok:#63c797;--shadow:0 24px 70px #0007}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 76% 0,#173a5b55 0 18%,transparent 42%),linear-gradient(180deg,#06101c,#081522 55%,#050c15);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif}body{overflow-x:hidden}.shell{width:min(1180px,calc(100% - 28px));margin:auto}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #18344a}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.brand-logo{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#f3d48d,#b4873e);color:#142131;font:900 14px/1 Arial;box-shadow:0 8px 28px #d5a85924}.brand-copy{display:grid;gap:3px}.brand-copy b{font-size:16px}.brand-copy small{font:700 9px/1.2 ui-monospace,monospace;color:#7994aa;letter-spacing:1.6px}.nonofficial{font-size:12px;color:#a8bdd0;border:1px solid #294b66;border-radius:999px;padding:7px 11px;background:#0c1e2f}.hero{display:grid;grid-template-columns:1.3fr .7fr;gap:30px;align-items:end;padding:48px 0 26px}.eyebrow{display:inline-flex;color:var(--gold);font-size:12px;font-weight:800;letter-spacing:1.3px;margin-bottom:9px}.hero h1{margin:0;font-size:clamp(38px,6vw,68px);letter-spacing:-2px;line-height:1.04}.hero p{margin:16px 0 0;max-width:720px;color:#abc0d3;font-size:16px;line-height:1.8}.hero-chip{justify-self:end;display:flex;align-items:center;gap:9px;border:1px solid #284965;background:#0a1a29;border-radius:15px;padding:12px 14px;color:#a9c0d3;font-size:12px;box-shadow:var(--shadow)}.hero-chip i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 6px #63c79716}.card{border:1px solid #1f405a;background:linear-gradient(180deg,#0d1e2fdd,#091624ee);border-radius:24px;box-shadow:var(--shadow);backdrop-filter:blur(14px)}.setup,.report{padding:28px}.section-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:24px}.section-head>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid #3f617b;color:var(--gold);font:800 12px/1 ui-monospace,monospace;flex:0 0 auto}.section-head h2{margin:0 0 5px;font-size:25px}.section-head p{margin:0;color:var(--muted);font-size:13px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid label{font-size:13px;color:#bed0df}input,select,textarea{width:100%;margin-top:7px;background:#061320;border:1px solid #284963;color:#fff;border-radius:14px;padding:14px 15px;font:inherit;outline:none;transition:.2s}input:focus,select:focus,textarea:focus{border-color:#66b7f4;box-shadow:0 0 0 3px #58aef217}textarea{resize:vertical;min-height:112px}.toggles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.toggle{display:grid;grid-template-columns:40px 1fr;column-gap:10px;align-items:center;border:1px solid #24465f;background:#091826;border-radius:16px;padding:13px;cursor:pointer}.toggle input{display:none}.toggle>span{grid-row:1/3;width:38px;height:22px;background:#203a50;border-radius:22px;position:relative}.toggle>span:after{content:"";position:absolute;width:16px;height:16px;background:#fff;border-radius:50%;left:3px;top:3px;transition:.2s}.toggle input:checked+span{background:#248edc}.toggle input:checked+span:after{left:19px}.toggle em{font-style:normal;font-size:13px;font-weight:700}.toggle small{color:#7893a9;font-size:10px;margin-top:2px}.language-note{font-size:12px;color:#d7c696;padding:10px 12px;border-left:2px solid var(--gold);background:#e7c4770c;margin-bottom:18px}.btn{border:0;border-radius:14px;padding:12px 17px;font:800 13px/1.2 inherit;cursor:pointer;transition:.18s}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.48;cursor:wait;transform:none}.primary{background:linear-gradient(135deg,#f0d18a,#c79b4c);color:#182431}.secondary{background:#12314b;color:#d9edff;border:1px solid #2c5473}.danger{background:#391a27;color:#ffc4cc;border:1px solid #733148}.danger.recommended{box-shadow:0 0 0 3px #e7c47716;border-color:#a1844f}.big{padding:14px 24px;min-width:190px}.interview{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);gap:18px}.stage-card{overflow:hidden}.stage-top{height:48px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1f4058;color:#7e9ab1;font:800 10px/1 ui-monospace,monospace;letter-spacing:1.3px}.live{display:flex;align-items:center;gap:8px}.live i{width:7px;height:7px;border-radius:50%;background:#ef5b69;box-shadow:0 0 0 6px #ef5b6915}.stage-status{display:flex;gap:12px;align-items:center}.stage-status span{color:#d0b873}.stage-status b{font-weight:700;color:#9bb3c7}.scene{height:460px;position:relative;overflow:hidden;background:linear-gradient(180deg,#183650 0 40%,#aec3d0 40% 41%,#60717c 41% 63%,#243440 63%);display:flex;align-items:flex-end;justify-content:center}.embassy-wall{position:absolute;inset:0;background:linear-gradient(90deg,#0c2032 0 19%,transparent 19% 81%,#0c2032 81%),linear-gradient(180deg,#0a1d2e 0 10%,transparent 10% 100%);opacity:.85}.glass{position:absolute;top:7%;width:51%;height:31%;background:linear-gradient(#d7eef999,#8eb4c8aa);box-shadow:inset 0 0 0 10px #d7e4eb1f,0 0 60px #9ed8ff20}.glass span:first-child{position:absolute;width:7px;height:100%;background:#678395;left:49%}.glass span:last-child{position:absolute;height:7px;width:100%;background:#678395;top:49%}.officer{position:absolute;z-index:4;bottom:83px;width:225px;height:315px;filter:drop-shadow(0 18px 25px #0005);animation:breathe 4s ease-in-out infinite;transform-origin:50% 100%}.officer-shadow{position:absolute;bottom:-15px;left:24px;width:177px;height:42px;border-radius:50%;background:#0004;filter:blur(9px)}.torso{position:absolute;bottom:0;left:18px;width:190px;height:191px}.jacket{position:absolute;top:0;width:111px;height:191px;background:linear-gradient(#172e45,#102337)}.j1{left:0;clip-path:polygon(0 8%,53% 0,79% 35%,62% 100%,0 100%)}.j2{right:0;clip-path:polygon(47% 0,100% 8%,100% 100%,38% 100%,21% 35%)}.shirt{position:absolute;left:59px;top:7px;width:72px;height:91px;background:#edf4f8;clip-path:polygon(0 0,50% 31%,100% 0,83% 100%,17% 100%)}.tie{position:absolute;left:89px;top:31px;width:14px;height:98px;background:#8e2638;clip-path:polygon(50% 0,100% 9%,76% 31%,100% 100%,0 100%,24% 31%,0 9%)}.neck{position:absolute;top:112px;left:96px;width:35px;height:33px;background:#c99678}.head{position:absolute;top:0;left:60px;width:105px;height:130px}.face{position:absolute;top:17px;left:10px;width:85px;height:98px;background:linear-gradient(145deg,#d9ad8a,#c89272);border-radius:44% 44% 49% 49%}.hair{position:absolute;z-index:2;top:5px;left:8px;width:91px;height:44px;background:#292829;border-radius:54px 54px 21px 20px;clip-path:polygon(0 0,100% 0,95% 67%,79% 49%,63% 74%,43% 49%,20% 75%,5% 59%)}.ear{position:absolute;top:51px;width:16px;height:29px;background:#cf9f7f;border-radius:50%}.e1{left:3px}.e2{right:3px}.eye{position:absolute;z-index:3;top:58px;width:12px;height:7px;background:#f7fbfd;border-radius:50%;overflow:hidden;animation:blink 5.1s infinite}.eye i{position:absolute;width:6px;height:6px;background:#24313d;border-radius:50%;left:3px;top:1px}.eye1{left:31px}.eye2{right:31px}.brow{position:absolute;z-index:3;top:49px;width:20px;height:3px;background:#64483d;border-radius:3px;transition:.2s}.b1{left:25px}.b2{right:25px}.nose{position:absolute;z-index:3;left:50px;top:64px;width:6px;height:19px;border-right:2px solid #9f715c;border-bottom:2px solid #9f715c;border-radius:0 0 6px}.mouth{position:absolute;z-index:4;left:40px;top:92px;width:28px;height:5px;border-bottom:3px solid #845256;border-radius:50%;transition:.12s}.officer.speaking .mouth{animation:talk .22s infinite alternate}.officer[data-mood="serious"] .b1{transform:rotate(10deg)}.officer[data-mood="serious"] .b2{transform:rotate(-10deg)}.officer[data-mood="friendly"] .mouth{height:9px}.officer[data-mood="checking"] .b1{transform:translateY(-3px) rotate(-7deg)}.counter{position:absolute;z-index:6;bottom:0;width:100%;height:92px;background:linear-gradient(#53616b,#2d3a44);border-top:8px solid #798992;display:flex;justify-content:center}.counter span{margin-top:16px;height:max-content;background:#12212f;color:#e1c783;border:1px solid #a38751;border-radius:3px;padding:7px 14px;font:800 9px/1 ui-monospace,monospace;letter-spacing:1.2px}.audio-bars{position:absolute;z-index:8;right:16px;bottom:108px;height:34px;display:flex;align-items:flex-end;gap:3px;opacity:.35}.audio-bars i{width:3px;height:9px;background:#9edaff;border-radius:3px}.audio-bars.active{opacity:1}.audio-bars.active i{animation:bars .7s ease-in-out infinite alternate}.audio-bars.active i:nth-child(2){animation-delay:.12s}.audio-bars.active i:nth-child(3){animation-delay:.24s}.audio-bars.active i:nth-child(4){animation-delay:.36s}.audio-bars.active i:nth-child(5){animation-delay:.48s}@keyframes bars{to{height:31px}}@keyframes talk{from{height:4px}to{height:13px;border-radius:0 0 50% 50%}}@keyframes blink{0%,46%,48%,100%{transform:scaleY(1)}47%{transform:scaleY(.08)}}@keyframes breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(2px)}}.question-wrap{padding:20px 24px 17px;min-height:145px}.question-kicker{display:flex;gap:9px;margin-bottom:7px}.question-kicker span,.question-kicker em{font-style:normal;font-size:10px;font-weight:800;letter-spacing:.5px;border-radius:999px;padding:5px 8px}.question-kicker span{background:#173650;color:#a9c8df}.question-kicker em{background:#d7b86a13;color:#dec581;border:1px solid #d7b86a22}.question{font-size:24px;font-weight:800;line-height:1.55;letter-spacing:-.3px}.hint{margin-top:11px;padding:10px 12px;border-left:2px solid var(--gold);background:#d8b96d0d;color:#d9c698;font-size:12px;line-height:1.65}.progress{height:4px;background:#0b1c2b}.progress span{display:block;height:100%;width:4%;background:linear-gradient(90deg,#c89848,#f1d28a);transition:.35s}.control-card{padding:20px;height:max-content;position:sticky;top:16px}.voice-state{display:flex;gap:10px;align-items:center;border:1px solid #24465f;background:#071725;border-radius:15px;padding:12px;margin-bottom:14px}.voice-state>i{width:10px;height:10px;border-radius:50%;background:#6d8294;box-shadow:0 0 0 6px #6d829414;flex:0 0 auto}.voice-state div{display:grid;gap:3px}.voice-state b{font-size:12px}.voice-state span{font-size:10px;color:#7894aa}.voice-state[data-state="ready"]>i{background:var(--ok)}.voice-state[data-state="speaking"]>i{background:var(--blue);animation:pulse 1s infinite}.voice-state[data-state="listening"]>i{background:#f06575;animation:pulse 1s infinite}.voice-state[data-state="thinking"]>i{background:var(--gold);animation:pulse 1s infinite}.voice-state[data-state="warn"]>i{background:#e58c54}@keyframes pulse{50%{box-shadow:0 0 0 10px #58aef210}}.answer-box{position:relative}.answer-box textarea{padding-bottom:58px}.mic{position:absolute;left:10px;right:10px;bottom:10px;height:41px;border:1px solid #2b5371;background:#11324d;color:#dff1ff;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.mic span{font-size:16px}.mic em{font-style:normal;font-size:11px;font-weight:800}.mic.active{background:#7f2635;border-color:#bb5466;box-shadow:0 0 0 4px #ef667717}.actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.actions .danger{grid-column:1/-1}.microcopy{margin:14px 2px 0;color:#6f8ba3;font-size:10px;line-height:1.7}.score-card{display:flex;align-items:end;justify-content:space-between;gap:20px;border:1px solid #3d5b70;background:linear-gradient(135deg,#10283c,#091a29);border-radius:20px;padding:20px;margin-bottom:16px}.score-card>div{display:flex;align-items:baseline;gap:6px}.score-card span{color:#a9c0d2;font-size:12px;margin-right:8px}.score-card b{font-size:46px;color:#efd18c;line-height:1}.score-card em{font-style:normal;color:#758fa4}.score-card p{margin:0;color:#7894aa;font-size:11px}.summary{padding:17px;border:1px solid #24465f;background:#071725;border-radius:15px;color:#c8d8e5;line-height:1.75}.dimension-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0 20px}.dimension-grid>div{padding:15px;border:1px solid #23445e;border-radius:15px;background:#091927}.dimension-grid b{font-size:12px;color:#e3c983}.dimension-grid p{margin:8px 0 0;color:#b7cad9;line-height:1.65;font-size:12px}.report h3{margin:20px 0 8px;color:#efd18b;font-size:15px}.report li{color:#bfd0dd;line-height:1.75;margin:5px 0}.qa{padding:13px 14px;background:#081827;border:1px solid #23445e;border-radius:13px;margin:9px 0}.qa b{font-size:13px}.qa p{margin:7px 0 0;color:#9eb4c5;line-height:1.6;font-size:12px}.report-actions{display:flex;gap:10px;margin-top:22px}.hidden{display:none!important}.loading{opacity:.72;pointer-events:none}footer{text-align:center;color:#55738b;font-size:10px;padding:30px 0 18px}@media(max-width:900px){.hero{grid-template-columns:1fr;gap:16px}.hero-chip{justify-self:start}.interview{grid-template-columns:1fr}.control-card{position:static}.scene{height:430px}.grid{grid-template-columns:1fr}.toggles{grid-template-columns:1fr}}@media(max-width:520px){.shell{width:min(100% - 18px,1180px)}.topbar{height:64px}.brand-logo{width:36px;height:36px;border-radius:12px}.brand-copy b{font-size:14px}.brand-copy small{font-size:8px}.nonofficial{font-size:9px;padding:6px 8px}.hero{padding:30px 0 20px}.hero h1{font-size:40px;letter-spacing:-1.4px}.hero p{font-size:14px;line-height:1.72}.setup,.report{padding:18px;border-radius:20px}.scene{height:365px}.officer{transform:scale(.88);transform-origin:bottom center}.officer.speaking{transform:scale(.88)}.question-wrap{padding:17px 17px 14px;min-height:130px}.question{font-size:20px}.control-card{padding:14px;border-radius:20px}.actions{grid-template-columns:1fr}.actions .danger{grid-column:auto}.score-card{display:block}.score-card p{margin-top:9px}.dimension-grid{grid-template-columns:1fr}.report-actions{display:grid}.stage-top{padding:0 12px}.stage-status span{display:none}.hero-chip{max-width:100%;line-height:1.4}}

/* ===== V2.2 真人窗口升级：photorealistic officer scene ===== */
.realistic-scene{height:500px;display:block;background:#111923;isolation:isolate;position:relative;overflow:hidden;perspective:1200px}
.realistic-scene:before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 55% 36%,#ffffff14 0 12%,transparent 38%),linear-gradient(180deg,#102232 0,#0a121b 100%)}
.realistic-officer{position:absolute;z-index:2;inset:0;width:100%;height:100%;bottom:auto;filter:none;animation:none;transform:none;overflow:hidden;background:#111b24}
.realistic-officer img{width:100%;height:100%;object-fit:cover;object-position:52% 42%;display:block;user-select:none;transition:filter .35s ease,transform .55s cubic-bezier(.2,.7,.2,1);transform:scale(1.035);filter:saturate(.96) contrast(1.04) brightness(.95)}
.realistic-officer:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0c1b2724 0 15%,transparent 34% 68%,#07111bcc 100%);pointer-events:none}
.realistic-officer .camera-depth{position:absolute;inset:0;z-index:2;box-shadow:inset 0 0 90px #0009;pointer-events:none}
.glass-reflection{position:absolute;z-index:3;top:-18%;height:145%;width:8%;background:linear-gradient(90deg,transparent,#dff5ff1e,transparent);transform:rotate(11deg);filter:blur(1px);pointer-events:none}
.glass-reflection.r1{left:13%}.glass-reflection.r2{right:18%;opacity:.65}
.focus-vignette{position:absolute;z-index:4;inset:0;background:radial-gradient(ellipse at 58% 42%,transparent 0 27%,#07131c08 50%,#02070d72 100%);pointer-events:none}
.realistic-officer.speaking img{transform:scale(1.047) translateY(-1px);filter:saturate(1.01) contrast(1.05) brightness(.98)}
.realistic-officer.listening img{transform:scale(1.04) translateX(-1px);filter:saturate(.94) contrast(1.05) brightness(.96)}
.realistic-officer.thinking img{transform:scale(1.038);filter:saturate(.82) contrast(1.06) brightness(.91)}
.realism-chip,.presence-chip{position:absolute;z-index:8;top:15px;display:flex;align-items:center;gap:8px;border:1px solid #ffffff21;background:#05101bb8;color:#e9f2f8;border-radius:999px;backdrop-filter:blur(12px);box-shadow:0 8px 22px #0004}
.realism-chip{left:15px;padding:8px 11px;font-size:11px}.realism-chip i{width:7px;height:7px;border-radius:50%;background:#72d2a8;box-shadow:0 0 0 5px #72d2a817}
.presence-chip{right:15px;padding:8px 11px;font-size:10px;color:#b9cedc}.presence-chip b{font-weight:750}.presence-dot{width:7px;height:7px;border-radius:50%;background:#64c994;box-shadow:0 0 0 5px #64c99415}
.realistic-scene:has(.realistic-officer.speaking) .presence-chip b{font-size:0}.realistic-scene:has(.realistic-officer.speaking) .presence-chip b:after{content:"正在提问";font-size:10px}.realistic-scene:has(.realistic-officer.listening) .presence-chip b{font-size:0}.realistic-scene:has(.realistic-officer.listening) .presence-chip b:after{content:"正在听你回答";font-size:10px}
.realistic-counter{z-index:7;height:74px;background:linear-gradient(180deg,#677580f1,#2a3741f7);border-top:5px solid #93a1a9;box-shadow:0 -12px 30px #0005}.realistic-counter:before{content:"";position:absolute;top:7px;left:0;right:0;height:1px;background:#d8e0e43b}.realistic-counter span{margin-top:14px;background:#0a1823d9;border-color:#c6a76085;color:#efd38f;backdrop-filter:blur(6px)}
.realistic-scene .audio-bars{bottom:91px;right:18px;border:1px solid #ffffff18;background:#07131ec7;border-radius:13px;padding:7px 8px;height:45px;align-items:center;backdrop-filter:blur(8px)}
.realistic-scene .audio-bars i{background:#9edaff}
.realistic-scene .audio-bars.active{box-shadow:0 0 0 3px #58aef20d}
@media(max-width:900px){.realistic-scene{height:460px}}
@media(max-width:520px){.realistic-scene{height:390px}.realistic-officer{transform:none!important}.realistic-officer img{object-position:55% 42%;transform:scale(1.06)}.realistic-officer.speaking img{transform:scale(1.075) translateY(-1px)}.realism-chip{left:10px;top:10px;font-size:9px}.presence-chip{right:10px;top:10px}.realistic-counter{height:62px}.realistic-scene .audio-bars{bottom:75px}.realistic-counter span{font-size:8px}.stage-card{border-radius:20px}}

/* ===== V2.2 动态真人 + 语音驱动口型 ===== */
.dynamic-officer{overflow:hidden;background:#101923}
.dynamic-officer .officer-source{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;left:-9999px!important;top:-9999px!important}
.officer-canvas{position:absolute;z-index:1;inset:0;width:100%;height:100%;display:block;background:#111b24}
.dynamic-officer .camera-depth,.dynamic-officer .glass-reflection,.dynamic-officer .focus-vignette{z-index:4}
.motion-proof{position:absolute;z-index:9;left:15px;bottom:88px;display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;border:1px solid #ffffff1f;background:#06111cc9;color:#b9ccda;font-size:9px;font-weight:800;backdrop-filter:blur(8px);box-shadow:0 7px 20px #0005}
.motion-proof i{width:7px;height:7px;border-radius:50%;background:#60d39d;box-shadow:0 0 0 5px #60d39d16}
.dynamic-officer[data-motion="speaking"] .motion-proof span{font-size:0}.dynamic-officer[data-motion="speaking"] .motion-proof span:after{content:"语音驱动口型中";font-size:9px;color:#dff2ff}.dynamic-officer[data-motion="speaking"] .motion-proof i{background:#65bfff;animation:pulse 1s infinite}
.dynamic-officer[data-motion="listening"] .motion-proof span{font-size:0}.dynamic-officer[data-motion="listening"] .motion-proof span:after{content:"正在聆听 · 口型暂停";font-size:9px}.dynamic-officer[data-motion="thinking"] .motion-proof span{font-size:0}.dynamic-officer[data-motion="thinking"] .motion-proof span:after{content:"正在思考追问";font-size:9px}
/* V2.2 used image transforms as a fake motion cue. V2.2 canvas is the visible layer. */
.realistic-officer img{transform:none!important;filter:none!important}.realistic-officer.speaking img,.realistic-officer.listening img,.realistic-officer.thinking img{transform:none!important;filter:none!important}
@media(max-width:520px){.motion-proof{left:10px;bottom:74px;font-size:8px;padding:6px 8px}.dynamic-officer[data-motion] .motion-proof span:after{font-size:8px!important}}
