:root{--bg: #f6f7f9;--bg-elev: #eef1f5;--card: #ffffff;--text: #1a2233;--muted: #6b7688;--border: #e6e9ef;--primary: #b4520a;--primary-soft: #fdf3ea;--primary-dark: #93400a;--danger: #dc2626;--ok: #15803d;--bad: #dc2626;--gold: #d97706;--phase-warmup: #0e7490;--phase-work: #b91c1c;--phase-recover: #15803d;--phase-cooldown: #6366f1;--fig-line: #334155;--fig-accent: #b4520a;--fig-ground: #cbd5e1;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--radius: 14px;--radius-sm: 10px;--radius-lg: 20px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .06);--shadow-md: 0 4px 12px rgba(16, 24, 40, .08);--shadow-lg: 0 12px 32px rgba(16, 24, 40, .14);--nav-h: 62px;--tr: .16s cubic-bezier(.4, 0, .2, 1)}@media (prefers-color-scheme: dark){:root{--bg: #0f141b;--bg-elev: #171e28;--card: #1a222d;--text: #e8edf4;--muted: #93a1b5;--border: #29323f;--primary: #f59e42;--primary-soft: #2a2018;--primary-dark: #d98836;--ok: #4ade80;--gold: #fbbf24;--fig-line: #cbd5e1;--fig-accent: #f59e42;--fig-ground: #3a4757;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 4px 14px rgba(0,0,0,.4);--shadow-lg: 0 12px 32px rgba(0,0,0,.55)}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}h1{font-size:1.4rem;margin:0}h3{font-size:1rem;margin:0}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.app-shell{min-height:100%}.app-main{max-width:640px;margin:0 auto;padding:16px 16px calc(var(--nav-h) + 24px)}.page{display:flex;flex-direction:column;gap:16px}.page-head{display:flex;align-items:center;gap:12px}.page-head h1{flex:1}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--nav-h);background:var(--card);border-top:1px solid var(--border);display:flex;justify-content:space-around;align-items:center;max-width:640px;margin:0 auto}.bottom-nav a,.nav-logout{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);font-size:.7rem;background:none;border:none;padding:6px 12px}.bottom-nav a.active{color:var(--primary)}.nav-icon{font-size:1.1rem}.fab{position:fixed;right:16px;bottom:calc(var(--nav-h) + 16px);width:56px;height:56px;border-radius:50%;background:var(--primary);color:#fff;font-size:2rem;line-height:1;border:none;box-shadow:0 4px 12px #0003;z-index:20}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm)}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-sub,.filter-count{color:var(--muted);font-size:.8rem}.btn{border:1px solid var(--border);background:var(--card);color:var(--text);padding:10px 16px;border-radius:var(--radius);font-size:.95rem;transition:background var(--tr),border-color var(--tr),transform var(--tr),box-shadow var(--tr)}.btn:active{transform:translateY(1px)}.btn-lg{padding:14px 18px;font-size:1.05rem;font-weight:600}.btn-primary{box-shadow:var(--shadow-sm)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-small{padding:6px 12px;font-size:.85rem}.btn-block{display:block;width:100%}.btn:disabled{opacity:.5;cursor:default}.icon-btn{background:none;border:none;font-size:1.5rem;color:var(--muted);padding:4px 8px}.input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;background:var(--card);color:var(--text)}.field-label{display:block;font-size:.8rem;color:var(--muted);margin:8px 0 4px}.error-msg{color:var(--danger);font-size:.85rem;margin:8px 0}.error-box{background:#fef2f2;color:var(--danger);border:1px solid #fecaca;border-radius:var(--radius);padding:12px}.loading,.empty{color:var(--muted);text-align:center;padding:24px}.stat-row{display:flex;gap:12px}.stat{flex:1;text-align:center}.stat-value{font-size:1.3rem;font-weight:600}.stat-caption{font-size:.75rem;color:var(--muted)}.badge{font-size:.75rem;padding:4px 10px;border-radius:999px;font-weight:600}.badge-ok{background:#dcfce7;color:var(--ok)}.badge-bad{background:#fee2e2;color:var(--bad)}.src-tag{font-size:.65rem;text-transform:uppercase;padding:2px 6px;border-radius:6px;letter-spacing:.03em}.src-garmin{background:#dbeafe;color:#1e40af}.src-manual{background:#fef9c3;color:#854d0e}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px}.login-title{text-align:center}.login-sub{text-align:center;color:var(--muted);margin:0 0 8px;font-size:.9rem}.checkin .scale-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.scale-label{font-size:.9rem}.scale-dots{display:flex;gap:6px}.scale-dot{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--muted)}.scale-dot.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.checkin-note{margin-top:8px;resize:vertical}.checkin-status{font-size:.75rem;color:var(--muted)}.recovery-grid{display:flex;gap:12px}.recovery-item{flex:1;text-align:center}.recovery-label{font-size:.75rem;color:var(--muted)}.recovery-value{font-size:1.3rem;font-weight:600}.recovery-sub{font-size:.7rem;color:var(--muted)}.delta-good{color:var(--ok)}.delta-bad{color:var(--danger)}.filter-row{display:flex;align-items:center;gap:12px}.filter-row .input{flex:1}.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.activity-row{display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.activity-main{display:flex;flex-direction:column}.activity-type{font-weight:600}.activity-when{font-size:.8rem;color:var(--muted)}.activity-meta{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--muted)}.detail-when{color:var(--muted);margin:-4px 0 0}.notes{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px;font-size:.9rem}.chart-note{font-size:.75rem;color:var(--muted);margin:4px 0 0}.laps-table{width:100%;border-collapse:collapse;font-size:.85rem}.laps-table th,.laps-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}.laps-table th{color:var(--muted);font-weight:500}.merge-banner{background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:8px}.merge-banner.merged{flex-direction:row;align-items:center;justify-content:space-between}.merge-banner-title{font-weight:600;font-size:.9rem}.merge-suggestion{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.85rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-end;justify-content:center;z-index:30}.modal-sheet{background:var(--card);border-radius:16px 16px 0 0;padding:20px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}.chip{padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--card);font-size:.85rem;text-transform:capitalize}.chip.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (min-width: 560px){.modal-backdrop{align-items:center}.modal-sheet{border-radius:16px}}.page-intro{color:var(--muted);font-size:.9rem;margin:-4px 0 4px}.hint{color:var(--muted);font-size:.8rem;text-align:center}.bare-min{background:linear-gradient(135deg,var(--card),var(--bg-elev));border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--s4);box-shadow:var(--shadow-md);transition:border-color var(--tr),box-shadow var(--tr)}.bare-min-met{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok),var(--shadow-md)}.bare-min-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--s3)}.bare-min-title{font-weight:700;font-size:1.05rem;letter-spacing:-.01em}.bare-min-star{color:var(--gold)}.bare-min-count{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.bare-min-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2)}.bare-slot{background:var(--bg-elev);border:1.5px solid var(--border);border-radius:var(--radius);padding:var(--s4) var(--s2);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--s2);transition:background var(--tr),border-color var(--tr),transform var(--tr)}.bare-slot.done{background:var(--primary-soft);border-color:var(--primary);animation:pop-in .32s cubic-bezier(.34,1.56,.64,1)}.bare-slot-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--border);color:transparent;font-weight:800;transition:background var(--tr),color var(--tr)}.bare-slot.done .bare-slot-icon{background:var(--primary);color:#fff}.bare-slot-label{font-size:.8rem;font-weight:600;color:var(--text)}.bare-min-caption{margin-top:var(--s3);font-size:.82rem;color:var(--muted);text-align:center}.bare-min-compact{padding:var(--s3);border-radius:var(--radius)}.bare-min-compact .bare-slot{padding:var(--s3) var(--s1)}@keyframes pop-in{0%{transform:scale(.9)}60%{transform:scale(1.05)}to{transform:scale(1)}}.today-card{display:flex;align-items:center;gap:var(--s4);text-align:left;width:100%;border:1px solid var(--primary);background:var(--primary-soft);cursor:pointer;transition:transform var(--tr),box-shadow var(--tr)}.today-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.today-thumb{width:56px;height:56px;flex:0 0 auto}.today-main{display:flex;flex-direction:column;gap:2px}.today-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--primary);font-weight:700}.today-name{font-size:1.1rem;font-weight:700}.today-cta{font-size:.8rem;color:var(--muted)}.week-nav{display:flex;align-items:center;justify-content:space-between}.week-label{font-weight:600}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--s1);background:var(--bg-elev);border-radius:var(--radius);padding:var(--s2)}.day-col{min-height:96px;border-radius:var(--radius-sm);padding:var(--s2) 2px;display:flex;flex-direction:column;gap:var(--s1);transition:background var(--tr),box-shadow var(--tr)}.day-today{background:var(--card);box-shadow:inset 0 0 0 1.5px var(--primary)}.day-droppable{cursor:pointer}.day-droppable:hover{background:var(--primary-soft);box-shadow:inset 0 0 0 1.5px var(--primary)}.day-head{display:flex;flex-direction:column;align-items:center}.day-name{font-size:.65rem;color:var(--muted);text-transform:uppercase}.day-num{font-size:.9rem;font-weight:600}.day-chips{display:flex;flex-direction:column;gap:var(--s1)}.plan-chip{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm);transition:border-color var(--tr),transform var(--tr)}.plan-chip.selected{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft),var(--shadow-sm)}.plan-chip.completed{border-color:var(--ok);background:var(--primary-soft)}.plan-chip-main{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;background:none;border:none;padding:var(--s1)}.plan-chip-thumb{width:30px;height:30px}.plan-chip-name{font-size:.6rem;line-height:1.1;text-align:center;color:var(--text)}.plan-chip-done{color:var(--ok);font-weight:800;font-size:.7rem}.plan-chip-actions{display:flex;justify-content:space-between;border-top:1px solid var(--border)}.plan-chip-open,.plan-chip-remove{flex:1;background:none;border:none;font-size:.65rem;padding:2px;color:var(--muted)}.plan-chip-remove:hover{color:var(--danger)}.plan-chip-open:hover{color:var(--primary)}.plan-actions{display:flex;gap:var(--s2)}.plan-actions .btn{flex:1}.picker-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s2)}.picker-card{display:flex;flex-direction:column;align-items:center;gap:var(--s1);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s3);transition:border-color var(--tr),transform var(--tr)}.picker-card:hover{border-color:var(--primary);transform:translateY(-1px)}.picker-thumb{width:52px;height:52px}.picker-name{font-size:.85rem;font-weight:600;text-align:center}.picker-meta{font-size:.72rem;color:var(--muted)}.picker-days{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2)}.snack-tally{font-size:.78rem;color:var(--primary);font-weight:600}.snack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--s2)}.snack-card{display:flex;flex-direction:column;align-items:center;gap:var(--s1);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s3) var(--s2);cursor:pointer;transition:transform var(--tr),border-color var(--tr),box-shadow var(--tr)}.snack-card:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:var(--shadow-md)}.snack-card:disabled{opacity:.6}.snack-thumb{position:relative;width:56px;height:56px}.snack-name{font-size:.78rem;font-weight:600;text-align:center;line-height:1.15}.snack-target{font-size:.68rem;color:var(--muted)}.snack-logged{border-color:var(--ok);background:var(--primary-soft)}.snack-burst{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:2rem;font-weight:800;color:var(--ok);animation:burst .9s ease-out forwards}@keyframes burst{0%{transform:scale(.2);opacity:0}30%{transform:scale(1.2);opacity:1}to{transform:scale(1.6);opacity:0}}.player-page .page-head h1{font-size:1.2rem}.prestart{display:flex;flex-direction:column;gap:var(--s4)}.profile-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2)}.profile-btn{display:flex;flex-direction:column;gap:2px;align-items:flex-start;background:var(--bg-elev);border:1.5px solid var(--border);border-radius:var(--radius);padding:var(--s3);transition:border-color var(--tr),background var(--tr)}.profile-btn.selected{border-color:var(--primary);background:var(--primary-soft)}.profile-name{font-weight:700}.profile-blurb{font-size:.72rem;color:var(--muted)}.overview-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s2)}.overview-item{display:flex;align-items:center;gap:var(--s3)}.overview-thumb{width:44px;height:44px;flex:0 0 auto;background:var(--bg-elev);border-radius:var(--radius-sm)}.overview-main{display:flex;flex-direction:column}.overview-name{font-weight:600;font-size:.92rem}.overview-prescription{font-size:.78rem;color:var(--muted)}.sprint-why{color:var(--muted);font-size:.88rem}.sprint-overview-anim{width:120px;height:120px;margin:0 auto}.sprint-summary{text-align:center;font-weight:600;color:var(--muted)}.strength-player{display:flex;flex-direction:column;gap:var(--s3);align-items:stretch}.player-progress-row{display:flex;justify-content:space-between;color:var(--muted);font-size:.8rem;font-weight:600}.player-demo{width:220px;height:220px;margin:0 auto;background:radial-gradient(circle at 50% 40%,var(--bg-elev),var(--card));border-radius:50%;border:1px solid var(--border);box-shadow:var(--shadow-sm)}.player-ex-name{text-align:center;font-size:1.35rem;margin:0;letter-spacing:-.01em}.superset-tag{align-self:center;font-size:.72rem;font-weight:700;color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:3px 10px}.player-cues{color:var(--text);font-size:.9rem;line-height:1.45;margin:0;text-align:center}.player-load{color:var(--muted);font-size:.82rem;margin:0;text-align:center}.player-last{text-align:center;font-size:.85rem;font-weight:600;color:var(--primary);background:var(--primary-soft);border-radius:var(--radius-sm);padding:var(--s2);margin:0}.set-logger{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}.stepper{text-align:center}.stepper-controls{display:flex;align-items:center;justify-content:center;gap:var(--s2)}.stepper-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--card);font-size:1.4rem;font-weight:700;color:var(--text);transition:background var(--tr),transform var(--tr)}.stepper-btn:active{transform:scale(.92)}.stepper-value{font-size:1.6rem;font-weight:700;min-width:60px;font-variant-numeric:tabular-nums}.rpe-scale{text-align:center}.rpe-dots{display:flex;gap:var(--s2);justify-content:center}.rpe-dot{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--muted);font-weight:700;transition:background var(--tr),color var(--tr),transform var(--tr)}.rpe-dot.selected{background:var(--primary);color:#fff;border-color:var(--primary);transform:scale(1.08)}.next-up{text-align:center;color:var(--muted);font-size:.85rem}.rest-timer{display:flex;flex-direction:column;align-items:center;gap:var(--s3);padding:var(--s5) 0}.rest-ring-wrap{position:relative;width:220px;height:220px}.rest-ring{width:100%;height:100%}.rest-ring-track{fill:none;stroke:var(--bg-elev);stroke-width:10}.rest-ring-fill{fill:none;stroke:var(--primary);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .2s linear}.rest-num{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:3rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--text)}.rest-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.rest-actions{display:flex;gap:var(--s2)}.interval-timer{display:flex;flex-direction:column;align-items:center;gap:var(--s3);border-radius:var(--radius-lg);padding:var(--s6) var(--s4);color:#fff;background:var(--phase-warmup);transition:background .4s ease;box-shadow:var(--shadow-lg)}.interval-timer.phase-warmup{background:var(--phase-warmup)}.interval-timer.phase-work{background:var(--phase-work)}.interval-timer.phase-recover{background:var(--phase-recover)}.interval-timer.phase-cooldown{background:var(--phase-cooldown)}.interval-phase{font-size:2rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.interval-count{font-size:4.5rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.interval-intensity{opacity:.9;font-size:.95rem;text-align:center}.interval-progress{width:100%;height:8px;border-radius:999px;background:#ffffff40;overflow:hidden}.interval-progress-fill{height:100%;background:#fff;transition:width .2s linear}.interval-meta{display:flex;justify-content:space-between;width:100%;font-size:.78rem;opacity:.9}.interval-next{font-size:.85rem;opacity:.92}.interval-actions{display:flex;gap:var(--s2)}.interval-actions .btn{background:#ffffff2e;color:#fff;border-color:#ffffff59}.finish-screen{display:flex;flex-direction:column;gap:var(--s3)}.finish-celebrate{text-align:center;padding:var(--s4) 0}.finish-star{font-size:3.5rem;color:var(--gold);animation:pop-in .5s cubic-bezier(.34,1.56,.64,1)}.finish-celebrate h2{margin:var(--s2) 0 0}.finish-celebrate p{color:var(--muted);margin:var(--s1) 0 0}.anim-box{width:100%;height:100%;display:grid;place-items:center}.figure{width:100%;height:100%;display:block}@media (prefers-reduced-motion: reduce){.figure *{animation:none!important}}.figure-paused *{animation-play-state:paused!important}.anim-knee-legA{animation:kneeUp 1.1s ease-in-out infinite}.anim-knee-legB{animation:kneeUp 1.1s ease-in-out infinite .55s}.anim-knee-armA{animation:armSwing 1.1s ease-in-out infinite .55s}.anim-knee-armB{animation:armSwing 1.1s ease-in-out infinite}@keyframes kneeUp{0%,to{transform:rotate(8deg)}50%{transform:rotate(-32deg)}}@keyframes armSwing{0%,to{transform:rotate(-14deg)}50%{transform:rotate(20deg)}}.anim-squat-body{animation:dip 2.4s ease-in-out infinite}@keyframes dip{0%,to{transform:translateY(0)}50%{transform:translateY(14px) scaleY(.94)}}.anim-jump-body{animation:jump 1.8s ease-in-out infinite}@keyframes jump{0%,to{transform:translateY(6px) scaleY(.95)}35%{transform:translateY(8px) scaleY(.9)}55%{transform:translateY(-18px) scaleY(1.04)}70%{transform:translateY(0)}}.anim-jump-armL,.anim-jump-armR{animation:armSwoop 1.8s ease-in-out infinite}@keyframes armSwoop{0%,to{transform:rotate(0)}55%{transform:rotate(-28deg)}}.anim-split-body{animation:dip 2.6s ease-in-out infinite}.anim-stepup-body{animation:stepUp 2.4s ease-in-out infinite}@keyframes stepUp{0%,to{transform:translateY(10px)}50%{transform:translateY(-8px)}}.anim-sts-body{animation:stepUp 2.6s ease-in-out infinite}.anim-lunge-body{animation:lungeSway 2.6s ease-in-out infinite}@keyframes lungeSway{0%,to{transform:translate(0)}50%{transform:translate(4px,10px)}}.anim-calf-body{animation:calf 1.6s ease-in-out infinite}@keyframes calf{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.anim-stair-body{animation:stairRise 1.6s ease-in-out infinite}@keyframes stairRise{0%,to{transform:translateY(4px)}50%{transform:translateY(-4px)}}.anim-hip-open{animation:hipOpen 2.6s ease-in-out infinite}@keyframes hipOpen{0%,to{transform:rotate(0)}50%{transform:rotate(26deg)}}.anim-pull-armL{animation:spreadL 2.4s ease-in-out infinite}.anim-pull-armR{animation:spreadR 2.4s ease-in-out infinite}@keyframes spreadL{0%,to{transform:rotate(20deg)}50%{transform:rotate(-16deg)}}@keyframes spreadR{0%,to{transform:rotate(-20deg)}50%{transform:rotate(16deg)}}.anim-pushup-body{animation:pushup 2.4s ease-in-out infinite}@keyframes pushup{0%,to{transform:rotate(0)}50%{transform:rotate(8deg)}}.anim-swing-body{animation:hinge 2.2s ease-in-out infinite}@keyframes hinge{0%,to{transform:rotate(0)}50%{transform:rotate(18deg) translateY(4px)}}.anim-swing-arms{animation:swingArms 2.2s ease-in-out infinite}@keyframes swingArms{0%,to{transform:rotate(-46deg)}50%{transform:rotate(30deg)}}.anim-thrust-body{animation:thrust 2.2s ease-in-out infinite}@keyframes thrust{0%,to{transform:rotate(14deg)}50%{transform:rotate(-8deg)}}.anim-press-armL{animation:pressL 2.4s ease-in-out infinite}.anim-press-armR{animation:pressR 2.4s ease-in-out infinite}@keyframes pressL{0%,to{transform:rotate(38deg)}50%{transform:rotate(0)}}@keyframes pressR{0%,to{transform:rotate(-38deg)}50%{transform:rotate(0)}}.anim-lat-armL{animation:latL 2.6s ease-in-out infinite}.anim-lat-armR{animation:latR 2.6s ease-in-out infinite}@keyframes latL{0%,to{transform:rotate(52deg)}50%{transform:rotate(4deg)}}@keyframes latR{0%,to{transform:rotate(-52deg)}50%{transform:rotate(-4deg)}}.anim-pallof-arms{animation:pallof 2.2s ease-in-out infinite}@keyframes pallof{0%,to{transform:translate(-14px)}50%{transform:translate(0)}}.anim-carry-body{animation:carry 2.8s ease-in-out infinite}@keyframes carry{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.anim-rdl-body{animation:rdl 2.6s ease-in-out infinite}@keyframes rdl{0%,to{transform:rotate(0)}50%{transform:rotate(40deg)}}.anim-row-arm{animation:row 1.8s ease-in-out infinite}@keyframes row{0%,to{transform:translateY(6px) rotate(0)}50%{transform:translateY(-8px) rotate(-8deg)}}.anim-face-arms{animation:facePull 2s ease-in-out infinite}@keyframes facePull{0%,to{transform:translateY(6px) scaleX(1.15)}50%{transform:translateY(-2px) scaleX(1)}}.anim-lateral-body{animation:lateral 2.2s ease-in-out infinite}@keyframes lateral{0%,to{transform:translate(-8px)}50%{transform:translate(8px)}}.anim-bug-armA{animation:bugArm 2.6s ease-in-out infinite}.anim-bug-armB{animation:bugArm 2.6s ease-in-out infinite 1.3s}.anim-bug-legA{animation:bugLeg 2.6s ease-in-out infinite 1.3s}.anim-bug-legB{animation:bugLeg 2.6s ease-in-out infinite}@keyframes bugArm{0%,to{transform:rotate(0)}50%{transform:rotate(-40deg)}}@keyframes bugLeg{0%,to{transform:rotate(0)}50%{transform:rotate(30deg)}}.anim-wallsit-body{animation:breathe 3s ease-in-out infinite}@keyframes breathe{0%,to{transform:translateY(0)}50%{transform:translateY(2px)}}.anim-run-legA{animation:runLeg .7s ease-in-out infinite}.anim-run-legB{animation:runLeg .7s ease-in-out infinite .35s}.anim-run-armA{animation:runArm .7s ease-in-out infinite .35s}.anim-run-armB{animation:runArm .7s ease-in-out infinite}.anim-run-body{animation:bob .7s ease-in-out infinite}@keyframes runLeg{0%,to{transform:rotate(26deg)}50%{transform:rotate(-26deg)}}@keyframes runArm{0%,to{transform:rotate(-26deg)}50%{transform:rotate(26deg)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.anim-breath-ring{animation:breathRing 5s ease-in-out infinite;opacity:.7}@keyframes breathRing{0%,to{transform:scale(.7);opacity:.5}50%{transform:scale(1.05);opacity:.9}}.bottom-nav a,.nav-logout{padding:6px 8px}.bottom-nav .nav-label{font-size:.62rem}
