@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(../media/space-grotesk-latin-400-normal.0nlbkvxqdexvu.woff2)format("woff2"),url(../media/space-grotesk-latin-400-normal.2235qcybq8ygl.woff)format("woff")}
@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(../media/space-grotesk-latin-500-normal.31yp0bkv7z4ku.woff2)format("woff2"),url(../media/space-grotesk-latin-500-normal.1_3k4-aqyhjfx.woff)format("woff")}
@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(../media/space-grotesk-latin-600-normal.31umv2m7yy2ah.woff2)format("woff2"),url(../media/space-grotesk-latin-600-normal.0x_mo8waoj-3s.woff)format("woff")}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#f3f6fc;--white:#fff;--ink:#14233d;--muted:#526079;--action:#174bd1;--line:#c9d3e4;--score-emphasis:#dfe8ff;--error:#a52936;--surface:#e6ecf7;--hover:#dbe5f8;--accent-light:#edf2ff;--control-line:#8899b4;--orange:#ffb783;--error-ground:#fff0f1;--body:"Space Grotesk", sans-serif;--display:"Space Grotesk", sans-serif}*{box-sizing:border-box;scrollbar-color:var(--control-line) var(--canvas);scrollbar-width:thin}body{background:var(--canvas);color:var(--ink);font-family:var(--body);margin:0;font-size:16px;line-height:1.5}::selection{background:var(--action);color:var(--white)}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}button,input,select,textarea{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.48}button:not(:disabled):active,a.primary:active,a.secondary:active{transform:translateY(1px)}:where(button,a,input,select,textarea,summary,svg):focus-visible{outline:3px solid var(--action);outline-offset:3px}input,textarea{caret-color:var(--action)}svg{flex-shrink:0}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.035em;text-wrap:balance;margin-bottom:12px;font-size:clamp(2.2rem,4vw,3.5rem);font-weight:600;line-height:1.12}h2{letter-spacing:-.02em;margin-bottom:18px;font-size:1.3rem;font-weight:600;line-height:1.3}h3{margin-bottom:0;font-size:1rem}p{max-width:70ch}small{font-size:.8125rem}strong{font-weight:600}button svg{width:20px;height:20px}.muted{color:var(--muted);font-size:.875rem}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{max-width:1420px;margin:0 auto;padding:0 48px 0 236px}.app-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:90px;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:12px;font-size:1.25rem;font-weight:600;text-decoration:none;display:flex}.brand-mark{flex-shrink:0;width:36px;height:36px}.brand-mark img{width:100%;height:100%;display:block}.device-badge{color:var(--muted);align-items:center;gap:8px;font-size:.8125rem;display:flex}.status-dot{background:var(--action);border-radius:50%;width:7px;height:7px}main{padding:38px 0 80px}.page-heading{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:32px;display:flex}.page-heading>div{min-width:0}.page-heading h1{overflow-wrap:anywhere}.page-heading p{color:var(--muted);max-width:55ch;margin-bottom:0}.page-heading .compact{white-space:nowrap}.bottom-nav{z-index:10;flex-direction:column;gap:6px;width:166px;display:flex;position:fixed;top:126px;left:max(24px,50vw - 686px)}.bottom-nav a{min-height:56px;color:var(--muted);border-radius:6px;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;display:flex}.bottom-nav a:hover{background:var(--surface)}.bottom-nav a[aria-current=page]{background:var(--action);color:var(--white);font-weight:600}.primary,.secondary,.danger{border-radius:6px;justify-content:center;align-items:center;gap:10px;min-height:52px;padding:12px 18px;font-weight:600;text-decoration:none;transition:background-color .15s ease-out;display:inline-flex}.primary{background:var(--action);color:var(--white);border:1px solid var(--action)}.primary:hover:not(:disabled){background:var(--ink);border-color:var(--ink)}.secondary{background:var(--white);color:var(--ink);border:1px solid var(--control-line)}.secondary:hover:not(:disabled){background:var(--hover)}.danger{color:var(--error);background:var(--white);border:1px solid var(--error)}.danger:hover:not(:disabled){background:var(--error-ground)}.danger-text{color:var(--error)}.wide{width:100%}.compact{min-height:48px;padding:10px 14px;font-size:.875rem}.icon-button{background:0 0;border:0;border-radius:6px;place-items:center;width:48px;min-height:48px;display:grid}.icon-button:hover{background:var(--hover)}.text-button,.back-button{min-height:44px;color:var(--action);background:0 0;border:0;justify-content:center;align-items:center;gap:8px;padding:8px 4px;font-size:.875rem;font-weight:600;display:inline-flex}.text-button:hover,.back-button:hover{text-decoration:underline}.back-button{margin-bottom:16px}.button-row{gap:10px;margin:14px 0;display:flex}.button-row>*{flex:1}.setup-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;gap:48px;display:grid}.setup-form{background:var(--white);border-radius:12px;padding:28px}form{flex-direction:column;gap:20px;display:flex}label{font-size:.875rem;font-weight:500;display:block}input:not([type=checkbox]):not(.sr-only),select,textarea{border:1px solid var(--control-line);background:var(--white);border-radius:5px;width:100%;min-width:0;height:50px;margin-top:6px;padding:10px 12px;font-size:1rem;display:block}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}textarea{resize:vertical;height:120px}select{padding-right:24px}input[type=checkbox]{accent-color:var(--action);flex-shrink:0;width:22px;height:22px}.optional{float:right;color:var(--muted);font-weight:400}.field-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.setup-stage{border:0;gap:14px;min-width:0;margin:0;padding:0;display:grid}.setup-stage legend{margin-bottom:14px;padding:0;font-size:1rem;font-weight:600}.setup-stage legend span,.step-marker{background:var(--accent-light);width:28px;height:28px;color:var(--action);border-radius:3px;flex-shrink:0;place-items:center;margin-right:10px;font-size:.875rem;display:inline-grid}.distance-presets{gap:8px;display:flex}.distance-presets button{border:1px solid var(--line);background:var(--canvas);border-radius:5px;flex:1;min-height:44px;font-size:.875rem}.distance-presets button[aria-pressed=true]{background:var(--action);border-color:var(--action);color:var(--white)}.session-options{border-top:1px solid var(--line)}.session-options summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:.875rem;font-weight:500}.session-options summary span{color:var(--muted);margin-left:8px;font-weight:400}.session-options label{margin-bottom:12px}.start-stage{align-items:center;display:flex}.setup-note{margin:16px 0 0;font-size:.8125rem}.range-sign{background:var(--action);color:var(--white);border-radius:12px;padding:34px 30px}.range-sign h2{letter-spacing:-.035em;margin-bottom:40px;font-size:clamp(1.8rem,3vw,2.65rem);line-height:1.12}.range-sign ol{margin:0;padding:0;list-style:none}.range-sign li{border-top:1px solid #6388e5;padding:20px 0}.range-sign li strong{margin-bottom:6px;font-size:1.15rem;display:block}.range-sign li span{color:#e1eaff;font-size:.9375rem}.range-sign a{justify-content:space-between;align-items:center;gap:14px;min-height:48px;margin-top:24px;font-size:.875rem;display:flex}.range-sign a:focus-visible{outline-color:var(--white)}.recent-strip{border-top:1px solid var(--line);margin-top:32px;padding-top:24px}.recent-strip a{justify-content:space-between;align-items:center;gap:16px;min-height:48px;text-decoration:none;display:flex}.recent-strip a span{color:var(--muted);align-items:center;gap:8px;font-size:.875rem;display:flex}.target{aspect-ratio:1;touch-action:manipulation;width:100%;max-width:400px;margin:0 auto;display:block}.target.interactive{cursor:crosshair}.keyboard-cursor{display:none}.target:focus-visible .keyboard-cursor{display:block}.entry-mode{display:none}.session-readout{border-block:1px solid var(--line);align-items:center;gap:36px;margin-bottom:24px;padding:18px 0;display:flex}.session-readout h2{min-width:120px;margin:0;font-size:1.125rem}.session-readout h2 span{color:var(--muted);margin-top:4px;font-size:.8125rem;font-weight:400;display:block}.session-readout .score-strip{border:0;flex:1;max-width:580px;padding:0}.score-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:40px;display:grid}.score-entry{order:1}.target-panel{background:var(--white);border-radius:12px;order:2;padding:24px}.section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.section-heading h2,.section-heading h3{margin:0}.section-heading>span{color:var(--muted);font-size:.8125rem}.target-help{text-align:center;color:var(--muted);margin:12px 0 18px;font-size:.8125rem}.score-strip{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-top:16px;display:grid}.score-strip strong,.statistics strong{font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:2rem;font-weight:600;line-height:1.2;display:block}.score-strip span,.statistics span{color:var(--muted);font-size:.8125rem;display:block}.session-status{color:var(--action);background:var(--accent-light);white-space:nowrap;border-radius:4px;padding:8px 12px;font-size:.8125rem}.score-entry h2{margin-bottom:14px;font-size:1.1rem}.arrow-slots{grid-template-columns:repeat(var(--slots,6),minmax(0,1fr));gap:6px;margin-bottom:18px;display:grid}.arrow-slots button{border:1px dashed var(--control-line);opacity:1;background:0 0;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:58px;transition:background-color .16s ease-out;display:flex}.arrow-slots small{color:var(--muted);font-size:.75rem}.arrow-slots span{font-size:1.25rem;font-weight:600;line-height:1}.arrow-slots button.filled{background:var(--white);border-style:solid}.arrow-slots button.selected{background:var(--action);border-color:var(--action);color:var(--white)}.arrow-slots button.selected small{color:var(--white)}.score-keypad{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.score-keypad button{border:1px solid var(--line);background:var(--white);font-variant-numeric:tabular-nums;border-radius:6px;min-height:64px;font-size:1.65rem;font-weight:600}.score-keypad .gold-key{background:var(--score-emphasis);border-color:var(--line)}.score-keypad button:hover:not(:disabled){background:var(--hover);border-color:var(--action)}.save-note{color:var(--muted);min-height:20px;margin:12px 0 0;font-size:.8125rem}.search-label{max-width:560px;margin-bottom:26px}.session-list{border-top:1px solid var(--line)}.session-row{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;align-items:center;gap:20px;width:100%;padding:22px 16px;display:flex}.session-row:hover{background:var(--hover)}.session-row-main{flex:1;min-width:0}.session-row-main strong{overflow-wrap:anywhere;font-size:1.125rem;display:block}.session-row-main>span,.session-row-main small{color:var(--muted);margin-top:5px;font-size:.8125rem;display:block}.session-row-main small{color:var(--action)}.session-row-score{text-align:right;flex-shrink:0}.session-row-score strong{font-variant-numeric:tabular-nums;font-size:1.75rem;display:block}.session-row-score span{color:var(--muted);font-size:.8125rem;display:block}.review-layout,.insights-layout,.settings-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;display:grid}.statistics{border-block:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0 32px;padding:20px 0;display:grid}.end-record{border-bottom:1px solid var(--line);padding:18px 0}.end-values{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.end-values span{text-align:center;min-width:32px;font-size:1.15rem}.end-values strong{font-variant-numeric:tabular-nums;margin-left:auto;font-size:1.75rem}.end-photo{object-fit:contain;background:var(--surface);border-radius:5px;width:100%;max-height:220px;margin-top:16px}.notes-label{margin-top:26px}.empty-state{max-width:600px;padding:50px 0}.empty-state>svg{color:var(--action);margin-bottom:20px}.empty-state h2{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.15}.empty-state p{color:var(--muted);max-width:44ch;margin-bottom:28px}.filter-row{gap:16px;margin-bottom:24px;display:flex}.filter-row label{flex:1;min-width:0;max-width:240px}.distribution>div{align-items:center;gap:14px;margin-bottom:12px;font-size:.875rem;display:flex}.distribution>div>span{text-align:right;width:24px}.distribution>div>div{background:var(--surface);border-radius:2px;flex:1;height:12px;overflow:hidden}.distribution i{background:var(--action);height:100%;display:block}.distribution strong{text-align:right;font-variant-numeric:tabular-nums;width:28px}.gold-summary{border-top:1px solid var(--line);margin:28px 0;padding-top:20px}.gold-summary strong{margin-right:10px;font-size:2rem}.gold-summary span{color:var(--muted);font-size:.8125rem;display:block}.switch-row{align-items:center;gap:10px;min-height:48px;font-size:.875rem;display:flex}.switch-row span{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.switch-row small{color:var(--muted)}.comparison{grid-template-columns:1fr 1fr;gap:20px;padding-top:18px;display:grid}.comparison h3{margin-bottom:8px;font-size:.875rem}.comparison strong{font-variant-numeric:tabular-nums;font-size:2rem}.comparison span{color:var(--muted);font-size:.8125rem;display:block}.settings-section{border-top:1px solid var(--line);margin-bottom:32px;padding-top:24px}.settings-section p{color:var(--muted);font-size:.9375rem}.settings-section>svg{color:var(--action);margin-bottom:12px}.bow-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.bow-row strong{overflow-wrap:anywhere}.bow-row span,.bow-row small{color:var(--muted);margin-top:4px;font-size:.8125rem;display:block}.bow-row small{color:var(--action);font-weight:500}.bow-form{padding-top:24px}.watch-section{margin-top:36px}.settings-actions{flex-direction:column;gap:12px;display:flex}.settings-actions button{text-align:left;flex-wrap:wrap;justify-content:flex-start}.settings-actions button>span{width:100%;color:var(--muted);padding-left:30px;font-size:.8125rem;font-weight:400}.loading-state{min-height:40vh;color:var(--muted);align-items:center;gap:12px;display:flex}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.offline-bar{background:var(--accent-light);align-items:center;gap:8px;margin:0;padding:12px 16px;font-size:.875rem;display:flex}.error-banner{background:var(--error-ground);color:var(--error);border-radius:6px;align-items:center;gap:16px;padding:16px;display:flex}.error-banner p{margin:0}.error-banner button{min-height:44px;color:var(--error);background:0 0;border:0;font-weight:600}.skip-link{background:var(--white);z-index:100;padding:12px;position:absolute;top:-100px}.skip-link:focus{top:10px}.camera-sheet{z-index:50;background:var(--canvas);overscroll-behavior:contain;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);border:0;margin:0;position:fixed;inset:0;overflow:auto}.camera-sheet::backdrop{background:#14233dcc}.camera-sheet>header{justify-content:space-between;align-items:center;gap:16px;max-width:700px;margin:0 auto;padding:20px 24px;display:flex}.camera-sheet h2{margin:0}.camera-sheet header p{color:var(--muted);margin:4px 0 0;font-size:.875rem}.camera-viewport{background:var(--ink);max-width:700px;min-height:260px;margin:0 auto;position:relative;overflow:hidden}.camera-viewport>video{object-fit:contain;width:100%;min-height:300px;max-height:55vh;display:block}.camera-viewport>img{width:100%;display:block}.camera-viewport>svg{cursor:crosshair;touch-action:manipulation;width:100%;height:100%;position:absolute;inset:0}.camera-placeholder{color:var(--white);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:absolute;inset:0}.camera-placeholder p{margin:0;font-size:.9375rem}.live-label{background:var(--white);border-radius:4px;padding:7px 12px;font-size:.875rem;position:absolute;top:16px;left:16px}.camera-controls{max-width:700px;margin:0 auto;padding:20px 24px 32px}.camera-controls>p{font-size:.875rem}.camera-controls .error{color:var(--error);padding:12px 0;font-weight:500}.camera-scores{flex-wrap:wrap;gap:8px;margin:20px 0;display:flex}.camera-scores button{border:1px solid var(--control-line);background:var(--white);border-radius:5px;justify-content:center;align-items:center;gap:10px;min-width:58px;min-height:50px;display:flex}.camera-scores span{font-size:1.5rem}.privacy-line{color:var(--muted);text-align:center;margin-top:20px;font-size:.8125rem!important}@media (max-width:1000px){.app-shell{padding-left:192px;padding-right:28px}.bottom-nav{width:150px;left:16px}.setup-layout,.score-layout,.review-layout,.insights-layout,.settings-layout{gap:24px}.range-sign{padding:26px 22px}}@media (max-width:750px){.app-shell{padding:0 20px}.app-header{min-height:68px;padding-top:env(safe-area-inset-top)}.brand{gap:9px;font-size:1.125rem}.brand-mark{width:32px;height:32px}.device-badge{gap:6px;font-size:.75rem}main{padding:26px 0 calc(100px + env(safe-area-inset-bottom))}h1{font-size:2rem}.page-heading{flex-wrap:wrap;gap:12px;margin-bottom:26px}.page-heading p{font-size:.9375rem}.bottom-nav{background:var(--white);border-top:1px solid var(--line);width:100%;padding:8px 10px calc(8px + env(safe-area-inset-bottom));flex-direction:row;justify-content:space-around;gap:0;inset:auto 0 0}.bottom-nav a{border-radius:5px;flex-direction:column;flex:1;justify-content:center;gap:4px;min-height:56px;padding:6px;font-size:.75rem}.bottom-nav a[aria-current=page]{background:var(--accent-light);color:var(--action)}.setup-layout,.score-layout,.review-layout,.insights-layout,.settings-layout{grid-template-columns:minmax(0,1fr);gap:28px}.setup-form{background:0 0;border-radius:0;padding:0}.setup-form form{gap:18px}.setup-stage{gap:12px}.setup-stage legend{margin-bottom:12px}.range-sign{display:none}.setup-note{margin-top:14px}.recent-strip a{flex-direction:column;align-items:flex-start;gap:6px}.page-heading:has(+.entry-mode){gap:8px;margin-bottom:16px}.page-heading:has(+.entry-mode) h1{margin-bottom:5px;font-size:1.5rem}.page-heading:has(+.entry-mode) p{font-size:.8125rem}.page-heading:has(+.entry-mode) .session-status{padding:5px 8px;font-size:.75rem}.entry-mode{background:var(--surface);border-radius:6px;gap:4px;padding:4px;display:flex}.entry-mode button{min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:4px;flex:1;justify-content:center;align-items:center;gap:8px;font-size:.875rem;font-weight:500;display:flex}.entry-mode button[aria-pressed=true]{background:var(--white);color:var(--action);font-weight:600}.session-readout{gap:16px;margin-top:16px;margin-bottom:20px;padding:16px 0}.session-readout h2{min-width:70px;font-size:1rem}.session-readout .score-strip{gap:8px}.score-strip strong{font-size:1.5rem}.score-strip span{font-size:.75rem}.score-layout{gap:16px}.target-panel{order:0;padding:16px}.entry-scores .target-panel,.entry-plot .score-keypad{display:none}.target-panel .target{max-width:350px}.target-panel .target-help{margin-bottom:0;font-size:.875rem}.score-entry h2{margin-bottom:10px;font-size:1rem}.arrow-slots{margin-bottom:12px}.arrow-slots button{min-height:48px}.score-keypad{gap:6px}.score-keypad button{min-height:62px;font-size:1.65rem}.score-entry .button-row{margin:10px 0}.score-entry .primary,.score-entry .secondary{min-height:48px;padding:10px 12px}.score-entry .text-button{min-height:44px}.save-note{margin-top:8px}.session-row{gap:12px;padding:18px 0}.session-row>svg{width:18px}.session-row-main strong{font-size:1rem}.session-row-score strong{font-size:1.5rem}.statistics{gap:8px}.statistics strong{font-size:1.75rem}.empty-state{padding:28px 0}.empty-state h2{font-size:1.75rem}.settings-section{margin-bottom:28px}.camera-sheet>header,.camera-controls{padding-left:20px;padding-right:20px}.camera-controls .button-row{flex-wrap:wrap}.camera-controls .button-row>*{min-width:130px}}@media (max-width:360px){.arrow-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.session-readout{gap:10px}.session-readout h2{min-width:60px}}@media (prefers-reduced-motion:reduce){.spin{animation:none}.primary,.secondary,.danger,.arrow-slots button{transition:none}button:not(:disabled):active,a.primary:active,a.secondary:active{transform:none}}
