@font-face{font-family:JetBrains Mono;src:url('/fonts/jetbrains-mono-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:JetBrains Mono;src:url('/fonts/jetbrains-mono-medium.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:JetBrains Mono;src:url('/fonts/jetbrains-mono-semibold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:JetBrains Mono;src:url('/fonts/jetbrains-mono-bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:JetBrains Mono;src:url('/fonts/jetbrains-mono-extrabold.ttf') format('truetype');font-style:normal;font-weight:800;font-display:swap}

:root{font-family:'JetBrains Mono',monospace;color:#173bee;background:#f1f3f9;font-synthesis:none;--blue:#173bee;--line:#dce2ff;--muted:#6f7eab;--row:66px}
*{box-sizing:border-box}body{margin:0;min-height:100svh;display:grid;place-items:center;padding:32px 20px}button,input{font:inherit;text-transform:uppercase}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .15s,transform .15s}button:active{transform:scale(.98)}button:disabled{cursor:default;opacity:.35}button:focus-visible,input:focus-visible,summary:focus-visible,.wheel:focus-visible{outline:3px solid #8499ff;outline-offset:4px}[hidden]{display:none!important}.phone{width:404px;height:min(844px,calc(100svh - 64px));min-height:760px;border:7px solid var(--blue);border-radius:44px;overflow:hidden;position:relative;background:#fff;box-shadow:0 24px 70px #173bee15}.screen{height:100%;min-height:100%;overflow:auto;scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.start-screen{background:var(--blue);color:#fff;display:flex;flex-direction:column;padding:30px 26px}.brand{display:flex;align-items:center;justify-content:space-between}.brand>span:last-child{font-size:12px;letter-spacing:.025em}.brand-mark{font-size:28px;font-weight:800;letter-spacing:-3px}.start-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:34px 0 16px;overflow:hidden}h1{font-size:66px;letter-spacing:-.085em;line-height:1; margin:0;font-weight:800}.title-dot{margin-left:-.07em}.lift-art{width:90%;aspect-ratio:1;margin:28px auto 16px;background:url('/images/arcade-squat.png') left center / 200% 100% no-repeat;animation:lift 1.8s steps(1,end) infinite;transform:translateX(-8%)}@keyframes lift{0%,100%{background-position:left center;transform:translateX(-8%)}50%{background-position:right center;transform:translateX(8%)}}.start-footer{margin-top:auto}.button{border:0;border-radius:4px;width:100%;min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px;font-size:14px;font-weight:600;letter-spacing:-.035em;text-align:left}.button>span{font-size:24px;font-weight:400;line-height:1}.button-white{color:var(--blue);background:#fff}.button-white:hover{background:#edf0ff}.button-blue{color:#fff;background:var(--blue)}.button-blue:hover{background:#1232d3}.training-screen,.editor-screen{display:flex;flex-direction:column}.training-header{height:78px;min-height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;margin:0 26px;font-size:12px;font-weight:600;letter-spacing:-.03em}.icon-button{border:0;color:var(--blue);background:transparent;font-size:26px;width:44px;height:44px;text-align:left;padding:0}.small-logo{font-size:17px;font-weight:700;letter-spacing:-1px;width:44px;text-align:right}.training-body{padding:29px 26px 0}.section-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px}.session-count{color:var(--muted)}h2{font-size:48px;letter-spacing:-.08em;line-height:1.02;margin:19px 0 36px;font-weight:800}h2 span{padding-left:2px}.empty-state{border-top:1px solid var(--line);padding:38px 0 46px}.empty-mark{font-size:40px;font-weight:400;line-height:1;color:#a4b2e2}.empty-state h3{font-size:14px;font-weight:500;letter-spacing:-.035em;margin:20px 0 9px}.empty-state p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}#exercise-list{list-style:none;padding:0;margin:0 0 27px}#exercise-list:empty{display:none}.exercise-row{border-top:1px solid var(--line);padding:21px 0 24px}.exercise-row:last-child{border-bottom:1px solid var(--line)}.exercise-edit{display:grid;grid-template-columns:22px minmax(0,1fr) auto 15px;align-items:start;gap:10px;width:100%;text-align:left;background:none;border:0;color:var(--blue);padding:0;min-height:36px}.row-number{font-size:12px;color:#8998c4;padding-top:2px}.exercise-edit strong{font-size:14px;font-weight:600;letter-spacing:-.025em;line-height:1.5;overflow-wrap:anywhere}.row-prescription{font-size:12px;white-space:nowrap;padding-top:2px}.row-arrow{font-size:17px;line-height:1.2}.row-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-left:32px;margin-top:12px}.row-weight{border:0;background:none;padding:0;color:var(--blue);display:flex;align-items:baseline;gap:7px;text-align:left;min-width:0}.row-weight>span{font-size:40px;font-weight:500;letter-spacing:-.09em;line-height:1.1}.row-weight small{font-size:12px;font-weight:400}.increase-button{border:1px solid var(--line);border-radius:3px;background:none;color:var(--blue);height:44px;padding:0 10px;font-size:12px;white-space:nowrap}.increase-button:hover{background:#f0f3ff;border-color:#bec9ff}.training-footer{margin:auto 26px 0;padding:32px 0 25px;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted)}#exercise-form{display:flex;flex-direction:column;flex:1}.editor-body{padding:36px 26px 0}.input-label{display:block;font-size:12px;font-weight:500;letter-spacing:.06em;margin:0 0 12px}.name-field{border-bottom:1px solid var(--blue);margin-bottom:39px}.name-field input{width:100%;color:var(--blue);background:transparent;border:0;outline:none;padding:6px 0 16px;font-size:19px;font-weight:500;letter-spacing:-.06em;border-radius:0}.name-field:focus-within{box-shadow:0 2px 0 var(--blue)}.name-field input::placeholder{color:#8998c4;font-size:16px;font-weight:400}.field-error{font-size:12px;line-height:1.6;margin:12px 0}.name-field+.field-error{margin-top:-25px;margin-bottom:24px}.weight-field{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid var(--line);padding:13px 0 17px}.weight-field input{width:100%;min-width:0;font-size:64px;font-weight:500;line-height:1.2;letter-spacing:-.08em;color:var(--blue);border:0;background:none;outline:none;border-radius:0;padding:0}.weight-field input::placeholder{color:#bdc8ea}.weight-field:focus-within{border-color:var(--blue)}.weight-field>span{font-size:16px}.weight-steps{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:14px}.weight-steps button{color:var(--blue);border:1px solid var(--line);background:#fff;border-radius:3px;min-width:65px;height:44px;padding:0 8px;font-size:14px}.weight-steps button:hover{background:#f0f3ff}.weight-steps>span{font-size:10px;color:var(--muted);text-align:center;line-height:1.6;max-width:122px}.reps-details{margin-top:38px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.reps-details summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:68px;font-size:13px;list-style:none;letter-spacing:-.03em}.reps-details summary::-webkit-details-marker{display:none}.details-action{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:9px}.details-action>span{font-size:20px;display:inline-block}.reps-details[open] .details-action>span{transform:rotate(45deg)}.wheel-card{background:var(--blue);color:#fff;border-radius:5px;overflow:hidden;padding:20px 12px 5px;margin-bottom:16px}.wheel-headings{display:grid;grid-template-columns:1fr 1fr;text-align:center;font-size:12px;letter-spacing:.1em}.wheel-stage{position:relative;display:grid;grid-template-columns:1fr 1fr;height:198px;margin-top:8px;isolation:isolate}.wheel{height:198px;overflow-y:auto;scrollbar-width:none;scroll-snap-type:y mandatory;overscroll-behavior:contain;touch-action:pan-y;position:relative;z-index:2;mask-image:linear-gradient(transparent,#000 32%,#000 68%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 32%,#000 68%,transparent)}.wheel::-webkit-scrollbar{display:none}.wheel-track{padding:66px 0}.wheel-item{height:var(--row);display:flex;align-items:center;justify-content:center;scroll-snap-align:center;font-size:46px;font-weight:500;letter-spacing:-.085em;line-height:1;user-select:none;opacity:.3;transform:scale(.72);cursor:pointer}.selection-band{position:absolute;top:66px;height:66px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;background:#ffffff12;border:1px solid #ffffff5e;border-radius:4px;pointer-events:none}.selection-band>span:nth-child(2){font-size:15px;opacity:.6}.selection-band>span:first-child,.selection-band>span:last-child{width:4px;height:4px;border-radius:50%;background:white;margin:0 9px}.editor-actions{margin-top:auto;padding:36px 26px 28px}.text-button{display:block;background:none;border:0;color:var(--muted);font-size:12px;padding:17px 12px;margin:8px auto 0;min-height:44px}.toast{position:absolute;bottom:22px;left:22px;right:22px;border-radius:4px;background:#fff;color:var(--blue);border:1px solid var(--line);box-shadow:0 8px 24px #0b228524;font-size:12px;line-height:1.6;padding:14px 16px;pointer-events:none;opacity:0;transform:translateY(10px);transition:opacity .2s,transform .2s;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:10px}.toast.visible{opacity:1;transform:translateY(0);pointer-events:auto}.toast button{border:0;background:none;color:var(--blue);font-size:11px;text-decoration:underline;padding:8px 0;min-height:44px}.phone:after{content:'';position:absolute;bottom:6px;left:calc(50% - 49px);width:98px;height:4px;background:#173bee33;border-radius:8px;pointer-events:none}.phone:has(.start-screen:not([hidden])):after{background:#ffffff66}
@media(max-width:599px){body{padding:0;display:block;background:var(--blue)}.phone{width:100%;max-width:430px;height:100svh;min-height:0;border:0;border-radius:0;box-shadow:none;margin:auto}.phone:after{display:none}.start-screen{padding-top:calc(30px + env(safe-area-inset-top));padding-bottom:calc(30px + env(safe-area-inset-bottom))}.training-header{padding-top:env(safe-area-inset-top);height:calc(78px + env(safe-area-inset-top));min-height:calc(78px + env(safe-area-inset-top))}.training-footer,.editor-actions{padding-bottom:calc(25px + env(safe-area-inset-bottom))}.toast{bottom:calc(22px + env(safe-area-inset-bottom))}}
@media(max-width:350px){h1{font-size:57px}h2{font-size:43px}.start-screen{padding-left:22px;padding-right:22px}.training-header{margin:0 20px}.training-body,.editor-body{padding-left:20px;padding-right:20px}.editor-actions{padding-left:20px;padding-right:20px}.row-weight>span{font-size:35px}.exercise-edit{gap:7px;grid-template-columns:20px minmax(0,1fr) auto 13px}.row-bottom{margin-left:27px}.weight-field input{font-size:56px}.reps-details summary{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Actual lifts and next-time intentions stay visually distinct. */
.training-body{padding-top:22px}.workout-title{font-size:30px;margin:15px 0 22px;letter-spacing:-.07em}.workout-switch{display:flex;gap:8px;margin-bottom:18px}.workout-tab{flex:1;min-height:44px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--blue);font-size:13px}.workout-tab[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff}.session-note{color:var(--muted);font-size:11px;line-height:1.5;margin:0 0 20px}#start-session-button{margin:0 0 22px}.exercise-row{padding:18px 0}.exercise-edit{min-height:24px;grid-template-columns:20px minmax(0,1fr) auto 13px;gap:8px}.weight-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0 0 28px}.actual-column,.plan-column{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;border:0;background:none;color:var(--blue);padding:0;text-align:left}.plan-column{border-left:1px solid var(--line);padding-left:15px}.column-label{font-size:10px;line-height:1.4;letter-spacing:-.02em;color:var(--muted)}.is-recorded .actual-column .column-label{color:var(--blue)}.column-weight{font-size:29px;font-weight:500;letter-spacing:-.085em;line-height:1.2;white-space:nowrap}.plan-column .column-weight{font-size:27px;color:#5c74d8;font-weight:400}.column-note{font-size:10px;letter-spacing:-.02em;color:var(--muted)}.plan-column .column-note{color:#5c74d8}.bodyweight-value,.plan-column .bodyweight-value{font-size:12px;letter-spacing:-.035em;white-space:normal;min-height:35px;display:flex;align-items:center}.exercise-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 0 28px}.reference-weight{font-size:10px;line-height:1.6;color:var(--muted)}.exercise-foot .increase-button{height:36px;min-width:64px;font-size:12px}.lift-history{margin:8px 0 0 28px;font-size:10px;color:var(--muted)}.lift-history summary{cursor:pointer;width:fit-content;min-height:24px;padding:5px 0}.lift-history p{line-height:1.6;margin:8px 0}.feeling-field{border:0;padding:0;margin:32px 0 0;display:flex;flex-wrap:wrap;gap:8px}.feeling-field legend{font-size:12px;margin-bottom:12px}.feeling-field label{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:54px;min-height:44px;border:1px solid var(--line);border-radius:3px;font-size:12px;padding:8px 12px}.feeling-field label:has(input:checked){background:var(--blue);color:#fff;border-color:var(--blue)}.feeling-field input{position:absolute;opacity:0;width:1px;height:1px}.feeling-field label:has(input:focus-visible){outline:3px solid #8499ff;outline-offset:3px}.name-field:has(input:read-only){border-color:var(--line)}.name-field input:read-only{cursor:default}.weight-steps>span{font-size:10px}.training-footer{font-size:10px}
@media(max-width:350px){.column-weight{font-size:25px}.plan-column .column-weight{font-size:23px}.bodyweight-value,.plan-column .bodyweight-value{font-size:11px}.column-label{font-size:9px}.weight-columns{gap:8px}.plan-column{padding-left:9px}}
/* A focused training surface; setup and history have their own screens. */
.settings-button{text-align:right;font-size:23px}.exercise-heading{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:baseline;gap:8px}.exercise-heading h3{font-size:14px;font-weight:600;line-height:1.5;letter-spacing:-.025em;margin:0;overflow-wrap:anywhere}.exercise-row{padding:22px 0 8px}.weight-columns{margin-top:19px;margin-bottom:12px}.column-label{font-size:11px}.column-note{font-size:11px}.actual-column,.plan-column{min-height:92px}.history-button{display:flex;align-items:center;justify-content:space-between;width:calc(100% - 28px);min-height:44px;margin-left:28px;padding:7px 0;background:none;border:0;color:var(--muted);font-size:11px;text-align:left}.history-button>span{font-size:18px;color:var(--blue)}.weight-hint{font-size:12px;color:var(--muted);line-height:1.7;margin:16px 0 0}.settings-screen,.history-screen{display:flex;flex-direction:column}.settings-body,.history-body{padding:26px 26px 32px}.settings-body .workout-title,.history-body .workout-title{margin-top:0;overflow-wrap:anywhere}.settings-body .workout-switch{overflow-x:auto;gap:8px}.settings-body .workout-tab{min-width:110px;flex:1 0 auto}.workout-switch{overflow-x:auto}.workout-tab{min-width:110px;flex:1 0 auto}#new-workout-button{margin:0 0 28px;padding:0;min-height:44px;color:var(--blue);text-align:left}#workout-form{margin-bottom:20px}.workout-name-field{display:flex;align-items:center;border-bottom:1px solid var(--line);gap:10px}.workout-name-field input{width:100%;min-width:0;border:0;background:none;color:var(--blue);padding:12px 0;font-size:16px;outline:none}.workout-name-field:focus-within{border-color:var(--blue)}.workout-name-field button{border:0;background:none;color:var(--blue);min-height:44px;font-size:11px;padding:6px 0}#settings-exercises{list-style:none;margin:0 0 25px;padding:0}.settings-exercise{border-bottom:1px solid var(--line)}.settings-exercise-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;border:0;background:none;color:var(--blue);text-align:left}.settings-exercise-button>span:first-child{display:flex;flex-direction:column;gap:7px;min-width:0}.settings-exercise-button strong{font-size:14px;font-weight:500;overflow-wrap:anywhere}.settings-exercise-button small{font-size:12px;color:var(--muted)}.settings-exercise-button>span:last-child{font-size:19px}.bodyweight-option{display:flex;align-items:center;gap:10px;font-size:12px;line-height:1.6;min-height:44px;margin-top:24px;cursor:pointer}.bodyweight-option input{accent-color:var(--blue);width:18px;height:18px}.history-chart svg{display:block;width:100%;height:auto;margin:24px 0 25px;font:inherit}.history-empty{font-size:13px;line-height:1.8;color:var(--muted);padding:30px 0}#history-table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:left}#history-table th{font-size:10px;font-weight:400;color:var(--muted);padding:12px 0;border-bottom:1px solid var(--line)}#history-table td{font-size:12px;line-height:1.6;padding:18px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}#history-table th:last-child,#history-table td:last-child{text-align:right}#history-table th:nth-child(2),#history-table td:nth-child(2){text-align:center}#history-table th:first-child{width:29%}#history-table th:nth-child(2){width:41%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:350px){.settings-body,.history-body{padding-left:20px;padding-right:20px}.column-label{font-size:10px}.column-note{font-size:10px}.history-body .workout-title{font-size:27px}}
.exercise-name-button{display:block;width:100%;min-height:44px;margin:-10px 0;padding:10px 0;text-align:left;font:inherit;color:var(--blue);background:none;border:0;overflow-wrap:anywhere}.exercise-name-button:hover{text-decoration:underline;text-underline-offset:4px}.exercise-row{padding-bottom:16px}.weight-columns{margin-bottom:6px}
@font-face{font-family:Silkscreen;src:url('/fonts/silkscreen/Silkscreen-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}.dryyyve-wordmark{font-family:Silkscreen,monospace;font-size:25px;font-weight:400;letter-spacing:-1px;text-decoration:none;color:inherit}.brand{justify-content:flex-start}.lift-art{background-image:url('/images/arcade-squat.png');image-rendering:pixelated;mix-blend-mode:lighten;transform:translateX(-2%);animation:arcade-lift 1.6s steps(1,end) infinite}@keyframes arcade-lift{0%,100%{background-position:left center;transform:translateX(-2%)}50%{background-position:right center;transform:translateX(2%)}}.legal-links{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 18px;font-size:10px;line-height:1.5}.legal-links a{color:inherit;text-decoration:none;min-height:36px;display:inline-flex;align-items:center}.legal-links a:hover{text-decoration:underline}.start-footer .legal-links{margin-top:10px;color:#ccd5ff}.ecosystem-footer{flex-direction:column;align-items:center;gap:6px;padding-top:24px}.ecosystem-footer .dryyyve-wordmark{font-size:18px;color:var(--blue)}.data-settings{border-top:1px solid var(--line);margin-top:35px;padding-top:22px}.data-settings h3{font-size:12px;font-weight:500;letter-spacing:.06em}.data-settings p{font-size:11px;line-height:1.8;color:var(--muted)}.data-settings .text-button{margin:0;padding-left:0;text-align:left;color:var(--blue);cursor:pointer}.import-label{position:relative;display:flex;align-items:center;width:fit-content;overflow:hidden}.import-label input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.import-label:focus-within{outline:3px solid #8499ff;outline-offset:3px}.settings-legal{justify-content:flex-start;margin-top:24px;color:var(--muted)}
@media(prefers-reduced-motion:reduce){.lift-art{animation:none}}

.storage-warning{position:relative;margin:0;padding:12px;background:#fff3cf;color:#332600;font:12px/1.5 monospace;z-index:20}#assistant-toggle{width:24px;height:24px;vertical-align:middle}

#delete-workout-button{display:block;margin:16px auto 0}.deleted-workouts{border-top:1px solid var(--line);margin-top:28px;padding-top:20px;font-size:11px}.deleted-workouts summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px}.deleted-workouts summary::before{content:"+"}.deleted-workouts[open] summary::before{content:"−"}.deleted-workouts p{line-height:1.8;color:var(--muted)}#deleted-workout-list{padding:0;margin:0;list-style:none}#deleted-workout-list strong{overflow-wrap:anywhere}
