:root{--bg:#0b0d10;--panel:#11151a;--panel2:#151a20;--text:#f5f7f8;--muted:#89939d;--line:#252c34;--accent:#a7ff5b;--warn:#ffd761;--danger:#ff6b6b;--radius:24px;--shadow:0 24px 80px rgba(0,0,0,.35)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(1000px 500px at 75% -10%,rgba(167,255,91,.07),transparent 70%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.shell{width:min(1160px,calc(100% - 32px));margin-inline:auto}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px max(16px,calc((100% - 1160px)/2));background:rgba(11,13,16,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.05)}.brand{display:flex;gap:10px;align-items:center;color:#fff;text-decoration:none;font-weight:900;letter-spacing:.04em}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--accent);color:#0b0d10;font-style:italic}.version{font-size:11px;color:var(--muted);font-weight:800;letter-spacing:.12em}.hero{padding:82px 0 48px;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}.eyebrow{margin:0 0 12px;color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.16em}.hero h1{font-size:clamp(48px,7vw,86px);line-height:.92;letter-spacing:-.065em;margin:0;max-width:780px}.hero h1 span{color:#89939d}.lead{max-width:650px;color:#a8b0b8;font-size:18px;line-height:1.6}.hero-badges{display:flex;flex-wrap:wrap;gap:8px}.hero-badges span,.chip{border:1px solid var(--line);padding:8px 11px;border-radius:999px;color:#c7ced4;font-size:11px;font-weight:800}.hero-card,.planner-card,.panel,.finish-card,.metric-grid article{background:linear-gradient(180deg,rgba(255,255,255,.025),transparent),var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.hero-card{border-radius:30px;padding:24px;overflow:hidden}.live-dot{font-size:11px;font-weight:800;color:#cbd2d7}.live-dot i{display:inline-block;width:8px;height:8px;background:var(--accent);border-radius:50%;margin-right:8px;box-shadow:0 0 18px var(--accent)}.profile{margin:24px -10px 6px;color:var(--accent)}.profile svg{width:100%;overflow:visible}.profile svg text{fill:#7f8993;font-size:12px;font-weight:900;letter-spacing:.08em}.guide{stroke:#39414a;stroke-dasharray:5 7}.profile-meta{display:flex;justify-content:space-between;color:#6e7881;font-size:10px;font-weight:900;letter-spacing:.12em}.planner-wrap{padding:54px 0}.section-head h2,.result-top h2{font-size:clamp(34px,5vw,58px);letter-spacing:-.045em;margin:0 0 26px}.planner-card{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:22px;border-radius:28px}.span2{grid-column:span 2}.field{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:18px;background:#0e1115;border:1px solid #232a31}.field>span{font-size:11px;color:#89939d;font-weight:900;letter-spacing:.11em}.field small{color:#6f7982;font-size:11px}.field input,.field select{width:100%;background:transparent;color:#fff;border:0;outline:0;font-size:18px;font-weight:800;appearance:none}.time-grid{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:8px}.time-grid.two{grid-template-columns:1fr auto 1fr}.time-grid b{color:#5e6871}.unit-input{display:flex}.unit-input em{font-style:normal;color:#79828a;font-weight:800}.file{font-size:13px!important;color:#9aa4ad!important}.cta{display:flex;align-items:center;justify-content:space-between;border:0;border-radius:18px;padding:20px 22px;background:var(--accent);color:#0a0d0e;font-weight:950;letter-spacing:.04em;cursor:pointer}.cta strong{font-size:20px}.demo-note{text-align:center;color:#626c75;font-size:11px;margin:0}.results{padding:50px 0 80px}.hidden{display:none}.result-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.viability{max-width:700px;color:#aab2b9;line-height:1.55}.finish-card{min-width:250px;border-radius:22px;padding:22px}.finish-card small,.metric-grid small,.exec-item small{display:block;color:#7c8690;font-size:10px;font-weight:900;letter-spacing:.12em}.finish-card strong{font-size:42px;letter-spacing:-.05em;display:block;margin:5px 0}.finish-card span{color:var(--accent);font-size:12px;font-weight:800}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.metric-grid article{border-radius:20px;padding:18px}.metric-grid strong{display:block;font-size:25px;margin:5px 0}.metric-grid span{color:#6f7881;font-size:12px}.strategy-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.panel{border-radius:26px;padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.panel h3{font-size:28px;letter-spacing:-.035em;margin:0}.segments{display:flex;flex-direction:column}.segment{display:grid;grid-template-columns:94px 1fr 105px;gap:18px;padding:17px 0;border-top:1px solid var(--line);align-items:center}.segment:first-child{border-top:0}.segment-km{font-size:12px;color:#7a848d;font-weight:900}.segment-name strong{display:block;font-size:15px}.segment-name span{font-size:12px;color:#77818a}.segment-pace{text-align:right}.segment-pace strong{display:block;font-size:18px}.segment-pace span{font-size:10px;color:var(--accent);font-weight:900}.exec-item{display:grid;grid-template-columns:38px 1fr;gap:12px;padding:16px 0;border-top:1px solid var(--line)}.exec-item:first-of-type{border-top:0}.exec-item>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#1b2229;color:var(--accent);font-weight:900;font-size:11px}.exec-item strong{display:block;margin:4px 0;font-size:15px}.exec-item p{margin:0;color:#7f8993;font-size:12px;line-height:1.5}.raceband-panel{margin-top:16px}.secondary{background:#181e24;color:#fff;border:1px solid #2b343d;border-radius:12px;padding:10px 13px;font-size:11px;font-weight:900;cursor:pointer}.raceband{display:flex;align-items:stretch;border:1px dashed #56616b;background:#f8fafb;color:#0d1114;min-height:92px;overflow:auto}.band-brand{padding:14px 18px;background:#0e1215;color:#fff;font-weight:950;writing-mode:vertical-rl;transform:rotate(180deg);font-size:13px;letter-spacing:.08em}.band-brand small{color:var(--accent)}.band-splits{display:flex;flex:1}.band-split{min-width:105px;display:flex;flex-direction:column;justify-content:center;padding:12px;border-right:1px solid #d8dde1}.band-split small{font-weight:900;color:#6d757c}.band-split strong{font-size:18px}.band-gels{display:flex;align-items:center;gap:10px;padding:12px 18px;font-size:11px;font-weight:900}.method-note{max-width:850px;margin:18px auto 0;text-align:center;color:#66717a;font-size:11px;line-height:1.5}footer{display:flex;justify-content:space-between;border-top:1px solid #20262c;padding:30px 0 45px;color:#59636c;font-size:10px;font-weight:900;letter-spacing:.12em}
@media(max-width:820px){.shell{width:min(100% - 22px,1160px)}.hero{padding-top:52px;grid-template-columns:1fr;gap:28px}.hero h1{font-size:54px}.lead{font-size:16px}.planner-card{grid-template-columns:1fr}.span2{grid-column:span 1}.result-top{align-items:stretch;flex-direction:column}.finish-card{width:100%}.metric-grid{grid-template-columns:1fr 1fr 1fr}.strategy-layout{grid-template-columns:1fr}.segment{grid-template-columns:76px 1fr 92px;gap:10px}.panel{padding:18px}.panel h3{font-size:23px}.chip{display:none}.raceband{min-width:720px}.raceband-panel{overflow:hidden}.raceband-panel>.raceband{overflow:auto}.topbar{padding-inline:14px}}
@media(max-width:520px){.hero h1{font-size:44px}.metric-grid{grid-template-columns:1fr}.section-head h2,.result-top h2{font-size:36px}.planner-card{padding:12px;border-radius:22px}.segment{grid-template-columns:65px 1fr 82px}.segment-name span{font-size:11px}.finish-card strong{font-size:38px}}
@media print{body{background:#fff;color:#111}.topbar,.hero,.planner-wrap,.result-top,.metric-grid,.strategy-layout,.panel-head,.method-note,footer{display:none!important}.results{display:block!important;padding:0}.raceband-panel{display:block!important;border:0;box-shadow:none;padding:0}.raceband{display:flex!important;border:1px solid #111;min-width:auto;width:100%;box-shadow:none}.band-brand{background:#111!important;color:#fff!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.band-split{min-width:auto;flex:1}.band-gels{min-width:130px}@page{size:A4 landscape;margin:12mm}}

.gpx-status{margin-top:8px;padding:9px 10px;border-radius:10px;background:#151a20;color:#8d98a2;font-size:11px;line-height:1.35}.gpx-status.ok{color:var(--accent);border:1px solid rgba(167,255,91,.2)}.gpx-status.loading{color:#d5dde3}.gpx-status.error{color:#ff8d8d;border:1px solid rgba(255,107,107,.2)}.dynamic-profile-wrap{margin:0 0 16px}.dynamic-profile{color:var(--accent);min-height:150px;display:flex;align-items:center}.dynamic-profile svg{width:100%;height:150px}.segment-km .elev{display:block;margin-top:5px;color:#66717a;font-size:9px;font-weight:800}.segment.climb .segment-pace strong{color:#ffd761}.segment.down .segment-pace strong,.segment.fast .segment-pace strong{color:var(--accent)}

/* 0.3 commerce */
.checkout-panel{display:grid;grid-template-columns:1.3fr .7fr;gap:18px;align-items:stretch;margin:22px 0;background:linear-gradient(135deg,rgba(167,255,91,.09),rgba(255,255,255,.015) 45%),var(--panel);border:1px solid rgba(167,255,91,.25);border-radius:28px;padding:22px;box-shadow:var(--shadow)}
.checkout-copy{padding:8px}.checkout-copy h3{font-size:clamp(28px,4vw,42px);line-height:1.02;letter-spacing:-.045em;margin:0 0 20px;max-width:620px}.included-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.included-grid span{padding:12px 13px;border:1px solid var(--line);background:rgba(11,13,16,.4);border-radius:14px;color:#cbd2d7;font-size:12px;font-weight:750}.secure-note{color:#69737c;font-size:11px;margin:16px 0 0}.price-box{display:flex;flex-direction:column;justify-content:center;padding:22px;border-radius:22px;background:#0d1115;border:1px solid #273039}.price-box>small{color:#7d8790;font-size:10px;font-weight:900;letter-spacing:.12em}.price-box>strong{font-size:48px;letter-spacing:-.055em;margin:7px 0 1px}.price-box>span{color:#7d8790;font-size:12px}.buy-button{margin-top:18px;border:0;border-radius:16px;background:var(--accent);color:#0a0d0e;padding:17px 18px;display:flex;justify-content:space-between;align-items:center;font-weight:950;cursor:pointer;letter-spacing:.03em}.buy-button:disabled{opacity:.55;cursor:wait}.buy-button b{font-size:22px}.checkout-status{min-height:16px;margin:9px 0 0;color:#aab3bb;font-size:11px;line-height:1.4}.unlocked-banner{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:20px 0;padding:13px 16px;border:1px solid rgba(167,255,91,.28);background:rgba(167,255,91,.07);border-radius:14px}.unlocked-banner span{color:var(--accent);font-size:11px;font-weight:950;letter-spacing:.11em}.unlocked-banner small{color:#7d8790;font-size:11px}.premium-content{position:relative}.premium-content.locked{min-height:520px;max-height:610px;overflow:hidden;border-radius:28px}.premium-content.locked:after{content:"";position:absolute;inset:auto 0 0;height:52%;background:linear-gradient(transparent,var(--bg) 82%);pointer-events:none;z-index:3}.premium-content.locked>:not(.premium-lock){filter:blur(5px);opacity:.33;pointer-events:none;user-select:none}.premium-lock{display:none}.premium-content.locked>.premium-lock{position:absolute;z-index:5;display:flex;left:50%;top:120px;transform:translateX(-50%);width:min(360px,calc(100% - 34px));padding:22px;border:1px solid rgba(167,255,91,.28);background:rgba(12,15,18,.94);backdrop-filter:blur(14px);border-radius:22px;box-shadow:0 25px 80px rgba(0,0,0,.5);text-align:center;flex-direction:column;align-items:center;gap:8px}.premium-lock>span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--accent);color:#0b0d10;font-weight:950;font-style:italic}.premium-lock>strong{font-size:13px;letter-spacing:.1em}.premium-lock>small{color:#89939d;line-height:1.45}.actions{display:flex;gap:8px;flex-wrap:wrap}

@media(max-width:820px){.checkout-panel{grid-template-columns:1fr}.included-grid{grid-template-columns:1fr 1fr}.price-box>strong{font-size:42px}}
@media(max-width:520px){.checkout-panel{padding:14px;border-radius:22px}.checkout-copy{padding:4px}.included-grid{grid-template-columns:1fr}.price-box{padding:18px}.unlocked-banner{align-items:flex-start;flex-direction:column}.premium-content.locked{max-height:560px}}

@media print{
  @page{size:auto;margin:10mm}
  body{background:#fff!important;color:#111!important}
  body.print-band .topbar,body.print-band .hero,body.print-band .planner-wrap,body.print-band .result-top,body.print-band .metric-grid,body.print-band .checkout-panel,body.print-band .unlocked-banner,body.print-band .dynamic-profile-wrap,body.print-band .strategy-layout,body.print-band .method-note,body.print-band footer,body.print-band .premium-lock,body.print-band .panel-head{display:none!important}
  body.print-band .results,body.print-band .premium-content,body.print-band .raceband-panel{display:block!important;padding:0!important;margin:0!important;max-height:none!important;overflow:visible!important;border:0!important;box-shadow:none!important;filter:none!important;opacity:1!important}
  body.print-band .premium-content>:not(.premium-lock){filter:none!important;opacity:1!important}
  body.print-band .raceband{display:flex!important;border:1px solid #111;min-width:auto;width:100%;box-shadow:none}

  body.print-full .topbar,body.print-full .hero,body.print-full .planner-wrap,body.print-full .checkout-panel,body.print-full .unlocked-banner,body.print-full footer,body.print-full .premium-lock,body.print-full .method-note{display:none!important}
  body.print-full .results{display:block!important;padding:0!important;width:100%!important}
  body.print-full .result-top{display:flex!important;align-items:flex-end!important;color:#111!important}
  body.print-full .metric-grid{display:grid!important}
  body.print-full .strategy-layout{display:block!important}
  body.print-full .panel-head{display:flex!important}
  body.print-full .premium-content{display:block!important;max-height:none!important;overflow:visible!important}
  body.print-full .premium-content>:not(.premium-lock){filter:none!important;opacity:1!important}
  body.print-full .panel,body.print-full .finish-card,body.print-full .metric-grid article{background:#fff!important;color:#111!important;box-shadow:none!important;border-color:#bbb!important;break-inside:avoid}
  body.print-full .panel{margin-bottom:7mm}
  body.print-full .segment-name span,body.print-full .exec-item p,body.print-full .metric-grid span,body.print-full .viability{color:#444!important}
  body.print-full .eyebrow,body.print-full .segment-pace span,body.print-full .finish-card span{color:#2e6b00!important}
  body.print-full .raceband{min-width:auto;width:100%;overflow:visible!important}
  .band-brand{background:#111!important;color:#fff!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.band-split{min-width:auto;flex:1}.band-gels{min-width:130px}
}


/* 0.4 checkout QA */
.top-actions{display:flex;align-items:center;gap:10px}.env-badge{border:1px solid var(--line);border-radius:999px;padding:6px 9px;color:#8d98a2;font-size:9px;font-weight:950;letter-spacing:.09em}.env-badge.live{border-color:rgba(167,255,91,.35);color:var(--accent);background:rgba(167,255,91,.06)}.env-badge.stripe-test{border-color:rgba(255,215,97,.35);color:var(--warn);background:rgba(255,215,97,.06)}.env-badge.demo{border-color:#3a4651;color:#b4bec6}.env-badge.unconfigured{border-color:rgba(255,107,107,.35);color:#ff8d8d}.purchase-receipt{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 20px;padding:22px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.025),transparent),var(--panel)}.purchase-receipt h3{margin:0 0 8px;font-size:28px;letter-spacing:-.035em}.purchase-receipt p:not(.eyebrow){margin:0;color:#7f8993;font-size:12px}.purchase-receipt dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.purchase-receipt dl div{padding:12px;border:1px solid var(--line);border-radius:14px;background:#0d1115}.purchase-receipt dt{color:#6f7982;font-size:9px;font-weight:900;letter-spacing:.11em}.purchase-receipt dd{margin:5px 0 0;color:#e8ecef;font-size:12px;font-weight:850;word-break:break-word}
@media(max-width:700px){.version{display:none}.purchase-receipt{grid-template-columns:1fr}.purchase-receipt dl{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.version{font-size:9px}.purchase-receipt dl{grid-template-columns:1fr}}
@media print{.purchase-receipt{display:none!important}}
