:root{--paper:#f8fcfc;--mint:#dff3ef;--teal:#147c70;--ink:#12353a;--peach:#f48b6a;--line:#d7e4e2;--muted:#5d7476}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--ink);background:linear-gradient(180deg,#f5fbfa 0,#fff 34rem);font-family:"Noto Sans SC","Microsoft YaHei",sans-serif;line-height:1.6}button{font:inherit}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #eeb269;outline-offset:3px}.topbar{height:72px;padding:0 max(24px,calc((100vw - 1240px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(248,252,252,.9);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.topbar p{color:var(--muted);font-size:14px}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);font-weight:800;font-size:19px;text-decoration:none;letter-spacing:-.04em}.brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#fff;background:var(--teal);font-size:23px;line-height:1}.page-shell{width:min(1240px,calc(100% - 48px));margin:auto}.intro{padding:60px 0 42px;display:flex;align-items:end;justify-content:space-between;gap:30px}.eyebrow{margin:0 0 8px;color:var(--teal);font-size:13px;font-weight:800;letter-spacing:.07em}.intro h1,.how-to h2,.tech-intro h2,.report-main h2{margin:0;letter-spacing:-.06em;line-height:1.12;font-size:clamp(34px,5vw,58px)}.intro p:not(.eyebrow){max-width:610px;margin:16px 0 0;color:var(--muted);font-size:17px}.primary-button{min-height:48px;padding:0 23px;border:0;border-radius:999px;background:var(--teal);color:#fff;font-weight:800;white-space:nowrap;cursor:pointer;box-shadow:0 8px 18px rgba(20,124,112,.18)}.primary-button:hover{background:#0d695e;transform:translateY(-1px)}.training-panel{display:grid;grid-template-columns:minmax(0,1.58fr) minmax(310px,.72fr);gap:22px;align-items:stretch}.mirror-card,.coach-panel,.report-panel,.how-to,.tech-doc{border:1px solid var(--line);background:rgba(255,255,255,.88);box-shadow:0 22px 50px rgba(26,74,71,.07)}.mirror-card{overflow:hidden;border-radius:26px}.mirror-heading{display:flex;align-items:center;justify-content:space-between;padding:19px 22px;border-bottom:1px solid var(--line)}.mirror-heading h2{font-size:20px;margin:0;letter-spacing:-.04em}.status-pill{padding:5px 10px;border-radius:999px;background:#eef5f4;color:var(--muted);font-size:13px}.status-pill.is-live{color:#075e54;background:#d9f4e6}.camera-stage{position:relative;aspect-ratio:16/10;min-height:355px;overflow:hidden;background:#dcebea}.camera-stage video,.camera-stage canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-stage canvas{pointer-events:none}.camera-empty{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;gap:5px;color:#5f7b7a;background:radial-gradient(circle at 50% 15%,#effaf8,#dcebea);text-align:center}.camera-empty[hidden]{display:none}.camera-icon{width:61px;height:61px;display:grid;place-items:center;margin-bottom:8px;border:1px solid #bcd9d4;border-radius:50%;color:var(--teal);font-size:45px;line-height:0}.camera-empty span:last-child{font-size:14px}.corner{position:absolute;z-index:3;width:36px;height:36px;border-color:rgba(255,255,255,.92);border-style:solid}.top-left{top:20px;left:20px;border-width:3px 0 0 3px}.top-right{top:20px;right:20px;border-width:3px 3px 0 0}.bottom-left{bottom:20px;left:20px;border-width:0 0 3px 3px}.bottom-right{right:20px;bottom:20px;border-width:0 3px 3px 0}.timer-orbit{position:absolute;right:22px;bottom:20px;z-index:4;display:grid;place-items:center;width:95px;height:95px;border-radius:50%;color:#fff;background:rgba(18,53,58,.74);backdrop-filter:blur(8px)}.timer-orbit svg{position:absolute;inset:4px;width:87px;height:87px;transform:rotate(-90deg)}.timer-orbit circle{fill:none;stroke-width:7}.orbit-track{stroke:rgba(255,255,255,.2)}.orbit-value{stroke:#c7f4df;stroke-linecap:round;stroke-dasharray:326.73;stroke-dashoffset:0;transition:stroke-dashoffset .4s linear}.timer-orbit strong{font-size:19px;line-height:1;z-index:1}.timer-orbit span{z-index:1;font-size:11px;opacity:.78}.mirror-footer{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:13px 20px;background:#fff}.mirror-footer p{margin:0;color:var(--muted);font-size:14px}.text-button{border:0;padding:6px 0;color:var(--teal);background:transparent;font-weight:800;cursor:pointer}.text-button:disabled{color:#9aabab;cursor:not-allowed}.coach-panel{padding:25px;border-radius:26px;display:flex;flex-direction:column;gap:25px}.current-instruction{border-bottom:1px solid var(--line);padding-bottom:23px}.current-instruction h2{margin:0;font-size:clamp(24px,3vw,33px);letter-spacing:-.06em;line-height:1.2}.current-instruction>p:not(.eyebrow){min-height:48px;margin:12px 0 17px;color:var(--muted);font-size:14px}.mode-switch{display:flex;gap:8px}.mode-button{flex:1;min-height:39px;color:#506c6d;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:700;cursor:pointer}.mode-button.is-selected{color:var(--teal);border-color:var(--teal);background:var(--mint)}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.section-title h3{margin:0;font-size:16px}.section-title span{color:var(--teal);font-weight:800;font-size:14px}.tiny-copy{margin:4px 0 13px;color:var(--muted);font-size:12px}.zone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.zone-button{position:relative;min-height:50px;padding:4px;color:#587274;border:1px solid var(--line);border-radius:11px;background:#fff;font-size:11px;font-weight:700;cursor:pointer}.zone-button[data-mode="inner"]:after{content:"内";position:absolute;top:4px;right:5px;color:#8ca1a0;font-size:9px}.zone-button[data-mode="outer"]:after{content:"外";position:absolute;top:4px;right:5px;color:#8ca1a0;font-size:9px}.zone-button.is-current{outline:2px solid var(--teal);outline-offset:1px}.zone-button.is-covered{border-color:#8bd6bf;background:#e4f8ee;color:#066a56}.movement-section{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.movement-section div{padding:11px 0 0;border-top:1px solid var(--line)}.movement-section span{display:block;color:var(--muted);font-size:12px}.movement-section strong{font-size:14px}.notice-panel{margin-top:20px;padding:14px 17px;color:#8b4b39;border:1px solid #f4c9bc;border-radius:14px;background:#fff4ef}.report-panel{margin-top:28px;padding:30px;border-radius:25px;display:flex;justify-content:space-between;gap:26px;align-items:center}.report-main h2{font-size:clamp(29px,4vw,42px)}.report-main>p:not(.eyebrow){color:var(--muted);margin:12px 0 20px}.report-stats{min-width:360px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:0;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}.report-stats div{padding:14px;background:#fff}.report-stats dt{color:var(--muted);font-size:12px}.report-stats dd{margin:5px 0 0;font-size:18px;font-weight:800}.how-to{margin:28px 0;padding:30px;border-radius:25px;display:grid;grid-template-columns:.72fr 1.28fr;gap:35px}.how-to h2{font-size:clamp(28px,3vw,39px)}.how-to ol{list-style:none;padding:0;margin:0;display:grid;gap:18px}.how-to li{display:grid;grid-template-columns:35px 1fr;gap:14px;align-items:start}.how-to li>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:var(--teal);background:var(--mint);font-size:13px;font-weight:800}.how-to strong{display:block;font-size:16px}.how-to li p{margin:3px 0 0;color:var(--muted);font-size:14px}.tech-doc{margin:28px 0 60px;overflow:hidden;border-radius:25px}.tech-intro{padding:32px 30px 25px;border-bottom:1px solid var(--line)}.tech-intro h2{font-size:clamp(29px,3vw,40px)}.tech-intro>p:not(.eyebrow){max-width:580px;margin:12px 0 0;color:var(--muted)}details{border-bottom:1px solid var(--line)}details:last-child{border-bottom:0}summary{display:flex;align-items:center;padding:20px 30px;font-weight:800;cursor:pointer;list-style:none}summary:after{content:"＋";margin-left:auto;color:var(--teal);font-size:22px;font-weight:400}details[open] summary:after{content:"−"}.doc-content{padding:0 30px 28px;color:#395556}.doc-content p{max-width:900px}.doc-content pre{overflow:auto;padding:18px;color:#124f4a;border-radius:12px;background:#edf8f6;font-family:"Microsoft YaHei",sans-serif;font-size:14px;line-height:1.75}.doc-content table{width:100%;border-collapse:collapse;font-size:14px}.doc-content th,.doc-content td{padding:11px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.doc-content th{width:22%;color:var(--ink);background:#f5fbfa}footer{padding:24px;color:#789092;text-align:center;font-size:13px;border-top:1px solid var(--line)}
@media (max-width:900px){.training-panel{grid-template-columns:1fr}.coach-panel{display:grid;grid-template-columns:1fr 1fr}.current-instruction{border-bottom:0;padding-bottom:0}.coverage-section{border-left:1px solid var(--line);padding-left:24px}.movement-section{grid-column:1/-1}.report-panel,.how-to{grid-template-columns:1fr;display:grid}.report-stats{min-width:0}.how-to{gap:25px}}
@media (max-width: 760px){.topbar{height:62px;padding:0 16px}.topbar p{font-size:12px}.brand{font-size:17px}.page-shell{width:min(100% - 28px,620px)}.intro{padding:36px 0 27px;display:grid;align-items:start;gap:20px}.intro h1{font-size:39px}.intro p:not(.eyebrow){font-size:15px}.primary-button{width:100%}.training-panel{gap:14px}.mirror-card,.coach-panel,.report-panel,.how-to,.tech-doc{border-radius:18px}.mirror-heading{padding:15px}.camera-stage{min-height:330px;aspect-ratio:3/4}.timer-orbit{right:13px;bottom:13px;transform:scale(.86);transform-origin:bottom right}.corner{width:27px;height:27px}.top-left{top:14px;left:14px}.top-right{top:14px;right:14px}.bottom-left{bottom:14px;left:14px}.bottom-right{bottom:14px;right:14px}.mirror-footer{padding:12px 15px}.mirror-footer p{font-size:12px}.coach-panel{display:block;padding:20px}.current-instruction{border-bottom:1px solid var(--line);padding-bottom:20px}.coverage-section{border-left:0;padding:22px 0 0}.movement-section{margin-top:23px}.report-panel,.how-to{padding:23px 20px}.report-stats{grid-template-columns:repeat(3,1fr)}.report-stats div{padding:10px}.report-stats dd{font-size:16px}.tech-intro{padding:25px 20px 20px}summary{padding:17px 20px}.doc-content{padding:0 20px 22px;overflow:auto}.doc-content table{min-width:540px}.doc-content pre{font-size:12px}.how-to ol{gap:15px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
[hidden]{display:none!important}
.tech-section{margin:28px 0 60px;overflow:hidden;border:1px solid var(--line);border-radius:25px;background:rgba(255,255,255,.94);box-shadow:0 22px 50px rgba(26,74,71,.07)}.tech-section .tech-intro{padding:34px 30px 28px;border-bottom:1px solid var(--line)}.tech-section .tech-intro h2{margin:0;letter-spacing:-.06em;line-height:1.12;font-size:clamp(30px,3vw,42px)}.tech-section .tech-intro>p:not(.eyebrow){max-width:760px;margin:13px 0 0;color:var(--muted)}.tech-body{padding:10px 30px 36px}.tech-h3{display:flex;align-items:center;gap:10px;margin:34px 0 16px;padding-bottom:11px;border-bottom:2px solid #bfe4dd;color:var(--ink);font-size:21px;letter-spacing:-.04em}.tech-h3:before{width:7px;height:26px;border-radius:99px;background:var(--teal);content:""}.flowchart-box{padding:23px;border:1px solid #cae6e1;border-radius:18px;background:linear-gradient(150deg,#f8fffd,#edf9f6);text-align:center}.flow-node{width:min(100%,470px);margin:auto;padding:11px 16px;border:1px solid #87cfc1;border-radius:10px;background:#fff;color:#145d55;font-size:14px;font-weight:800;box-shadow:0 5px 14px rgba(20,124,112,.07)}.flow-arrow{padding:5px 0;color:var(--teal);font-size:22px;line-height:1}.flow-split{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:auto}.flow-split .flow-node{min-height:64px;display:grid;place-items:center;padding:9px;font-size:13px}.tech-desc{margin:16px 0 0;color:#395556}.info-table,.param-table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;font-size:14px}.info-table td,.param-table th,.param-table td{padding:13px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.info-table tr:last-child td,.param-table tr:last-child td{border-bottom:0}.info-table td:first-child{width:24%;color:var(--ink);background:#f3faf8;font-weight:800}.param-table th{background:#eaf7f4;color:#155a53;font-weight:800}.param-table td{color:#395556}.design-list{display:grid;gap:12px;margin:0;padding:0;list-style:none;counter-reset:design}.design-list li{position:relative;padding:16px 17px 16px 56px;border:1px solid var(--line);border-radius:13px;background:#fff;color:#395556}.design-list li:before{position:absolute;top:16px;left:16px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--mint);color:var(--teal);font-size:12px;font-weight:900;counter-increment:design;content:counter(design)}.design-list strong{color:var(--ink)}.module-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.module-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#fff,#f9fdfc)}.tech-h4{margin:0 0 8px;color:#14695f;font-size:17px}.module-card p{margin:0;color:#395556;font-size:14px}.tech-section .param-table{margin-top:16px}
@media (max-width:760px){.tech-section{border-radius:18px}.tech-section .tech-intro,.tech-body{padding-left:20px;padding-right:20px}.tech-h3{margin-top:27px;font-size:19px}.flowchart-box{padding:17px 11px}.flow-split{grid-template-columns:1fr}.flow-split .flow-node{min-height:0}.info-table,.param-table{font-size:13px}.info-table td,.param-table th,.param-table td{padding:10px}.info-table td:first-child{width:32%}.module-grid{grid-template-columns:1fr}.design-list li{padding-left:51px}.tech-section .param-table{display:block;overflow-x:auto;white-space:nowrap}}
.reference-section{margin:-32px 0 60px;padding:32px 30px;border:1px solid var(--line);border-radius:25px;background:linear-gradient(150deg,#f7fdfb,#fff);box-shadow:0 22px 50px rgba(26,74,71,.06)}.reference-intro h2{margin:0;letter-spacing:-.06em;line-height:1.12;font-size:clamp(29px,3vw,40px)}.reference-intro>p:not(.eyebrow){max-width:760px;margin:13px 0 0;color:var(--muted)}.reference-list{display:grid;gap:12px;margin:26px 0 0;padding:0;list-style:none;counter-reset:reference}.reference-item{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:15px;background:#fff}.reference-number{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:var(--teal);background:var(--mint);font-size:12px;font-weight:900}.reference-copy h3{margin:0;color:var(--ink);font-size:16px;line-height:1.45}.reference-copy p{margin:6px 0 0;color:#466365;font-size:13px}.reference-copy .reference-note{color:#698183}.pdf-download{display:grid;min-width:102px;padding:10px 12px;border-radius:10px;color:#fff;background:var(--teal);text-align:center;text-decoration:none;font-size:13px;font-weight:800;box-shadow:0 5px 12px rgba(20,124,112,.15)}.pdf-download:hover{background:#0d695e}.pdf-download span{margin-top:2px;font-size:11px;font-weight:500;opacity:.82}.reference-license{margin:18px 0 0;color:#758b8c;font-size:12px}@media (max-width:760px){.reference-section{margin:-14px 0 45px;padding:25px 20px;border-radius:18px}.reference-item{grid-template-columns:36px 1fr;gap:12px;padding:15px}.reference-number{width:32px;height:32px}.reference-copy h3{font-size:14px}.pdf-download{grid-column:2;justify-self:start;display:inline-grid;min-width:112px}.reference-list{gap:10px}}
