:root{--color-swim:#5bb7e5;--color-bike:#7ad47a;--color-run:#f5a45b;--color-bg:var(--color-run)}body{background-color:var(--color-bg);margin:0;font-family:system-ui,sans-serif;transition:background-color .4s}.page{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem 1.5rem;display:flex}.card{text-align:center;background:#fff;border-radius:1rem;width:420px;padding:2rem 3rem;box-shadow:0 4px 16px #0000001a}.signature{color:#000000b3;margin-top:1.5rem;font-size:.9rem}.signature a{color:inherit;border-bottom:1px solid;padding-bottom:.1rem;text-decoration:none}.signature a:hover,.signature a:focus-visible{color:#000}.conversion-row{align-items:flex-end;gap:.75rem;margin-top:1rem;display:flex}.field{text-align:left;flex-direction:column;flex:1;align-items:stretch;display:flex}.field-title{margin-bottom:.1rem;font-size:.95rem;font-weight:600}.field-helper{text-transform:uppercase;letter-spacing:.05em;color:#7a7a7a;margin-bottom:.35rem;font-size:.7rem}.switch-btn{color:#fff;cursor:pointer;background:#333;border:none;border-radius:999px;justify-content:center;align-self:center;align-items:center;width:2.25rem;height:2.25rem;font-size:1.25rem;transition:transform .2s,background-color .2s,box-shadow .2s;display:flex}.switch-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0003}.switch-btn:focus-visible{outline-offset:4px;outline:2px solid #000}.switch-btn[aria-pressed=true]{background:#555}.sport-label{text-transform:uppercase;letter-spacing:.04em;color:#555;margin:.75rem 0 .25rem;font-size:.85rem;font-weight:600}.sport-choices{justify-content:center;gap:.75rem;margin-bottom:1rem;display:flex}.sport-choice{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:.35rem;font-size:2.25rem;line-height:1;transition:transform .2s,box-shadow .2s,background-color .2s}.sport-choice:focus-visible{outline-offset:4px;outline:2px solid #333}.sport-choice.is-active{color:#fff;transform:translateY(-4px);box-shadow:0 6px 16px #0003}.sport-choice[data-sport=run].is-active{background-color:var(--color-run)}.sport-choice[data-sport=bike].is-active{background-color:var(--color-bike)}.sport-choice[data-sport=swim].is-active{background-color:var(--color-swim)}input{border:1px solid #ccc;border-radius:6px;width:100%;padding:.5rem .65rem;font-size:1rem}input+.field-helper{margin-top:.25rem}input[readonly]{color:#666;cursor:default;background:#f5f5f5}.result{margin-top:1rem;font-size:1.2rem;font-weight:600}