:root{--paper: #fafbf9;--card: #ffffff;--ink: #242d44;--muted: #5d6577;--soft: #848b9a;--line: #2f435417;--violet: #6e16f1;--violet-soft: #f0e8fc;--brand-dark: #bc9bef;--night: #1d1a4c;--mono: "Geist Mono", ui-monospace, "SF Mono", monospace;--ease: cubic-bezier(.2, 0, 0, 1);font-family:DM Sans,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@supports (color: color(display-p3 0 0 0)){:root{--violet: color(display-p3 .43268 .08444 .94702)}}*{box-sizing:border-box}html{scroll-padding-top:64px}body{margin:0;min-width:320px;overflow-x:clip}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}h1,h2,h3,p,dl,dd{margin:0}h1,h2,h3{text-wrap:balance}p,dd{text-wrap:pretty}img,video,svg{display:block}:focus-visible{outline:2px solid var(--violet);outline-offset:4px;border-radius:6px}.container{width:min(1080px,calc(100% - 96px));margin-inline:auto}.mono{font-family:var(--mono);font-feature-settings:"zero","tnum"}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:fixed;z-index:30;top:12px;left:12px;padding:10px 14px;border-radius:10px;background:var(--card);transform:translateY(-200%)}.skip:focus{transform:none}.wordmark{--logo-accent: #7952b3;display:inline-flex;align-items:center}.hupser-logo{display:block;height:27px;width:auto}.wordmark-mark{display:inline-block;width:22px;height:26px;background:currentColor;mask:url(/favicon.svg) center / contain no-repeat;-webkit-mask:url(/favicon.svg) center / contain no-repeat}.eyebrow{font-size:13px;font-weight:600;color:var(--violet)}h2{font-size:clamp(42px,5vw,66px);font-weight:500;line-height:1.075;letter-spacing:-.058em}.section{padding:128px 0}.section-head{max-width:680px}.section-head>p:not(.eyebrow){max-width:520px}.section-head h2{margin-top:14px}.section-head>p:not(.eyebrow){margin-top:22px;font-size:16px;line-height:1.75;color:var(--muted)}.ride-act>p:not(.ride-eyebrow){font-size:16px;line-height:1.75;max-width:420px}.ride-eyebrow{margin-bottom:14px;font-size:13px;font-weight:600;letter-spacing:0;color:var(--violet);text-shadow:none!important}.ride-eyebrow img,.ride-hint,.ride-rail{display:none}.ride-story:after{content:"";position:absolute;left:0;right:0;bottom:0;height:28vh;background:linear-gradient(transparent,var(--night));pointer-events:none}[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .8s var(--ease),transform .8s var(--ease)}[data-reveal].is-in{opacity:1;transform:none}.ticker{display:inline-flex}.ticker-slot{position:relative;display:inline-block}.ticker-slot>span{display:inline-block}.ticker-slot>.ticker-out{position:absolute;left:0;top:0}.store{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 20px 0 16px;border-radius:13px;background:#0d0d10;color:#fff;transition:transform .2s var(--ease)}.store svg{width:23px;height:23px}.store-text{display:flex;flex-direction:column;font-size:18px;font-weight:600;letter-spacing:-.02em;line-height:1.05}.store-text small{font-size:10.5px;font-weight:500;letter-spacing:0;opacity:.75}.store.is-soon{cursor:default}a.store:active{transform:scale(.97)}.nav{position:fixed;z-index:20;inset:0 0 auto;transition:background-color .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease)}.nav.is-story-dusk{color:#fff}.nav.is-night{color:#fff;background:#1d1a4cd0;backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);box-shadow:0 1px #ffffff14}.nav.is-story{color:var(--ink)}.nav.is-solid{color:var(--ink);background:#fafbf9d9;backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);box-shadow:0 1px 0 var(--line)}.nav-inner{display:flex;align-items:center;gap:40px;height:64px;width:min(1080px,calc(100% - 96px));margin-inline:auto}.nav .hupser-logo{height:25px}.nav.is-night .wordmark,.nav.is-story-dusk .wordmark{--logo-accent: var(--brand-dark)}.nav nav{display:flex;gap:28px;margin-left:auto;font-size:14px;font-weight:500}.nav nav a{opacity:.72;transition:opacity .2s}.nav nav a:hover{opacity:1}.nav-sign-in{margin-right:-24px;font-size:14px;font-weight:500;opacity:.72;transition:opacity .2s}.nav-sign-in:hover{opacity:1}.nav-cta{display:inline-flex;align-items:center;height:36px;padding:0 16px;border-radius:18px;font-size:14px;font-weight:500;transition:transform .2s var(--ease),background-color .35s,color .35s}.is-story-dusk .nav-cta,.is-night .nav-cta{background:#fff;color:#0d0d10}.is-solid .nav-cta,.is-story .nav-cta{background:var(--ink);color:#fff}.nav-cta:active{transform:scale(.97)}.ride-act h1{font-size:clamp(52px,6.2vw,86px);line-height:1;letter-spacing:-.06em}.ride-act:first-of-type{left:0;right:0;width:min(760px,calc(100% - 96px));margin-inline:auto;text-align:center}.ride-act:first-of-type>p:not(.ride-eyebrow){margin-inline:auto;max-width:440px}.ride-act:first-of-type .ride-eyebrow{justify-content:center}.hero-actions{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:30px}.ride-act{width:min(560px,calc(100% - 96px))}.ride-act>.hero-actions,.hero-actions *{text-shadow:none}.hero-note{font-size:14px;font-weight:500;color:var(--muted)}.ride-act:first-of-type>*{animation:arrive 1s var(--ease) both}.ride-act:first-of-type>:nth-child(2){animation-delay:.08s}.ride-act:first-of-type>:nth-child(3){animation-delay:.16s}.ride-act:first-of-type>:nth-child(4){animation-delay:.24s}.workout-panel{margin-top:56px;padding:20px 24px;border-radius:26px;background:var(--card);box-shadow:0 0 0 1px var(--line),0 30px 70px -50px #1e2a5066}.workout-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.workout-tabs button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:13px 15px;border:0;border-radius:15px;background:transparent;text-align:left;cursor:pointer;transition:background-color .2s}.workout-tabs button:hover{background:#242d4406}.workout-tabs button[aria-pressed=true]{background:var(--violet-soft)}.tab-name{font-size:15px;font-weight:600;letter-spacing:-.01em}.workout-tabs button[aria-pressed=true] .tab-name{color:var(--violet)}.tab-meta{font-size:11.5px;color:var(--soft)}.tab-kind{font-size:12px;color:var(--muted)}.workout-chart{margin-top:20px;padding:0 6px}.chart-readout{display:flex;align-items:center;gap:14px;min-height:30px;font-size:14px;flex-wrap:wrap}.chart-time{min-width:46px;color:var(--soft)}.readout-power{color:var(--muted)}.readout-power b{color:var(--ink);font-weight:600}.zone-pill{margin-left:auto;padding:5px 10px;border-radius:8px;background:color-mix(in srgb,var(--zone) 15%,white);color:color-mix(in srgb,var(--zone) 72%,black);font-size:12px;font-weight:600;transition:background-color .2s,color .2s}.chart-surface{position:relative;height:230px;margin-top:14px;cursor:ew-resize;touch-action:pan-y;border-radius:10px}.chart-surface svg{width:100%;height:100%}.ftp-line{stroke:#242d4455;stroke-dasharray:3 5;fill:none}.playhead{stroke:var(--ink);stroke-width:1.2}.ftp-label{position:absolute;right:0;transform:translateY(-140%);padding:2px 6px;border-radius:6px;background:#ffffffd9;font-size:11px;color:var(--muted)}.playhead-dot{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;box-shadow:0 0 0 2.5px var(--ink);pointer-events:none}.chart-axis{display:flex;justify-content:space-between;margin-top:10px;font-size:11.5px;color:var(--soft)}.panel-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:16px 6px 0;border-top:1px solid var(--line);flex-wrap:wrap}.panel-note{font-size:13px;color:var(--soft)}.ftp-stepper{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--muted)}.ftp-stepper>span{margin-right:6px}.ftp-stepper button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:#242d440a;font-size:17px;cursor:pointer;transition:background-color .2s,transform .15s var(--ease)}.ftp-stepper button:hover{background:#242d4414}.ftp-stepper button:active{transform:scale(.92)}.ftp-stepper output{min-width:62px;text-align:center;color:var(--ink);font-size:13px}.specs{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:64px}.specs dt{font-size:14px;font-weight:600;padding-bottom:12px;border-bottom:1px solid var(--line)}.specs dd{margin-top:12px;font-size:14px;line-height:1.65;color:var(--muted)}.mac{--muted: #c6bfdc;color:#f6f0fb;padding-bottom:0;background:var(--night)}.mac .eyebrow{color:var(--brand-dark)}.mac:after{content:"";display:block;height:280px;margin-top:96px;background:linear-gradient(var(--night),#4a3570 34%,#c89bb4 70%,var(--paper))}.screen{position:relative;margin-top:56px;aspect-ratio:16 / 9.4;border-radius:18px;overflow:hidden;background:#050506;box-shadow:0 0 0 1px #ffffff1a,0 0 0 9px #121027,0 0 0 10px #ffffff14,0 50px 100px -40px #000;container-type:inline-size;font-family:Geist,system-ui,sans-serif}.menubar{position:absolute;z-index:3;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;height:30px;padding:0 16px;background:#1d1e22b8;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);font-size:12.5px;font-weight:500;color:#e9eaee}.menubar-left{display:flex;gap:18px;color:#c9ccd3}.menubar-left b{color:#fff;font-weight:600}.menubar-right{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-feature-settings:"zero","tnum"}.menubar-right .wordmark-mark{width:12px;height:14px}.menubar-right span:last-child{margin-left:14px}.film{position:absolute;top:30px;right:0;bottom:0;left:0;overflow:hidden;background:#07080a}.film-scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.film-ridge{animation:pan 26s ease-in-out infinite alternate}.film-ridge.mid{animation-duration:22s}.film-ridge.near{animation-duration:18s}.film-ridge.front{animation-duration:14s}.film:before,.film:after{content:"";position:absolute;z-index:2;left:0;right:0;height:9.5%;background:#000}.film:before{top:0}.film:after{bottom:0}.subtitle{position:absolute;z-index:3;left:0;right:0;bottom:14%;text-align:center;font-size:clamp(11px,1.7cqi,20px);font-weight:500;color:#fff;text-shadow:0 1px 3px #000}.mac-hud{--pt: clamp(.66px, .074cqi, .95px);--muted: #bbc4d2;position:absolute;z-index:4;color:#fff;background:#0000004d;backdrop-filter:blur(22px) saturate(1.6);-webkit-backdrop-filter:blur(22px) saturate(1.6);box-shadow:inset 0 0 0 1px #ffffff29,inset 0 1px #ffffff1f,0 24px 50px -20px #000a;font-family:Geist,system-ui,sans-serif;animation:rise .5s var(--ease) both}.mac-hud small{font-size:calc(12 * var(--pt));font-weight:500;color:var(--muted)}.mac-hud .ticker{font-family:var(--mono);font-feature-settings:"zero","tnum"}.mac-hud.corner{top:calc(30px + 2.2cqi);right:2.2cqi;display:flex;flex-direction:column;gap:calc(8 * var(--pt));width:calc(380 * var(--pt));padding:calc(12 * var(--pt)) calc(16 * var(--pt));border-radius:calc(26 * var(--pt))}.hud-top{display:flex;align-items:center;gap:calc(12 * var(--pt))}.hud-power{display:flex;flex:1;align-items:baseline;gap:calc(3 * var(--pt))}.hud-power .ticker{font-size:calc(60 * var(--pt));font-weight:700;line-height:1.05;letter-spacing:-.02em}.hud-power small{font-size:calc(13 * var(--pt))}.hud-sensors{display:flex;flex-direction:column;gap:calc(4 * var(--pt));width:calc(104 * var(--pt))}.hud-sensors>span{display:flex;align-items:baseline;gap:calc(5 * var(--pt))}.hud-sensors svg{align-self:center;width:calc(14 * var(--pt));height:calc(14 * var(--pt));margin:0 calc(1 * var(--pt))}.hud-sensors .heart svg{color:#ff375f}.hud-sensors .cadence svg{color:#0a84ff}.hud-sensors .ticker{font-size:calc(26 * var(--pt));font-weight:600;line-height:1.1}.hud-profile{display:flex;flex-direction:column;gap:calc(4 * var(--pt))}.hud-strip{position:relative;height:calc(30 * var(--pt))}.hud-strip svg{display:block;width:100%;height:100%;overflow:visible}.hud-trace{fill:none;vector-effect:non-scaling-stroke;stroke-linejoin:round}.hud-trace.power{stroke:#ff9f0a;stroke-width:1.5}.hud-trace.heart{stroke:#fa4f73;stroke-width:1}.hud-playhead{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#fff;transition:left 1s linear}.hud-playhead:before{content:"";position:absolute;top:-1px;left:-2.5px;width:7px;height:7px;border-radius:50%;background:#fff}.hud-times{display:flex;justify-content:space-between;font-size:calc(12 * var(--pt));font-weight:600}.hud-step{display:flex;flex-direction:column;gap:calc(6 * var(--pt));padding-top:calc(8 * var(--pt));border-top:1px solid #ffffff1f}.hud-step-row{display:flex;align-items:center;gap:calc(10 * var(--pt))}.hud-chip{display:grid;flex:none;place-items:center;width:calc(40 * var(--pt));height:calc(46 * var(--pt));border-radius:calc(7 * var(--pt));font-family:var(--mono);font-size:calc(16 * var(--pt));font-weight:700;color:#fff}.hud-chip.small{height:calc(22 * var(--pt));font-size:calc(13 * var(--pt))}.hud-step-text{display:flex;flex:1;flex-direction:column;gap:calc(2 * var(--pt));min-width:0;font-family:var(--mono);font-size:calc(15 * var(--pt));font-weight:600;white-space:nowrap}.hud-step-text small{font-family:Geist,system-ui,sans-serif}.hud-step-left{font-size:calc(32 * var(--pt));font-weight:700}.mac-hud .meter{height:4px;border-radius:4px;background:#ffffff1f;overflow:hidden}.mac-hud .meter span{display:block;height:100%;background:var(--brand-dark);transform-origin:left;transition:transform 1s linear,background-color .3s}.hud-next{display:flex;align-items:center;gap:calc(8 * var(--pt));height:calc(22 * var(--pt));font-family:var(--mono);font-size:calc(13 * var(--pt));font-weight:600}.hud-next small{font-family:Geist,system-ui,sans-serif}.hud-next .hud-next-time{margin-left:auto;font-family:var(--mono);font-size:calc(13 * var(--pt))}.mac-hud.pill{top:calc(30px + 1.4cqi);left:50%;display:flex;flex-direction:column;justify-content:center;gap:calc(10 * var(--pt));width:min(calc(480 * var(--pt)),calc(100% - 24px));height:calc(88 * var(--pt));padding:0 calc(16 * var(--pt));border-radius:calc(28 * var(--pt));translate:-50% 0;font-family:ui-rounded,SF Pro Rounded,system-ui,sans-serif;white-space:nowrap}.mac-hud.pill .ticker{font-family:inherit;font-feature-settings:"tnum"}.pill-row{display:flex;align-items:center;gap:calc(14 * var(--pt))}.pill-row>.wordmark-mark{width:calc(22 * var(--pt));height:calc(24 * var(--pt));color:var(--brand-dark)}.pill-power{display:inline-flex;align-items:baseline;gap:calc(4 * var(--pt));font-size:calc(32 * var(--pt));font-weight:700}.pill-power small{font-size:calc(12 * var(--pt));font-weight:600}.pill-target{display:flex;flex:1;flex-direction:column;gap:calc(2 * var(--pt));font-size:calc(16 * var(--pt));font-weight:600;color:var(--brand-dark)}.pill-target small{font-size:calc(9 * var(--pt));font-weight:600;text-transform:uppercase}.pill-interval{font-size:calc(26 * var(--pt));font-weight:600}.layout-switch{display:flex;justify-content:center;gap:6px;margin-top:40px}.layout-switch button{height:36px;padding:0 16px;border:0;border-radius:18px;background:transparent;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;transition:background-color .2s,color .2s}.layout-switch button:hover{color:#fff}.layout-switch button[aria-pressed=true]{background:#ffffff1a;color:#fff}.integrations{border-top:1px solid var(--line)}.integrations-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.answers{margin-top:40px}.answers>div{padding:18px 0;border-top:1px solid var(--line)}.answers dt{font-size:15px;font-weight:600}.answers dd{margin-top:6px;font-size:14px;line-height:1.65;color:var(--muted)}.sync-card{padding:22px 24px 10px;border-radius:26px;background:var(--card);box-shadow:0 0 0 1px var(--line),0 30px 70px -50px #1e2a5066}.sync-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:16px;border-bottom:1px solid var(--line)}.sync-title{font-size:17px;font-weight:600;letter-spacing:-.01em}.sync-meta{font-size:12px;color:var(--soft)}.sync-card ol{margin:0;padding:0;list-style:none}.sync-card li{display:flex;align-items:center;gap:14px;padding:15px 0}.sync-card li+li{border-top:1px solid var(--line)}.sync-icon{flex-shrink:0;width:34px;height:34px}.sync-icon img{width:100%;height:100%;border-radius:9px}.sync-icon svg{width:100%;height:100%;fill:none;stroke:var(--soft);stroke-width:1.5;stroke-linejoin:round}.sync-icon text{fill:var(--muted);stroke:none;font-family:var(--mono);font-size:7px;font-weight:600}.sync-name{display:flex;flex-direction:column;font-size:15px;font-weight:600}.sync-name small{margin-top:2px;font-size:12.5px;font-weight:500;color:var(--soft)}.sync-status{display:grid;margin-left:auto;font-size:13px;font-weight:500;text-align:right}.sync-status>span{grid-area:1 / 1;display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;opacity:0}.sync-pending{color:var(--soft)}.sync-done{color:var(--ink)}.sync-done svg{width:16px;height:16px;fill:none;stroke:#2e9e6b;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sync-card.is-in .sync-pending{animation:sync-pending .8s linear calc(.5s + var(--step) * .9s) both}.sync-card.is-in .sync-done{animation:sync-done .45s var(--ease) calc(1.25s + var(--step) * .9s) both}.get{padding-bottom:0;border-top:1px solid var(--line)}.get-copy{text-align:center}.get-copy h2{margin-top:14px}.get-copy p:not(.eyebrow){margin:24px auto 32px;max-width:420px;font-size:16px;line-height:1.75;color:var(--muted)}.get-island{margin:112px 0 0;padding:120px 0 72px;background:linear-gradient(var(--paper),#d3d9e0 120px)}.get-island img{width:min(1100px,calc(100% - 48px));height:auto;margin-inline:auto;mask-image:radial-gradient(50% 50% at 50% 50%,#000 78%,transparent);-webkit-mask-image:radial-gradient(50% 50% at 50% 50%,#000 78%,transparent)}.footer{border-top:1px solid var(--line)}.footer-inner{display:flex;align-items:center;gap:24px;min-height:104px}.footer .hupser-logo{height:23px}.footer nav{display:flex;align-items:center;gap:24px;margin-left:auto;font-size:13px;color:var(--muted)}.footer nav a:hover{color:var(--ink)}.footer small{font-size:13px;color:var(--soft)}@keyframes sync-pending{0%{opacity:0}15%,85%{opacity:1}to{opacity:0}}@keyframes sync-done{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes arrive{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes pan{0%{transform:translate(-60px)}to{transform:translate(60px)}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:900px){.integrations-grid{grid-template-columns:1fr;gap:48px}.workout-tabs,.specs{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.ride-act,.container,.nav-inner{width:calc(100% - 40px)}.nav nav{display:none}.nav-sign-in{margin-left:auto}.nav-inner{justify-content:space-between}.section{padding:88px 0}.workout-panel{padding:14px;border-radius:22px}.chart-surface{height:180px}.zone-pill{margin-left:0}.specs{grid-template-columns:1fr;gap:24px;margin-top:48px}.screen{aspect-ratio:4 / 5}.mac-hud{--pt: .8px}.mac-hud.corner{right:12px;top:42px}.menubar-left span,.menubar-right span:last-child{display:none}.get-island{margin-top:72px;padding:80px 0 48px}.mac:after{height:200px;margin-top:64px}.footer-inner{flex-wrap:wrap;gap:12px 24px;padding:28px 0}.footer nav{flex-wrap:wrap;width:100%;margin:0;gap:12px 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}[data-reveal]{opacity:1;transform:none}.sync-done{opacity:1!important}}
