:root{--bg:#0b0f14;--card:#151b23;--line:#263040;--fg:#e5e7eb;--muted:#94a3b8;--accent:#22d3ee;--accent2:#f59e0b;--danger:#ef4444;--ok:#34d399;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--fg);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overscroll-behavior:none;font-family:-apple-system,Hiragino Sans,Noto Sans JP,system-ui,sans-serif;font-size:16px}body.camera-live,body.camera-live #root{background:0 0}.screen{flex-direction:column;gap:14px;max-width:720px;margin:0 auto;padding:16px;display:flex}.screen.center{text-align:center;justify-content:center;min-height:80vh}h1{margin:8px 0 0;font-size:24px}h2{margin:0;font-size:18px}.sub{color:var(--muted);margin:0}.meta{color:var(--muted);font-size:13px}.warn{color:#fde68a;background:#3b2a12;border:1px solid #a16207;border-radius:10px;margin:0;padding:10px 12px;font-size:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:12px;padding:14px;display:flex}label{color:var(--muted);flex-direction:column;gap:6px;font-size:14px;display:flex}.row{align-items:center;gap:10px;display:flex}.row.two>button{flex:1}.section-label{color:var(--muted);margin-top:6px;font-size:13px}input[type=number],input[type=text],input[type=email],input[type=password],select{border:1px solid var(--line);color:var(--fg);background:#0f141b;border-radius:10px;width:140px;padding:10px 12px;font-size:22px}.seg{border:1px solid var(--line);border-radius:10px;display:flex;overflow:hidden}.seg button{color:var(--muted);background:0 0;border:0;flex:1;padding:12px;font-size:15px}.seg button.on{background:var(--accent);color:#062026;font-weight:700}button{border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:12px;padding:12px 16px;font-family:inherit;font-size:16px}button:disabled{opacity:.4}button.primary{background:var(--accent);color:#062026;border-color:#0000;font-weight:700}button.secondary{background:#1f2a37}button.ghost{color:var(--muted);background:0 0;border-color:#0000}button.big{padding:18px;font-size:18px}.progress{background:var(--card);border:1px solid var(--line);border-radius:999px;height:10px;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .2s}.screen.camera{max-width:none;padding:calc(env(safe-area-inset-top) + 8px) calc(env(safe-area-inset-right) + 12px) calc(env(safe-area-inset-bottom) + 12px) calc(env(safe-area-inset-left) + 12px);justify-content:space-between;margin:0;position:fixed;inset:0}body.camera-live{padding:0}.cam-top{justify-content:space-between;display:flex}.badge{background:#0000008c;border-radius:999px;padding:6px 10px;font-size:13px}.badge.rec{color:#fff;background:#ef4444d9;font-weight:700}.cam-guide{color:#fff;background:#00000073;border-radius:999px;align-self:center;padding:6px 12px;font-size:13px}.cam-bottom{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding-bottom:12px;display:grid}.cam-bottom .ghost{justify-self:start}.cam-bottom .rec-btn{justify-self:end;margin-right:8px}.zoom{gap:6px;display:flex}.zoom button{background:#00000080;padding:8px 12px;font-size:14px}.zoom button.on{background:var(--accent2);color:#000;border-color:#0000}.rec-btn{background:var(--danger);border:5px solid #fff;border-radius:50%;width:76px;height:76px;padding:0}.rec-btn.stop{background:#fff;border-radius:18px}.cam-bottom .ghost{color:#fff}.res-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.res-head h2{text-align:center;flex:1}.viewer{flex-direction:column;gap:6px;display:flex}.frame-wrap{aspect-ratio:16/9;background:#000;border-radius:12px;position:relative;overflow:hidden}.frame-wrap img,.frame-wrap canvas{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.zoom-layer{will-change:transform;transition:transform .12s ease-out;position:absolute;inset:0}.zoom-btn{color:#fff;background:#0009;border-color:#ffffff40;border-radius:8px;padding:6px 10px;font-size:13px;position:absolute;top:8px;right:8px}.frame-badge{font-variant-numeric:tabular-nums;background:#0009;border-radius:8px;gap:6px;padding:4px 8px;font-size:12px;display:flex;position:absolute;bottom:8px;left:8px}.tag{border-radius:6px;padding:0 6px;font-weight:700}.tag.contact{background:var(--ok);color:#052e1c}.tag.toeoff{background:var(--accent2);color:#2a1a00}.timeline{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:pointer;height:68px;position:relative}.slider-box{height:48px;position:absolute;top:20px;left:0;right:0}.timeline .track{background:#2a3441;border-radius:4px;height:8px;position:absolute;top:20px;left:0;right:0}.timeline .track.fill{background:var(--accent);right:auto}.timeline .thumb{background:#fff;border-radius:50%;width:40px;height:40px;margin-left:-20px;position:absolute;top:4px;box-shadow:0 2px 6px #0009}.tick{width:2px;height:14px;margin-left:-1px;position:absolute;top:4px}.tick.contact{background:var(--ok)}.tick.toeoff{background:var(--accent2);height:7px}.stepper{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.stepper button{padding:10px 0;font-size:14px}.tabs{border-bottom:1px solid var(--line);display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:10px 0}.tabs button.on{color:var(--fg);border-bottom-color:var(--accent)}.tiles{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.tiles.small{grid-template-columns:repeat(4,1fr)}.tile{background:var(--card);border:1px solid var(--line);text-align:center;border-radius:12px;padding:10px}.tile .k{color:var(--muted);font-size:12px}.tile .v{font-variant-numeric:tabular-nums;margin:2px 0;font-size:26px;font-weight:700}.tiles.small .tile .v{font-size:18px}.tile .u{color:var(--muted);font-size:11px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}th,td{text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 4px}th:first-child,td:first-child{text-align:left}tr.flag td{color:#fde68a}.now{color:var(--muted);background:var(--card);border-radius:10px;grid-template-columns:1fr 1fr;gap:6px 12px;padding:10px;font-size:13px;display:grid}.chart{background:var(--card);border-radius:12px;height:220px;margin-top:8px;padding:8px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border-radius:999px;padding:6px 10px;font-size:13px}.chip.on{background:var(--ok);color:#052e1c;border-color:#0000}.chip .x{color:var(--danger);margin-left:4px}.tabs button{font-size:14px}.overlay{z-index:50;background:#0b0f14e0;flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:16px;display:flex;position:fixed;inset:0}.spinner{border:4px solid #2a3441;border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dbg{opacity:.7;margin-top:-4px;font-size:11px}.chart.tall{height:260px;margin-bottom:10px}.card.pole{border-color:#a16207;gap:8px}.frame-wrap.tapmode{cursor:crosshair;outline:2px solid #ef4444}.notice{border:1px solid #334155;border-left:4px solid var(--accent2);color:#e2e8f0;background:#1f2a37;border-radius:10px;padding:10px 12px;font-size:14px}.notice.ok{border-left-color:var(--ok)}.sub-h{color:var(--muted);margin:14px 0 6px;font-size:14px;font-weight:600}.tabs button.pro{color:var(--accent2)}.tabs button.pro.on{color:var(--fg);border-bottom-color:var(--accent2)}.paywall .benefits{flex-direction:column;gap:6px;margin:0;padding-left:18px;font-size:14px;display:flex}.paywall .price{text-align:center;font-size:30px;font-weight:700}.paywall .price small{color:var(--muted);font-size:14px;font-weight:400}.paywall a{color:var(--accent)}.effort{flex-direction:column;gap:10px;display:flex}.effort .seg button{padding:10px 4px;font-size:13px}.effort input[type=text]{font-size:22px}tr.hl td{background:#f59e0b14}.card.eval{border-left:4px solid var(--line);gap:6px;padding:10px 12px}.card.eval.excellent,.card.eval.good{border-left-color:var(--ok)}.card.eval.fair{border-left-color:var(--accent2)}.card.eval.poor{border-left-color:var(--danger)}.hints{color:#fde68a;flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:13px;display:flex}.week{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.week .day{border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:11px;display:flex}.week .day .d{color:var(--muted)}.week .day .b{font-weight:700}.week .day.rest{opacity:.45}.week .day.pitch{border-color:#f59e0b}.week .day.stride{border-color:#a78bfa}.week .day.strength{border-color:#22d3ee}.week .day.integration{border-color:#34d399}.week .day.start{border-color:#ef4444}.week .day.on{background:#1f2a37}.card.block{gap:8px;padding:10px 12px}table.drills td{white-space:normal;text-align:left;vertical-align:top}table.drills td:last-child{text-align:right;white-space:nowrap}.method-head{background:var(--card);border:1px solid var(--line);border-radius:12px;align-items:center;gap:14px;padding:12px;display:flex}.method-head .score{align-items:baseline;gap:2px;display:flex}.method-head .n{font-variant-numeric:tabular-nums;color:var(--accent2);font-size:40px;font-weight:800}.method-head .u{color:var(--muted);font-size:13px}.method-list{flex-direction:column;gap:6px;display:flex}.method-item{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:10px;padding:8px 10px;font-size:14px}.method-item.excellent{border-left-color:var(--ok)}.method-item.good{border-left-color:#86efac}.method-item.fair{border-left-color:var(--accent2)}.method-item.poor{border-left-color:var(--danger)}.method-item .mark{text-align:center;background:#1f2a37;border-radius:6px;min-width:26px;padding:2px 4px;font-weight:800;display:inline-block}.method-item .t{flex:1}.method-item .v{white-space:nowrap}.method-item .detail{flex-direction:column;gap:4px;margin-top:6px;display:flex}.method-item .detail button{align-self:flex-start;padding:6px 10px;font-size:13px}select{appearance:none;width:100%;font-size:16px}.card.athlete{gap:10px}.week .day.high{border-color:var(--danger)}.week .day.low{border-color:#60a5fa}.week .day.stim{border-color:var(--accent2)}.week .day.race{border-color:var(--ok)}.card.block.high{border-left:4px solid var(--danger)}.card.block.low{border-left:4px solid #60a5fa}.card.block.stim{border-left:4px solid var(--accent2)}.card.block.race{border-left:4px solid var(--ok)}.card.block.rest{opacity:.7}.items{flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:14px;display:flex}.menu{flex-direction:column;gap:8px;display:flex}.menu-item{text-align:left;align-items:center;gap:12px;padding:14px;display:flex}.menu-item .icon{font-size:28px}.menu-item .t{flex-direction:column;flex:1;gap:2px;display:flex}.seg.wrap{flex-wrap:wrap}.seg.wrap button{flex:1 0 30%}.card.guide ol{flex-direction:column;gap:4px;margin:0;padding-left:20px;font-size:14px;display:flex}.week .day.mid{border-color:#f472b6}.card.block.mid{border-left:4px solid #f472b6}.steps-guide{flex-direction:column;gap:4px;margin:0;padding-left:20px;font-size:14px;display:flex}.plan-compare{flex-direction:column;gap:6px;font-size:13px;display:flex}.plan-compare>div{align-items:flex-start;gap:8px;display:flex}.plan-compare .tag{text-align:center;color:#e2e8f0;background:#334155;border-radius:6px;flex:none;min-width:44px;padding:2px 6px;font-size:12px;font-weight:700}.plan-compare .tag.pro{color:#1c1917;background:#f59e0b}.credit-list{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.credit-list .credit{color:#fde68a;text-align:left;background:#2a1f0a;border:1px solid #f59e0b;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px;display:flex}.credit-list .credit b{color:#fbbf24;font-size:18px}.credit-list .credit .price{color:#e2e8f0;font-size:16px}.unlock{flex-direction:column;gap:12px;display:flex}.unlock .card h2{margin:0 0 4px;font-size:18px}.drop{text-align:center;border:2px dashed #334155;border-radius:12px;flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}@media (width>=900px){#root{max-width:860px;margin:0 auto}}.home-top{justify-content:space-between;align-items:center;display:flex}.home-top h1{margin:0}.home-hist{color:#cbd5e1;background:#151c2b;border:1px solid #233049;border-radius:12px;padding:8px 12px;font-size:14px}.home-chip{color:#cbd5e1;background:#151c2b;border:1px solid #233049;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;display:inline-flex}.home-chip b{color:#fbbf24;font-weight:600}.home-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.home-tile{text-align:left;min-height:118px;color:var(--fg);background:#121a29;border:1px solid #1f2a40;border-radius:16px;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 14px;display:flex}.home-tile .e{font-size:28px}.home-tile .t{white-space:pre-line;font-size:16px;font-weight:700;line-height:1.3}.home-tile .d{color:var(--muted);font-size:12px}.home-credit{color:#fde68a;text-align:left;background:#2a1f0a;border:1px solid #f59e0b;border-radius:14px;justify-content:space-between;align-items:center;padding:12px 14px;font-size:14px;display:flex}.home-credit b{color:#fbbf24;font-size:16px}.home-credit .free{opacity:.8}.home-foot{text-align:center;color:#64748b;margin:0;font-size:11px}@media (width>=900px){.screen.home{max-width:960px}.home-grid{grid-template-columns:repeat(4,1fr)}}.acct{gap:10px;display:grid}.acct label{gap:4px;font-size:14px;display:grid}.acct input{box-sizing:border-box;border:1px solid var(--line,#ccd);border-radius:10px;width:100%;padding:10px 12px;font-size:16px}.acct .seg{gap:6px;display:flex}.acct .seg button{flex:1}.acct .seg .on{background:var(--accent,#0a7);color:#fff}.acct .ok{color:#0a7}.acct .err,.notice.err{color:#c33}.acct .link{color:var(--accent,#0a7);background:0 0;border:none;justify-self:start;padding:0;text-decoration:underline}.acct.danger h3,.acct .link.danger{color:#c33}button.danger{color:#fff;background:#c33}.acct-chip{text-align:center;min-width:2.4em;margin-left:6px}.wh{color:#e2e8f0;width:100%}.wh button{font:inherit;cursor:pointer}.wh-wrap{text-align:left;max-width:1180px;margin:0 auto;padding:0 32px}.wh-nav{justify-content:space-between;align-items:center;gap:10px;padding:18px 0;display:flex}.wh-logo{letter-spacing:.02em;white-space:nowrap;font-size:20px;font-weight:800}.wh-logo span{color:#22d3ee}.wh-navr{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.wh-btn{color:#cbd5e1;background:#111827;border:1px solid #233049;border-radius:12px;padding:9px 14px;font-size:14px}.wh-btn b{color:#fbbf24}.wh-profile{margin-bottom:14px}.wh-hero{background:radial-gradient(1200px 500px at 10% 0,#22d3ee47,#0000 60%),radial-gradient(800px 400px at 100% 100%,#f59e0b40,#0000 60%),linear-gradient(135deg,#0b1730,#101a2e 45%,#1a1206);border-radius:28px;grid-template-columns:1.15fr .85fr;align-items:center;gap:24px;margin-top:6px;padding:56px 48px;display:grid;position:relative;overflow:hidden}.wh-lanes{opacity:.25;pointer-events:none;background:repeating-linear-gradient(170deg,#0000 0 38px,#e2e8f0 38px 41px);height:180px;position:absolute;inset:auto -10% -40px;transform:skewY(-4deg)}.wh-copy{position:relative}.wh-kicker{color:#a5f3fc;background:#22d3ee1f;border:1px solid #22d3ee59;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:inline-flex}.wh-hero h1{letter-spacing:-.01em;margin:18px 0 14px;font-size:54px;font-weight:900;line-height:1.1}.wh-hero h1 em{background:linear-gradient(90deg,#22d3ee,#fbbf24);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.wh-lead{color:#cbd5e1;max-width:560px;margin:0;font-size:17px;line-height:1.7}.wh-stats{flex-wrap:wrap;gap:12px;margin:22px 0 26px;display:flex}.wh-stat{background:#0f172ab3;border:1px solid #1f2a44;border-radius:14px;padding:10px 14px}.wh-stat b{color:#fff;font-size:22px;display:block}.wh-stat span{color:#94a3b8;font-size:12px}.wh-cta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.wh-primary{color:#04121a;background:linear-gradient(90deg,#06b6d4,#22d3ee);border:0;border-radius:16px;padding:16px 26px;font-size:17px;font-weight:800;box-shadow:0 10px 30px #22d3ee59}.wh-ghost{color:#e2e8f0;border:1px solid #334155;border-radius:14px;padding:14px 18px;font-size:15px;text-decoration:none}.wh-phone{border:8px solid #0b0f17;border-radius:38px;justify-self:center;width:300px;position:relative;overflow:hidden;transform:rotate(3deg);box-shadow:0 30px 80px #0009,0 0 0 1px #334155}.wh-phone img{width:100%;display:block}.wh-sec{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;margin:34px 0 10px;display:flex}.wh-sec h2{margin:0;font-size:24px}.wh-sec p{color:#94a3b8;margin:0;font-size:14px}.wh-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:14px;display:grid}.wh-tile{text-align:left;color:inherit;background:#0f1626;border:1px solid #1f2a44;border-radius:20px;min-height:170px;padding:22px 20px;display:block;position:relative;overflow:hidden;padding-bottom:44px!important}.wh-tile .e{font-size:34px;display:block}.wh-tile .t{white-space:pre-line;margin-top:10px;font-size:19px;font-weight:800;line-height:1.3;display:block}.wh-tile .d{color:#94a3b8;margin-top:6px;font-size:13px;display:block}.wh-tile .go{color:#22d3ee;font-size:13px;font-weight:700;position:absolute;bottom:14px;right:16px}.wh-tile.t1{background:linear-gradient(160deg,#0f2a3a,#0f1626 70%)}.wh-tile.t2{background:linear-gradient(160deg,#2a1a0b,#0f1626 70%)}.wh-tile.t3{background:linear-gradient(160deg,#1c1638,#0f1626 70%)}.wh-tile.t4{background:linear-gradient(160deg,#10281d,#0f1626 70%)}.wh-tile:hover{border-color:#22d3ee}.wh-band{text-align:left;color:#fde68a;background:linear-gradient(90deg,#2a1f0a,#1a1406);border:1px solid #f59e0b;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-top:18px;padding:16px 20px;font-size:14px;display:flex}.wh-band b{color:#fbbf24}.wh-band .free{opacity:.8}.wh-band .r{color:#fbbf24;white-space:nowrap;font-size:18px;font-weight:800}.wh-feat{grid-template-columns:repeat(3,1fr);gap:16px;margin:30px 0 40px;display:grid}.wh-f{background:#0d1322;border:1px solid #1a2440;border-radius:18px;padding:18px}.wh-f b{margin:6px 0 4px;display:block}.wh-f span{color:#94a3b8;font-size:13px;line-height:1.6}@media (width<=899px){.wh-wrap{padding:0 16px}.wh-nav{flex-direction:column;align-items:flex-start}.wh-navr{justify-content:flex-start}.wh-btn{padding:8px 12px;font-size:13px}.wh-hero{grid-template-columns:1fr;padding:32px 22px}.wh-hero h1{font-size:34px}.wh-lead{font-size:15px}.wh-phone{border-width:6px;border-radius:28px;width:200px}.wh-grid{grid-template-columns:1fr 1fr;gap:12px}.wh-tile{min-height:150px;padding:16px 14px}.wh-tile .t{font-size:16px}.wh-feat{grid-template-columns:1fr}.wh-band{flex-wrap:wrap}}@media (width>=900px){#root:has(.wh){max-width:none}}
