:root{--bg:#0a0a0b;--surface:#121214;--surface-2:#19191c;--line:#ffffff14;--line-strong:#ffffff2e;--text:#ece8df;--text-2:#9c9890;--text-3:#5d5a55;--accent:#c8102e;--on:#ece8df;--under:#7d9bbd;--over:#e0503a;--hr1:#6b7785;--hr2:#7d9bbd;--hr3:#b8b089;--hr4:#e8b84a;--hr5:#d9412f;--z1:#232326;--z2:#2c2c30;--z3:#38383d;--z4:#46464c;--z5:#57575e;--z6:#6c6b72;--z7:#858389;--display:"Barlow Condensed", "Arial Narrow", sans-serif;--body:"Barlow", system-ui, sans-serif;--state:transparent}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px}body:after{content:"";pointer-events:none;background:radial-gradient(ellipse 70% 100% at 50% 100%, var(--state), transparent 70%);opacity:.22;height:45vh;transition:background .6s;position:fixed;inset:auto 0 0}[data-band=on]{--state:var(--on)}[data-band=under]{--state:var(--under)}[data-band=over]{--state:var(--over)}button{font:inherit;color:inherit;cursor:pointer}.label{font-family:var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--text-2);font-size:11px;font-weight:600}.num{font-family:var(--display);font-variant-numeric:tabular-nums}.wordmark{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;font-size:20px;font-style:italic;font-weight:700}.wordmark i{color:var(--accent);font-style:inherit}.btn{border:1px solid var(--line-strong);letter-spacing:.16em;text-transform:uppercase;background:0 0;padding:9px 16px;font-size:11px;font-weight:600;transition:background .15s,border-color .15s}.btn:hover{border-color:var(--text)}.btn.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn.primary:hover{background:#fff}.btn:disabled{opacity:.35;cursor:not-allowed}.seg{border:1px solid var(--line-strong);display:inline-flex}.seg button{letter-spacing:.16em;text-transform:uppercase;color:var(--text-2);background:0 0;border:0;padding:8px 14px;font-size:11px;font-weight:600}.seg button[aria-pressed=true]{background:var(--text);color:var(--bg)}.seg button:disabled{opacity:.3;cursor:not-allowed}.home{max-width:1120px;margin:0 auto;padding:28px 32px 80px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding-bottom:20px;display:flex}.hero-head{grid-template-columns:1.4fr 1fr;align-items:end;gap:48px;padding:72px 0 48px;display:grid}.hero-head h1{font-family:var(--display);letter-spacing:-.01em;text-transform:uppercase;margin:0;font-size:clamp(56px,9vw,112px);font-weight:200;line-height:.9}.hero-head h1 em{font-style:italic;font-weight:600}.headline{align-items:flex-end;gap:32px;display:flex}.patch{mix-blend-mode:lighten;flex-shrink:0;width:clamp(96px,11vw,150px);height:auto}.month{border-top:1px solid var(--line-strong);grid-template-columns:repeat(3,1fr);display:grid}.month>div{padding:14px 0 0}.month .num{margin-top:4px;font-size:40px;font-weight:300;display:block}.settings{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:end;gap:32px;padding:24px 0;display:flex}.settings .field{gap:8px;display:grid}.ftp-input{border:0;border-bottom:1px solid var(--line-strong);width:96px;color:var(--text);font-family:var(--display);background:0 0;padding:0 0 2px;font-size:32px;font-weight:300}.ftp-input:focus{border-color:var(--text);outline:none}.lthr-row{align-items:flex-end;gap:14px;display:flex}.lthr-help{gap:2px;display:grid}.link{text-align:left;color:var(--text-2);text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.link:hover{color:var(--text)}.estimate{align-items:flex-end;gap:12px;margin-top:10px;display:flex}.estimate[hidden]{display:none}.estimate label{gap:4px;display:grid}.mini-input{border:0;border-bottom:1px solid var(--line-strong);width:64px;color:var(--text);background:0 0;padding:0 0 2px;font-size:20px}.mini-input:focus{border-color:var(--text);outline:none}.trainer-status{color:var(--text-2);font-size:13px}.workouts{margin:0;padding:0;list-style:none}.workout{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:48px 1fr 320px;align-items:center;gap:24px;padding:26px 0;transition:background .2s;display:grid}.workout:hover{background:linear-gradient(90deg, transparent, var(--surface) 20%, var(--surface) 80%, transparent)}.workout:hover .workout-name{color:#fff}.workout-idx{font-family:var(--display);color:var(--text-3);font-size:18px}.workout-name{font-family:var(--display);text-transform:uppercase;letter-spacing:.01em;font-size:34px;font-weight:500;line-height:1}.workout-desc{color:var(--text-2);max-width:52ch;margin:8px 0 10px}.workout-meta{gap:20px;display:flex}.workout canvas{width:100%;height:64px}.ride{z-index:1;grid-template-rows:auto 64px minmax(140px,1fr) 96px auto auto;gap:0;height:100vh;padding:18px 28px 22px;display:grid;position:relative}.ride-head{align-items:center;gap:24px;padding-bottom:14px;display:flex}.link-status{letter-spacing:.16em;text-transform:uppercase;color:var(--over);font-size:11px;font-weight:600;animation:1s ease-in-out infinite pulse}.link-status[hidden]{display:none}.ride-head .title{font-family:var(--display);text-transform:uppercase;letter-spacing:.02em;font-size:22px;font-weight:500}.ride-head .spacer{flex:1}.ride-head .clock{color:var(--text-2);font-size:22px;font-weight:300}.ride-head .clock b{color:var(--text);font-weight:500}.overview,.window{width:100%;height:100%;display:block}.window{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:10px}.hero{grid-template-columns:1fr 1.3fr 1fr;align-items:center;gap:32px;padding:22px 0 10px;display:grid}.hero.with-avatar{grid-template-columns:auto 1fr 1.3fr 1fr}.hero.with-avatar .power{font-size:clamp(96px,13.5vw,200px)}.avatar{--size:clamp(150px, 15vw, 250px);width:var(--size);height:var(--size);background:var(--bg);position:relative;-webkit-mask-image:radial-gradient(circle,#000 55%,#0000 71%);mask-image:radial-gradient(circle,#000 55%,#0000 71%)}.avatar img{mix-blend-mode:lighten;opacity:0;width:100%;height:100%;transition:opacity .45s;position:absolute;inset:0}.avatar img.show{opacity:1}.avatar[data-level="1"] img.show,.avatar[data-level="2"] img.show{animation:3.2s ease-in-out infinite av-breathe}.avatar[data-level="3"] img.show{animation:.9s ease-in-out infinite av-hum}.avatar[data-level="4"] img.show{animation:.45s ease-in-out infinite av-hum}.avatar[data-level="5"] img.show{animation:.12s linear infinite av-rumble}.avatar .flash{background:radial-gradient(circle, #fff 0%, var(--flash,#fff) 35%, transparent 70%);opacity:0;pointer-events:none;position:absolute;inset:0}.avatar.powering{animation:.38s cubic-bezier(.36,.07,.19,.97) av-shake}.avatar.powering .flash{animation:.52s ease-out av-flash}@keyframes av-breathe{50%{transform:scale(1.012)}}@keyframes av-hum{50%{filter:brightness(1.12);transform:scale(1.02)}}@keyframes av-rumble{0%{transform:translate(0)scale(1.03)}25%{transform:translate(-1.5px,1px)scale(1.03)}50%{filter:brightness(1.2);transform:translate(1px,-1.5px)scale(1.035)}75%{transform:translate(1.5px,1px)scale(1.03)}}@keyframes av-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px,2px)}40%,60%{transform:translate(7px,-2px)}}@keyframes av-flash{0%{opacity:.9}to{opacity:0}}@media (prefers-reduced-motion:reduce){.avatar img.show,.avatar.powering,.avatar.powering .flash{animation:none!important}}.hero .power{letter-spacing:-.02em;font-size:clamp(110px,17vw,220px);font-weight:200;line-height:.82;transition:color .4s}.hero .power small{letter-spacing:.1em;color:var(--text-2);margin-left:6px;font-size:.18em;font-weight:500}[data-band=under] .hero .power{color:var(--under)}[data-band=over] .hero .power{color:var(--over)}.verdict{text-align:center}.verdict .state{font-family:var(--display);text-transform:uppercase;letter-spacing:.02em;color:var(--state);margin-top:14px;font-size:clamp(28px,3.6vw,48px);font-style:italic;font-weight:600;transition:color .4s}[data-settling=true] .verdict .state{color:var(--text-2)}.gauge{height:44px;position:relative}.gauge .track{background:var(--line-strong);height:1px;position:absolute;top:50%;left:0;right:0}.gauge .band{border-left:1px solid var(--text-2);border-right:1px solid var(--text-2);background:#ece8df12;transition:left .3s,width .3s;position:absolute;top:8px;bottom:8px}.gauge .marker{background:var(--state);width:3px;margin-left:-1.5px;transition:left .25s linear,background .4s;position:absolute;top:0;bottom:0}[data-settling=true] .gauge .marker{background:var(--text-2)}.gauge .ends{justify-content:space-between;margin-top:6px;display:flex}.gauge-target{justify-content:center;align-items:baseline;gap:10px;display:flex}.gauge-target .num{font-size:30px;font-weight:500}.interval-clock{text-align:right}.interval-clock .num{font-size:clamp(64px,8vw,104px);font-weight:200;line-height:.9;display:block}.interval-clock .seg-label{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;margin-top:6px;font-size:22px}.strip{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr) 2fr;gap:24px;padding-top:14px;display:grid}.strip .num{margin-top:2px;font-size:34px;font-weight:300;display:block}.next{text-align:right}.next .num{font-size:26px}.next.soon .num{color:var(--text);animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}.hr-strip{--strip-h:96px;height:var(--strip-h);grid-template-rows:var(--strip-h);border-bottom:1px solid var(--line);grid-template-columns:1fr 170px;gap:20px;min-height:0;display:grid;overflow:hidden}.hr-chart{width:100%;height:100%;display:block}.hr-readout{align-content:center;justify-items:end;gap:2px;display:grid}.hr-readout .num{font-size:48px;font-weight:300;line-height:1;transition:color .4s}.hr-readout [data-f=hrzone]{transition:color .4s}.hud{z-index:5;border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-variant-numeric:tabular-nums;background:#121214e6;gap:6px;padding:12px 14px;font-size:13px;display:grid;position:absolute;top:76px;left:28px}.hud div{justify-content:space-between;gap:24px;display:flex}.hud[hidden]{display:none}.sim-panel{border-right:1px solid var(--line);align-items:center;gap:8px;padding-right:16px;display:flex}.sim-panel .btn{padding:7px 11px}.paused-veil{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;background:#0a0a0bb8;place-items:center;display:grid;position:fixed;inset:0}.paused-veil .big{font-family:var(--display);text-transform:uppercase;text-align:center;font-size:72px;font-style:italic;font-weight:600}.paused-veil .actions{justify-content:center;gap:12px;margin-top:20px;display:flex}.summary{max-width:1120px;margin:0 auto;padding:28px 32px 80px}.summary h1{font-family:var(--display);text-transform:uppercase;margin:64px 0 8px;font-size:clamp(56px,9vw,104px);font-weight:200;line-height:.9}.summary h1 em{font-style:italic;font-weight:600}.summary-head{justify-content:space-between;align-items:flex-end;gap:32px;display:flex}.crest{mix-blend-mode:lighten;width:clamp(160px,20vw,260px);height:auto;animation:.7s cubic-bezier(.2,1.4,.4,1) both crest-in}@keyframes crest-in{0%{opacity:0;transform:scale(.6)rotate(-8deg)}}@media (prefers-reduced-motion:reduce){.crest{animation:none}}.kpis{border-top:1px solid var(--line-strong);grid-template-columns:repeat(6,1fr);margin:40px 0;display:grid}.kpis>div{padding-top:14px}.kpis .num{margin-top:4px;font-size:48px;font-weight:300;display:block}.kpis .hero-kpi .num{color:var(--text);font-weight:500}.summary .power-chart-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);width:100%;height:220px;display:block}.section-title{font-family:var(--display);text-transform:uppercase;margin:48px 0 16px;font-size:28px;font-weight:500}.hr-summary-grid{grid-template-columns:auto 1fr;align-items:center;gap:48px;margin-bottom:20px;display:grid}.hr-kpis{gap:36px;display:flex}.hr-kpis .num{font-size:44px;font-weight:300;display:block}.hr-zones{gap:8px;display:grid}.hr-zone-row{grid-template-columns:150px 1fr 56px;align-items:center;gap:14px;display:grid}.hr-zone-row .bar{max-width:none}.hr-zone-row .num{text-align:right}.hr-chart-summary{border-bottom:1px solid var(--line);width:100%;height:110px;display:block}.lthr-card{border:1px solid var(--line-strong);background:var(--surface);justify-content:space-between;align-items:center;gap:24px;margin-top:20px;padding:18px 20px;display:flex}.lthr-card p{color:var(--text-2);margin:6px 0 0}.lthr-card b{color:var(--text)}.intervals{border-collapse:collapse;width:100%;margin-top:40px}.intervals th{text-align:left;border-bottom:1px solid var(--line-strong);padding:0 0 10px}.intervals td{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;padding:12px 0}.intervals td.name{font-family:var(--display);text-transform:uppercase;font-size:20px}.bar{background:var(--surface-2);width:100%;max-width:280px;height:6px;display:flex;position:relative}.bar span{height:100%;display:block}@media (width<=820px){.home,.summary{padding:20px 16px 60px}.hero-head{grid-template-columns:1fr;padding:40px 0 32px}.workout{grid-template-columns:1fr;gap:12px}.workout-idx{display:none}.ride{grid-template-rows:auto 48px 180px 80px auto auto;height:auto;min-height:100vh;padding:12px 16px}.hr-strip{--strip-h:80px}.hero,.hero.with-avatar{grid-template-columns:1fr 1fr}.hero .avatar{display:none}.verdict{order:3;grid-column:1/-1}.strip{grid-template-columns:repeat(2,1fr)}.next{text-align:left;grid-column:1/-1}.hr-summary-grid{grid-template-columns:1fr;gap:20px}.hr-zone-row{grid-template-columns:110px 1fr 48px}.lthr-card{flex-direction:column;align-items:flex-start}.kpis{grid-template-columns:repeat(3,1fr);row-gap:20px}}
