:root{color-scheme:dark;--cps-bg: #29343F;--cps-surface: #34414D;--cps-raised: #3D4B58;--cps-deep: #222D37;--cps-line: #485560;--cps-text: #E9EDEB;--cps-muted: #ABB7C0;--cps-sage: #A8BFA5;--cps-sage-hi: #B8CEB5;--cps-lavender: #B4AEC8;--cps-ink: #E9EDEB;--cps-court: #A8BFA5;--cps-clay: #B4AEC8;--cps-ball: #B8CEB5;--cps-slate: #ABB7C0;--cps-mist: #29343F;--cps-white: #34414D;--cps-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace}body{-webkit-font-smoothing:antialiased}h1,h2,h3{letter-spacing:-0.01em;text-wrap:balance}.mono{font-family:var(--cps-mono);font-variant-numeric:tabular-nums}.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#abb7c0}.lead{color:#abb7c0}:focus-visible{outline:2px solid #a8bfa5;outline-offset:2px}.btn:focus-visible,.form-control:focus-visible,.form-select:focus-visible,.form-check-input:focus-visible{outline:none}.btn-court{--bs-btn-color: #222D37;--bs-btn-bg: #A8BFA5;--bs-btn-border-color: #A8BFA5;--bs-btn-hover-color: #222D37;--bs-btn-hover-bg: #B8CEB5;--bs-btn-hover-border-color: #B8CEB5;--bs-btn-active-color: #222D37;--bs-btn-active-bg: #B8CEB5;--bs-btn-active-border-color: #B8CEB5;--bs-btn-disabled-color: #222D37;--bs-btn-disabled-bg: #A8BFA5;--bs-btn-disabled-border-color: #A8BFA5;--bs-btn-focus-shadow-rgb: 168, 191, 165}.btn-outline-ink,.btn-outline-slate{--bs-btn-color: #E9EDEB;--bs-btn-bg: transparent;--bs-btn-border-color: #485560;--bs-btn-hover-color: #E9EDEB;--bs-btn-hover-bg: #3D4B58;--bs-btn-hover-border-color: #485560;--bs-btn-active-color: #E9EDEB;--bs-btn-active-bg: #3D4B58;--bs-btn-active-border-color: #A8BFA5;--bs-btn-disabled-color: #ABB7C0;--bs-btn-disabled-border-color: #485560;--bs-btn-focus-shadow-rgb: 168, 191, 165}.btn-outline-slate{--bs-btn-color: #ABB7C0}.btn-link{--bs-btn-color: #A8BFA5;--bs-btn-hover-color: #B8CEB5}.cps-nav{background:#34414d;border-bottom:1px solid #485560}.cps-nav .navbar-brand{font-weight:700;letter-spacing:-0.02em;color:#e9edeb}.cps-nav .navbar-brand .dot{display:inline-block;width:.6em;height:.6em;border-radius:50%;background:#a8bfa5;margin-left:.15em;vertical-align:baseline}.cps-nav .nav-link{color:#abb7c0;font-weight:500;border-radius:.375rem}.cps-nav .nav-link.active,.cps-nav .nav-link:hover{color:#e9edeb}.cps-nav .nav-link:hover{background:#3d4b58}.cps-nav .navbar-toggler{color:#abb7c0}.panel{background:#34414d;border:1px solid #485560;border-radius:.625rem}.panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.8rem 1rem;border-bottom:1px solid #485560}.panel-body{padding:1rem}.alert{border-radius:.625rem}.alert-ball{background:#34414d;border-color:#485560;color:#abb7c0;box-shadow:inset 3px 0 0 #a8bfa5}.dropzone{border:1.5px dashed #485560;border-radius:.625rem;padding:2rem 1rem;text-align:center;color:#abb7c0;background:rgba(0,0,0,0);transition:border-color .15s,background .15s,color .15s;cursor:pointer}.dropzone strong{color:#e9edeb}.dropzone:hover,.dropzone.over,.dropzone:focus-visible{border-color:#a8bfa5;background:#3d4b58;color:#e9edeb;outline:none}.dropzone .ti{font-size:2rem;display:block;margin-bottom:.25rem;color:#a8bfa5}.dropzone.busy{cursor:progress}.pane{background:#222d37;position:relative;border-radius:.625rem;border:1px solid #485560;overflow:hidden;aspect-ratio:4/3;max-width:100%}.pane video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.pane video.mirrored{transform:scaleX(-1)}.pane canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.pane .tag{position:absolute;left:10px;top:8px;font:600 12px var(--cps-mono);color:#e9edeb;background:rgba(34,45,55,.85);padding:3px 8px;border-radius:4px;display:flex;gap:8px;align-items:center}.pane .tag i{width:9px;height:9px;border-radius:2px;display:inline-block}.pane .fr{position:absolute;right:10px;bottom:8px;font:500 12px var(--cps-mono);color:#e9edeb;background:rgba(34,45,55,.85);padding:3px 8px;border-radius:4px}.pane .empty{position:absolute;inset:0;display:grid;place-items:center;color:#abb7c0;font-size:.9rem;text-align:center;padding:1rem}.transport{display:grid;gap:.6rem}.phases{display:flex;flex-wrap:wrap;gap:.4rem}.phases .btn.cur{background:#a8bfa5;border-color:#a8bfa5;color:#222d37;font-weight:600}.timeline input[type=range]{width:100%;accent-color:#a8bfa5}.ticks{position:relative;height:18px;font:500 11px var(--cps-mono);color:#abb7c0}.ticks span{position:absolute;transform:translateX(-50%);white-space:nowrap}.ticks span::before{content:"";position:absolute;left:50%;top:-8px;width:1px;height:6px;background:#abb7c0}.nudge b{font-family:var(--cps-mono);min-width:3ch;display:inline-block;text-align:center;color:#e9edeb}.form-check-label{color:#e9edeb}.finding{background:#34414d;border:1px solid #485560;border-radius:.625rem;padding:.9rem 1rem;display:grid;gap:.35rem;align-content:start;cursor:pointer;height:100%;transition:background .15s}.finding:hover{background:#3d4b58}.finding.hot{border-color:#a8bfa5;box-shadow:inset 3px 0 0 #a8bfa5}.finding .k{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#abb7c0}.finding .v{display:flex;gap:.9rem;font-family:var(--cps-mono);font-size:.95rem;font-variant-numeric:tabular-nums}.finding .v .me{color:#b4aec8}.finding .v .ref{color:#a8bfa5}.finding p{margin:0;font-size:.9rem;color:#e9edeb}.metrics th{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#abb7c0;font-weight:600}.metrics td.num{font-family:var(--cps-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.metrics td.bar{width:28%;min-width:140px}.metrics .bar div{position:relative;height:8px;background:#3d4b58;border-radius:4px}.metrics .bar i{position:absolute;top:0;height:8px;border-radius:4px;background:#b4aec8}.metrics tr.hl td{background:#445359}.metrics tr{cursor:pointer}.metrics tbody tr:hover td{background:#3d4b58}.metrics .hint{color:#abb7c0;font-size:.8rem}.swing-list{display:grid;gap:.4rem}.swing-item{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;border:1px solid #485560;border-radius:.375rem;background:rgba(0,0,0,0);cursor:pointer;transition:background .15s,border-color .15s}.swing-item:hover,.swing-item:focus-visible{background:#3d4b58}.swing-item.active{border-color:#b4aec8;box-shadow:inset 3px 0 0 #b4aec8;background:#3d4b58}.swing-item.excluded{opacity:.5}.swing-item .ti{color:#abb7c0}.swing-item .score{margin-left:auto;font-family:var(--cps-mono);font-weight:600}.score-pill{display:inline-block;min-width:3.2em;text-align:center;padding:.15em .55em;border-radius:999px;font-family:var(--cps-mono);font-weight:600;font-size:.85rem;background:#3d4b58;color:#e9edeb}.score-pill.good{background:#546466;color:#b8ceb5}.score-pill.mid{background:#3d4b58;color:#e9edeb}.score-pill.low{background:#58575f;color:#d9a5a1}.chart canvas{width:100%;height:170px;display:block}.legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.75rem;color:#abb7c0}.legend span::before{content:"";display:inline-block;width:14px;height:3px;margin-right:6px;vertical-align:middle;background:currentColor}.progress-note{font-family:var(--cps-mono);font-size:.8rem;color:#abb7c0}.login-card{max-width:420px;margin:4rem auto}@media(prefers-reduced-motion: reduce){*{transition:none !important}}.honeypot{opacity:0;position:absolute;top:0;left:0;height:0;width:0;z-index:-1}.landing section{padding:4rem 0}.landing .eyebrow.sage{color:#a8bfa5}.landing .hero{padding:3.5rem 0 8.25rem;position:relative;overflow:hidden}.hero>.container{position:relative;z-index:1}.hero canvas.ball{position:absolute;bottom:10px;right:16px;pointer-events:none;z-index:2}.hero h1{font-size:clamp(2rem,1.2rem + 2.6vw,3.1rem);font-weight:700;line-height:1.12}.hero .lead{font-size:1.1rem;max-width:34rem}.hero .cta-row{display:flex;flex-wrap:wrap;gap:.6rem}.hero .note{font-size:.85rem;color:#abb7c0}.hero .note .ti{color:#a8bfa5}.demo .panel-head{padding:.65rem .9rem}.demo .pane{aspect-ratio:4/3}.demo .pane svg{position:absolute;inset:0;width:100%;height:100%}.demo .pane .tag{z-index:1}.demo .pane .fr{z-index:1;min-width:4.2em;text-align:right}.demo .phases .btn{pointer-events:none}.demo .scrub input[type=range]{width:100%;accent-color:#a8bfa5}.demo .fake-select{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .6rem;border:1px solid #485560;border-radius:.375rem;background:#3d4b58;font-size:.875rem;color:#e9edeb;white-space:nowrap}.demo .fake-select .ti{color:#abb7c0}.pane canvas.body,.mini-pane canvas.body{position:absolute;inset:0;width:100%;height:100%;display:block}.skel line{stroke-width:2.2;stroke-linecap:round}.skel .flag circle,.skel .flag line{stroke:#e26b61;stroke-width:2.4}.skel .tick circle,.skel .tick polyline{stroke:#b8ceb5;stroke-width:2.4;stroke-linejoin:round}.skel .flag,.skel .tick{transform-box:fill-box;transform-origin:center;animation:cps-mark .45s cubic-bezier(0.2, 0.8, 0.2, 1) both}.skel .leader{stroke:#e26b61;stroke-width:1.2;stroke-dasharray:3 3;opacity:.85}@keyframes cps-mark{from{opacity:0;transform:scale(2.4)}to{opacity:1;transform:none}}.pane .coach{position:absolute;left:10px;top:34px;max-width:44%;z-index:2;pointer-events:none;background:rgba(34,45,55,.94);border:1px solid #485560;border-left:3px solid #e26b61;border-radius:.5rem;padding:.55rem .75rem .65rem;opacity:0;transform:translateY(8px);transition:opacity .35s ease .25s,transform .35s ease .25s}.pane .coach.show{opacity:1;transform:none}.pane .coach .k{font:600 .6rem var(--cps-mono);letter-spacing:.06em;text-transform:uppercase;color:#e26b61;margin-bottom:.2rem}.pane .coach .k .ti{font-size:.8rem;vertical-align:-1px}.pane .coach h4{font-size:.86rem;font-weight:600;margin:0 0 .2rem;color:#e9edeb}.pane .coach p{margin:0;font-size:.74rem;line-height:1.38;color:#abb7c0}.pane .coach p b{color:#e9edeb;font-family:var(--cps-mono);font-weight:600}@media(max-width: 575.98px){.pane .coach{max-width:50%;padding:.3rem .45rem;top:30px}.pane .coach p,.pane .coach .k{display:none}.pane .coach h4{font-size:.72rem;margin:0}}.skel .hi circle{fill:var(--cps-ball);stroke:var(--cps-deep);stroke-width:2}.skel .measure line{stroke:var(--cps-ball);stroke-width:1.5;stroke-dasharray:4 3}.skel .measure text{font:600 11px var(--cps-mono);fill:var(--cps-ball)}.paper{background:#fff;color:#222d37}.paper h2,.paper h3{color:#222d37}.paper .eyebrow{color:#5b6873}.paper p{color:#5b6873}.paper .feature{background:#f4f6f8;border:1px solid #e1e6ea;border-radius:.625rem;height:100%;display:flex;flex-direction:column;overflow:hidden}.paper .feature .art{padding:1.25rem 1.25rem 0}.paper .feature .art>svg{display:block;width:100%;height:auto}.paper .feature .txt{padding:1rem 1.25rem 1.25rem;margin-top:auto}.paper .feature h3{font-size:1.05rem;margin:0 0 .25rem}.paper .feature p{margin:0;font-size:.92rem}.paper .mini-pane{background:#222d37;border-radius:.5rem;position:relative;aspect-ratio:4/3;overflow:hidden}.paper .mini-pane svg{position:absolute;inset:0;width:100%;height:100%}.paper .mini-pane .tag{position:absolute;left:8px;top:6px;font:600 10px var(--cps-mono);color:#e9edeb;display:flex;gap:6px;align-items:center}.paper .mini-pane .tag i{width:8px;height:8px;border-radius:2px;display:inline-block}.paper .mini-transport{margin-top:.6rem;display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}.paper .mini-transport .chip{font-size:.68rem;font-weight:600;padding:.18rem .45rem;border:1px solid #e1e6ea;border-radius:.3rem;background:#fff;color:#222d37}.paper .mini-transport .chip.cur{background:#6e8f6b;border-color:#6e8f6b;color:#fff}.paper .mini-transport .track{width:100%;height:6px;border-radius:3px;background:#e1e6ea;position:relative;margin-top:.3rem}.paper .mini-transport .track i{position:absolute;left:0;top:0;height:6px;width:45%;border-radius:3px;background:#6e8f6b}.paper .mini-transport .track i::after{content:"";position:absolute;right:-6px;top:-4px;width:14px;height:14px;border-radius:50%;background:#6e8f6b;border:2px solid #f4f6f8}.paper .score-big{display:flex;align-items:baseline;gap:.6rem;font-family:var(--cps-mono);font-weight:600;font-size:2.6rem;color:#222d37;line-height:1}.paper .score-big small{font:600 .72rem var(--cps-mono);letter-spacing:.06em;text-transform:uppercase;color:#5b6873}.paper .bars{display:grid;gap:.6rem;margin-top:1rem}.paper .bars .row-m{display:grid;grid-template-columns:7.5rem 1fr 4.2rem;align-items:center;gap:.6rem;font-size:.8rem;color:#222d37}.paper .bars .row-m .track{position:relative;height:8px;background:#e1e6ea;border-radius:4px}.paper .bars .row-m .track i{position:absolute;top:0;height:8px;border-radius:4px;background:#7e76a0}.paper .bars .row-m .track b{position:absolute;top:-3px;width:3px;height:14px;border-radius:2px;background:#6e8f6b}.paper .bars .row-m .num{font-family:var(--cps-mono);font-variant-numeric:tabular-nums;color:#5b6873;text-align:right}.paper .key{display:flex;gap:1rem;font-size:.75rem;color:#5b6873;margin-top:.6rem}.paper .key span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px;background:#7e76a0}.paper .key span.ref::before{background:#6e8f6b}.paper .finding-lite{margin-top:1rem;padding:.7rem .85rem;border-left:3px solid #6e8f6b;background:#fff;border-radius:0 .375rem .375rem 0;font-size:.85rem;color:#222d37}.paper .finding-lite b{display:block;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:#5b6873;margin-bottom:.15rem}.paper .spark text{font:500 11px var(--cps-mono);fill:#5b6873}.paper .spark .grid line{stroke:#e1e6ea;stroke-width:1}.paper .spark .line{fill:none;stroke:#7e76a0;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.paper .spark .area{fill:#7e76a0;opacity:.08}.paper .spark .dot{fill:#7e76a0;stroke:#f4f6f8;stroke-width:2}.paper .spark .dot.last{fill:#6e8f6b}.paper .spark .lbl{font:600 12px var(--cps-mono);fill:#222d37}.paper .measures{display:flex;flex-wrap:wrap;gap:.45rem}.paper .measures span{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border:1px solid #e1e6ea;border-radius:999px;background:#fff;font-size:.85rem;color:#222d37}.paper .measures span .ti{color:#6e8f6b}.how{background:#222d37;border-top:1px solid #485560;border-bottom:1px solid #485560}.how .step{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start}.how .step .n{width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;background:#34414d;border:1px solid #485560;color:#a8bfa5;font:600 1rem var(--cps-mono)}.how .step h3{font-size:1rem;margin:0 0 .2rem}.how .step p{margin:0;color:#abb7c0;font-size:.92rem}.cta{background:#34414d}.cta h2{font-size:clamp(1.5rem,1rem + 1.6vw,2.1rem)}.foot{padding:1.5rem 0;border-top:1px solid #485560;color:#abb7c0;font-size:.85rem}.foot a{color:#abb7c0}.foot a:hover{color:#e9edeb}@media(max-width: 767.98px){.landing section{padding:2.75rem 0}.landing .hero{padding:2rem 0 6.5rem}}
