:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f5f7fb;background:#07090d;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{background:#07090d}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top,#182233,#090c12 42%,#05070a)}button{font:inherit}.app-shell{width:min(100%,780px);margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 16px max(40px,env(safe-area-inset-bottom))}.hero-card{padding:8px 4px 18px}.brand-row{display:flex;gap:14px;align-items:center}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#72f1b8;color:#07120e;font-size:25px;font-weight:950;box-shadow:0 0 35px #72f1b833}.eyebrow{margin:0 0 3px;font-size:11px;letter-spacing:.2em;color:#72f1b8;font-weight:850}h1{margin:0;font-size:clamp(24px,6vw,38px);line-height:1.02;letter-spacing:-.045em}.subtitle{color:#9da8b7;line-height:1.55;margin:14px 0 0;max-width:650px}.workout-card,.info-card{border:1px solid #202834;border-radius:26px;background:#0b0f15e0;box-shadow:0 20px 80px #00000052;overflow:hidden}.camera-stage{position:relative;width:100%;aspect-ratio:3 / 4;background:#020305;overflow:hidden}.camera-feed,.pose-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.pose-layer{pointer-events:none}.mirrored{transform:scaleX(-1)}.camera-placeholder{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:10px;padding:32px;color:#dce3ed;background:radial-gradient(circle at center,#111b22,#06090d 68%)}.camera-placeholder small{color:#8491a1;max-width:280px}.person-icon{display:grid;margin:0 auto 8px;font-size:40px;color:#72f1b8;line-height:.75}.person-icon span{display:block}.live-pill{position:absolute;top:14px;left:14px;display:flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#030609b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:11px;font-weight:750;color:#c9d1dc}.dot{width:7px;height:7px;border-radius:50%;background:#ffd166;box-shadow:0 0 10px currentColor}.live-pill.ready .dot{background:#72f1b8}.feedback{position:absolute;left:14px;right:14px;bottom:14px;padding:13px 15px;text-align:center;border-radius:15px;background:#030609c7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-weight:850;border:1px solid rgba(255,255,255,.1)}.feedback.good{color:#72f1b8;border-color:#72f1b859}.feedback.warn{color:#ffd166;border-color:#ffd16659}.feedback.bad{color:#ff7b85;border-color:#ff5c6861}.score-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#202834}.score{min-height:112px;padding:18px;background:#0b0f15;display:flex;flex-direction:column;justify-content:space-between}.score span{color:#778394;font-size:10px;letter-spacing:.11em;font-weight:850}.score strong{font-size:34px;letter-spacing:-.05em}.score.primary strong{color:#72f1b8;font-size:48px}.phase-text{font-size:16px!important;letter-spacing:.02em!important}.reason-box,.error-box{margin:16px 16px 0;padding:13px 14px;border-radius:14px;font-size:13px;line-height:1.4}.reason-box{display:flex;flex-direction:column;gap:4px;background:#19130d;border:1px solid #49341d;color:#ffdba0}.error-box{background:#241014;border:1px solid #54232a;color:#ff9ba3}.actions{display:grid;grid-template-columns:1.4fr 1fr;gap:10px;padding:16px}.button{min-height:50px;border-radius:15px;border:0;padding:0 16px;font-weight:850;cursor:pointer}.button:disabled{opacity:.55;cursor:wait}.primary-button{background:#72f1b8;color:#06120d}.ghost{background:#151b24;color:#d9e1eb;border:1px solid #283241}.danger{background:#ff5c68;color:#190508}.info-card{margin-top:16px;padding:20px}.info-card h2{margin:0 0 14px;font-size:18px}.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.checks span{padding:10px 11px;border-radius:11px;background:#111820;color:#bfc8d4;font-size:12px}.info-card p{margin:16px 0 0;color:#7f8b9b;font-size:12px;line-height:1.55}.disclaimer{color:#5f6977;font-size:11px;line-height:1.5;text-align:center;padding:10px 14px 0}@media(min-width:650px){.camera-stage{aspect-ratio:16 / 10}.score-grid{grid-template-columns:repeat(4,1fr)}.score-grid .score{min-height:125px}}.segmented{display:inline-flex;gap:4px;padding:4px;border-radius:14px;background:#111820;border:1px solid #202834}.segmented button,.segmented label{min-height:38px;padding:0 16px;border:0;border-radius:10px;background:transparent;color:#9da8b7;font-weight:800;font-size:13px;cursor:pointer;display:inline-flex;align-items:center}.segmented .active{background:#72f1b8;color:#06120d}.segmented.small button,.segmented.small label{min-height:34px;font-size:12px}.mode-switch{margin-top:16px}.button.small{min-height:36px;padding:0 12px;font-size:12px;border-radius:11px;display:inline-flex;align-items:center}.file-button{display:inline-flex;align-items:center;justify-content:center}.compare-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px;border-bottom:1px solid #202834}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{min-height:32px;padding:0 12px;border-radius:999px;border:1px solid #283241;background:#151b24;color:#c9d1dc;font-size:12px;font-weight:750;cursor:pointer}.chip.active{border-color:#72f1b8;color:#72f1b8;background:#72f1b814}.compare-stages{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#202834}.compare-stage{position:relative;aspect-ratio:3 / 4;background:#020305;overflow:hidden}.stage-canvas{position:absolute;inset:0;width:100%;height:100%}.hidden-media{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.stage-label{position:absolute;top:10px;left:10px;padding:5px 9px;border-radius:999px;background:#030609b8;border:1px solid rgba(255,255,255,.12);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:#c9d1dc}.stage-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;padding:16px;text-align:center;background:radial-gradient(circle at center,#111b22,#06090d 68%);color:#dce3ed;cursor:pointer}.stage-empty.static{cursor:default}.stage-empty small{color:#8491a1;font-size:12px;max-width:220px}.stage-progress{position:absolute;left:10px;right:10px;bottom:10px;padding:10px;border-radius:12px;background:#030609cc;font-size:12px;font-weight:750;color:#c9d1dc;display:grid;gap:6px}.stage-progress .bar{height:5px;border-radius:99px;background:#202834;overflow:hidden}.stage-progress .bar div{height:100%;background:#72f1b8;transition:width .15s}.ref-controls{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid #202834}.ref-controls input[type=range]{width:100%;accent-color:#72f1b8}.ref-controls .time{font-size:12px;color:#9da8b7;font-variant-numeric:tabular-nums}.compare-summary{display:flex;gap:16px;align-items:center;padding:16px;border-bottom:1px solid #202834}.compare-summary p{margin:0;color:#bfc8d4;font-size:13px;line-height:1.45}.summary-score{display:grid;min-width:96px}.summary-score span{color:#778394;font-size:10px;letter-spacing:.11em;font-weight:850}.summary-score strong{font-size:38px;letter-spacing:-.05em}.compare-summary.good .summary-score strong{color:#72f1b8}.compare-summary.warn .summary-score strong{color:#ffd166}.compare-summary.bad .summary-score strong{color:#ff7b85}.group-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#202834;border-bottom:1px solid #202834}.group-cell{padding:12px 14px;background:#0b0f15;display:grid;gap:4px}.group-cell span{color:#778394;font-size:10px;letter-spacing:.08em;font-weight:850;text-transform:uppercase}.group-cell strong{font-size:20px}.group-cell.good strong{color:#72f1b8}.group-cell.warn strong{color:#ffd166}.group-cell.bad strong{color:#ff7b85}.metric-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.metric-table th{padding:10px 14px;text-align:right;color:#778394;font-size:10px;letter-spacing:.1em;font-weight:850;text-transform:uppercase}.metric-table th:first-child,.metric-table td:first-child{text-align:left}.metric-table td{padding:9px 14px;text-align:right;border-top:1px solid #161d27;color:#c9d1dc}.metric-table td:first-child{display:flex;align-items:center;gap:8px}.tone-dot{width:8px;height:8px;border-radius:50%;background:#3a4452;flex:none}.metric-table tr.good .tone-dot{background:#72f1b8}.metric-table tr.warn .tone-dot{background:#ffd166}.metric-table tr.bad .tone-dot{background:#ff5c68}.metric-table tr.good .diff{color:#72f1b8}.metric-table tr.warn .diff{color:#ffd166}.metric-table tr.bad .diff{color:#ff7b85}.compare-sources{padding:16px 16px 0}@media(max-width:420px){.ref-controls{grid-template-columns:auto 1fr auto}.ref-controls .time{display:none}.compare-summary{flex-direction:column;align-items:flex-start;gap:6px}}.segmented a{min-height:38px;padding:0 14px;border-radius:10px;color:#9da8b7;font-weight:800;font-size:13px;display:inline-flex;align-items:center;text-decoration:none}.segmented a.active{background:#72f1b8;color:#06120d}.mode-switch{flex-wrap:wrap}a.button{text-decoration:none}.muted{color:#8491a1}.help{margin:0 0 12px;color:#8491a1;font-size:13px;line-height:1.5}.catalog-head{display:flex;justify-content:space-between;align-items:center;margin:4px 4px 14px}.catalog-head h2{margin:0;font-size:20px}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.exercise-card{display:flex;flex-direction:column;border:1px solid #202834;border-radius:20px;overflow:hidden;background:#0b0f15e0;color:inherit;text-decoration:none;transition:border-color .15s,transform .15s}.exercise-card:hover{border-color:#72f1b8;transform:translateY(-2px)}.exercise-cover{aspect-ratio:4 / 3;background:#020305}.exercise-cover img{width:100%;height:100%;object-fit:cover;display:block}.exercise-info{padding:14px;display:grid;gap:6px}.exercise-info small{color:#8491a1}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{padding:4px 9px;border-radius:999px;background:#72f1b81a;color:#72f1b8;font-size:11px;font-weight:750}.muted-tag{background:#151b24;color:#bfc8d4}.exercise-detail{margin-bottom:16px}.detail-cover{width:100%;max-height:320px;object-fit:cover;display:block}.detail-body{padding:18px}.detail-body h2{margin:6px 0 4px;font-size:24px;letter-spacing:-.02em}.detail-body h3{margin:18px 0 6px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#778394}.detail-body p{margin:0;color:#bfc8d4;line-height:1.55;font-size:14px}.back-link{color:#72f1b8;font-size:13px;text-decoration:none;font-weight:750}.position-strip{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.position-strip li{display:grid;gap:6px;font-size:12px;color:#c9d1dc;font-weight:700}.position-strip .return-step{place-content:center;text-align:center;color:#8491a1;border:1px dashed #283241;border-radius:12px;padding:10px}.pose-thumb{width:100%;aspect-ratio:3 / 4;border-radius:12px;background:#020305;display:block}.demo-video{width:100%;border-radius:14px;background:#000}.target-strip{list-style:none;margin:0;padding:10px 14px;display:flex;gap:8px;overflow-x:auto;border-bottom:1px solid #202834}.target-strip li{flex:1 0 auto;min-width:110px;padding:9px 11px;border-radius:12px;border:1px solid #202834;background:#0b0f15;display:grid;gap:2px;font-size:12px;color:#9da8b7}.target-strip li strong{font-size:18px;color:#dce3ed}.target-strip li.target{border-color:#ffd166}.target-strip li.matched{border-color:#72f1b8;background:#72f1b814}.target-strip li.matched strong{color:#72f1b8}.form-card{padding-bottom:4px}.form-section{padding:18px 16px;border-bottom:1px solid #202834;display:grid;gap:12px}.form-section h2{margin:0;font-size:16px}.field{display:grid;gap:6px}.field>span{color:#778394;font-size:11px;letter-spacing:.08em;font-weight:850;text-transform:uppercase}.field input:not([type=file]),.field textarea,.position-body input{width:100%;padding:11px 12px;border-radius:12px;border:1px solid #283241;background:#0b0f15;color:#f5f7fb;font:inherit;font-size:14px}.field input:focus,.field textarea:focus,.position-body input:focus{outline:2px solid #72f1b8;outline-offset:-1px}.field input[type=file]{color:#9da8b7;font-size:13px}.position-sources{display:flex;flex-wrap:wrap;gap:8px}.video-capture{display:grid;gap:8px}.video-capture video{width:100%;max-height:420px;border-radius:14px;background:#000}.position-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.position-item{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:10px;border-radius:14px;border:1px solid #202834;background:#0b0f15}.position-item.missing,.position-item.error{border-color:#54232a}.position-body{display:grid;gap:6px;align-content:start}.position-body small{color:#8491a1;font-size:12px}.position-item.ok .position-body small{color:#72f1b8}.position-item.missing .position-body small,.position-item.error .position-body small{color:#ff7b85}.position-actions{display:flex;gap:6px}.position-actions .chip:disabled{opacity:.4;cursor:default}.sequence{margin:0;font-size:13px;color:#9da8b7}.sequence strong{color:#dce3ed}.camera-grid{position:relative;display:grid;gap:1px;background:#202834}.camera-grid.cams-2,.camera-grid.cams-3{grid-template-columns:1fr 1fr}.camera-grid.cams-3 .camera-stage:first-child{grid-column:1 / -1}.camera-grid .camera-stage.unused{display:none}.camera-grid .feedback{z-index:2}.camera-check{position:absolute;top:10px;right:10px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:850;background:#030609c7;border:1px solid rgba(255,255,255,.12)}.camera-check.ok{color:#72f1b8;border-color:#72f1b859}.camera-check.bad{color:#ff7b85;border-color:#ff5c6873}.camera-setup{display:grid;gap:8px;padding:14px 16px;border-bottom:1px solid #202834}.camera-setup small{color:#8491a1;font-size:12px}.camera-choice{display:grid;grid-template-columns:minmax(90px,auto) 1fr;gap:10px;align-items:center;font-size:13px;color:#c9d1dc}select{width:100%;min-height:38px;padding:0 10px;border-radius:10px;border:1px solid #283241;background:#0b0f15;color:#f5f7fb;font:inherit;font-size:13px}.focus-box{margin:14px 16px 0;padding:12px 14px;border-radius:14px;background:#72f1b814;border:1px solid rgba(114,241,184,.3);color:#cdf7e4;font-size:13px;line-height:1.45}.mode-tabs{margin:0 0 12px}.mode-tabs button{min-height:40px}.angle-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.angle-list li{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:#0b0f15;border:1px solid #202834;font-size:13px;color:#bfc8d4}.angle-list strong{color:#f5f7fb}.focus-note{color:#72f1b8;font-weight:700;line-height:1.35}.angle-card{display:grid;gap:10px;padding:12px;border-radius:14px;border:1px solid #202834;background:#0b0f15}.angle-head{display:flex;gap:8px;align-items:center}.angle-head input{flex:1;padding:9px 11px;border-radius:10px;border:1px solid #283241;background:#06090d;color:#f5f7fb;font:inherit;font-size:14px}.position-item{grid-template-columns:1fr}.position-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.position-row input{flex:1 1 180px}.position-row select{flex:0 1 180px}.ref-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}.ref-slot{display:grid;gap:5px;align-content:start;padding:8px;border-radius:12px;border:1px dashed #283241}.ref-slot.ok{border-style:solid;border-color:#72f1b859}.ref-slot.missing{border-style:solid;border-color:#54232a}.ref-slot-title{font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:#9da8b7}.ref-slot small{font-size:11px;color:#8491a1}.ref-slot.ok small{color:#72f1b8}.ref-slot.missing small{color:#ff7b85}.ref-slot .chip{min-height:28px;padding:0 9px;font-size:11px;display:inline-flex;align-items:center}.empty-thumb{display:grid;place-items:center;color:#5f6977;font-size:11px;border:1px solid #161d27}.paywall{padding:22px 18px;display:grid;gap:12px;justify-items:start}.paywall h3,.upload-head h3{margin:0;font-size:18px}.paywall p{margin:0;color:#bfc8d4;line-height:1.55;font-size:14px}.paywall small,.upload-head small{color:#8491a1;font-size:12px}.premium-badge{padding:4px 10px;border-radius:999px;background:#ffd1661f;color:#ffd166;font-size:11px;font-weight:850;letter-spacing:.04em}.upload-card{padding-bottom:8px}.upload-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px;border-bottom:1px solid #202834}.upload-head>div{display:grid;gap:6px;justify-items:start}.upload-empty{padding:16px;margin:0}.upload-list{display:grid;gap:1px;background:#202834}.upload-item{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:14px 16px;background:#0b0f15}.upload-media{position:relative;border-radius:14px;overflow:hidden;background:#020305}.upload-media img,.upload-canvas{display:block;width:100%;aspect-ratio:3 / 4;object-fit:contain}.upload-media video{display:block;width:100%;max-height:480px;background:#000}.upload-overlay{position:absolute;inset:0 0 48px;width:100%;height:calc(100% - 48px);pointer-events:none}.upload-body{display:grid;gap:10px;align-content:start}.upload-row{display:flex;justify-content:space-between;gap:8px;align-items:center}.upload-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-progress.inline{position:static}.upload-result{display:grid;gap:10px}.upload-result p{margin:0;font-size:13px;line-height:1.45}.bad-text{color:#ff7b85}.position-scores{list-style:none;margin:0;padding:0;display:grid;gap:6px}.position-scores li{display:flex;justify-content:space-between;padding:8px 11px;border-radius:10px;background:#111820;font-size:13px;color:#bfc8d4}.position-scores li.best{background:#72f1b81a;color:#72f1b8}.upload-stats{display:flex;gap:16px;font-size:13px;color:#bfc8d4}.upload-stats strong{font-size:22px;color:#f5f7fb;margin-right:4px}.rep-events{list-style:none;margin:0;padding:0;display:grid;gap:6px}.rep-events li{display:flex;gap:8px;align-items:center;font-size:13px}.rep-events li.good span{color:#72f1b8}.rep-events li.bad span{color:#ff9ba3}@media(min-width:650px){.upload-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.prepare-panel{position:absolute;left:12px;right:12px;bottom:12px;z-index:3;display:grid;gap:8px;padding:14px;border-radius:16px;background:#030609db;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12)}.prepare-panel>strong{font-size:16px}.prepare-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14px;color:#9da8b7;font-weight:700}.prepare-panel li.ok{color:#72f1b8}.prepare-panel small{font-size:12px;line-height:1.4}.prepare-panel .bar{height:5px;border-radius:99px;background:#202834;overflow:hidden}.prepare-panel .bar div{height:100%;background:#72f1b8;transition:width .1s}.countdown{position:absolute;inset:0;z-index:3;display:grid;place-items:center;font-size:clamp(120px,40vw,260px);font-weight:950;color:#72f1b8;text-shadow:0 0 40px rgba(0,0,0,.8);background:#03060959;pointer-events:none}.big-counter{position:absolute;top:44px;left:10px;z-index:3;display:grid;justify-items:center;padding:6px 22px 10px;border-radius:22px;background:#030609b8;border:1px solid rgba(114,241,184,.35);pointer-events:none}.big-counter strong{font-size:clamp(56px,18vw,110px);line-height:1;color:#72f1b8;font-weight:950;letter-spacing:-.04em}.big-counter span{font-size:12px;font-weight:800;color:#c9d1dc}.session-summary{padding:16px 0 0}.session-summary h3{margin:0 16px 12px;font-size:18px}.summary-events{padding:14px 16px 0}.app-shell{padding-bottom:max(96px,env(safe-area-inset-bottom))}.help-fab{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:50;width:52px;height:52px;border-radius:50%;border:0;background:#72f1b8;color:#06120d;font-size:24px;font-weight:950;cursor:pointer;box-shadow:0 10px 30px #00000073,0 0 0 4px #72f1b826}.help-fab:focus-visible{outline:3px solid #f5f7fb;outline-offset:2px}.help-panel{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(max(16px,env(safe-area-inset-bottom)) + 64px);z-index:50;width:min(380px,calc(100vw - 32px));max-height:min(620px,calc(100vh - 110px));overflow-y:auto;display:grid;gap:12px;align-content:start;padding:14px;border-radius:20px;background:#0b0f15;border:1px solid #283241;box-shadow:0 20px 60px #0000008c}.help-panel .segmented{justify-self:start}.help-faq{display:grid;gap:8px}.help-faq details{border-radius:12px;background:#111820;padding:10px 12px}.help-faq summary{cursor:pointer;font-weight:800;font-size:14px}.help-faq p{margin:8px 0 0;color:#bfc8d4;font-size:13px;line-height:1.5}.help-form{display:grid;gap:10px}.help-form textarea{resize:vertical}.check{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#9da8b7;line-height:1.4}.honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.error-box.inline{margin:0}.help-done{display:grid;gap:8px;justify-items:start}.help-done p{margin:0;color:#bfc8d4;font-size:14px}.help-done a{color:#72f1b8;font-weight:800}.detail-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.share-button{min-width:130px;justify-content:center}
