.swim{display:grid;grid-template-columns:minmax(420px,42%) 1fr;min-height:100svh}.swim__deck{gap:28px;padding:26px var(--gutter) 40px}.swim__deck,.swim__screen{display:flex;flex-direction:column}.swim__screen{margin-block:auto;gap:20px;max-width:540px}.swim__screen h1{font-size:clamp(40px,4vw,60px);font-weight:800;line-height:.98;letter-spacing:-.03em}.swim__lede{font-size:clamp(17px,1.3vw,20px);color:var(--ink-2);max-width:32em}.swim__input .btn:disabled{cursor:not-allowed;opacity:.45}.swim__chips{margin-top:2px}.swim__chips .chip,.swim__row .chip{background:var(--deck-2);box-shadow:none}.swim__chips .chip[aria-pressed=true]{background:var(--ink);color:var(--white)}.chip:disabled{opacity:.45;cursor:default;transform:none}.swim__task{font-weight:600;font-size:15px;color:var(--ink-3)}.swim__step{background:var(--white);border-radius:20px;padding:20px 24px 22px;box-shadow:var(--shadow-1)}.swim__step-label{font-weight:600;font-size:14px;color:var(--ink-3)}.swim__step-text{margin-top:6px;font:600 clamp(22px,1.9vw,27px) /1.22 var(--font-display);letter-spacing:-.01em;color:var(--ink)}.swim__step--loading .swim__step-text{color:var(--ink-3);animation:breathe 1.6s ease-in-out infinite}@keyframes breathe{50%{opacity:.55}}.swim__tomorrow{margin-top:8px;padding-top:20px;border-top:2px solid var(--deck-2)}.swim__tomorrow-label{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-weight:600;font-size:16px;color:var(--ink-2)}.swim__tomorrow-label svg{flex:none;color:var(--ink)}.swim__actions,.swim__row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.swim__row{gap:8px}.swim__label{font-weight:700;font-size:15px}.swim__clock{font:800 clamp(88px,10vw,148px) /.9 var(--font-display);letter-spacing:-.035em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink)}.swim__quiet{color:var(--ink-3);font-weight:600;font-size:15px;padding:10px 4px}.swim__answers .btn{min-width:112px}.pool--swim .pool__lanes{top:32px;bottom:32px}@media (max-width:1080px){.swim{grid-template-columns:minmax(0,1fr)}.swim__deck{min-height:auto}.pool--swim{min-height:460px}}@media (max-width:720px){.swim__deck{gap:20px;padding-bottom:28px}.swim__screen h1{font-size:38px}.swim__step-text{font-size:21px}.pool--swim .pool__lanes{margin-top:20px;margin-bottom:20px}}