:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#eef2eb;--surface:#fbfcf8;--surface-strong:#fff;--surface-soft:#edf4ee;--ink:#17261f;--muted:#607168;--line:#dce5dc;--primary:#34765c;--primary-hover:#285f49;--primary-soft:#dfece3;--on-primary:#fff;--warning:#a65f24;--danger:#a23d35;--focus:#0b755b;--shadow:0 24px 70px #20392c21;--font-body:"Raleway", ui-sans-serif, system-ui, sans-serif;--font-display:"Lora", Georgia, serif}*{box-sizing:border-box}html{background:var(--background);min-width:320px}body{min-height:100dvh;color:var(--ink);background:radial-gradient(circle at 15% 0, #f7f7ef 0, transparent 34%), var(--background);font:16px/1.5 var(--font-body);-webkit-font-smoothing:antialiased;margin:0;padding:20px}body.has-report,body.has-safety-check{overflow:hidden}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}:focus-visible{outline:3px solid color-mix(in srgb, var(--focus) 42%, transparent);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:1000;color:#fff;background:var(--ink);border-radius:10px;padding:10px 16px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:16px}.app-shell{background:var(--surface);width:min(1320px,100%);min-height:calc(100dvh - 40px);box-shadow:var(--shadow);border:1px solid #2a4b3b21;border-radius:28px;margin:0 auto;overflow:hidden}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-height:72px;padding:0 28px;display:flex}.brand{color:var(--ink);letter-spacing:.18em;align-items:center;gap:10px;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{color:#fff;background:var(--primary);border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.brand-mark svg{width:25px;height:25px}.session-state{color:var(--muted);align-items:center;gap:9px;font-size:14px;display:flex}.session-dot,.camera-status-dot{background:#92a098;border-radius:50%;flex:none;width:8px;height:8px}.session-state.is-live .session-dot,.camera-card.is-live .camera-status-dot{background:#48a976;box-shadow:0 0 0 5px #48a97621}.top-actions{align-items:center;gap:10px;display:flex}.language-picker{position:relative}.language-picker select{border:1px solid var(--line);height:38px;color:var(--ink);background:var(--surface-strong);letter-spacing:.06em;cursor:pointer;border-radius:12px;padding:0 28px 0 11px;font-size:12px;font-weight:700}.language-picker select:hover{background:var(--surface-soft);border-color:#b6c8ba}.icon-button,.profile-button{border:1px solid var(--line);width:44px;height:44px;color:var(--ink);background:var(--surface-strong);border-radius:50%;place-items:center;padding:0;transition:border-color .2s,background .2s;display:grid}.icon-button:hover,.profile-button:hover{background:var(--surface-soft);border-color:#b6c8ba}.icon-button svg{width:21px;height:21px}.icon-button .sound-off,.icon-button[aria-pressed=false] .sound-on{display:none}.icon-button[aria-pressed=false] .sound-off{display:block}.profile-button{color:#285844;background:#dceade;border:0;font-weight:700}.practice-layout{grid-template-columns:minmax(0,1.56fr) minmax(380px,.74fr);min-height:calc(100dvh - 114px);display:grid}.coach-stage{background:radial-gradient(circle at 52% 42%,#f4f9f1f5 0,#deede0e0 37%,#c4dacc9e 70%,#b5cebf73 100%);min-width:0;min-height:760px;position:relative;overflow:hidden}.coach-stage:after{z-index:0;content:"";background:linear-gradient(90deg,#0000,#36614b47,#0000);height:1px;position:absolute;bottom:57px;left:7%;right:7%}.stage-glow{aspect-ratio:1;border:1px solid #ffffffb3;border-radius:50%;width:min(52vw,610px);position:absolute;top:50%;left:50%;transform:translate(-50%,-52%);box-shadow:0 0 0 70px #ffffff1a,0 0 0 145px #ffffff12}#trainer-canvas{z-index:1;width:100%;height:100%;position:absolute;inset:0}.trainer-id,.current-pose,.camera-card,.coach-cue,.welcome-layer{z-index:3;position:absolute}.trainer-id{color:#203f31;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffba;border:1px solid #ffffffbf;border-radius:16px;align-items:center;gap:10px;padding:8px 13px 8px 8px;display:flex;top:24px;left:24px}.trainer-avatar{color:#fff;background:linear-gradient(145deg,#4c856d,#265942);border-radius:11px;place-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:grid}.trainer-id strong,.trainer-id small{display:block}.trainer-id strong{font-size:13px}.trainer-id small{color:#5b7165;font-size:11px}.current-pose{color:#234c3a;text-align:right;top:27px;right:25px}.current-pose span,.current-pose strong{display:block}.current-pose span{opacity:.68;letter-spacing:.15em;text-transform:uppercase;font-size:11px;font-weight:600}.current-pose strong{font:600 19px/1.2 var(--font-display);margin-top:4px}.camera-card{color:#294d3c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffc;border:1px solid #ffffffbf;border-radius:16px;width:164px;transition:opacity .2s,transform .2s;bottom:93px;left:24px;overflow:hidden;box-shadow:0 10px 28px #1e402f1f}.camera-viewport{aspect-ratio:4/3;background:#2c533f14;width:100%;position:relative;overflow:hidden}#camera-video,#pose-overlay{object-fit:cover;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}#pose-overlay{z-index:2}.camera-placeholder{z-index:3;color:#61766b;place-content:center;justify-items:center;gap:8px;font-size:11px;display:grid;position:absolute;inset:0}.camera-placeholder svg{width:28px;height:28px}.camera-card.is-live .camera-placeholder{display:none}.camera-caption{align-items:center;gap:8px;min-height:36px;padding:7px 10px;font-size:10px;display:flex}.coach-cue{color:#f8fcf9;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#19372bed;border:1px solid #ffffff29;border-radius:17px;align-items:center;gap:15px;width:min(58%,520px);min-height:58px;padding:11px 18px;display:flex;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 16px 38px #18382a3b}.coach-cue p{margin:0;font-size:13px;line-height:1.45}.voice-wave{flex:none;align-items:center;gap:3px;height:28px;display:flex}.voice-wave i{opacity:.58;background:#aaddbd;border-radius:3px;width:2px;height:8px;animation:1.05s ease-in-out infinite paused voice-wave}.voice-wave i:nth-child(2){animation-delay:-.82s}.voice-wave i:nth-child(3){animation-delay:-.58s}.voice-wave i:nth-child(4){animation-delay:-.25s}.voice-wave i:nth-child(5){animation-delay:-.68s}.coach-cue.is-speaking .voice-wave i{opacity:1;animation-play-state:running}.welcome-layer{z-index:5;background:linear-gradient(90deg,#deede0fa 0,#deede0eb 35%,#deede07a 48%,#deede014 68%,#0000 100%);align-items:start;padding:96px 7% 78px;transition:opacity .32s,visibility .32s;display:grid;inset:0}.welcome-layer.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.welcome-card{color:#19382b;width:min(470px,60%)}.eyebrow{color:var(--primary);letter-spacing:.11em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:700}.welcome-card h1{font:600 clamp(42px, 5.2vw, 68px)/1.03 var(--font-display);letter-spacing:-.035em;margin:0}.welcome-card>p:not(.eyebrow){color:#4c675a;max-width:390px;margin:20px 0 0;font-size:16px;line-height:1.6}.coach-picker{max-width:440px;margin-top:18px}.coach-picker>p{color:#486457;letter-spacing:.04em;margin:0 0 8px;font-size:11px;font-weight:700}.coach-options{grid-template-columns:repeat(4,minmax(68px,1fr));gap:8px;display:grid}.coach-option{color:#416354;background:#ffffff94;border:1px solid #36644c33;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:64px;padding:7px 4px 6px;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;display:flex;position:relative;box-shadow:0 5px 16px #284e3b0a}.coach-option:hover{background:#ffffffd1;border-color:#34765c7a;transform:translateY(-1px)}.coach-option svg{fill:none;stroke:currentColor;stroke-width:1.55px;stroke-linecap:round;stroke-linejoin:round;width:27px;height:27px;overflow:visible}.coach-option span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;font-weight:700;line-height:1.1;overflow:hidden}.coach-option[aria-pressed=true]{border-color:var(--primary);color:#245842;background:#fafffaf5;box-shadow:0 0 0 2px #34765c21,0 8px 20px #284e3b1a}.coach-option[aria-pressed=true]:after{content:"✓";color:#fff;background:var(--primary);width:14px;height:14px;font:700 9px/1 var(--font-body);border-radius:50%;place-items:center;display:grid;position:absolute;top:5px;right:6px}.primary-button{min-height:54px;color:var(--on-primary);background:var(--primary);border:0;border-radius:14px;justify-content:center;align-items:center;gap:12px;margin-top:28px;padding:0 22px;font-weight:700;transition:background .2s,transform .2s;display:inline-flex;box-shadow:0 12px 25px #34765c40}.coach-picker+.primary-button{margin-top:20px}.primary-button:hover{background:var(--primary-hover);transform:translateY(-1px)}.primary-button svg{width:20px;height:20px}.welcome-card>small{color:#5e7468;align-items:center;gap:8px;max-width:340px;margin-top:17px;font-size:11px;display:flex}.welcome-card>small svg{flex:none;width:16px;height:16px}.calibration-layer{z-index:6;background:linear-gradient(90deg,#daeade7a 0,#daeadec7 44%,#ebf3ebfa 73%,#ebf3ebfc 100%);justify-content:flex-end;align-items:center;padding:92px 6% 92px 48%;transition:opacity .25s,visibility .25s;display:flex;position:absolute;inset:0}.calibration-layer.is-hidden,.calibration-action.is-hidden{display:none}.calibration-card{color:#1d4030;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe0;border:1px solid #fffc;border-radius:22px;width:min(360px,100%);padding:24px;box-shadow:0 20px 50px #1f473329}.calibration-kicker{color:#537064;letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:10px;font-weight:700;display:flex}.calibration-kicker strong{color:var(--primary)}.calibration-figure{color:#4f846c;place-items:center;width:88px;height:108px;margin:12px auto 15px;display:grid;position:relative;overflow:hidden}.calibration-figure svg{width:76px;height:108px}.calibration-scan{background:#55a27f;border-radius:2px;height:2px;animation:2s ease-in-out infinite calibration-scan;position:absolute;top:12px;left:8px;right:8px;box-shadow:0 0 12px #55a27fcc}.calibration-card .eyebrow{text-align:center;margin-bottom:7px}.calibration-card h2{font:600 25px/1.22 var(--font-display);text-align:center;text-wrap:balance;margin:0}.calibration-card>p:not(.eyebrow){color:#60756b;text-align:center;margin:9px 0 0;font-size:13px;line-height:1.55}.calibration-progress{background:#dfe8e0;border-radius:999px;height:6px;margin-top:18px;overflow:hidden}.calibration-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), #7bb596);width:0;height:100%;transition:width .18s;display:block}.calibration-card.is-ready .calibration-figure{color:var(--primary)}.calibration-card.is-ready .calibration-scan{display:none}.calibration-action{width:100%;margin-top:18px}.calibration-cancel{color:#82483f;background:#ffffffb3;border:1px solid #d8c5c0;border-radius:14px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:48px;margin-top:10px;padding:0 18px;font-weight:700;transition:color .2s,background .2s,border-color .2s;display:inline-flex}.calibration-cancel:hover{color:#6f392f;background:#fff8f5;border-color:#bd9288}.calibration-cancel svg{width:18px;height:18px}.secondary-button{color:#285d47;background:#fff;border:1px solid #b8ccbd;border-radius:14px;justify-content:center;align-items:center;gap:10px;min-height:50px;padding:0 18px;font-weight:700;transition:background .2s,border-color .2s;display:inline-flex}.secondary-button:hover{border-color:var(--primary);background:var(--surface-soft)}.secondary-button svg{width:20px;height:20px}.camera-card.is-calibrating{z-index:8;border-radius:20px;width:min(39%,360px);bottom:112px;left:5%;box-shadow:0 22px 55px #1e402f38}.camera-card.is-calibrating .camera-caption{min-height:42px;padding:9px 12px;font-size:11px}.coach-stage.is-calibrating .coach-cue{opacity:0;visibility:hidden}.session-panel{border-left:1px solid var(--line);background:var(--surface-strong);min-width:0;padding:34px 32px 24px}.session-heading h2{font:600 32px/1.15 var(--font-display);letter-spacing:-.02em;margin:4px 0 8px}.session-heading>p:last-child{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.session-progress{margin-top:24px}.session-progress>div:first-child{color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.session-progress strong{color:var(--ink);font-variant-numeric:tabular-nums}.progress-track{background:#e5e9e3;border-radius:999px;height:6px;margin-top:10px;overflow:hidden}.progress-track span{transform-origin:0;border-radius:inherit;background:linear-gradient(90deg, var(--primary), #78ab91);width:0;height:100%;transition:width .3s;display:block}.pose-list{gap:5px;margin-top:22px;display:grid}.pose-item{width:100%;min-height:58px;color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;border-radius:14px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 12px;transition:border-color .2s,background .2s;display:grid}.pose-item:hover{background:#f4f7f3}.pose-item.is-active{background:var(--surface-soft);border-color:#c9dbcf}.pose-number{color:#7b8981;font-size:11px;font-weight:600}.pose-item.is-active .pose-number{color:var(--primary)}.pose-copy strong,.pose-copy small{display:block}.pose-copy strong{font-size:13px}.pose-copy small,.pose-duration{color:var(--muted);margin-top:2px;font-size:11px}.pose-duration{white-space:nowrap;margin:0}.technique-card{background:var(--surface-soft);border:1px solid #cfe0d5;border-radius:16px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:78px;margin-top:20px;padding:12px;display:grid}.technique-card.is-adjust{background:#fbf4ea;border-color:#ecd5b8}.technique-card.is-error{background:#fbefed;border-color:#e8c4c0}.technique-icon{color:#fff;background:var(--primary);border-radius:13px;place-items:center;width:42px;height:42px;display:grid}.is-adjust .technique-icon{background:var(--warning)}.is-error .technique-icon{background:var(--danger)}.technique-icon svg{width:21px;height:21px}.technique-copy>small,.technique-copy>strong,.technique-copy>span{display:block}.technique-copy>small{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:700}.guidance-state{color:var(--primary)}.technique-card[data-guidance-state=demonstrating] .guidance-state,.technique-card[data-guidance-state=checking] .guidance-state{color:#557365}.technique-card[data-guidance-state=correcting] .guidance-state{color:var(--warning)}.technique-card[data-guidance-state=modified] .guidance-state{color:#7a5d2f}.technique-card[data-guidance-state=holding] .guidance-state{color:#1d754f}.technique-copy>strong{margin-top:2px;font-size:13px}.technique-copy>span{color:var(--muted);margin-top:2px;font-size:10px}.technique-metrics{justify-items:end;gap:3px;min-width:72px;display:grid}.technique-metrics small{color:var(--muted);text-align:right;white-space:nowrap;font-size:8px;line-height:1.25}.pose-score{color:var(--primary);font-variant-numeric:tabular-nums;font-size:15px}.is-adjust .pose-score{color:var(--warning)}.technique-card.is-uncertain{background:#f5f7f3;border-color:#d9dfd6}.technique-card.is-uncertain .technique-icon{color:#52675d;background:#dce4de}.session-controls{justify-content:center;align-items:center;gap:18px;margin-top:20px;display:flex}.control-button,.play-button{border-radius:50%;place-items:center;padding:0;transition:background .2s,border-color .2s,transform .2s;display:grid}.control-button{border:1px solid var(--line);width:46px;height:46px;color:var(--ink);background:#fff}.control-button:hover{background:var(--surface-soft);border-color:#b9cbbb}.control-button svg{width:21px;height:21px}.play-button{color:#fff;background:var(--primary);border:0;width:58px;height:58px;box-shadow:0 11px 24px #34765c42}.play-button:hover{background:var(--primary-hover);transform:scale(1.03)}.play-button svg{width:22px;height:22px}.play-button .pause-symbol,.play-button[aria-pressed=true] .play-symbol{display:none}.play-button[aria-pressed=true] .pause-symbol{display:block}.camera-button{color:#285d47;background:#fff;border:1px solid #b9cbbb;border-radius:13px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:48px;margin-top:18px;font-weight:700;transition:background .2s,border-color .2s;display:flex}.camera-button:hover{border-color:var(--primary);background:var(--surface-soft)}.camera-button.is-on{color:#fff;border-color:var(--primary);background:var(--primary)}.camera-button svg{width:20px;height:20px}.voice-dialogue-control{margin-top:10px}.voice-dialogue-button{color:#315b49;background:#f4f8f4;border:1px solid #c8d7cd;border-radius:13px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:48px;font-weight:700;transition:color .2s,background .2s,border-color .2s;display:flex}.voice-dialogue-button:hover:not(:disabled){border-color:var(--primary);background:#eaf3ec}.voice-dialogue-button.is-hands-free{color:#fff;border-color:var(--primary);background:var(--primary)}.voice-dialogue-button.is-listening{color:#fff;background:#a45b50;border-color:#a45b50;box-shadow:0 0 0 4px #a45b501f}.voice-dialogue-button:disabled{cursor:not-allowed;opacity:.52}.voice-dialogue-button svg{width:20px;height:20px}.voice-dialogue-control small{min-height:28px;color:var(--muted);text-align:center;margin:6px 4px 0;font-size:9px;line-height:1.45;display:block}.quality-panel{border:1px solid var(--line);background:#f9fbf7;border-radius:15px;margin-top:10px}.quality-panel>summary{color:#294c3d;cursor:pointer;border-radius:14px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:52px;padding:8px 11px;list-style:none;transition:background .2s;display:grid}.quality-panel>summary::-webkit-details-marker{display:none}.quality-panel>summary:hover{background:var(--surface-soft)}.quality-summary-icon{color:#4d715f;background:#e7eee8;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.quality-summary-icon svg{width:19px;height:19px}.quality-panel summary strong,.quality-panel summary small{display:block}.quality-panel summary strong{font-size:12px}.quality-panel summary small{color:var(--muted);margin-top:2px;font-size:9px}.quality-badge{color:#617269;text-align:center;background:#e7ebe7;border-radius:999px;min-width:42px;padding:5px 7px;font-size:9px;font-weight:700}.quality-panel.is-active .quality-badge{color:#236046;background:#d9eee1}.quality-content{padding:0 11px 12px}.quality-consent{cursor:pointer;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:10px;min-height:54px;padding:9px 4px;display:grid}.quality-consent input{opacity:0;pointer-events:none;position:absolute}.quality-switch{background:#cbd5ce;border-radius:999px;width:40px;height:24px;transition:background .2s;position:relative;box-shadow:inset 0 0 0 1px #1f413014}.quality-switch:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 2px 5px #18372838}.quality-consent input:checked+.quality-switch{background:var(--primary)}.quality-consent input:checked+.quality-switch:after{transform:translate(16px)}.quality-consent input:focus-visible+.quality-switch{outline-offset:2px;outline:3px solid #0b755b40}.quality-consent strong,.quality-consent small{display:block}.quality-consent strong{color:#28493b;font-size:11px}.quality-consent small{color:var(--muted);margin-top:2px;font-size:9px;line-height:1.35}.quality-workspace{border-top:1px solid var(--line);padding-top:10px;display:none}.quality-panel.is-active .quality-workspace{display:block}.quality-live{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:7px;font-size:9px;display:flex}.quality-live-dot{background:#3c8a67;border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 0 4px #3c8a671a}.quality-panel.is-paused .quality-live-dot{box-shadow:none;background:#89958e}.quality-question{color:#304c40;margin:11px 0 7px;font-size:10px;font-weight:700}.quality-feedback{grid-template-columns:1fr 1fr;gap:6px;display:grid}.quality-feedback button,.quality-actions button{color:#365748;min-height:44px;font:700 9px/1.25 var(--font-body);background:#fff;border:1px solid #cfdad1;border-radius:11px;justify-content:center;align-items:center;gap:6px;padding:6px 8px;transition:border-color .2s,background .2s,color .2s;display:inline-flex}.quality-feedback button:hover:not(:disabled),.quality-actions button:hover:not(:disabled){background:var(--surface-soft);border-color:#88a995}.quality-feedback button:disabled,.quality-actions button:disabled{cursor:not-allowed;opacity:.45}.quality-feedback button svg,.quality-actions button svg{flex:none;width:17px;height:17px}.quality-feedback button:last-child{color:#805d2b;background:#fdfaf2;border-color:#e3d5bd;grid-column:1/-1}.quality-feedback button.is-selected{color:#fff;border-color:var(--primary);background:var(--primary)}.quality-feedback button:last-child.is-selected{background:#916525;border-color:#916525}.quality-metrics{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px;display:grid}.quality-metrics span{text-align:center;background:#eef3ee;border-radius:10px;min-width:0;padding:8px 5px}.quality-metrics small,.quality-metrics strong{display:block}.quality-metrics small{min-height:22px;color:var(--muted);font-size:7px;line-height:1.25}.quality-metrics strong{color:#285f49;font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px}.quality-by-pose{margin-top:8px}.quality-by-pose p{color:var(--muted);margin:0;font-size:8px;line-height:1.45}.quality-pose-row{color:var(--muted);border-bottom:1px solid #e7ece7;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:5px 1px;font-size:8px;display:grid}.quality-pose-row:last-child{border-bottom:0}.quality-pose-row strong{color:#314e41;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quality-actions{grid-template-columns:1fr 1fr;gap:6px;margin-top:9px;display:grid}.quality-actions button{min-height:42px}.quality-actions button:first-child{grid-column:1/-1}.quality-actions #quality-clear{color:#884d44;border-color:#e1cac5}.quality-privacy{color:#7b817d;margin:9px 2px 0;font-size:8px;line-height:1.45}.finish-button{color:#82483f;background:snow;border:1px solid #d8c5c0;border-radius:13px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:48px;margin-top:10px;font-weight:700;transition:color .2s,border-color .2s,background .2s;display:flex}.finish-button:hover{color:#6f392f;background:#fff5f2;border-color:#bd9288}.finish-button svg{width:18px;height:18px}.finish-button.is-hidden{display:none}.safety-note{color:#748078;text-align:center;margin:16px 2px 0;font-size:10px;line-height:1.5}.safety-layer{z-index:60;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#12241c9e;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.safety-layer.is-hidden,.safety-block.is-hidden{display:none}.safety-card{width:min(680px,100%);max-height:calc(100dvh - 48px);color:var(--ink);background:#fcfdf9fa;border:1px solid #ffffffc2;border-radius:26px;padding:26px;overflow-y:auto;box-shadow:0 28px 80px #0e23184d}.safety-card>form>div>.eyebrow{text-align:center}.safety-card h2{font:600 32px/1.18 var(--font-display);text-align:center;text-wrap:balance;margin:0}.safety-intro{max-width:530px;color:var(--muted);text-align:center;margin:8px auto 18px;font-size:13px;line-height:1.55}.safety-section{border:0;border-top:1px solid var(--line);min-width:0;margin:0;padding:15px 0}.safety-section legend{color:#294b3c;width:100%;padding:0 0 10px;font-size:13px;font-weight:700}.safety-section--compact{padding-bottom:10px}.safety-choice-grid{gap:10px;display:grid}.safety-choice-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.safety-choice{cursor:pointer;background:#f7faf6;border:1px solid #d7e2d8;border-radius:15px;align-items:center;gap:11px;min-height:74px;padding:13px;display:flex;position:relative}.safety-choice:has(input:checked){border-color:var(--primary);background:#edf6ef;box-shadow:0 0 0 2px #34765c1a}.safety-choice--warning:has(input:checked){background:#fff5f2;border-color:#c88473;box-shadow:0 0 0 2px #a23d3514}.safety-choice input,.safety-acknowledgement input{width:18px;height:18px;accent-color:var(--primary);flex:none}.safety-choice span,.safety-choice strong,.safety-choice small{display:block}.safety-choice strong{font-size:12px;line-height:1.35}.safety-choice small{color:var(--muted);margin-top:3px;font-size:10px;line-height:1.35}.safety-choice--compact{min-height:50px}.safety-chip-grid{flex-wrap:wrap;gap:8px;display:flex}.safety-chip-grid label{cursor:pointer}.safety-chip-grid input{opacity:0;pointer-events:none;position:absolute}.safety-chip-grid span{color:#496258;background:#f8faf7;border:1px solid #d7e2d8;border-radius:999px;align-items:center;min-height:38px;padding:0 14px;font-size:11px;font-weight:700;display:inline-flex}.safety-chip-grid input:focus-visible+span{outline:3px solid color-mix(in srgb, var(--focus) 42%, transparent);outline-offset:3px}.safety-chip-grid input:checked+span{border-color:var(--primary);color:#245842;background:#e4f1e7}.safety-acknowledgement{color:#415b50;cursor:pointer;background:#f5f8f3;border:1px solid #d9e4da;border-radius:14px;align-items:flex-start;gap:11px;padding:13px;font-size:11px;line-height:1.45;display:flex}.safety-error{min-height:18px;color:var(--danger);margin:7px 2px 0;font-size:11px;font-weight:700}.safety-actions{grid-template-columns:1fr 1.5fr;gap:10px;display:grid}.safety-actions .primary-button,.safety-actions .secondary-button{width:100%;min-height:50px;margin:0}.safety-privacy{color:#718078;text-align:center;margin:12px 0 0;font-size:9px;line-height:1.45}.safety-block{text-align:center;max-width:500px;margin:0 auto;padding:26px 10px}.safety-block-icon{color:#fff;background:linear-gradient(145deg,#c17a68,#99473f);border-radius:22px 22px 22px 8px;place-items:center;width:62px;height:62px;margin:0 auto 16px;font-size:25px;display:grid}.safety-block>p:not(.eyebrow){color:var(--muted);margin:12px 0 0;font-size:13px;line-height:1.6}.safety-block .primary-button{min-width:220px;margin-top:24px}.report-layer{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#12241c8f;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.report-layer.is-hidden{display:none}.report-card{width:min(570px,100%);max-height:calc(100dvh - 48px);color:var(--ink);background:#fcfdf9fa;border:1px solid #ffffffb8;border-radius:24px;padding:34px;position:relative;overflow-y:auto;box-shadow:0 28px 80px #0e231847}.report-close{border:1px solid var(--line);width:44px;height:44px;color:var(--muted);background:#fff;border-radius:50%;place-items:center;padding:0;transition:color .2s,border-color .2s,background .2s;display:grid;position:absolute;top:18px;right:18px}.report-close:hover{color:var(--ink);background:var(--surface-soft);border-color:#b6c8ba}.report-close svg{width:20px;height:20px}.report-mark{color:#fff;background:linear-gradient(145deg,#4f896f,#286047);border-radius:20px 20px 20px 8px;place-items:center;width:60px;height:60px;margin:0 auto 14px;display:grid;box-shadow:0 12px 28px #34765c38}.report-mark svg{width:34px;height:34px}.report-card>.eyebrow{text-align:center;margin:0 0 6px}.report-card h2{font:600 32px/1.2 var(--font-display);text-align:center;margin:0}.report-summary{max-width:440px;color:var(--muted);text-align:center;margin:10px auto 0;font-size:14px;line-height:1.55}.report-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px;display:grid}.report-stats>div{background:var(--surface-soft);text-align:center;border:1px solid #d9e4da;border-radius:16px;align-content:center;gap:5px;min-height:88px;padding:14px;display:grid}.report-stats small{color:var(--muted);font-size:10px;line-height:1.3}.report-stats strong{color:#285f49;font:600 21px/1.15 var(--font-display);font-variant-numeric:tabular-nums}.report-highlight{background:#fbf8ef;border:1px solid #e4ded0;border-radius:16px;align-items:center;gap:13px;margin-top:12px;padding:14px 16px;display:flex}.report-highlight-icon{color:#8a6632;background:#f0e5cc;border-radius:12px;flex:none;place-items:center;width:38px;height:38px;display:grid}.report-highlight-icon svg{width:21px;height:21px}.report-highlight small,.report-highlight strong{display:block}.report-highlight small{color:#756c5d;letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:700}.report-highlight strong{margin-top:3px;font-size:13px;line-height:1.4}.report-quality{background:#f0f6f1;border:1px solid #ccded1;border-radius:16px;margin-top:10px;padding:13px 16px}.report-quality.is-hidden{display:none}.report-quality small,.report-quality strong,.report-quality span{display:block}.report-quality small{color:var(--primary);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:700}.report-quality strong{margin-top:4px;font-size:13px}.report-quality span{color:var(--muted);margin-top:3px;font-size:10px;line-height:1.4}.report-actions{grid-template-columns:1.25fr 1fr;gap:10px;margin-top:22px;display:grid}.report-actions .primary-button,.report-actions .secondary-button{width:100%;min-height:50px;margin:0}.report-privacy{color:#718078;text-align:center;justify-content:center;align-items:center;gap:7px;margin:14px 0 0;font-size:10px;display:flex}.report-privacy svg{flex:none;width:15px;height:15px}.toast{z-index:100;color:#fff;opacity:0;visibility:hidden;background:#1e382d;border-radius:12px;max-width:min(440px,100% - 32px);padding:12px 16px;font-size:13px;transition:opacity .2s,transform .2s,visibility .2s;position:fixed;bottom:28px;left:50%;transform:translate(-50%,24px);box-shadow:0 12px 34px #11281d3d}.toast.is-visible{opacity:1;visibility:visible;transform:translate(-50%)}@keyframes voice-wave{0%,to{height:7px}50%{height:23px}}@keyframes calibration-scan{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:1;transform:translateY(78px)}}@media (width<=980px){body{padding:0}.app-shell{border:0;border-radius:0;min-height:100dvh}.practice-layout{grid-template-columns:minmax(0,1.3fr) minmax(330px,.7fr)}.coach-stage{min-height:760px}.session-panel{padding:30px 24px 22px}.welcome-layer{padding-left:7%}.welcome-card{width:min(380px,62%)}.coach-cue{width:min(58%,430px)}}@media (width<=760px){.topbar{min-height:64px;padding:0 16px}.session-state{display:none}.practice-layout{display:block}.coach-stage{min-height:740px}.session-panel{border-top:1px solid var(--line);border-left:0}.welcome-layer{background:linear-gradient(0deg,#deede0fc 0,#deede0f0 48%,#deede01a 78%,#0000 100%);align-items:end;padding:78px 20px 92px}.welcome-card{width:100%}.welcome-card h1{font-size:clamp(38px,12vw,54px)}.welcome-card>p:not(.eyebrow){max-width:520px;font-size:15px}.coach-stage.is-calibrating{min-height:720px}.calibration-layer{background:linear-gradient(0deg,#e6f0e8fc 0,#e6f0e8f5 57%,#daeade7a 100%);justify-content:center;align-items:flex-end;padding:315px 16px 18px}.calibration-card{width:min(430px,100%);padding:19px}.calibration-figure{width:68px;height:78px;margin:5px auto 9px}.calibration-figure svg{width:58px;height:80px}.calibration-scan{display:none}.calibration-card h2{font-size:22px}.camera-card.is-calibrating{width:min(72%,290px);top:78px;bottom:auto;left:50%;transform:translate(-50%)}.camera-card{width:132px;bottom:91px;left:14px}.coach-cue{width:calc(100% - 28px);bottom:17px;left:auto;right:14px;transform:none}.pose-list{grid-template-columns:1fr 1fr}.pose-item{grid-template-columns:25px 1fr;min-height:70px}.pose-duration{display:none}.report-layer{align-items:end;padding:16px}.report-card{border-radius:22px;max-height:calc(100dvh - 32px);padding:28px 20px 22px}.safety-layer{align-items:end;padding:16px}.safety-card{border-radius:22px;max-height:calc(100dvh - 32px);padding:26px 20px 22px}}@media (width<=420px){.brand{font-size:15px}.brand-mark{width:36px;height:36px}.top-actions{gap:6px}.coach-stage{min-height:730px}.trainer-id{top:15px;left:14px}.current-pose{top:19px;right:14px}.trainer-id small{display:none}.current-pose strong{font-size:17px}.welcome-layer{padding:64px 16px 76px}.coach-options{gap:8px}.coach-option{border-radius:12px;min-height:62px;padding-left:2px;padding-right:2px}.coach-option svg{width:26px;height:26px}.coach-option span{font-size:9px}.primary-button{width:100%}.welcome-card>small{font-size:10px}.calibration-layer{padding-left:12px;padding-right:12px}.calibration-card{border-radius:18px;padding:16px}.calibration-card>p:not(.eyebrow){font-size:12px}.camera-card{width:118px;bottom:90px}.camera-caption{min-height:32px;padding:6px 8px}.coach-cue{gap:11px;padding:10px 13px}.coach-cue p{font-size:12px}.session-panel{padding:26px 16px 22px}.session-heading h2{font-size:29px}.pose-item{padding:7px 8px}.technique-card{grid-template-columns:40px minmax(0,1fr) auto;gap:9px}.technique-metrics{min-width:62px}.technique-metrics small{white-space:normal;max-width:65px}.report-layer{padding:8px}.report-card{border-radius:20px;max-height:calc(100dvh - 16px);padding:24px 16px 18px}.report-card h2{font-size:28px}.report-stats{grid-template-columns:1fr;gap:7px}.report-stats>div{text-align:left;grid-template-columns:1fr auto;align-items:center;min-height:64px}.report-stats strong{font-size:19px}.report-actions{grid-template-columns:1fr}.safety-layer{padding:8px}.safety-card{border-radius:20px;max-height:calc(100dvh - 16px);padding:24px 16px 18px}.safety-card h2{font-size:27px}.safety-choice-grid--two{grid-template-columns:1fr}.safety-choice{min-height:58px}.safety-actions{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
