@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/saif-golfs-swing-analyser/assets/barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(/saif-golfs-swing-analyser/assets/barlow-latin-400-normal-fsAxiSwU.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/saif-golfs-swing-analyser/assets/barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(/saif-golfs-swing-analyser/assets/barlow-latin-600-normal-CNwfPWQD.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/saif-golfs-swing-analyser/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/saif-golfs-swing-analyser/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff")}:root{--ground:#22302b;--line:#5a6e65;--chalk:#f4f5ef;--muted:#bcc8c1;--action:#ffd23f;--ink:#1c2622;--font-display:"Barlow Condensed", "Arial Narrow", sans-serif;--font-body:"Barlow", system-ui, sans-serif;--gutter:20px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--ground);height:100%;color:var(--chalk);font:400 17px/1.45 var(--font-body);-webkit-text-size-adjust:100%;overscroll-behavior:none;margin:0}#app{height:100vh;height:100dvh;padding-top:env(safe-area-inset-top);flex-direction:column;display:flex}.masthead{padding:14px var(--gutter) 0;font:600 24px/1 var(--font-display)}#app:not([data-screen=intro]) .masthead{display:none}.stage{background:#000;flex:1 1 0;min-height:0;position:relative}.stage video,.stage canvas{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.stage video{object-fit:contain}.stage canvas{pointer-events:none}.panel{width:100%;max-width:34rem;padding:16px var(--gutter) calc(16px + env(safe-area-inset-bottom));flex-direction:column;gap:12px;margin:0 auto;display:flex}#app[data-screen=intro] .panel{flex:1 1 0;min-height:0}#app[data-screen=error] .panel{flex:1 1 0;justify-content:center}.hero{flex:1 1 0;width:100%;min-height:0}h1,h2{font-family:var(--font-display);margin:0;font-weight:600}h1{font-size:clamp(3.1rem,15vw,4.75rem);line-height:.95}h2{font-size:2rem;line-height:1.05}p{margin:0}.lede{max-width:60ch}.note{color:var(--muted);font-size:.94rem}.details{overflow-wrap:anywhere}.status{font:600 1.5rem/1 var(--font-display);padding:12px 0}.button{width:100%;min-height:56px;font:600 1.5rem/56px var(--font-display);text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:3px;padding:0 16px;display:block}.button-primary{background:var(--action);color:var(--ink)}.button-quiet{min-height:44px;color:var(--chalk);font:600 1rem/44px var(--font-body);text-underline-offset:3px;background:0 0;text-decoration:underline}.button:active{opacity:.8}.button:focus-visible{outline:3px solid var(--chalk);outline-offset:2px}.button:has(input:focus-visible){outline:3px solid var(--chalk);outline-offset:2px}.scrubber:focus-visible{outline:3px solid var(--chalk);outline-offset:2px}.segmented input:focus-visible+span{outline:3px solid var(--chalk);outline-offset:2px}.visually-hidden{clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.segmented{border:0;min-width:0;margin:0;padding:0}.segmented legend{color:var(--muted);padding:0 0 6px;font-size:.94rem}.segmented-row{display:flex}.segmented-row label{cursor:pointer;flex:1 1 0;position:relative}.segmented-row span{border:1px solid var(--line);height:48px;font:600 1.25rem/46px var(--font-display);text-align:center;border-left-width:0;display:block}.segmented-row label:first-child span{border-left-width:1px;border-radius:3px 0 0 3px}.segmented-row label:last-child span{border-radius:0 3px 3px 0}.segmented-row input:checked+span{background:var(--chalk);border-color:var(--chalk);color:var(--ink)}.progress{background:var(--line);border-radius:2px;height:10px;overflow:hidden}.progress-fill{background:var(--action);transform-origin:0;height:100%;transform:scaleX(0)}.scrub-row{align-items:center;gap:12px;display:flex}.scrubber{min-width:0;height:44px;accent-color:var(--action);flex:auto;margin:0}.time{text-align:right;min-width:3.4em;font:600 1.25rem/1 var(--font-display);font-variant-numeric:tabular-nums;flex:none}.transport{grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:end;gap:12px;display:grid}.transport .button{min-height:48px;line-height:48px}.transport legend{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}#app[data-screen=preview] .panel,#app[data-screen=ball] .panel{max-height:74vh;flex:0 auto;max-height:74dvh;overflow-y:auto}#app[data-screen=results] .stage{flex:0 0 48dvh}#app[data-screen=results] .panel{-webkit-overflow-scrolling:touch;flex:1 1 0;min-height:0;overflow-y:auto}.stage.tappable{cursor:crosshair}.more summary{min-height:44px;color:var(--muted);cursor:pointer;line-height:44px}.button-small{border:1px solid var(--line);min-height:44px;color:var(--chalk);font:600 1.05rem/42px var(--font-display);white-space:nowrap;background:0 0;padding:0 6px}.button-key{border:1px solid var(--line);min-height:48px;color:var(--chalk);font:600 1.25rem/46px var(--font-display);background:0 0;padding:0}.button-key.is-active{background:var(--chalk);border-color:var(--chalk);color:var(--ink)}.key-frames{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.adjust{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.report{flex-direction:column;gap:12px;padding-top:8px;display:flex}.warning{border-top:2px solid #ffb020;border-bottom:2px solid #ffb020;padding:10px 0}.coaching{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.metrics{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.metrics th,.metrics td{border-bottom:1px solid var(--line);text-align:right;vertical-align:top;padding:10px 0;font-weight:400}.metrics thead th{color:var(--muted);font-size:.94rem}.metrics th:first-child{text-align:left;padding-right:12px}.metrics tbody th{font-weight:600}.metrics tbody th .note{font-weight:400;line-height:1.3;display:block}.metrics td{white-space:nowrap;padding-left:12px}.dot{border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.in-range .dot{background:#3fd07a}.flagged .dot{background:#ffb020}.record-canvas{z-index:10;width:100vw;height:100vh;background:#000;height:100dvh;position:fixed;top:0;bottom:0;left:0;right:0}.record-canvas.is-exporting{object-fit:contain}.safe-probe{visibility:hidden;padding-top:env(safe-area-inset-top);position:fixed}
