:root{font-family:Microsoft YaHei,PingFang SC,Noto Sans CJK SC,sans-serif;color:#18322d;background:#dbe4df;font-synthesis:none;--ink: #18322d;--forest: #173b34;--jade: #2f7d62;--jade-dark: #205c48;--paper: #f8fbf8;--mist: #dce8e2;--line: #bed0c7;--amber: #f3b562;--danger: #a63c32}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}body{min-width:320px;background:radial-gradient(circle at 20% 0%,#f7faf7 0,#dbe4df 48%,#c5d1cb)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:4px solid #f3b562;outline-offset:3px}.shell{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:36px 0 64px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px}.brand{display:flex;align-items:center;gap:16px}.brand-mark{width:48px;height:48px;border-radius:15px 15px 9px 9px;background:var(--forest);position:relative;box-shadow:inset 0 -5px #102d27}.brand-mark:before,.brand-mark:after{content:"";position:absolute;top:-7px;width:13px;height:17px;background:var(--forest);border-radius:10px 10px 3px 3px}.brand-mark:before{left:6px;transform:rotate(-18deg)}.brand-mark:after{right:6px;transform:rotate(18deg)}.brand h1{font-family:STZhongsong,SimSun,serif;font-size:clamp(28px,4vw,42px);margin:0;letter-spacing:.03em}.eyebrow{margin:0 0 4px;color:#54736a;font-size:14px;letter-spacing:.16em;text-transform:uppercase}.card{background:#f8fbf8f5;border:1px solid #fff;border-radius:24px;padding:28px;box-shadow:0 22px 60px #14322c21}.card+.card{margin-top:22px}.hero{min-height:390px;display:grid;align-content:center;max-width:900px;margin:8vh auto 0;padding:clamp(28px,6vw,72px)}.hero h1,.participant-card h1{font-family:STZhongsong,SimSun,serif;font-size:clamp(38px,5vw,62px);line-height:1.18;margin:0 0 24px}.hero p,.participant-card p{font-size:clamp(21px,2.2vw,28px);line-height:1.7;margin:10px 0}.notice{border-left:8px solid var(--amber);background:#fff7e9;border-radius:10px;padding:18px 22px;margin:26px 0;color:#503c22}.primary,.secondary,.danger{min-height:60px;border-radius:14px;border:2px solid transparent;padding:12px 30px;font-size:21px;font-weight:700}.primary{color:#fff;background:var(--jade);box-shadow:0 7px 0 var(--jade-dark)}.primary:active{transform:translateY(4px);box-shadow:0 3px 0 var(--jade-dark)}.primary:disabled{background:#aebbb5;box-shadow:0 4px #89958f}.secondary{color:var(--forest);background:#fff;border-color:var(--line)}.danger{color:#fff;background:var(--danger)}.actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px}.field{display:grid;gap:8px;margin:18px 0}.field label{font-weight:700;font-size:18px}.field input,.field select,.field textarea{min-height:54px;border:2px solid var(--line);border-radius:12px;padding:10px 14px;background:#fff}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.status{padding:12px 16px;border-radius:10px;background:var(--mist)}.status.error{color:#74261f;background:#fae2df}.status.ok{color:#14573f;background:#d9f1e7}.code{font:700 22px Consolas,monospace;letter-spacing:.06em}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{color:#46645b;font-size:14px}a{color:var(--jade-dark);font-weight:700}.metric{padding:20px;border-radius:18px;background:#edf4f0}.metric strong{display:block;font:700 34px Consolas,monospace;margin-top:6px}.audio-mapping>p:not(.eyebrow){max-width:800px}.audio-mapping h3{margin:28px 0 10px;color:var(--forest)}.audio-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,2fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.audio-copy{display:grid;gap:4px}.audio-copy span{color:#46645b;font-size:14px}.audio-row select{min-height:48px;border:2px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;min-width:0}.audio-row .secondary{min-height:48px;padding:8px 18px;font-size:16px}@media(max-width:720px){.audio-row{grid-template-columns:1fr auto}.audio-row select{grid-column:1 / -1;grid-row:2}}.participant-shell{position:fixed;inset:0;display:grid;place-items:center;overflow:hidden;background:#c9d3ce}.stage{position:absolute;width:1366px;height:768px;transform:scale(var(--stage-scale, 1));transform-origin:center;background:#f4f7f5;overflow:hidden}.participant-card{position:absolute;inset:54px 98px;background:var(--paper);padding:70px 86px;border-radius:28px;box-shadow:0 24px 80px #0f2a232e;display:grid;align-content:center}.participant-card.compact h1{font-size:44px}.participant-card.compact p{font-size:24px}.orientation{display:none;position:fixed;inset:0;z-index:100;background:var(--forest);color:#fff;place-items:center;text-align:center;padding:48px;font-size:28px}.orientation span{display:block;font-size:68px;margin-bottom:24px}@media(orientation:portrait){.orientation{display:grid}}.scene{position:absolute;inset:0;background:#111 center / cover no-repeat;overflow:hidden}.scene:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,26,23,.16),transparent 42%,rgba(10,26,23,.08));pointer-events:none}.camera{position:absolute;inset:0;transform-origin:50% 55%;transition:transform .8s cubic-bezier(.32,.72,.25,1)}.camera.zoomed{transform:translate(var(--camera-x),var(--camera-y)) scale(var(--camera-scale))}.robot{position:absolute;object-fit:fill;transform:translate(-50%,-50%);z-index:2}.screen-overlay{position:absolute;object-fit:fill;z-index:3;border-radius:7px;background:#f4f6f7;opacity:1}.screen-dark{filter:brightness(.08)}.screen-fade{animation:fade-in .35s ease both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.ack-zone{position:absolute;z-index:6;appearance:none;padding:0;border:0;color:transparent;background-color:transparent;background-position:center;background-size:100% auto;background-repeat:no-repeat}.ack-zone.locked,.ack-zone.ready{background-image:url(/assets/buttons/ack-ready.png)}.debug-panel{position:absolute;z-index:20;top:12px;left:12px;max-width:440px;padding:10px 14px;border-radius:10px;background:#071814db;color:#d9fff1;font:14px/1.45 Consolas,monospace;white-space:pre-line}.debug-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin-top:6px}.debug-tools button,.calibration-panel button{border:1px solid rgba(217,255,241,.55);border-radius:6px;padding:5px 9px;background:#ffffff1a;color:inherit}.calibration-grid{position:absolute;inset:0;z-index:19;pointer-events:none;background-image:linear-gradient(rgba(255,0,0,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(255,0,0,.13) 1px,transparent 1px);background-size:50px 50px}.calibration-panel{position:absolute;z-index:22;right:12px;bottom:12px;width:430px;max-height:calc(100% - 24px);overflow:auto;box-sizing:border-box;padding:14px 16px;border-radius:12px;background:#071814eb;color:#e8fff6;box-shadow:0 12px 36px #00000047;font:13px/1.35 system-ui,sans-serif}.calibration-panel h2,.calibration-panel h3,.calibration-panel p{margin:0 0 8px}.calibration-panel h2{font-size:18px}.calibration-panel h3{margin-top:12px;font-size:14px}.calibration-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.calibration-fields label{display:grid;gap:3px;color:#bfe7d7}.calibration-fields input{width:100%;min-width:0;box-sizing:border-box;border:1px solid rgba(217,255,241,.45);border-radius:5px;padding:5px;background:#fffffff5;color:#102b25}.calibration-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.calibration-panel .calibration-save{border-color:#7ee2ba;background:#2f7d62}.calibration-message{margin-top:8px!important;color:#f3cf81}.loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--paper);z-index:30;font-size:24px}.sync-chip{position:fixed;right:18px;bottom:18px;z-index:50;background:#14322ce0;color:#fff;border-radius:999px;padding:9px 14px;font-size:14px}.questionnaire{max-width:980px;margin:30px auto 70px}.progress{height:12px;background:#d7e2dd;border-radius:999px;overflow:hidden;margin:20px 0 34px}.progress>div{height:100%;background:var(--jade);transition:width .25s}.question{border:2px solid #e2ebe6;border-radius:18px;padding:22px;margin:20px 0}.question legend{font-size:21px;font-weight:700;line-height:1.5;padding:0 8px}.question>input,.question>textarea{width:100%;box-sizing:border-box;border:2px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;margin-top:14px}.question>textarea{min-height:120px;resize:vertical}.scale{display:grid;grid-template-columns:repeat(7,minmax(62px,1fr));gap:10px;margin-top:18px}.scale label{min-height:66px;border:2px solid var(--line);border-radius:12px;display:grid;place-items:center;background:#fff;font-size:20px}.scale input{position:absolute;opacity:0}.scale label:has(input:checked){background:var(--jade);color:#fff;border-color:var(--jade)}.anchors{display:flex;justify-content:space-between;color:#5a716a;font-size:15px}.choice-list{display:grid;gap:12px;margin-top:18px}.choice-list label{display:flex;align-items:center;gap:14px;min-height:58px;padding:0 18px;border:2px solid var(--line);border-radius:12px;background:#fff;font-size:19px;cursor:pointer}.choice-list label:has(input:checked){border-color:var(--jade);background:#e4f3ed}.choice-list input{width:22px;height:22px}.interview-form{display:grid;gap:22px;margin-top:24px}.interview-form label{display:grid;gap:10px;line-height:1.5}.interview-form textarea{box-sizing:border-box;width:100%;min-height:112px;resize:vertical;border:2px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;font:inherit}.missing{background:#fff0dc;border-color:#f3b562}@media(max-width:760px){.shell{width:min(100% - 24px,1120px);padding-top:18px}.card{padding:20px;border-radius:18px}.scale{grid-template-columns:repeat(4,1fr)}.masthead{align-items:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
