:root{--ink:#171917;--paper:#f3f0e7;--cream:#e8e3d7;--white:#fbfaf6;--coral:#ef6b50;--teal:#3e7770;--lime:#dce85f;--line:rgba(23,25,23,.15);--muted:#696b65;--mono:"DM Mono",monospace;--sans:"Manrope",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.topbar{height:76px;padding:0 clamp(24px,5vw,76px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-weight:800;letter-spacing:-.05em;font-size:20px;color:var(--ink);text-decoration:none}.brand span{color:var(--coral)}nav{display:flex;align-items:center;gap:30px}nav a,.text-button{font-size:13px;font-weight:600;color:var(--ink);text-decoration:none;background:none;border:0}.text-button{border-bottom:1px solid var(--ink);padding:4px 0}
.hero{min-height:720px;display:grid;grid-template-columns:1.05fr .95fr;gap:8vw;align-items:center;padding:80px clamp(24px,7vw,112px);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(23,25,23,.09);border-radius:50%;left:-250px;top:60px}.eyebrow{font:500 11px/1 var(--mono);letter-spacing:.14em;margin:0 0 22px}.hero h1,.report-title h2,.method-section>h2,.insights h2{font-size:clamp(50px,6vw,88px);line-height:.95;letter-spacing:-.065em;margin:0;font-weight:600}.hero h1 em,.report-title h2 em{font-weight:400;color:var(--coral)}.lede{max-width:575px;font-size:18px;line-height:1.65;color:var(--muted);margin:34px 0}.hero-points{display:flex;gap:36px;font:12px var(--mono);text-transform:uppercase;letter-spacing:.05em}.hero-points span{display:flex;align-items:baseline;gap:8px}.hero-points b{font:600 28px var(--sans);letter-spacing:-.06em}
.upload-card{background:var(--white);padding:18px;box-shadow:0 24px 70px rgba(38,34,25,.12);transform:rotate(1deg)}.card-topline{display:flex;justify-content:space-between;padding:4px 2px 16px;font:10px var(--mono);letter-spacing:.12em}.dropzone{border:1px dashed #a5a69f;padding:52px 24px;text-align:center;outline:none;transition:.2s;background:linear-gradient(135deg,rgba(232,227,215,.18),transparent)}.dropzone:hover,.dropzone:focus,.dropzone.drag{border-color:var(--coral);background:rgba(239,107,80,.04)}.upload-mark{width:48px;height:48px;border:1px solid var(--ink);border-radius:50%;margin:auto;display:grid;place-items:center;font-size:24px}.dropzone h2{font-size:23px;letter-spacing:-.03em;margin:20px 0 7px}.dropzone p{font:11px var(--mono);color:var(--muted);margin:0 0 26px}.primary,.secondary{border:0;padding:15px 20px;font-weight:700;font-size:13px}.primary{background:var(--ink);color:white;display:inline-flex;gap:28px;align-items:center}.primary span{color:var(--lime)}.secondary{background:transparent;border:1px solid var(--ink)}.setup-note{display:grid;grid-template-columns:42px 1fr;gap:14px;padding:20px 4px 10px}.setup-note p{font-size:12px;line-height:1.5;margin:0}.note-index{width:32px;height:32px;border-radius:50%;background:var(--lime);display:grid;place-items:center;font:10px var(--mono)}.demo-link{width:100%;border:0;border-top:1px solid var(--line);background:transparent;padding:16px 0 2px;font-size:12px;color:var(--muted)}.demo-link strong{color:var(--ink)}
.workspace,.report{padding:70px clamp(24px,6vw,94px)}.workspace{background:var(--ink);color:var(--white)}.workspace-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}.workspace-head h2{margin:0;font-size:26px}.workspace .secondary{border-color:#777;color:#fff}.analysis-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);gap:22px}.video-panel,.checklist{background:#222522}.video-stage{height:min(54vw,560px);max-height:560px;position:relative;background:#0e100f;overflow:hidden}.video-stage video,.video-stage canvas{position:absolute;width:100%;height:100%;object-fit:contain}.video-stage canvas{pointer-events:none}.view-label{position:absolute;top:14px;left:14px;background:rgba(15,16,15,.72);padding:8px 10px;font:9px var(--mono);letter-spacing:.1em}.form-row{display:flex;gap:12px;padding:18px;align-items:flex-end}.form-row label{display:flex;flex-direction:column;gap:8px;font:10px var(--mono);letter-spacing:.08em;color:#aaa}.form-row select,.form-row input{height:46px;background:#303430;color:#fff;border:1px solid #4e534e;padding:0 12px;outline:none}.form-row select{width:130px}.input-unit{position:relative}.input-unit input{width:120px}.input-unit>span{position:absolute;right:10px;top:15px}.analyze-button{height:46px;margin-left:auto;background:var(--coral)}.analyze-button span{color:#fff}.checklist{padding:26px}.check{display:flex;gap:13px;padding:19px 0;border-top:1px solid #3c3f3c}.check>span{flex:none;width:24px;height:24px;border:1px solid #777;border-radius:50%;display:grid;place-items:center;font:11px var(--mono);color:var(--lime)}.check strong,.check small{display:block}.check strong{font-size:13px}.check small{color:#90938e;font-size:11px;margin-top:4px;line-height:1.4}.privacy-line{font:10px/1.6 var(--mono);color:#898c87;margin-top:36px}.progress-wrap{margin-top:26px}.progress-copy{display:flex;justify-content:space-between;font:10px var(--mono);letter-spacing:.1em;margin-bottom:10px}.progress-track{height:3px;background:#3a3d3a}.progress-track i{display:block;height:100%;width:0;background:var(--lime);transition:width .2s}
.report{background:var(--paper)}.report-title{display:flex;justify-content:space-between;align-items:flex-end;padding:25px 0 58px}.report-title h2{font-size:clamp(44px,5vw,72px)}.score-block{text-align:right}.score-block span{display:block;font:10px var(--mono);letter-spacing:.12em}.score-block strong{font-size:78px;letter-spacing:-.09em;color:var(--coral)}.score-block small{font:12px var(--mono)}.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--ink);color:#fff}.metric-strip article{padding:24px;border-right:1px solid #3d403d}.metric-strip article>span,.metric-strip article>i{display:block;font:10px var(--mono);letter-spacing:.08em}.metric-strip article>span{color:#9a9d98}.metric-strip article strong{display:block;font-size:30px;margin:12px 0 10px}.metric-strip article strong small{font:11px var(--mono);color:#aaa}.metric-strip article>i{font-style:normal;color:var(--lime)}.report-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:18px;margin-top:18px}.chart-card,.pose-card{background:var(--white);padding:26px}.card-heading{display:flex;justify-content:space-between;align-items:flex-start}.card-heading h3{margin:-8px 0 0;font-size:19px}.legend{display:flex;gap:17px;font:10px var(--mono)}.legend span:before{content:"";width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:6px}.hip-dot:before{background:var(--teal)}.shoulder-dot:before{background:var(--coral)}.wrist-dot:before{background:var(--ink)}#velocityChart{width:100%;margin-top:22px}.chart-caption{font:9px var(--mono);color:var(--muted);margin:0}.confidence{font:9px var(--mono);background:var(--lime);padding:7px}#impactCanvas{width:100%;height:300px;object-fit:contain;background:#e9e5dc;margin-top:22px}.pose-readouts{display:flex;justify-content:space-between;margin-top:14px;font:10px var(--mono)}.pose-readouts b{font:600 18px var(--sans);margin-right:4px}.insights{display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw;padding:100px 0}.insights h2{font-size:48px}.insight-item{display:grid;grid-template-columns:44px 1fr auto;gap:18px;padding:25px 0;border-top:1px solid var(--line);align-items:start}.insight-number{font:11px var(--mono);color:var(--coral)}.insight-item h3{font-size:16px;margin:0 0 7px}.insight-item p{font-size:13px;line-height:1.55;color:var(--muted);margin:0}.tag{font:9px var(--mono);padding:6px 8px;background:var(--cream);white-space:nowrap}.tag.good{background:var(--lime)}.method-note{border-top:1px solid var(--ink);display:grid;grid-template-columns:150px 1fr;gap:30px;padding:22px 0;font:11px/1.7 var(--mono)}.method-note p{margin:0;max-width:900px}.method-section{background:var(--coral);padding:100px clamp(24px,8vw,120px)}.method-section>h2{font-size:58px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(23,25,23,.3);margin-top:60px}.steps article{background:var(--coral);padding:28px}.steps span{font:11px var(--mono)}.steps h3{font-size:27px;margin:45px 0 10px}.steps p{font-size:13px;line-height:1.6;max-width:280px}footer{min-height:130px;padding:30px clamp(24px,5vw,76px);display:flex;align-items:center;justify-content:space-between;gap:30px;background:var(--ink);color:#fff}footer .brand{color:#fff}footer p,footer>span{font:10px var(--mono);color:#999}.toast{position:fixed;right:24px;bottom:24px;background:var(--ink);color:#fff;padding:15px 18px;max-width:380px;font-size:12px;box-shadow:0 12px 30px #0003;z-index:10}
@media(max-width:900px){.hero{grid-template-columns:1fr;padding-top:55px}.analysis-grid,.report-grid,.insights{grid-template-columns:1fr}.metric-strip{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:1fr}.report-title{align-items:flex-start}.insights{gap:45px}.method-section>h2{font-size:45px}}
@media(max-width:620px){nav a{display:none}.topbar{height:62px}.hero{padding:45px 20px 60px}.hero h1{font-size:52px}.hero-points{gap:16px;flex-wrap:wrap}.upload-card{transform:none}.workspace,.report{padding:55px 20px}.workspace-head,.report-title{display:block}.workspace-head button{margin-top:20px}.form-row{display:grid;grid-template-columns:1fr 1fr}.form-row select,.input-unit input{width:100%}.analyze-button{grid-column:1/-1;margin:0;justify-content:space-between}.video-stage{height:60vw}.metric-strip{grid-template-columns:1fr 1fr}.metric-strip article{padding:18px}.report-title .score-block{text-align:left;margin-top:30px}.score-block strong{font-size:60px}.chart-card,.pose-card{padding:18px}.legend{display:none}.method-note{grid-template-columns:1fr}.method-section{padding:70px 20px}footer{align-items:flex-start;flex-direction:column}.insight-item{grid-template-columns:32px 1fr}.insight-item .tag{grid-column:2}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.primary:disabled{cursor:wait;opacity:.78}.analyze-button{min-width:174px;justify-content:space-between}.analyze-button.busy .button-arrow{animation:pulse-arrow .8s ease-in-out infinite alternate}@keyframes pulse-arrow{to{transform:translateX(5px);opacity:.45}}
.clip-editor{padding:20px 18px 16px;border-bottom:1px solid #3b3f3b;background:#1c1f1c}.clip-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.clip-heading>div{display:flex;align-items:baseline;gap:14px}.clip-heading span{font:10px var(--mono);letter-spacing:.1em;color:#a2a5a0}.clip-heading strong{font:500 11px var(--mono);color:var(--lime)}.clip-heading button{border:0;border-bottom:1px solid #858984;background:transparent;color:#fff;padding:2px 0;font:10px var(--mono)}.range-wrap{position:relative;height:22px}.range-rail,.range-selection{position:absolute;top:9px;height:4px}.range-rail{left:0;right:0;background:#454945}.range-selection{background:var(--coral);pointer-events:none}.range-wrap input[type="range"]{position:absolute;inset:0;width:100%;height:22px;margin:0;background:transparent;appearance:none;pointer-events:none}.range-wrap input[type="range"]::-webkit-slider-runnable-track{height:4px;background:transparent}.range-wrap input[type="range"]::-webkit-slider-thumb{width:18px;height:18px;margin-top:-7px;border:3px solid var(--ink);border-radius:50%;background:var(--white);appearance:none;pointer-events:auto;cursor:ew-resize;box-shadow:0 0 0 1px #fff}.range-wrap input[type="range"]::-moz-range-track{height:4px;background:transparent}.range-wrap input[type="range"]::-moz-range-thumb{width:14px;height:14px;border:3px solid var(--ink);border-radius:50%;background:var(--white);pointer-events:auto;cursor:ew-resize}.range-times{display:grid;grid-template-columns:80px 1fr 80px;align-items:center;margin-top:6px;font:9px var(--mono);color:#878b86}.range-times output:last-child{text-align:right}.range-times span{text-align:center}.range-times output{color:#fff;font-size:10px}
@media(max-width:620px){.clip-heading>div{display:block}.clip-heading strong{display:block;margin-top:6px}.range-times{grid-template-columns:60px 1fr 60px}.range-times span{font-size:8px}.analyze-button{min-width:0}}
.live-entry{display:flex;align-items:center;justify-content:center;gap:9px;margin:12px auto 0;padding:8px 4px;border:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);font-size:12px;font-weight:700}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px rgba(239,107,80,.14)}.live-feedback .live-status{display:flex;align-items:center;gap:11px;padding-bottom:20px;border-bottom:1px solid #3c3f3c}.live-status b{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase}.live-feedback.is-running .live-dot{animation:live-pulse 1.2s ease-out infinite}.live-help{margin:18px 0 26px;color:#999d98;font-size:11px;line-height:1.55}.live-score{padding:18px 0;border-top:1px solid #3c3f3c;border-bottom:1px solid #3c3f3c}.live-score>span{display:block;font:9px var(--mono);letter-spacing:.12em;color:#999}.live-score strong{font-size:66px;line-height:1;color:var(--coral);letter-spacing:-.08em}.live-score small{font:10px var(--mono);color:#999}.live-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#3c3f3c;margin:14px 0}.live-stats span{background:#222522;padding:14px 8px;font:9px var(--mono);color:#929690}.live-stats b{display:block;color:#fff;font:600 18px var(--sans);margin-bottom:3px}.live-cue{background:#171917;padding:16px;border-left:3px solid var(--lime);transition:.2s}.live-cue span{font:9px var(--mono);letter-spacing:.1em;color:var(--lime)}.live-cue p{font-size:12px;line-height:1.5;margin:7px 0 0}.live-cue.flash{background:#30351d}.video-stage.live:after{content:"LIVE";position:absolute;right:14px;top:14px;padding:7px 9px;background:var(--coral);color:#fff;font:9px var(--mono);letter-spacing:.1em}.video-stage.live .view-label{display:none}@keyframes live-pulse{70%{box-shadow:0 0 0 10px rgba(239,107,80,0)}}
.live-mode .topbar{display:none}.live-mode .workspace{min-height:100dvh;height:100dvh;padding:14px clamp(16px,2.2vw,34px);display:flex;flex-direction:column;overflow:hidden}.live-mode .workspace-head{flex:none;margin-bottom:10px;min-height:38px}.live-mode .workspace-head .eyebrow{margin-bottom:7px}.live-mode .workspace-head h2{font-size:18px}.live-mode .workspace-head .secondary{padding:9px 13px;font-size:11px}.live-mode .analysis-grid{flex:1;min-height:0;grid-template-columns:minmax(0,1fr) clamp(270px,23vw,340px);gap:12px}.live-mode .video-panel{min-height:0;display:flex;flex-direction:column}.live-mode .video-stage{flex:1;min-height:0;height:auto;max-height:none}.live-mode .form-row{flex:none;padding:10px 14px}.live-mode .form-row label{gap:5px}.live-mode .form-row select,.live-mode .form-row input{height:38px}.live-mode .input-unit>span{top:12px}.live-mode .analyze-button{height:38px;padding:10px 16px}.live-mode .checklist{min-height:0;padding:18px;overflow:hidden}.live-mode .live-feedback{height:100%;display:flex;flex-direction:column}.live-mode .live-feedback .live-status{padding-bottom:12px}.live-mode .live-help{margin:12px 0 14px}.live-mode .live-score{padding:12px 0}.live-mode .live-score strong{font-size:clamp(42px,7vh,64px)}.live-mode .live-stats{margin:10px 0}.live-mode .live-stats span{padding:10px 7px}.live-mode .live-cue{padding:12px}.live-mode .privacy-line{margin-top:auto;padding-top:10px;margin-bottom:0}.live-mode .progress-wrap{position:fixed;z-index:20;left:24px;right:24px;bottom:12px;margin:0;padding:12px 16px;background:rgba(23,25,23,.94)}
@media(max-width:900px){.live-mode .workspace{height:auto;min-height:100dvh;overflow:visible}.live-mode .analysis-grid{grid-template-columns:1fr}.live-mode .video-stage{height:52dvh;min-height:300px}.live-mode .checklist{overflow:visible}.live-mode .privacy-line{margin-top:18px}}
@media(max-width:620px){.live-mode .workspace{padding:10px}.live-mode .workspace-head{margin-bottom:8px}.live-mode .workspace-head>div{max-width:65%}.live-mode .video-stage{height:40dvh;min-height:230px}.live-mode .form-row{padding:8px}.live-mode .checklist{padding:14px}.live-mode .live-help{display:none}.live-mode .privacy-line{display:none}.live-mode .live-score strong{font-size:42px}}
.live-mode{overflow:hidden}.live-mode .workspace{position:fixed;inset:0;z-index:50}.live-mode .report,.live-mode .method-section,.live-mode footer{display:none}.live-chart{padding:10px 0 8px;border-top:1px solid #3c3f3c}.live-chart>div{display:flex;justify-content:space-between;align-items:center}.live-chart span{font:9px var(--mono);letter-spacing:.1em;color:#c9ccc6}.live-chart small{font:8px var(--mono);color:#777b76}.live-chart svg{display:block;width:100%;height:min(15vh,125px);margin-top:5px;background:#1c1f1c}.live-mode .live-stats span{min-width:0}.live-mode .live-cue p{line-height:1.35}
@media(max-height:720px) and (min-width:901px){.live-mode .live-help{display:none}.live-mode .live-score strong{font-size:42px}.live-mode .live-stats span{padding:7px}.live-mode .live-chart svg{height:100px}.live-mode .privacy-line{display:none}}
.video-stage.recorded:after{content:"RECORDED";position:absolute;right:14px;top:14px;padding:7px 9px;background:var(--teal);color:#fff;font:9px var(--mono);letter-spacing:.1em}.hit-navigator{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px;margin:0 0 10px}.hit-navigator button{width:34px;height:28px;border:1px solid #4b4f4b;background:transparent;color:#fff}.hit-navigator button:hover{border-color:var(--lime);color:var(--lime)}.hit-navigator span{text-align:center;font:9px var(--mono);letter-spacing:.08em;color:#c9ccc6}
.gesture-countdown{position:absolute;z-index:5;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle,rgba(23,25,23,.18),rgba(23,25,23,.7));pointer-events:none}.gesture-countdown strong{display:grid;place-items:center;width:clamp(110px,16vw,190px);height:clamp(110px,16vw,190px);border:4px solid var(--lime);border-radius:50%;background:rgba(23,25,23,.72);color:#fff;font-size:clamp(68px,10vw,124px);line-height:1;letter-spacing:-.08em;box-shadow:0 0 0 12px rgba(220,232,95,.12);animation:countdown-pop .35s ease-out}.gesture-countdown span{margin-top:22px;padding:8px 11px;background:var(--ink);color:var(--lime);font:10px var(--mono);letter-spacing:.14em}@keyframes countdown-pop{from{transform:scale(.86);opacity:.3}}
.capture-prompt,.capture-cancel,.capture-flip{display:none}.capture-focus .video-stage{position:fixed;z-index:55;inset:0;width:100vw;height:100dvh;max-height:none;background:#080a09}.capture-focus .video-stage video{object-fit:cover}.capture-focus .video-stage.selfie video{transform:scaleX(-1)}.capture-focus .video-stage canvas{display:none}.capture-focus .capture-prompt{display:block;position:absolute;z-index:7;left:50%;bottom:28px;transform:translateX(-50%);padding:11px 15px;background:rgba(23,25,23,.82);color:#fff;font:500 11px var(--mono);letter-spacing:.12em;white-space:nowrap}.capture-focus .capture-cancel,.capture-focus .capture-flip{display:block;position:absolute;z-index:8;top:18px;border:1px solid rgba(255,255,255,.55);background:rgba(23,25,23,.65);color:#fff;padding:10px 14px;font:10px var(--mono)}.capture-focus .capture-cancel{right:18px}.capture-focus .capture-flip{right:100px}.capture-focus .capture-flip:disabled{opacity:.45}.capture-focus .video-stage.live:after{left:18px;right:auto;top:18px}.recorded-timeline{flex:none;padding:10px 14px 8px;background:#1c1f1c;border-bottom:1px solid #3b3f3b}.timeline-labels{display:flex;justify-content:space-between;font:9px var(--mono);letter-spacing:.09em;color:#a2a5a0}.timeline-labels output{color:#fff}.timeline-rail{position:relative;height:18px;margin-top:7px;background:linear-gradient(to bottom,transparent 7px,#4b4f4b 7px,#4b4f4b 11px,transparent 11px)}.timeline-rail>i{position:absolute;left:0;top:7px;height:4px;width:0;background:var(--coral);pointer-events:none}.timeline-rail #hitMarkers{position:absolute;inset:0}.timeline-rail button{position:absolute;top:1px;transform:translateX(-50%);width:17px;height:17px;padding:0;border:2px solid #1c1f1c;border-radius:50%;background:#c5c8c2;color:#171917;font:7px var(--mono)}.timeline-rail button.active{background:var(--lime);box-shadow:0 0 0 3px rgba(220,232,95,.18)}.timeline-rail button span{position:absolute;top:-15px;left:50%;transform:translateX(-50%);color:#b9bcb7}.recorded-timeline p{margin:4px 0 0;font:8px var(--mono);color:#777b76}
