.ball-hero { padding-block: 39px 33px; }
.ball-hero h1 { font-size: clamp(43px, 5vw, 62px); }
.ball-hero .lead { font-size: 17px; }
.hero-aside { color: var(--muted); font-size: 12px; line-height: 1.9; padding-left: 24px; border-left: 1px solid var(--line); }
.ball-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 22px; align-items: stretch; }
.ball-controls { padding: 30px; min-width: 0; }
.ball-field-heading { display: flex; justify-content: space-between; align-items: center; margin-top: 22px; gap: 12px; }
.ball-field-heading > label { font-size: 14px; font-weight: 650; }
.ball-units { width: 128px; }
.ball-input-line { display: flex; gap: 13px; align-items: baseline; border-bottom: 2px solid var(--ink); padding: 10px 0 6px; }
.ball-input-line input { width: 100%; min-width: 0; border: 0; background: transparent; color: var(--ink); font-size: 62px; font-weight: 650; line-height: 1.3; letter-spacing: -3px; font-variant-numeric: tabular-nums; appearance: textfield; }
.ball-input-line input::-webkit-inner-spin-button, .ball-input-line input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.ball-input-line input[aria-invalid=true] { color: var(--error); }
.ball-input-line input.precise-reading { font-size: 42px; letter-spacing: -1px; }
.ball-input-line input.long-reading { font-size: 24px; letter-spacing: -.3px; }
.ball-input-line > span { font-size: 16px; color: var(--muted); }
.reading-state { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 10px; margin-top: 8px; }
.reading-state button { min-height: 44px; border: 0; background: none; color: var(--green); font-size: 11px; padding: 4px 0 4px 8px; text-decoration: underline; text-underline-offset: 3px; }
.contact-choice { margin-top: 13px; }
.contact-choice legend { font-size: 13px; font-weight: 650; }
.contact-choice > .help { margin-top: 3px; }
.contact-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 14px 0 9px; }
.contact-options label { position: relative; min-width: 0; }
.contact-options input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.contact-options span { display: block; padding: 14px 5px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); text-align: center; }
.contact-options strong { display: block; font-size: 11px; font-weight: 650; }
.contact-options small { display: block; color: var(--muted); font-size: 10px; margin-top: 4px; }
.contact-options input:checked + span { border-color: var(--green); background: var(--green-soft); box-shadow: inset 0 0 0 1px var(--green); }
.contact-options input:focus-visible + span { outline: 3px solid var(--flag); outline-offset: 3px; }
.ball-controls .distance-row { margin-top: 24px; padding-top: 18px; }
.input-limit { font-size: 10px; color: var(--muted); margin: 14px 0 0; }
.ball-result { padding: 30px 35px; background: var(--green-deep); border-radius: var(--radius); color: #f9faf3; min-width: 0; }
.ball-result-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ball-result .step-label { color: #c3d4be; }
.result-tag { border: 1px solid #719a79; border-radius: 20px; padding: 4px 10px; color: #d4e7cb; font-size: 10px; }
.ball-result h2 { font-size: 14px; font-weight: 500; margin: 28px 0 0; color: #d4e7cb; }
.swing-result { display: flex; align-items: baseline; gap: 13px; font-variant-numeric: tabular-nums; margin: 0; line-height: 1.2; }
.swing-result strong { font: 400 clamp(65px, 7vw, 88px)/1.3 Georgia, serif; letter-spacing: -4px; }
.swing-result > span { font-size: 21px; color: #d4e7cb; }
.ball-equation { color: #f2f6e8; font-size: 12px; font-variant-numeric: tabular-nums; margin: 0; }
.assumption-line { color: #c3d4be; font-size: 11px; margin: 5px 0 0; }
.contact-comparison { margin-top: 24px; border-top: 1px solid #42634c; padding-top: 15px; }
.contact-comparison > p { font-size: 11px; color: #c3d4be; margin: 0 0 12px; }
.contact-comparison dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; }
.contact-comparison dt { font-size: 10px; color: #c3d4be; }
.contact-comparison dd { margin: 3px 0 0; font-size: 16px; font-weight: 650; font-variant-numeric: tabular-nums; }
.contact-comparison .selected dd { color: #d9f7aa; }
.build-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 53px; margin-top: 25px; border-radius: 8px; padding: 13px 17px; background: #d9efbd; color: #143e2b; font-size: 13px; font-weight: 750; text-decoration: none; }
.build-card:hover { background: #e6f6d2; }
.build-card > span:last-child { font-size: 22px; font-weight: 400; }
.carry-preview { font-size: 10px; color: #c3d4be; margin: 8px 0 0; }
.result-caution { font-size: 11px; line-height: 1.7; color: #c3d4be; border-top: 1px solid #42634c; padding-top: 15px; margin: 20px 0 0; }
.unavailable-result { font: 400 29px/1.4 Georgia, serif; margin-block: 35px 50px; }
.ball-explainer { display: grid; grid-template-columns: 1fr 1.1fr; gap: 55px; padding-block: 55px 32px; border-bottom: 1px solid var(--line); }
.ball-explainer h2 { font: 400 39px/1.2 Georgia, serif; letter-spacing: -1px; margin: 12px 0; }
.ball-explainer h2 em { color: var(--green); }
.explanation-copy p { font-size: 13px; line-height: 1.85; color: var(--muted); margin: 0 0 15px; }
.explanation-copy strong { color: var(--ink); }
.ball-faq { max-width: 780px; margin: 38px auto 42px; }
.ball-faq h2 { font: 400 29px/1.3 Georgia, serif; margin: 0 0 21px; }
.ball-faq details { border-top: 1px solid var(--line); }
.ball-faq details:last-child { border-bottom: 1px solid var(--line); }
.ball-faq summary { cursor: pointer; min-height: 56px; padding: 16px 5px; font-size: 13px; font-weight: 600; }
.ball-faq details p { padding: 0 5px 13px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.8; }
.ball-sources { border-top: 1px solid var(--line); padding-block: 25px 35px; font-size: 11px; color: var(--muted); }
.ball-sources h2 { font-size: 14px; font-weight: 650; color: var(--ink); margin: 0 0 6px; }
.ball-sources ul { padding-left: 18px; line-height: 1.9; }
.measured-link { display: inline-flex; align-items: center; gap: 20px; min-height: 44px; font-size: 12px; font-weight: 650; }
.ball-page [hidden] { display: none; }
.no-script { border: 1px solid var(--error); border-radius: 10px; padding: 16px; font-size: 13px; }
@media (max-width: 900px) {
  .hero-aside { display: none; }
  .ball-controls { padding: 24px; }
  .ball-result { padding: 24px; }
  .contact-options { gap: 5px; }
  .contact-options strong { font-size: 10px; }
  .contact-comparison dd { font-size: 14px; }
}
@media (max-width: 760px) {
  .ball-hero { padding-block: 29px 25px; }
  .ball-hero h1 { max-width: 13ch; font-size: 45px; }
  .ball-hero .lead { max-width: none; font-size: 15px; }
  .ball-workspace { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  .ball-controls { padding: 23px; }
  .ball-field-heading { margin-top: 15px; }
  .ball-input-line input { font-size: 55px; }
  .ball-input-line input.precise-reading { font-size: 34px; }
  .ball-input-line input.long-reading { font-size: 18px; }
  .contact-options strong { font-size: 10px; }
  .contact-options span { padding-block: 12px; }
  .ball-controls .distance-row { margin-top: 19px; padding-top: 13px; }
  .ball-result { padding: 25px; }
  .ball-result h2 { margin-top: 22px; }
  .swing-result strong { font-size: 80px; }
  .contact-comparison dd { font-size: 15px; }
  .ball-explainer { grid-template-columns: minmax(0, 1fr); gap: 16px; padding-block: 35px 20px; }
  .ball-explainer h2 { font-size: 34px; }
  .ball-faq h2 { font-size: 27px; }
  .ball-faq { margin-block: 28px 32px; }
  .ball-sources { padding-bottom: 25px; }
}
@media (max-width: 355px) {
  .ball-controls, .ball-result { padding: 19px; }
  .contact-options strong { font-size: 9px; }
  .contact-options small { font-size: 9px; }
  .ball-hero h1 { font-size: 41px; }
  .contact-comparison dd { font-size: 13px; }
}
