:root{--bg:#12151a;--bg2:#0f1319;--card-hi:#202730;--card-lo:#171d24;--card:#1b222b;--inset:#00000047;--border:#2d3641;--text:#dde5ee;--muted:#8b99a9;--accent:#3fe0c0;--accent-dim:#2aa88f;--accent-text:#06251d;--glow:#3fe0c059;--danger:#ff6b6b;--sans:"Space Grotesk", -apple-system, system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{font:15px/1.5 var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}#root{height:100%}.app{background:radial-gradient(1200px 500px at 50% -220px, #3fe0c00f, transparent 60%), var(--bg);flex-direction:column;max-width:640px;height:100dvh;margin:0 auto;display:flex}.topbar{padding:16px 18px 8px;padding-top:calc(16px + env(safe-area-inset-top));align-items:baseline;gap:10px;display:flex}.brand{color:var(--text);letter-spacing:-.5px;cursor:pointer;font-size:22px;font-weight:700;font-family:var(--sans);background:0 0;border:none;padding:0}.brand-tick{color:var(--accent)}.feedback-link{font:600 10px var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-dim);background:#3fe0c00d;border-radius:999px;align-self:center;margin-left:auto;padding:4px 10px;text-decoration:none}.tagline{font:500 10px var(--mono);color:var(--muted);letter-spacing:1.5px;text-transform:uppercase}.content{flex:1;padding:4px 16px 24px;animation:.26s viewIn;overflow-y:auto}@keyframes viewIn{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.content{animation:none}}.tabbar{border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);background:#0d1015;grid-template-columns:1fr 1fr 1fr;display:grid}.tabbar button{color:var(--muted);font:600 10px var(--mono);letter-spacing:1px;text-transform:uppercase;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:10px 0 8px;display:flex}.tabbar button.active{color:var(--accent)}.tab-icon{width:22px;height:22px}.card{background:linear-gradient(165deg, var(--card-hi), var(--card-lo));border:1px solid var(--border);border-radius:16px;margin-bottom:14px;padding:18px;box-shadow:0 10px 24px #00000059,inset 0 1px #ffffff0a}.card h2{margin:0 0 12px;font-size:18px;font-weight:700}.card h3{flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:700;display:flex}.pagetitle{margin:10px 4px 2px;font-size:24px;font-weight:700}.bike-meta{font:500 11px var(--mono);color:var(--muted);letter-spacing:.8px;text-transform:uppercase;margin:0 4px 16px}.bike-row .bike-meta{text-transform:none;letter-spacing:.3px;margin:2px 0 0}.chip{background:var(--inset);border:1px solid var(--border);color:var(--muted);font:600 10px var(--mono);text-transform:uppercase;letter-spacing:1px;border-radius:4px;padding:2px 7px}.hint,.note{color:var(--muted);font-size:13px}.note{margin:10px 0 0}.mods-note{color:#b8d8ce;border-left:2px solid var(--accent-dim);background:#3fe0c00d;border-radius:0 6px 6px 0;padding:6px 10px}.unit-label{font:600 12px var(--mono);color:var(--accent);letter-spacing:.5px;margin:6px 0 0}label{color:var(--muted);margin-bottom:12px;font-size:13px;font-weight:600;display:block}input,textarea{background:var(--inset);border:1px solid var(--border);width:100%;color:var(--text);font:16px var(--sans);border-radius:10px;margin-top:6px;padding:10px 12px;display:block}input[type=number]{font-family:var(--mono);font-size:15px}input:focus,textarea:focus{outline:2px solid var(--accent-dim);border-color:#0000}.row{align-items:center;gap:8px;display:flex}.row input{margin-top:6px}.row button{flex-shrink:0}button{font-family:var(--sans);border:1px solid var(--border);background:linear-gradient(165deg, var(--card-hi), var(--card-lo));color:var(--text);cursor:pointer;border-radius:12px;padding:10px 16px;font-size:14px;font-weight:700;transition:transform 60ms,box-shadow .15s}button:hover:not(:disabled){border-color:#3d4a58}button:active{transform:scale(.985)}button:disabled{opacity:.45;cursor:default;transform:none}button.primary{color:var(--accent-text);background:linear-gradient(#52ecd0,#2fc9a9);border:none;box-shadow:0 6px 18px #3fe0c038,inset 0 1px #ffffff59}button.accent-outline{border-color:var(--accent-dim);color:var(--accent);background:#3fe0c00d}button.big{width:100%;margin:4px 0 10px;padding:15px;font-size:15px}button.ghost{color:var(--accent);box-shadow:none;background:0 0;border:none;padding:6px 8px}button.ghost.small{padding:4px 0 0;font-size:12px}button.danger{color:var(--danger)}.seg{border:1px solid var(--border);border-radius:10px;margin-top:6px;display:inline-flex;overflow:hidden}.seg button{background:var(--inset);color:var(--muted);box-shadow:none;border:none;border-radius:0}.seg button.on{background:var(--accent);color:var(--accent-text)}.seg.wide{width:100%;margin-bottom:14px;display:flex}.seg.wide button{flex:1;padding:12px}.choice-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;display:grid}.choice{padding:14px 10px;font-weight:600}.choice.on{border-color:var(--accent);color:var(--accent);background:#3fe0c014}.checkline{color:var(--text);align-items:center;gap:8px;font-size:14px;display:flex}.checkline input{width:auto;margin:0}.nav-row{justify-content:space-between;gap:10px;margin:10px 0 20px;display:flex}.nav-row button{min-width:100px}.nav-row .primary{flex:1}.steps{gap:6px;margin:10px 0 16px;display:flex}.step-dot{text-align:center;font:600 10px var(--mono);text-transform:uppercase;letter-spacing:1px;color:var(--muted);border-bottom:3px solid var(--border);flex:1;padding:6px 0}.step-dot.on{color:var(--accent);border-color:var(--accent)}.step-dot.done{border-color:var(--accent-dim)}.adjusters summary,.sag-helper summary,.clicks-help summary{cursor:pointer;color:var(--accent);margin:12px 0 10px;font-size:13px;font-weight:600}.clicks-help{background:var(--inset);border:1px solid var(--border);border-radius:10px;margin:10px 0;padding:2px 12px}.clicks-help summary{margin:8px 0}.clicks-help ul{margin:0 0 10px;padding-left:18px;font-size:13.5px;line-height:1.55}.clicks-help li{margin-bottom:7px}.clicks-help li b{color:var(--accent)}.clicks-help p{color:var(--muted);margin:0 0 10px;font-size:12.5px}.account-line{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:24px 0 0;font-size:13px;display:flex}.account-line b{color:var(--text);font-weight:500}.account-line button{padding:5px 12px;font-size:12px}.legal-links{text-align:center;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:26px 0 8px;font-size:11px}.legal-links a{color:var(--muted);text-decoration:none}.legal-links a:hover{color:var(--accent)}.legal-note{color:var(--muted);margin-top:14px;font-size:12px}.legal-note a{color:var(--accent)}.adj-row input{max-width:160px}.stat-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.stat{background:var(--inset);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.stat-label{font:600 9px var(--mono);text-transform:uppercase;letter-spacing:1.2px;color:var(--muted)}.stat-value{font:600 20px var(--mono);color:var(--accent);text-shadow:0 0 14px var(--glow);margin-top:2px}.stat-sub{font:500 10px var(--mono);color:var(--muted);margin-top:2px}.unit-head{justify-content:space-between;align-items:flex-start;display:flex}.edit-grid{margin-top:12px}.edit-grid label{margin-bottom:10px}.dials{flex-wrap:wrap;gap:16px;margin-top:14px;display:flex}.dial-wrap{flex-direction:column;align-items:center;gap:6px;display:flex}.dial-label{font:600 9px var(--mono);text-transform:uppercase;letter-spacing:1.2px;color:var(--muted)}.dial{background:radial-gradient(circle at 32% 26%,#414d5b,#252d37 55%,#191f26 100%);border-radius:50%;flex-shrink:0;width:104px;height:104px;position:relative;box-shadow:inset 0 2px 5px #ffffff14,inset 0 -6px 14px #0000008c,0 8px 18px #00000073}.dial:after{content:"";pointer-events:none;border:1px solid #ffffff0d;border-radius:50%;position:absolute;inset:-4px}.dial .ticks{background:repeating-conic-gradient(from -122deg,#5d6a78 0deg 2deg,#0000 2deg 15deg);border-radius:50%;position:absolute;inset:6px;-webkit-mask:radial-gradient(circle,#0000 56%,#000 58% 73%,#0000 75%);mask:radial-gradient(circle,#0000 56%,#000 58% 73%,#0000 75%)}.dial .needle{transition:transform .5s cubic-bezier(.34,1.56,.64,1);position:absolute;inset:0}.dial .needle:before{content:"";background:var(--accent);width:3px;height:24px;box-shadow:0 0 10px var(--glow);border-radius:3px;position:absolute;top:8px;left:calc(50% - 1.5px)}.dial-read{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dial-read b{font:600 26px/1 var(--mono);color:var(--accent);text-shadow:0 0 14px var(--glow)}.dial-read span{font:500 8px var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-top:3px}.ring-wrap{flex-direction:column;flex-shrink:0;align-items:center;gap:5px;display:flex}.ring-box{position:relative}.ring-bg{fill:none;stroke:var(--border)}.ring-fg{fill:none;stroke:var(--accent);filter:drop-shadow(0 0 4px var(--glow));transition:stroke-dasharray .6s}.ring-read{font-family:var(--mono);color:var(--accent);justify-content:center;align-items:center;font-weight:600;display:flex;position:absolute;inset:0}.bike-mark{flex-shrink:0;width:128px;height:auto}.bm-frame{stroke:#55636f}.bm-accent{stroke:var(--accent);filter:drop-shadow(0 0 4px var(--glow))}.setup-status{align-items:center;gap:18px;padding:16px 18px;display:flex}.setup-status-copy{flex:1}.setup-status-copy .stat-label{margin-bottom:3px}.setup-hint{color:var(--muted);margin:6px 0 0;font-size:13px}.setup-hint b{color:var(--accent);font-weight:600}.bal-row{align-items:center;gap:10px;margin-top:10px;display:flex}.bal-label{font:600 9px var(--mono);text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);width:40px}.bal-row .track{flex:1;height:10px;margin:0}.bal-row .track .fill{border-radius:5px 0 0 5px}.bal-val{font:600 13px var(--mono);color:var(--accent);text-align:right;width:42px}.confirm-inline{align-items:center;gap:6px;display:inline-flex}.confirm-inline span{font:600 10px var(--mono);text-transform:uppercase;letter-spacing:1px;color:var(--danger)}.confirm-inline button{border-radius:8px;padding:6px 10px;font-size:12px}.confirm-inline button.danger{border-color:#ff6b6b80}.track{border:1px solid var(--border);background:linear-gradient(#10141a,#1b222b);border-radius:7px;height:14px;margin:12px 0 4px;position:relative;box-shadow:inset 0 2px 4px #0009}.track .fill{background:linear-gradient(90deg, var(--accent-dim), var(--accent));box-shadow:0 0 12px var(--glow);border-radius:7px 0 0 7px;transition:width .4s;position:absolute;top:0;bottom:0;left:0}.track .zone{border-left:1px dashed #ffffff40;border-right:1px dashed #ffffff40;position:absolute;top:0;bottom:0}.track .oring{background:#e8eef4;border-radius:3px;width:6px;height:22px;transition:left .4s;position:absolute;top:-4px;box-shadow:0 1px 4px #0009}.bike-row{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;transition:border-color .15s;display:flex}.bike-row:hover{border-color:var(--accent-dim)}.bike-name{font-size:17px;font-weight:700}.row-right{flex-shrink:0;align-items:center;gap:4px;display:flex}.gate{text-align:center;max-width:380px;margin:0 auto;padding:48px 20px}.gate .empty-mark{width:72px;margin-bottom:4px}.gate h2{margin:8px 0 6px}.gate .hint{margin:0 0 24px}.gate .field{text-align:left}.gate .field em{color:var(--muted);font-style:normal;font-weight:400}.gate .primary.big{width:100%;margin:8px 0 10px}.gate .ghost{width:100%}.gate .legal-note{margin-top:18px}.gate-err{color:var(--danger);text-align:left;margin:-4px 0 12px;font-size:13px}.shared{text-align:center;max-width:420px;margin:0 auto;padding:40px 20px}.shared-brand{font-size:24px;font-weight:700}.shared-brand .brand-tick{color:var(--accent)}.shared-kicker{color:var(--muted);margin:4px 0 18px;font-size:13px}.shared-card{text-align:left}.shared-card h2{margin:0 0 4px}.shared-unit{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.shared-unit h3{margin:0 0 4px}.shared-settings{margin-top:4px;font-size:14px}.shared .note{text-align:left;margin:14px 0 16px}.shared .primary.big{width:100%}.empty{text-align:center;padding:48px 16px}.empty-mark{width:86px;height:86px;filter:drop-shadow(0 0 22px var(--glow));border-radius:22px}.empty .bike-mark{color:#55636f;width:168px}.empty h2{margin:12px 0 8px}.empty p{color:var(--muted);max-width:320px;margin:0 auto 20px}.log{margin:14px 0 0;padding:0;list-style:none}.log li{border-top:1px solid var(--border);padding:10px 0 10px 16px;font-size:14px;position:relative}.log li:before{content:"";background:var(--border);border-radius:50%;width:6px;height:6px;position:absolute;top:17px;left:2px}.log li:first-child:before{background:var(--accent);box-shadow:0 0 8px var(--glow)}.log-ts{font:500 10px var(--mono);color:var(--muted);margin-right:8px}.log-src{font:600 9px var(--mono);text-transform:uppercase;letter-spacing:.5px;background:var(--inset);border:1px solid var(--border);color:var(--muted);border-radius:4px;padding:1px 5px}.src-ai{color:var(--accent)}.src-wizard{color:#7cb7ff}.guide-head{align-items:center;gap:8px;padding:4px 0 8px;display:flex}.guide-head .chip{color:var(--accent);border-color:var(--accent-dim);margin-left:auto}.guide-head .ghost.small{padding:4px 0}.guide-card h2{margin:4px 0 10px;font-size:20px}.guide-body{margin:0 0 14px;font-size:15px;line-height:1.55}.guide-pass{color:var(--accent);margin:10px 0 4px;font-weight:600}.pass-tick{border:1.5px solid var(--accent);vertical-align:-3px;width:18px;height:18px;box-shadow:0 0 8px var(--glow);border-radius:50%;justify-content:center;align-items:center;margin-right:6px;font-size:11px;display:inline-flex}.rec-inline{border-top:1px solid var(--border);margin-top:4px;padding-top:12px}.card.rec-card{border-color:var(--accent-dim);background:linear-gradient(165deg,#1d2b28,#16211f)}.guide-card .big{margin-bottom:6px}.guide-card .ghost.small{margin:2px auto 0;display:block}.guide-foot{text-align:center;padding:2px 0 16px}.chat{flex-direction:column;height:100%;display:flex}.chat-head{justify-content:space-between;align-items:center;padding:4px 0;display:flex}.chat-scroll{flex:1;padding:4px 0 12px;overflow-y:auto}.chat-hello{color:var(--muted);padding:12px 4px}.suggestions{flex-direction:column;gap:8px;margin-top:14px;display:flex}.suggestions button{text-align:left;color:var(--text);background:var(--inset);border:1px solid var(--border);border-radius:10px;font-weight:500}.suggestions button:hover{border-color:var(--accent-dim)}.bubble{white-space:normal;border-radius:14px;max-width:88%;margin-bottom:10px;padding:10px 14px;font-size:15px}.bubble.user{background:var(--accent-dim);color:#04231b;border-bottom-right-radius:4px;margin-left:auto;font-weight:500}.bubble.assistant{background:linear-gradient(165deg, var(--card-hi), var(--card-lo));border:1px solid var(--border);border-bottom-left-radius:4px}.bubble.error{border:1px solid var(--danger);color:var(--danger);background:#ff6b6b1f}.sag-photo{flex-direction:column;gap:6px;margin-top:10px;display:flex}.sag-photo button{align-self:flex-start}.applied-chip{color:var(--accent);background:#3fe0c01a;border:1px solid #3fe0c066;border-radius:999px;margin-top:8px;margin-right:6px;padding:4px 10px;font-size:12.5px;font-weight:600;display:inline-block}.typing{color:var(--muted);font-style:italic}.banner{color:#ffc457;background:#ffc4571a;border:1px solid #ffc45773;border-radius:10px;margin-bottom:12px;padding:10px 12px;font-size:13px}.chat-input{gap:8px;padding:8px 0 12px;display:flex}.chat-input textarea{resize:none;margin:0}.content.bare{padding:0}.landing{flex-direction:column;min-height:100%;display:flex}.scene{background:linear-gradient(180deg, #0a0d13 0%, #0e1721 42%, #12303244 70%, var(--bg) 100%);flex-shrink:0;height:min(56vh,460px);min-height:380px;position:relative;overflow:hidden}.scene svg{width:100%;height:100%;position:absolute;inset:0}.halo{background:radial-gradient(circle,#3fe0c038,#3fe0c00d 45%,#0000 70%);border-radius:50%;width:340px;height:340px;position:absolute;top:26%;left:50%;transform:translate(-50%,-50%)}.star{opacity:.6;background:#b8c6d4;border-radius:50%;width:2px;height:2px;animation:3s ease-in-out infinite alternate starTw;position:absolute}@keyframes starTw{to{opacity:.15}}.trail{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:7 9;filter:drop-shadow(0 0 6px var(--glow));animation:2.6s linear infinite trailFlow}@keyframes trailFlow{to{stroke-dashoffset:-64px}}@media (prefers-reduced-motion:reduce){.star,.trail,.ask{animation:none}}.hero-copy{text-align:center;position:absolute;top:11%;left:0;right:0}.landing-brand{letter-spacing:-1px;text-shadow:0 4px 24px #000000b3;font-size:34px;font-weight:700}.hero-copy .tagline{color:#a9bac6;letter-spacing:3.5px;margin-top:5px;display:block}.promise{text-align:center;padding:0 34px;position:absolute;bottom:18px;left:0;right:0}.promise h1{text-shadow:0 4px 22px #000c;margin:0 0 8px;font-size:25px;font-weight:700;line-height:1.22}.promise h1 i,.ask-hero h1 i{color:var(--accent);font-style:normal}.promise p{color:#a9bac6;text-shadow:0 2px 12px #000c;margin:0;font-size:13.5px}.landing-body{padding:18px 24px calc(24px + env(safe-area-inset-bottom))}.or-divider{color:var(--muted);font:600 10px var(--mono);letter-spacing:2px;text-transform:uppercase;align-items:center;gap:12px;margin:0 6px 4px;display:flex}.or-divider:before,.or-divider:after{content:"";background:var(--border);flex:1;height:1px}.cta-sub{text-align:center;color:var(--muted);margin:8px 0 16px;font-size:12px}.proof{justify-content:center;gap:22px;padding-bottom:8px;display:flex}.proof div{text-align:center}.proof b{font:600 17px var(--mono);color:var(--accent);text-shadow:0 0 14px var(--glow);display:block}.proof span{font:500 9px var(--mono);color:var(--muted);letter-spacing:1.2px;text-transform:uppercase}.marketing-section{margin-top:40px}.marketing-section:first-of-type{border-top:1px solid var(--border);margin-top:44px;padding-top:28px}.marketing-h2{font:600 11px var(--mono);color:var(--muted);letter-spacing:2.5px;text-transform:uppercase;text-align:center;margin:0 0 14px}.feature-grid{grid-template-columns:1fr;gap:12px;display:grid}.feature-card{border:1px solid var(--border);background:linear-gradient(165deg,#161c25,#10151d);border-radius:14px;padding:18px 18px 16px}.feature-card h3{letter-spacing:-.2px;margin:10px 0 6px;font-size:15px;font-weight:600}.feature-card p{color:#a9bac6;margin:0;font-size:13.5px;line-height:1.5}.feat-icon{width:28px;height:28px;color:var(--accent);filter:drop-shadow(0 0 8px var(--glow))}.how-steps{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.how-steps li{align-items:flex-start;gap:14px;display:flex}.how-steps li b{width:32px;height:32px;font:600 15px var(--mono);color:var(--accent);border:1px solid var(--accent-dim);text-shadow:0 0 10px var(--glow);background:#3fe0c00f;border-radius:999px;flex-shrink:0;place-items:center;display:grid}.how-steps li h3{letter-spacing:-.1px;margin:4px 0;font-size:14px;font-weight:600}.how-steps li p{color:#a9bac6;margin:0;font-size:13px;line-height:1.5}.who-for p{color:#a9bac6;text-align:center;margin:0;font-size:13.5px;line-height:1.55}.returning-sign-in{border:1px dashed var(--border);text-align:center;background:#ffffff04;border-radius:12px;margin-top:34px;padding:20px 16px}.returning-sign-in p{color:var(--muted);margin:0 0 10px;font-size:13px}.returning-sign-in button{min-width:140px}@media (width>=620px){.feature-grid{grid-template-columns:1fr 1fr 1fr}.marketing-h2{font-size:12px}}.home{padding-top:8px}.ask-hero{padding:26px 4px 18px}.ask-hero h1{letter-spacing:-.5px;margin:0 0 8px;font-size:30px;font-weight:700;line-height:1.14}.ask-hero h1 i{text-shadow:0 0 22px var(--glow)}.ask-hero .hint{margin:0 0 20px;font-size:14px}.ask{background:linear-gradient(135deg,#3fe0c0b3,#3fe0c01f 40%,#3fe0c08c);border-radius:16px;padding:2px;animation:3.2s ease-in-out infinite askBreathe;position:relative}@keyframes askBreathe{50%{box-shadow:0 0 34px #3fe0c038}}.ask-inner{background:#10151b;border-radius:14px;align-items:center;gap:10px;padding:8px 8px 8px 16px;display:flex}.ask-inner input{background:0 0;border:none;flex:1;width:auto;margin:0;padding:8px 0;font-size:15px}.ask-inner input:focus{outline:none}.ask-inner input::placeholder{color:#6d7d8e}.go{width:40px;height:40px;color:var(--accent-text);font:700 18px var(--sans);background:linear-gradient(#52ecd0,#2fc9a9);border:none;border-radius:12px;flex-shrink:0;box-shadow:0 4px 14px #3fe0c04d}.chips{flex-wrap:wrap;gap:8px;margin:14px 0 0;display:flex}.chips button{border:1px solid var(--border);color:var(--text);background:#ffffff05;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:500}.chips button:hover:not(:disabled){border-color:var(--accent-dim);color:var(--accent)}.section-label{font:600 10px var(--mono);color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin:10px 0 8px}.home-actions{gap:8px;margin-top:12px;display:flex}.home-actions button{flex:1;padding:12px}
