:root{--bg:#101511;--panel:#19211a;--line:#334033;--ink:#f2f3e9;--muted:#a7b3a5;--lime:#cbff70;color-scheme:dark}*{box-sizing:border-box}body,html{height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body{background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--lime);outline-offset:2px}main.app{height:100vh;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-bar{gap:10px;padding:8px 14px;border-bottom:1px solid var(--line)}.app-bar,.brand{display:flex;align-items:center}.brand{gap:8px;margin-right:auto;color:inherit;text-decoration:none}.mark{display:grid;place-items:center;background:var(--lime);color:#142012;width:32px;height:32px;border-radius:50%;font-size:13px;font-weight:900;letter-spacing:-1px}.brand h1{font-size:17px;letter-spacing:-.5px;margin:0}.badge{font-size:9px;letter-spacing:1.5px;color:var(--lime)}.cam-select select{background:var(--panel);padding:0 6px;min-height:44px;font-size:13px}.cam-select select,.menu-button{color:var(--ink);border:1px solid var(--line);border-radius:10px}.menu-button{background:transparent;width:44px;height:44px;font-size:18px}.stage{position:relative;min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at center,#1f2b20,#0b100c 75%)}.stage canvas,.stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.mirror canvas,.mirror video{transform:scaleX(-1)}.placeholder{position:relative;text-align:center;padding:12px 24px;max-width:520px}.frame-symbol{display:grid;place-items:center;margin:0 auto 20px;width:72px;height:72px;border:1px solid #516443;border-radius:24px;font-size:42px;color:var(--lime);background:#cbff7008}.placeholder h2{font-size:clamp(22px,4vw,36px);letter-spacing:-1px;margin:0 0 14px;font-weight:500}.placeholder p{font-size:13px;color:var(--muted);line-height:1.5;margin:8px 0}.status-line{font-size:12px;line-height:1.4;color:var(--muted);margin:0}.controls{display:grid;gap:8px;padding:10px 14px 14px;border-top:1px solid var(--line);background:var(--bg)}.primary{background:var(--lime);color:#142012;border:0;border-radius:12px;min-height:48px;padding:12px;font-weight:700}.controls .start{width:100%;font-size:17px}.privacy-note{font-size:10px;color:var(--muted);text-align:center;margin:0 0 2px}.quiet{border:1px solid var(--line);border-radius:10px;padding:8px 14px}.quiet,.text-button{background:transparent;color:var(--ink);min-height:44px}.text-button{border:0;text-decoration:underline;padding:8px 0;font-size:12px;text-align:left}.summary-card{position:absolute;inset:16px;display:flex;flex-direction:column;justify-content:center;gap:12px;max-width:560px;margin:auto;border:1px solid var(--line);border-radius:20px;padding:20px;background:#101511ed;overflow:hidden}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--lime);margin:0}.summary-count{display:flex;align-items:baseline;gap:10px}.summary-count strong{font-size:clamp(48px,10vh,88px);line-height:1}.summary-count span{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stats b{font-size:22px;font-weight:500}.stats span{display:block;color:var(--muted);font-size:10px;margin-top:5px}.small{font-size:12px;margin:0;line-height:1.4}.muted,.small{color:var(--muted)}.sheet::backdrop{background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sheet{position:fixed;inset:0;margin:auto;width:calc(100% - 24px);max-width:540px;max-height:calc(100dvh - 24px);color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:16px;display:grid;gap:12px;overflow:hidden}.sheet:not([open]){display:none}.sheet-head{display:flex;justify-content:space-between;align-items:center}.sheet h2{font-size:14px;margin:0 0 6px}.sheet p{font-size:12px;line-height:1.45;margin:0 0 6px}.sheet .small{font-size:11px}.sheet-head .quiet{width:auto}.stage.count-mode canvas,.stage.count-mode video{opacity:0}.stage.count-mode{background:radial-gradient(ellipse at center,#17201a,#070a08 75%)}.overlay{position:absolute;inset:0;pointer-events:none}.overlay button{pointer-events:auto}.countdown{position:absolute;top:14px;left:16px;right:64px;height:12px;background:rgba(255,255,255,.16);border-radius:999px;overflow:visible}.countdown-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#ff5f7a,#ff8a5c);transition:width .35s ease-out}.burst{position:absolute;top:50%;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:radial-gradient(circle,#fff6c9 0,#ffb84d 35%,rgba(255,95,122,0) 70%);animation:burst .5s ease-out forwards}@keyframes burst{0%{transform:scale(.3);opacity:1}to{transform:scale(2.4);opacity:0}}.depth{position:absolute;right:16px;top:44px;bottom:70px;width:22px;background:rgba(255,255,255,.14);border-radius:999px;overflow:hidden}.depth-fill{position:absolute;left:0;right:0;top:0;background:#ff8a5c;border-radius:999px 999px 0 0;transition:height .1s linear}.depth-fill.deep{background:var(--lime)}.depth-fill.idle{opacity:.3}.depth-line{position:absolute;left:-4px;right:-4px;height:3px;background:#fff;box-shadow:0 0 6px rgba(0,0,0,.6)}.depth-label{position:absolute;top:-18px;right:0;font-size:9px;letter-spacing:1px;color:var(--muted)}.big-count{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:flex;align-items:baseline;gap:8px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.7)}.big-count strong{font-size:clamp(64px,16vw,128px);line-height:1;font-weight:600;letter-spacing:-3px}.big-count span{font-size:16px;color:#e8e8e8}.stage.count-mode .big-count{bottom:50%;transform:translate(-50%,50%)}.stage.count-mode .big-count strong{font-size:clamp(110px,32vw,220px)}.big-count.hit strong{color:var(--lime)}.big-count.extra strong{color:#ffd166}.big-count.pop strong{animation:pop .3s ease-out}@keyframes pop{0%{transform:scale(1.18)}to{transform:scale(1)}}.view-toggle{position:absolute;top:34px;left:16px;font-size:11px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.45);color:#fff}@media (prefers-reduced-motion:reduce){.big-count.pop strong,.burst{animation:none}.countdown-fill,.depth-fill{transition:none}}.targets{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.targets button{padding:12px 0;font-size:18px;font-weight:600;border-radius:12px;border:1px solid rgba(255,255,255,.25);background:transparent;color:inherit}.targets button[aria-pressed=true]{background:var(--lime);color:#0b100c;border-color:var(--lime)}.sound-pill{position:absolute;top:34px;right:48px;font-size:11px;padding:5px 9px;border-radius:999px;background:rgba(0,0,0,.45);color:#fff}.sound-pill.off{background:rgba(179,38,30,.85)}.big-count span{white-space:nowrap}.targets button{min-height:44px;padding:8px 0;font-size:16px}.coach-chip{position:absolute;left:12px;right:44px;bottom:10px;margin:0;background:#000b;color:#fff;font-size:12px;line-height:1.35;padding:7px 10px;border-radius:12px;text-align:center;border:1px solid #f5ba7066}.coach-chip.ready{border-color:#cbff7066}.big-count{bottom:70px}.stage.count-mode .big-count strong{font-size:clamp(84px,24vw,200px)}.view-toggle{min-height:44px;top:36px;left:12px}.sound-pill{top:88px;left:12px;right:auto;font-size:10px;max-width:calc(100% - 56px)}@media(max-width:360px){.badge{display:none}.app-bar{gap:8px}.summary-card{inset:10px;padding:14px;gap:8px}.placeholder{padding:12px 20px}.frame-symbol{margin-bottom:12px}.stats{padding:8px 0}}@media(orientation:landscape) and (max-height:500px){main.app{grid-template-columns:minmax(0,1fr) 180px;grid-template-rows:auto minmax(0,1fr)}.app-bar{grid-column:1/-1;padding:4px 12px}.controls{border-top:0;border-left:1px solid var(--line);align-content:center;padding:12px;gap:12px}.targets{grid-template-columns:repeat(3,1fr);gap:6px}.targets button{font-size:14px}.privacy-note{line-height:1.4}.placeholder{padding:8px 18px}.frame-symbol{display:none}.placeholder h2{font-size:22px;margin-bottom:8px}.placeholder p{font-size:11px;margin:6px 0}.summary-card{inset:8px;padding:12px;gap:6px}.summary-count strong{font-size:40px}.summary-card .stats{padding:6px 0}.summary-card .stats b{font-size:18px}.summary-card .small,.summary-card .status-line{font-size:10px}.sheet{max-width:720px;grid-template-columns:1fr 1fr;gap:8px 20px;padding:12px}.sheet-head{grid-column:1/-1}.sheet p{font-size:11px}.sheet section:last-child{grid-column:2;grid-row:2/span 2}.sheet .primary{grid-column:1/-1}.stage.count-mode .big-count{left:60%;bottom:52%}.stage.count-mode .big-count strong{font-size:90px}.stage:not(.count-mode) .big-count strong{font-size:60px}.big-count span{font-size:12px}.coach-chip{font-size:10px;padding:5px 8px;bottom:8px}.depth{bottom:60px}.sound-pill{max-width:130px}.view-toggle{font-size:10px;padding:6px 8px}}main.app{grid-template-rows:auto auto minmax(0,1fr) auto}.daily-stats{display:grid;grid-template-columns:1fr 1fr 1.5fr;align-items:center;gap:16px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.daily-stats span{display:block;font-size:11px;color:var(--muted)}.daily-stats strong{font-size:30px;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--lime)}.daily-stats small{font-size:13px;color:var(--muted);font-weight:400}.daily-stats p{font-size:11px;margin:0 0 6px}.daily-stats progress{display:block;width:100%;height:6px;accent-color:var(--lime)}.progress-warning{grid-column:1/-1;color:#ffbf69}@media(max-width:400px){.daily-stats{gap:8px;padding:8px 12px;grid-template-columns:1fr 1fr 1.2fr}.daily-stats strong{font-size:26px}.daily-stats p{font-size:10px}}@media(orientation:landscape) and (max-height:500px){main.app{grid-template-rows:auto auto minmax(0,1fr)}.daily-stats{grid-column:1/-1;padding:4px 12px}.daily-stats strong{font-size:24px}}.stage .big-count.awaiting-tracking{bottom:64px;display:flex;flex-direction:column;align-items:center;gap:3px;white-space:nowrap}.stage .big-count.awaiting-tracking strong{font-size:24px;letter-spacing:0;color:#ffbf69}.stage .big-count.awaiting-tracking span{font-size:12px}.community-trigger{background:transparent;border:0;color:var(--lime);font-size:11px;min-height:44px;padding:4px}.community-dialog{position:fixed;inset:0;margin:auto;width:calc(100% - 24px);max-width:640px;height:min(720px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:0;overflow:hidden}.community-dialog[open]{display:flex;flex-direction:column}.community-dialog::backdrop{background:#000b}.community-head{display:flex;justify-content:space-between;align-items:center;padding:14px;border-bottom:1px solid var(--line)}.community-head h2{font-size:22px;margin:0}.community-head p{font-size:12px;margin:4px 0 0;color:var(--muted)}.community-body{overflow:auto;padding:14px;display:grid;gap:14px}.community-tabs{display:flex;gap:6px;flex-wrap:wrap}.community-tabs button{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:8px;font-size:12px}.community-tabs button[aria-pressed=true]{background:var(--lime);color:var(--bg)}.community-dialog table{width:100%;border-collapse:collapse;font-size:13px}.community-dialog td,.community-dialog th{padding:10px 4px;border-bottom:1px solid var(--line);text-align:right}.community-dialog td:first-child,.community-dialog th:first-child{text-align:left}.community-dialog a{color:var(--lime)}.community-account{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:10px}.community-account h3{margin:0;font-size:16px}.community-account label{display:grid;gap:6px;font-size:13px}.community-account input:not([type=checkbox]){width:100%;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);padding:8px;font-size:16px}.community-account .community-consent{display:flex;align-items:flex-start;line-height:1.4}.community-consent input{width:20px;height:20px;flex-shrink:0}.community-account summary{cursor:pointer;padding:10px 0;font-size:13px}.community-message{font-size:12px;line-height:1.4;color:var(--lime);overflow-wrap:anywhere}@media(max-width:360px){.community-trigger{font-size:10px}.app-bar{gap:4px;padding-left:8px;padding-right:8px}.brand h1{font-size:15px}.brand{gap:4px}.mark{width:26px;height:26px}}.verified-account{color:#4ade80}.community-account select,.community-account textarea{display:block;width:100%;padding:10px;background:#17202b;color:#fff;border:1px solid #465263;border-radius:8px}.community-account textarea{min-height:100px}.community-account label{display:block;margin:12px 0}.community-account a{overflow-wrap:anywhere}.training-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px}.training-nav button{font-size:12px;padding:6px;min-height:36px}.training-sheet{color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:20px;max-height:calc(100dvh - 24px);width:min(540px,calc(100vw - 24px));overflow:auto;padding:20px}.training-sheet::backdrop{background:#000b}.training-sheet label{display:grid;gap:6px;margin:14px 0;font-size:14px}.training-sheet input,.training-sheet select{color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px;width:100%}.training-sheet p{font-size:12px;color:var(--muted);line-height:1.5}.history-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.history-stats strong{display:block;font-size:25px;color:var(--lime)}.history-stats span{font-size:11px}.history-chart{display:flex;gap:8px;margin:20px 0}.history-chart>div{flex:1 1;min-width:0;text-align:center;font-size:12px}.history-chart meter{display:block;width:100%;height:12px}.history-list{list-style:none;padding:0}.history-list li{display:grid;gap:4px;padding:12px 0;border-top:1px solid var(--line)}.history-list small,.history-list span{font-size:12px;color:var(--muted)}@media(max-height:650px){.controls{gap:5px;padding:6px 12px}.controls .primary,.controls>.quiet{min-height:40px;padding:8px}.targets button{min-height:36px;padding:6px}.training-nav button{min-height:32px}.daily-stats{padding:5px 12px}}@media(orientation:landscape) and (max-height:500px){.training-nav{grid-template-columns:1fr}.training-nav button{min-height:30px}.controls{gap:5px;padding:6px}.controls .start{font-size:14px;min-height:38px}.targets{gap:3px}.targets button{min-height:30px;padding:4px}}#more-dialog .settings-tabs{display:flex;gap:8px;grid-column:1/-1}#more-dialog .settings-tabs button{flex:1 1}#more-dialog .privacy-settings{grid-column:1/-1;grid-row:auto;display:grid;gap:8px}#more-dialog .privacy-settings p{margin:0}@media(orientation:landscape) and (max-height:500px){#more-dialog .privacy-settings{grid-template-columns:1fr 1fr;gap:6px 16px}#more-dialog .privacy-settings label{grid-column:1}#more-dialog .privacy-settings p:last-child{grid-column:2;grid-row:1/span 3}#more-dialog .settings-tabs button{min-height:32px;padding:4px}#more-dialog section:not(.privacy-settings){grid-column:auto;grid-row:auto}}#more-dialog .install-container{grid-column:1/-1;min-width:0}#more-dialog .install-guide ol{padding-left:22px;font-size:14px;line-height:1.5}#more-dialog .install-guide li{margin:8px 0}#more-dialog .install-guide .settings-tabs{flex-wrap:wrap}#more-dialog .install-guide .settings-tabs button{min-width:70px}#more-dialog .install-guide button[aria-pressed=true]{border-color:var(--lime);color:var(--lime);background:#25301e}