<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="900" viewBox="0 0 1200 900" role="img" aria-labelledby="title desc">
  <title id="title">BikeFittr bike fit angle chart</title>
  <desc id="desc">Printable reference ranges for common cycling fit angles.</desc>
  <rect width="1200" height="900" fill="#0f172a"/>
  <rect x="48" y="48" width="1104" height="804" rx="28" fill="#ffffff"/>
  <text x="90" y="120" fill="#0f172a" font-family="Inter, Arial, sans-serif" font-size="48" font-weight="800">Bike fit angle chart</text>
  <text x="90" y="165" fill="#475569" font-family="Inter, Arial, sans-serif" font-size="24">Starting ranges for at-home checks. Measure from a clear side-view photo.</text>
  <g font-family="Inter, Arial, sans-serif" font-size="20">
    <rect x="90" y="210" width="1020" height="58" fill="#e2e8f0"/>
    <text x="112" y="248" fill="#0f172a" font-weight="700">Fit area</text>
    <text x="330" y="248" fill="#0f172a" font-weight="700">What to measure</text>
    <text x="705" y="248" fill="#0f172a" font-weight="700">Road / gravel</text>
    <text x="910" y="248" fill="#0f172a" font-weight="700">Tri / TT</text>

    <g fill="#0f172a">
      <text x="112" y="315" font-weight="700">Saddle height</text>
      <text x="330" y="315">Knee angle at bottom stroke</text>
      <text x="705" y="315">140–150°</text>
      <text x="910" y="315">145–155°</text>

      <text x="112" y="385" font-weight="700">Hip angle</text>
      <text x="330" y="385">Hip near top of stroke</text>
      <text x="705" y="385">45–60°</text>
      <text x="910" y="385">50–65°</text>

      <text x="112" y="455" font-weight="700">Back angle</text>
      <text x="330" y="455">Torso angle from horizontal</text>
      <text x="705" y="455">35–50°</text>
      <text x="910" y="455">15–30°</text>

      <text x="112" y="525" font-weight="700">Elbow bend</text>
      <text x="330" y="525">Elbow angle on hoods/extensions</text>
      <text x="705" y="525">150–170°</text>
      <text x="910" y="525">90–110°</text>

      <text x="112" y="595" font-weight="700">Setback</text>
      <text x="330" y="595">Knee over pedal spindle check</text>
      <text x="705" y="595">Near neutral</text>
      <text x="910" y="595">Often forward</text>

      <text x="112" y="665" font-weight="700">Reach</text>
      <text x="330" y="665">Shoulder, elbow, wrist line</text>
      <text x="705" y="665">Relaxed shoulders</text>
      <text x="910" y="665">Stable elbows</text>
    </g>
  </g>
  <rect x="90" y="720" width="1020" height="82" rx="16" fill="#f1f5f9"/>
  <text x="112" y="755" fill="#0f172a" font-family="Inter, Arial, sans-serif" font-size="22" font-weight="700">Use one change at a time</text>
  <text x="112" y="785" fill="#475569" font-family="Inter, Arial, sans-serif" font-size="20">Take the same side-view photo before and after each saddle, cleat, stem, or bar adjustment.</text>
  <text x="90" y="842" fill="#ffffff" font-family="Inter, Arial, sans-serif" font-size="22" font-weight="700">bikefittr.com/bike-fit-angle-chart</text>
</svg>
