:root{--bg:#0a0a0b;--surface:#141416;--surface-raised:#1d1d21;--line:#2e2e34;--line-strong:#6b6b75;--ink:#f4f1ea;--ink-muted:#a6a6ae;--ink-faint:#8a8a93;--ember:#ff5a1f;--ember-hot:#ff7a45;--ember-deep:#2a120b;--on-ember:#0a0a0b;--record:#ffc93c;--success:#3ddc84;--success-deep:#0f2a1b;--danger:#ff4d6a;--danger-deep:#3a1017;--focus:#f4f1ea;--font-display:"Big Shoulders Display","Oswald","Arial Narrow",sans-serif;--font-sans:Barlow,"Segoe UI",system-ui,sans-serif;--font-condensed:"Barlow Condensed","Arial Narrow",sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-xs:3px;--radius-sm:6px;--radius-md:10px;--radius-pill:999px;--ease:cubic-bezier(.2,.8,.2,1);--fast:.14s;--base:.24s;--slow:.42s;font-family:var(--font-sans);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#050506;scroll-padding-bottom:104px}*{box-sizing:border-box}body{background:#050506;margin:0}button,input,select,textarea{font:inherit;touch-action:manipulation}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.app-shell{isolation:isolate;background:var(--bg);color:var(--ink);max-width:520px;min-height:100dvh;padding-bottom:calc(88px + env(safe-area-inset-bottom));margin:0 auto;position:relative;box-shadow:0 0 0 1px #16161a,0 0 80px #000}.app-shell:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(120% 90% at 100% 0,#ff5a1f2e 0,#ff5a1f0a 45%,#0000 70%);height:340px;position:absolute;inset:0 0 auto}header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-3);display:flex}.brand{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:10px;font-size:22px;font-weight:800;line-height:1;display:flex}.brand svg{width:26px;height:26px;color:var(--ember);transform:rotate(-30deg)}header button{min-height:38px;padding:8px 12px;font-size:13px}.toolbar{padding:0 var(--space-5) var(--space-2)}.toolbar button{min-height:36px;color:var(--ink-muted);background:0 0;border:0;padding:6px 0;font-size:13px}.toolbar button:hover:not(:disabled){color:var(--ember)}.navigation{z-index:20;width:min(520px,100%);padding:6px 8px calc(6px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);background:#0d0d0fe6;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.navigation button{letter-spacing:.1em;min-height:58px;color:var(--ink-muted);border-radius:var(--radius-sm);background:0 0;border:0;flex-direction:column;gap:4px;padding:8px 2px;font-size:11px;position:relative}.navigation button svg{width:21px;height:21px;transition:transform var(--base) var(--ease)}.navigation button span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.navigation button:before{content:"";background:var(--ember);height:3px;transition:transform var(--base) var(--ease);border-radius:0 0 3px 3px;position:absolute;top:-7px;left:28%;right:28%;transform:scaleX(0)}.navigation button[aria-current=page]{color:var(--ink);background:0 0}.navigation button[aria-current=page] svg{color:var(--ember);transform:translateY(-1px)scale(1.08)}.navigation button[aria-current=page]:before{transform:scaleX(1)}.navigation button:hover:not(:disabled){color:var(--ink);background:0 0;border:0}button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);min-height:48px;color:var(--ink);font-family:var(--font-condensed);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background-color var(--fast) var(--ease),border-color var(--fast) var(--ease),color var(--fast) var(--ease),transform var(--fast) var(--ease),box-shadow var(--base) var(--ease);background:0 0;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-size:15px;font-weight:600;display:inline-flex}button svg{width:18px;height:18px;transition:transform var(--base) var(--ease);flex-shrink:0}button:hover:not(:disabled){border-color:var(--ink);background:#ffffff0a}button:active:not(:disabled){transform:scale(.97)}button:disabled{cursor:default;opacity:.4}.primary{background:var(--ember);border-color:var(--ember);color:var(--on-ember);letter-spacing:.1em;min-height:56px;font-size:17px;font-weight:700}.primary:hover:not(:disabled){background:var(--ember-hot);border-color:var(--ember-hot);box-shadow:0 10px 32px #ff5a1f47}.primary:hover:not(:disabled) svg{transform:translate(4px)}.text-button{min-height:40px;color:var(--ink-muted);background:0 0;border:0;justify-content:flex-start;padding:8px 0}.text-button:hover:not(:disabled){color:var(--ember);background:0 0}.full{width:100%}main{padding:var(--space-4) var(--space-5) var(--space-6)}main>*{animation:rise var(--slow) var(--ease) both}main>:nth-child(2){animation-delay:40ms}main>:nth-child(3){animation-delay:80ms}main>:nth-child(4){animation-delay:.12s}main>:nth-child(5){animation-delay:.16s}main>:nth-child(n+6){animation-delay:.2s}h1{font-family:var(--font-display);letter-spacing:.005em;text-transform:uppercase;margin:0 0 var(--space-4);overflow-wrap:anywhere;font-size:clamp(38px,11vw,50px);font-weight:800;line-height:.94}h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;margin:var(--space-5) 0 var(--space-2);font-size:28px;font-weight:800;line-height:1}h3{font-family:var(--font-sans);margin:0 0 6px;font-size:17px;font-weight:600;line-height:1.3}p{margin:0 0 var(--space-3);font-size:15px;line-height:1.55}strong{font-weight:600}.muted{color:var(--ink-muted)}.eyebrow{font-family:var(--font-condensed);letter-spacing:.18em;text-transform:uppercase;color:var(--ember);margin:0 0 var(--space-3);align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.eyebrow:before{content:"";background:var(--ember);flex:none;width:18px;height:3px;transform:skew(-30deg)}.space{margin-top:var(--space-4)}.row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.between{justify-content:space-between}a{color:var(--ember);text-underline-offset:3px}.motto{margin:0 0 var(--space-5);padding:var(--space-3) 0 var(--space-5);border-bottom:1px solid var(--line);position:relative}.motto-kicker{font-family:var(--font-condensed);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 var(--space-3);font-size:12px;font-weight:600}.motto-kicker b{color:var(--ember);font-weight:700}.motto-line{font-family:var(--font-display);text-transform:uppercase;margin:0 0 var(--space-5);color:var(--ink);text-wrap:balance;font-size:clamp(40px,12.5vw,60px);font-weight:900;line-height:.9}.motto-line em{color:var(--ember);font-style:normal}.streak{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.streak div{background:var(--surface);padding:var(--space-3)}.streak strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:34px;font-weight:800;line-height:1;display:block}.streak div>span{font-family:var(--font-condensed);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-top:4px;font-size:12px;display:block}.streak .hot strong{color:var(--ember)}.days{gap:var(--space-2);margin:var(--space-5) 0;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.days button{min-height:48px;padding:12px 4px}.days button[aria-pressed=true],.weekdays button[aria-pressed=true]{background:var(--ember);color:var(--on-ember);border-color:var(--ember)}.exercise-list{margin:var(--space-4) 0 var(--space-5);border-top:1px solid var(--line);padding:0;list-style:none}.exercise-list li{padding:var(--space-4) 0;border-bottom:1px solid var(--line)}.exercise-list p:last-child{margin-bottom:0}.exercise-list li>button{margin-top:var(--space-2);min-height:40px;font-size:13px}.planned-exercise{gap:var(--space-4);align-items:baseline;display:flex}.exercise-number{font-family:var(--font-display);color:var(--ember);font-variant-numeric:tabular-nums;min-width:34px;font-size:26px;font-weight:800;line-height:1}.planned-exercise h3{margin-bottom:2px}.planned-exercise p{font-size:14px}.notice{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-4) 0}.notice p:last-child{margin-bottom:0}.notice button{margin-top:var(--space-2)}.notice>button+button{margin-left:var(--space-2)}main>.notice[aria-label]{padding:var(--space-3) var(--space-4);font-size:14px}main>.notice[aria-label] strong{font-family:var(--font-condensed);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-size:13px}main>.notice[aria-label] p{margin:4px 0 0;font-size:13px}.badge{border-radius:var(--radius-pill);background:var(--success-deep);color:var(--success);font-family:var(--font-condensed);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:700;display:inline-flex}.badge svg{width:14px;height:14px}.error,[role=alert]{color:var(--danger)}.storage-error{background:var(--danger-deep);color:#ffd4db;padding:var(--space-4) var(--space-5)}.storage-error [role],.storage-error p{color:inherit}label{color:var(--ink);margin-top:var(--space-3);font-size:14px;font-weight:500;line-height:1.5;display:block}input,select,textarea{background:var(--surface-raised);width:100%;min-width:0;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-sm);min-height:50px;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease);margin-top:6px;padding:12px;font-size:16px;display:block}input:hover,select:hover,textarea:hover{border-color:var(--ink-muted)}input:focus,select:focus,textarea:focus{border-color:var(--ember);box-shadow:0 0 0 3px #ff5a1f33}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0}select{padding-right:28px}select:disabled{opacity:1;color:var(--ink-muted)}textarea{resize:vertical;max-width:100%}input::placeholder,textarea::placeholder{color:var(--ink-faint)}input[type=checkbox]{accent-color:var(--ember)}fieldset{border:1px solid var(--line);border-radius:var(--radius-md);min-width:0;padding:var(--space-4);margin:var(--space-4) 0}fieldset label{margin-bottom:var(--space-3)}legend{font-family:var(--font-condensed);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);padding:0 6px;font-size:13px;font-weight:600}.weekdays{margin:var(--space-3) 0;flex-wrap:wrap;gap:6px;display:flex}.weekdays button{min-height:40px;padding:8px 12px;font-size:13px}.progress-track{background:var(--surface-raised);border-radius:var(--radius-xs);height:8px;margin:var(--space-3) 0 var(--space-5);position:relative;overflow:hidden}.progress-track span{background:var(--ember) repeating-linear-gradient(-60deg,transparent 0 8px,#ffffff26 8px 14px);border-radius:var(--radius-xs);height:100%;transition:width var(--slow) var(--ease);background-size:32px 100%;animation:1.2s linear infinite march;display:block}.set-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-4) 0;transition:border-color var(--base) var(--ease);position:relative}.set-card:focus-within{border-color:var(--line-strong)}.set-card h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;margin:0;font-size:24px;font-weight:800;line-height:1}.set-card .target{margin-top:var(--space-2)}.set-card.saved{background:linear-gradient(180deg,#0f2a1b66,var(--surface) 60%);animation:pop var(--slow) var(--ease) both;border-color:#3ddc8455}.set-card.saved button{min-height:40px;margin:var(--space-2) var(--space-2) 0 0;font-size:13px}.fields{gap:var(--space-3);margin:var(--space-3) 0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.fields.single{grid-template-columns:1fr}.fields label{font-family:var(--font-condensed);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);font-size:13px;font-weight:600}.fields input{min-height:68px;font-family:var(--font-display);text-align:center;letter-spacing:.02em;font-variant-numeric:tabular-nums;padding:8px;font-size:36px;font-weight:800}.result{margin:var(--space-3) 0;font-family:var(--font-display);text-transform:uppercase;font-size:30px;font-weight:800;line-height:1}details{margin:var(--space-3) 0;border-top:1px solid var(--line)}summary{cursor:pointer;min-height:48px;font-family:var(--font-condensed);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);transition:color var(--fast) var(--ease);justify-content:space-between;align-items:center;padding:13px 0;font-size:14px;font-weight:600;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary:after{content:"+";font-family:var(--font-display);color:var(--ember);transition:transform var(--base) var(--ease);font-size:24px;line-height:1}details[open]>summary:after{transform:rotate(45deg)}summary:hover{color:var(--ink)}.actions{gap:var(--space-2);margin:var(--space-5) 0 var(--space-3);grid-template-columns:1fr 1fr;display:grid}.finish-panel{padding:var(--space-4);background:var(--surface);border:1px solid var(--ember);border-radius:var(--radius-md);margin-top:var(--space-4);animation:rise var(--base) var(--ease) both}.finish-panel h2{margin-top:0}.finish-panel .actions{margin-bottom:0}.history-card{text-align:left;width:100%;padding:var(--space-4);margin:var(--space-3) 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);font-family:var(--font-sans);text-transform:none;letter-spacing:0;font-weight:400;display:block}.history-card:hover:not(:disabled){border-color:var(--ember);background:var(--surface)}.history-card>.muted{font-family:var(--font-condensed);letter-spacing:.12em;text-transform:uppercase;font-size:13px}.history-card strong{font-family:var(--font-display);text-transform:uppercase;margin:var(--space-2) 0 var(--space-3);font-size:26px;font-weight:800;line-height:1;display:block}.history-card .row{color:var(--ink-muted);font-size:13px}.history-card .row svg{color:var(--ember)}.history-card:hover .row svg{transform:translate(4px)}.stats{gap:var(--space-2);margin:var(--space-5) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stats div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4)}.stats strong{font-family:var(--font-display);margin-bottom:var(--space-2);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:52px;font-weight:800;line-height:.9;display:block}.stats div:first-child strong{color:var(--ember)}.stats div>span{font-family:var(--font-condensed);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);font-size:13px;display:block}.chart-container{width:100%;min-width:0}.progress-chart{width:100%;height:auto;margin:var(--space-2) 0;display:block}.progress-chart text{font-family:var(--font-condensed);letter-spacing:.04em;fill:var(--ink-muted);font-size:12px}.progress-chart .chart-value{fill:var(--ink);font-family:var(--font-display);font-size:16px;font-weight:800}.progress-chart line{stroke:var(--line);stroke-dasharray:2 4}.progress-chart .chart-area{fill:var(--ember);fill-opacity:.14;stroke:none}.progress-chart polyline{fill:none;stroke:var(--ember);stroke-width:3px;stroke-linejoin:round;stroke-linecap:round}.progress-chart circle{fill:var(--bg);stroke:var(--ember);stroke-width:3px}.progress-chart g:last-of-type circle{fill:var(--ember)}table{border-collapse:collapse;width:100%;margin:var(--space-5) 0 0;font-size:15px}caption{text-align:left;font-family:var(--font-condensed);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);padding-bottom:var(--space-2);font-size:13px}th,td{border-bottom:1px solid var(--line);text-align:left;font-variant-numeric:tabular-nums;padding:10px 4px;font-weight:400}th:last-child,td:last-child{text-align:right}th{font-family:var(--font-condensed);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);font-size:12px}td button{min-height:36px;margin:2px 0 2px 6px;padding:4px 10px;font-size:12px}td .text-button{margin:0;padding:0}ol{padding-left:var(--space-5)}ol li{margin:var(--space-3) 0}ol li::marker{font-family:var(--font-display);color:var(--ember);font-weight:800}.chat-text{white-space:pre-wrap;overflow-wrap:anywhere}.chat-messages{margin-block:var(--space-5)}.chat-messages .set-card:nth-child(2n){border-color:#ff5a1f55}.chat-consent{align-items:flex-start;gap:10px;display:flex}.chat-consent input[type=checkbox]{flex:0 0 20px;width:20px;height:20px;min-height:20px;margin-top:3px;padding:0}form>button,section>button,main>button,main>div>button,main>section>button{margin-top:var(--space-3)}main>section>button+button,main>button+button{margin-left:var(--space-2)}footer{justify-content:space-between;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--line);font-family:var(--font-condensed);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);flex-wrap:wrap;font-size:12px;display:flex}footer span{align-items:center;gap:4px;display:flex}footer svg{width:13px;height:13px;color:var(--success)}.sr-only{clip:rect(0,0,0,0);width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.98);box-shadow:0 0 #3ddc8466}60%{transform:scale(1.01);box-shadow:0 0 0 8px #3ddc8400}to{transform:none}}@keyframes march{to{background-position:32px 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (width<=360px){main{padding:var(--space-4) var(--space-4)}header{padding:var(--space-4) var(--space-4) var(--space-2)}.toolbar{padding:0 var(--space-4) var(--space-2)}.set-card{padding:var(--space-3)}.actions button{padding:10px 6px}.navigation button{letter-spacing:.04em;font-size:10px}.streak strong{font-size:28px}}main>.notice[aria-label] button{min-height:38px;padding:6px 12px;font-size:13px}.app-shell>main:only-child{padding-top:var(--space-7)}main>section>section{margin-top:var(--space-3)}.wipe{pointer-events:none;height:3px;margin-bottom:-3px;position:relative;overflow:hidden}.fx-layer{z-index:60;pointer-events:none;position:fixed;inset:0;overflow:hidden}.fx-spark{will-change:transform,opacity;border-radius:2px;position:absolute;box-shadow:0 0 6px 1px #ff7a4599}.motto-line .accent{position:relative}.motto-line .accent:after{content:"";background:var(--ember);height:.07em;position:absolute;bottom:.04em;left:-2%;right:-2%;transform:skew(-30deg)}.progress-track{overflow:visible}.progress-track span{position:relative}.celebration{z-index:50;pointer-events:none;background:radial-gradient(70% 45% at 50% 42%,#ff5a1f38,#0a0a0bd9 72%);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.celebration-inner{text-align:center;padding:0 var(--space-5);position:relative}.celebration-kicker{font-family:var(--font-condensed);letter-spacing:.32em;text-transform:uppercase;color:var(--ember);margin:0;font-size:14px;font-weight:700}.celebration-title{font-family:var(--font-display);text-transform:uppercase;color:var(--ink);margin:10px 0 16px;font-size:clamp(72px,24vw,132px);font-weight:900;line-height:.84}.celebration-title em{color:var(--ember);font-style:normal}.celebration-meta{font-family:var(--font-condensed);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin:0;font-size:16px;font-weight:600}.celebration-meta b{font-family:var(--font-display);color:var(--ink);letter-spacing:0;vertical-align:-2px;font-size:26px;font-weight:800}.celebration-slash{background:var(--ember);opacity:.85;height:20px;position:absolute;top:calc(53% - 10px);left:-10%;right:-10%;transform:rotate(-12deg)}@media (prefers-reduced-motion:no-preference){.app-shell:before{animation:7s ease-in-out infinite breathe}header{animation:rise .5s var(--ease) both}.brand svg{animation:lift .9s var(--ease) .15s both}.wipe:before{content:"";background:linear-gradient(90deg,transparent,var(--ember) 40%,var(--record) 60%,transparent);width:60%;animation:.7s cubic-bezier(.6,0,.2,1) both wipe;position:absolute;inset:0 auto 0 0;transform:translate(-110%)skew(-30deg)}main h1{animation:slam .6s var(--ease) both}h2{animation:slam .5s var(--ease) both}.motto-line .w{animation:.55s cubic-bezier(.2,1.35,.3,1) both punch;animation-delay:calc(var(--i) * 70ms + .15s);display:inline-block}.motto-line .accent{animation:.55s cubic-bezier(.2,1.35,.3,1) both punch,3.4s ease-in-out infinite heat;animation-delay:calc(var(--i) * 70ms + .15s),calc(var(--i) * 70ms + .9s)}.motto-line .accent:after{transform-origin:0;animation:underline .45s var(--ease) both;animation-delay:calc(var(--i) * 70ms + .6s);transform:scaleX(0)skew(-30deg)}.motto-kicker b{animation:.5s cubic-bezier(.2,1.35,.3,1) .1s both punch;display:inline-block}.streak>div{animation:rise .5s var(--ease) both}.streak>div:first-child{animation-delay:.45s}.streak>div:nth-child(2){animation-delay:.53s}.streak>div:nth-child(3){animation-delay:.61s}.primary{isolation:isolate;position:relative;overflow:hidden}.primary:after{content:"";pointer-events:none;opacity:0;background:linear-gradient(90deg,#0000,#ffffffa6,#0000);width:25%;position:absolute;top:-4px;bottom:-4px;left:-35%;transform:translate(0)skew(-30deg)}.primary:hover:not(:disabled):after{animation:shine-once .7s var(--ease)}.cta{animation:rise var(--slow) var(--ease) both,forge 2.8s ease-in-out .8s infinite}.cta:after{animation:shine 4s var(--ease) 1.2s infinite}.navigation button[aria-current=page] svg{animation:.5s cubic-bezier(.2,1.6,.4,1) both navpop}.days button[aria-pressed=true],.weekdays button[aria-pressed=true]{animation:press .35s var(--ease)}.exercise-list li{animation:slide .45s var(--ease) both}.exercise-list li:nth-child(2){animation-delay:50ms}.exercise-list li:nth-child(3){animation-delay:.1s}.exercise-list li:nth-child(4){animation-delay:.15s}.exercise-list li:nth-child(5){animation-delay:.2s}.exercise-list li:nth-child(6){animation-delay:.25s}.exercise-list li:nth-child(7){animation-delay:.3s}.exercise-list li:nth-child(n+8){animation-delay:.35s}.exercise-number{animation:slide-num .5s var(--ease) both;animation-delay:inherit;display:inline-block}.set-card.saved .badge{animation:.5s cubic-bezier(.2,1.6,.4,1) .12s both stamp}.set-card.saved .result{animation:slam .45s var(--ease) 50ms both}.set-card .error{animation:shake .4s var(--ease)}.progress-track span:after{content:"";background:radial-gradient(circle,#fff6d6 0,var(--record) 25%,var(--ember) 50%,transparent 72%);border-radius:50%;width:16px;height:16px;animation:1.1s ease-in-out infinite flicker;position:absolute;top:50%;right:-5px;transform:translateY(-50%)}.progress-track span[style^="width: 0%"]:after,.progress-track span[style^="width:0%"]:after{display:none}.stats>div{animation:rise .5s var(--ease) both}.stats>div:nth-child(2){animation-delay:.1s}.progress-chart polyline{stroke-dasharray:1;stroke-dashoffset:1px;animation:1.1s cubic-bezier(.6,0,.2,1) .15s forwards draw}.progress-chart .chart-area{animation:.8s 1s both fade}.progress-chart .chart-point{transform-box:fill-box;transform-origin:50%;animation:.45s cubic-bezier(.2,1.6,.4,1) both point-in}.history-card{transition:border-color var(--fast) var(--ease),transform var(--base) var(--ease)}.history-card:hover:not(:disabled){transform:translate(3px)}.celebration{animation:celebrate-bg 2.4s var(--ease) both}.celebration-inner{animation:2.4s cubic-bezier(.2,1.2,.3,1) both celebrate-in}.celebration-slash{transform-origin:0;animation:celebrate-slash 2.4s var(--ease) both}.celebration-meta b{animation:.5s cubic-bezier(.2,1.35,.3,1) .5s both punch;display:inline-block}.app-shell:has(.celebration) main{animation:.45s ease-out .28s quake}}@keyframes breathe{0%,to{opacity:.7}50%{opacity:1}}@keyframes lift{0%{opacity:0;transform:rotate(10deg)translateY(8px)}55%{opacity:1;transform:rotate(-42deg)translateY(-3px)}to{transform:rotate(-30deg)}}@keyframes wipe{to{transform:translate(260%)skew(-30deg)}}@keyframes slam{0%{opacity:0;clip-path:inset(0 -10% 100%);transform:translateY(.4em)}to{opacity:1;clip-path:inset(-20% -10% -30%);transform:none}}@keyframes punch{0%{opacity:0;filter:blur(6px);transform:translateY(55%)scale(1.3)skew(-10deg)}to{opacity:1;filter:none;transform:none}}@keyframes heat{0%,to{text-shadow:0 0 #ff5a1f00}50%{text-shadow:0 0 24px #ff5a1f99,0 0 3px #ff7a45}}@keyframes underline{to{transform:scaleX(1)skew(-30deg)}}@keyframes forge{0%,to{box-shadow:0 0 #ff5a1f00}50%{box-shadow:0 0 30px 2px #ff5a1f59}}@keyframes shine{0%{opacity:1;transform:translate(0)skew(-30deg)}22%{opacity:1;transform:translate(620%)skew(-30deg)}22.1%,to{opacity:0;transform:translate(620%)skew(-30deg)}}@keyframes shine-once{0%{opacity:1;transform:translate(0)skew(-30deg)}to{opacity:1;transform:translate(620%)skew(-30deg)}}@keyframes navpop{0%{transform:scale(.6)rotate(-14deg)}to{transform:translateY(-1px)scale(1.08)}}@keyframes press{0%{transform:scale(.92)}to{transform:none}}@keyframes slide{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:none}}@keyframes slide-num{0%{opacity:0;transform:translate(-10px)skew(-20deg)}to{opacity:1;transform:none}}@keyframes stamp{0%{opacity:0;transform:scale(2.4)rotate(-14deg)}60%{opacity:1}to{opacity:1;transform:none}}@keyframes shake{0%,to{transform:none}20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}}@keyframes flicker{0%,to{opacity:.85;transform:translateY(-50%)scale(1)}50%{opacity:1;transform:translateY(-50%)scale(1.25)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes point-in{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:none}}@keyframes celebrate-bg{0%{opacity:0}10%{opacity:1}80%{opacity:1}to{opacity:0}}@keyframes celebrate-in{0%{opacity:0;filter:blur(10px);transform:scale(1.9)}13%{opacity:1;filter:none;transform:scale(.95)}20%{transform:scale(1)}80%{opacity:1;transform:scale(1.03)}to{opacity:0;transform:scale(1.1)}}@keyframes celebrate-slash{0%{transform:rotate(-12deg)scaleX(0)}14%{opacity:.85;transform:rotate(-12deg)scaleX(1)}78%{opacity:.85}to{opacity:0;transform:rotate(-12deg)scaleX(1)}}@keyframes quake{0%,to{transform:none}15%{transform:translate(-5px,3px)}30%{transform:translate(5px,-3px)}45%{transform:translate(-3px,2px)}60%{transform:translate(3px,-1px)}75%{transform:translate(-1px,1px)}}.sync-dot{--dot:var(--ink-faint);vertical-align:middle;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;display:inline-grid;position:relative}.sync-dot:after{content:"";background:var(--dot);width:9px;height:9px;box-shadow:0 0 0 3px color-mix(in srgb,var(--dot) 22%,transparent);border-radius:50%}.sync-dot.ok{--dot:var(--success)}.sync-dot.pending{--dot:var(--ember)}.sync-dot.error{--dot:var(--danger)}.brand .sync-dot{margin-left:-2px}button.sync-dot{background:0 0;border:0;min-height:0;margin:0;padding:0}button.sync-dot:hover:not(:disabled){background:#ffffff14}.sync-alert.pending{border-color:#ff5a1f66}.sync-alert.error{border-color:#ff4d6a80}.sync-alert strong{display:block}.sync-panel{padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.plan-edit{min-height:32px;padding:0;font-size:12px}.plan-edit svg{width:14px;height:14px}.sync-panel strong{font-family:var(--font-condensed);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex}.sync-panel strong .sync-dot{width:18px;height:18px}.sync-panel button{min-height:36px;margin:0;padding:6px 12px;font-size:12px}.sync-panel p{margin:var(--space-2) 0 0;font-size:13px}.app-shell:has(.rest){padding-bottom:calc(168px + env(safe-area-inset-bottom))}html:has(.rest){scroll-padding-bottom:184px}.rest{z-index:19;left:50%;bottom:calc(80px + env(safe-area-inset-bottom));align-items:center;gap:var(--space-2);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line-strong);background:#17171bf2;border-radius:14px;width:min(504px,100% - 16px);padding:10px 10px 10px 12px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 18px 40px #000000b3}.rest-ring{flex:none;width:44px;height:44px;transform:rotate(-90deg)}.rest-ring circle{fill:none;stroke-width:5px}.rest-ring-track{stroke:var(--surface-raised)}.rest-ring-fill{stroke:var(--ember);stroke-dasharray:1;stroke-linecap:round;transition:stroke-dashoffset .25s linear}.rest-main{flex-direction:column;flex:1;min-width:0;display:flex}.rest-label{font-family:var(--font-condensed);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap;font-size:12px;font-weight:600}.rest-clock{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:34px;font-weight:800;line-height:1}.rest-actions{gap:4px;display:flex}.rest-actions button{letter-spacing:.02em;gap:1px;min-width:38px;min-height:40px;padding:6px 7px;font-size:13px}.rest-actions svg{width:13px;height:13px}.rest-close{border-color:#0000}.rest.done{border-color:var(--ember)}.rest.done .rest-clock,.rest.done .rest-label{color:var(--ember)}.rest.done .rest-ring-track{stroke:var(--ember)}.badge-record{color:var(--record);background:#3a2a05}.set-card.saved.record{background:linear-gradient(180deg,#ffc93c1f,var(--surface) 60%);border-color:#ffc93c80}.record-line{margin:0 0 var(--space-2);font-family:var(--font-condensed);letter-spacing:.12em;text-transform:uppercase;color:var(--record);font-size:14px;font-weight:700}.record-hint{margin:0 0 var(--space-3);font-family:var(--font-condensed);letter-spacing:.08em;text-transform:uppercase;color:var(--record);align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.record-hint svg{flex:none;width:16px;height:16px}.fill-previous{min-height:36px;margin:var(--space-2) 0 0;color:var(--ink-muted);padding:0;font-size:13px}.fill-previous svg{width:15px;height:15px}.set-line{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.set-line p{margin:0 0 6px}.record-tag{font-family:var(--font-condensed);letter-spacing:.12em;text-transform:uppercase;color:var(--record);flex:none;align-items:center;gap:4px;font-size:12px;font-weight:700;display:inline-flex}.record-tag svg{width:13px;height:13px}.celebration-records{font-family:var(--font-condensed);letter-spacing:.14em;text-transform:uppercase;color:var(--record);margin:12px 0 0;font-size:16px;font-weight:700}.celebration-records b{font-family:var(--font-display);letter-spacing:0;vertical-align:-2px;font-size:26px;font-weight:800}.consistency{margin:var(--space-5) 0;padding:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md)}.consistency>.row{margin-bottom:var(--space-3)}.consistency .eyebrow{margin:0}.consistency-total{font-family:var(--font-condensed);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:0;font-size:13px}.consistency-total strong{font-family:var(--font-display);color:var(--ink);letter-spacing:0;vertical-align:-2px;font-size:24px;font-weight:800}.consistency-map{grid-template-columns:14px minmax(0,1fr);gap:4px 6px;display:grid}.consistency-months{grid-column:2;grid-template-columns:repeat(var(--weeks),minmax(0,1fr));font-family:var(--font-condensed);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);gap:3px;height:12px;font-size:10px;line-height:12px;display:grid}.consistency-months span{white-space:nowrap;overflow:visible}.consistency-weekdays{font-family:var(--font-condensed);color:var(--ink-muted);grid-column:1;grid-template-rows:repeat(7,minmax(0,1fr));align-items:center;gap:3px;font-size:10px;display:grid}.consistency-grid{grid-column:2;grid-template-rows:repeat(7,auto);grid-auto-flow:column;grid-template-columns:repeat(var(--weeks),minmax(0,1fr));gap:3px;display:grid}.day{aspect-ratio:1;background:var(--surface-raised);border-radius:3px;display:block}.day.l1{background:var(--ember)}.day.l2{background:var(--ember-hot);box-shadow:0 0 6px #ff7a4599}.day.today{outline:1.5px solid var(--ink);outline-offset:1px}.day.future{box-shadow:inset 0 0 0 1px var(--line);background:0 0}.consistency-legend{margin:var(--space-3) 0 0;font-family:var(--font-condensed);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);align-items:center;gap:6px;font-size:11px;display:flex}.consistency-legend .day{width:10px;height:10px;margin-left:8px}.consistency-legend .day:first-child{margin-left:0}@media (prefers-reduced-motion:no-preference){.rest{animation:dock-in .4s var(--ease) both}.rest.done{animation:dock-done .7s var(--ease)}.rest.done .rest-clock{animation:.45s cubic-bezier(.2,1.35,.3,1) punch}.sync-dot.pending:after{animation:1.6s ease-in-out infinite dot-pulse}.set-card.saved.record{animation:pop-gold .7s var(--ease) both}.record-hint{animation:rise .3s var(--ease) both}.record-hint svg{animation:1.8s ease-in-out infinite trophy}.record-tag svg{animation:2.4s ease-in-out infinite trophy}.celebration-records{animation:.5s cubic-bezier(.2,1.35,.3,1) .8s both punch}.consistency-grid .day{animation:cell-in .35s var(--ease) both;animation-delay:calc(var(--w) * 30ms + .15s)}.consistency-grid .day.today{animation:cell-in .35s var(--ease) both,today-ring 2s ease-in-out 1s infinite;animation-delay:calc(var(--w) * 30ms + .15s),1s}.fill-previous:hover:not(:disabled) svg{transform:rotate(-120deg)}}@keyframes dock-in{0%{opacity:0;transform:translate(-50%,24px)}to{opacity:1;transform:translate(-50%)}}@keyframes dock-done{0%{box-shadow:0 0 #ff5a1f99,0 18px 40px #000000b3}to{box-shadow:0 0 0 14px #ff5a1f00,0 18px 40px #000000b3}}@keyframes dot-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.35)}}@keyframes pop-gold{0%{transform:scale(.98);box-shadow:0 0 #ffc93c80}60%{transform:scale(1.015);box-shadow:0 0 0 12px #ffc93c00}to{transform:none}}@keyframes trophy{0%,to{transform:rotate(0)}10%{transform:rotate(-12deg)}20%{transform:rotate(10deg)}30%{transform:rotate(0)}}@keyframes cell-in{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}@keyframes today-ring{0%,to{outline-color:var(--ink)}50%{outline-color:#f4f1ea33}}.coach-avatar{--size:76px;width:var(--size);height:var(--size);background:radial-gradient(circle at 50% 38%,var(--av-bg) 0,var(--bg) 80%);box-shadow:inset 0 0 0 2px var(--line);border-radius:50%;flex:none;display:inline-block;position:relative;overflow:hidden}.coach-avatar svg{width:100%;height:100%;display:block;overflow:visible}.coach-avatar.sm{--size:40px}.coach-avatar.lg{--size:112px;box-shadow:inset 0 0 0 2px var(--ember),0 0 0 5px #ff5a1f1f,0 12px 36px #ff5a1f26}.av-mouth-open,.av-sweat{opacity:0}.coach-avatar[data-state=thinking] .av-sweat,.coach-avatar[data-state=talking] .av-mouth-open{opacity:1}.coach-avatar[data-state=talking] .av-mouth-closed{opacity:0}.coach-hero{align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.coach-hero-text{min-width:0}.coach-hero .eyebrow{margin-bottom:6px}.coach-hero h1{margin:0 0 2px}.coach-hero .text-button{min-height:32px;padding:0;font-size:13px}.coach-hero .text-button svg{width:15px;height:15px}.coach-intro .row{gap:var(--space-3);margin-top:var(--space-3)}.coach-intro .row button{margin:0}.text-button.inline-link{min-height:0;font:inherit;letter-spacing:0;text-transform:none;color:var(--ember);text-underline-offset:3px;margin:0;padding:0;text-decoration:underline;display:inline}.consent-more{margin-top:var(--space-2)}.chat-refresh{min-height:36px;margin:var(--space-2) 0 0;font-size:12px}.coach-settings{margin:0 0 var(--space-4);padding:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md)}.coach-settings>label:first-child{margin-top:0}.coach-picker{margin:var(--space-4) 0 0;border:0;padding:0}.coach-picker legend{padding:0}.coach-options{gap:var(--space-2);margin-top:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.coach-option{border:1px solid var(--line-strong);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--fast) var(--ease),background-color var(--fast) var(--ease),transform var(--fast) var(--ease);flex-direction:column;align-items:center;gap:6px;margin:0;padding:10px 4px 8px;display:flex;position:relative}.coach-option input{opacity:0;pointer-events:none;border:0;width:1px;height:1px;min-height:0;margin:0;padding:0;position:absolute}.coach-option .coach-avatar{--size:64px}.coach-option:hover{border-color:var(--ink)}.coach-option:active{transform:scale(.97)}.coach-option.selected{border-color:var(--ember);background:var(--ember-deep)}.coach-option:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:3px}.coach-option-name{font-family:var(--font-display);text-transform:uppercase;font-size:18px;font-weight:800;line-height:1}.coach-option.selected .coach-option-name{color:var(--ember)}.coach-blurb{margin:var(--space-3) 0 0;font-family:var(--font-condensed);letter-spacing:.08em;text-transform:uppercase;color:var(--ember);font-size:14px;font-weight:600}.coach-settings>.muted{margin:var(--space-3) 0 0;font-size:13px}.chat-turn{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.chat-bubble{border:1px solid var(--line);border-radius:14px;max-width:88%;padding:10px 14px}.chat-bubble strong{font-family:var(--font-condensed);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:2px;font-size:12px;font-weight:700;display:block}.chat-bubble p{margin:0}.chat-bubble.me{background:var(--surface-raised);border-bottom-right-radius:4px;align-self:flex-end}.chat-bubble.coach{background:var(--surface);border-color:#ff5a1f47;border-bottom-left-radius:4px;align-self:flex-start;align-items:flex-start;gap:10px;max-width:100%;display:flex}.chat-bubble.coach>div{min-width:0}.chat-bubble.coach strong{color:var(--ember)}.chat-bubble.failed{border-color:#ff4d6a73}.chat-typing{align-items:center;gap:5px;height:22px;display:flex}.chat-typing>span:not(.sr-only){background:var(--ember);border-radius:50%;width:7px;height:7px}@media (prefers-reduced-motion:no-preference){.av-rig{animation:3.2s ease-in-out infinite av-breathe;animation-delay:var(--av-delay)}.av-eyes{transform-box:fill-box;transform-origin:50%;animation:4.6s infinite av-blink;animation-delay:var(--av-delay)}.av-arm-l{transform-box:view-box;transform-origin:37px 88px}.av-arm-r{transform-box:view-box;transform-origin:83px 88px}.av-bicep{transform-box:fill-box;transform-origin:50% 100%}.av-head{transform-box:view-box;transform-origin:60px 70px}.av-sweat{transform-box:fill-box}.coach-avatar[data-state=idle] .av-arm-l{animation:av-flex-l 7s var(--ease) infinite;animation-delay:var(--av-delay)}.coach-avatar[data-state=idle] .av-arm-r{animation:av-flex-r 7s var(--ease) infinite;animation-delay:var(--av-delay)}.coach-avatar[data-state=idle] .av-bicep{animation:av-flex-b 7s var(--ease) infinite;animation-delay:var(--av-delay)}.coach-avatar.sm[data-state=idle] .av-arm,.coach-avatar.sm[data-state=idle] .av-bicep{animation:none}.coach-avatar[data-state=flex] .av-arm-l,.coach-option:hover .av-arm-l{animation:.9s ease-in-out infinite av-pump-l}.coach-avatar[data-state=flex] .av-arm-r,.coach-option:hover .av-arm-r{animation:.9s ease-in-out infinite av-pump-r}.coach-avatar[data-state=flex] .av-bicep,.coach-option:hover .av-bicep{animation:.9s ease-in-out infinite av-pump-b}.coach-option.selected .coach-avatar{animation:.5s cubic-bezier(.2,1.6,.4,1) av-hop}.coach-avatar[data-state=thinking] .av-rig{animation:.6s ease-in-out infinite av-bob}.coach-avatar[data-state=thinking] .av-arm-l{animation:1s ease-in-out infinite av-curl-l}.coach-avatar[data-state=thinking] .av-arm-r{animation:1s ease-in-out .5s infinite av-curl-r}.coach-avatar[data-state=thinking] .av-sweat{animation:1.2s ease-in infinite av-sweat}.coach-avatar.lg[data-state=thinking]{animation:1.2s ease-in-out infinite av-glow}.coach-avatar[data-state=talking] .av-mouth-open{animation:.32s step-end infinite av-talk}.coach-avatar[data-state=talking] .av-mouth-closed{animation:.32s step-end .16s infinite av-talk}.coach-avatar[data-state=talking] .av-head{animation:.64s ease-in-out infinite av-nod}.chat-turn:last-child .chat-bubble.coach{animation:.45s cubic-bezier(.2,1.3,.3,1) both bubble-in}.chat-turn.pending .chat-bubble.me{animation:bubble-in .35s var(--ease) both}.chat-typing>span:not(.sr-only){animation:1s ease-in-out infinite typing}.chat-typing>span:nth-child(2){animation-delay:.15s}.chat-typing>span:nth-child(3){animation-delay:.3s}}@keyframes av-breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-1.6px)}}@keyframes av-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes av-flex-l{0%,76%,to{transform:rotate(0)}81%{transform:rotate(13deg)}85%{transform:rotate(4deg)}89%{transform:rotate(13deg)}94%{transform:rotate(0)}}@keyframes av-flex-r{0%,76%,to{transform:rotate(0)}81%{transform:rotate(-13deg)}85%{transform:rotate(-4deg)}89%{transform:rotate(-13deg)}94%{transform:rotate(0)}}@keyframes av-flex-b{0%,76%,to{transform:scale(1)}81%{transform:scale(1.3)}85%{transform:scale(1.08)}89%{transform:scale(1.3)}94%{transform:scale(1)}}@keyframes av-pump-l{0%,to{transform:rotate(0)}50%{transform:rotate(13deg)}}@keyframes av-pump-r{0%,to{transform:rotate(0)}50%{transform:rotate(-13deg)}}@keyframes av-pump-b{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}@keyframes av-hop{0%{transform:scale(.85)}60%{transform:scale(1.08)}to{transform:none}}@keyframes av-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes av-curl-l{0%,to{transform:rotate(-24deg)}50%{transform:rotate(12deg)}}@keyframes av-curl-r{0%,to{transform:rotate(24deg)}50%{transform:rotate(-12deg)}}@keyframes av-sweat{0%{opacity:0;transform:translateY(-3px)}25%{opacity:1}to{opacity:0;transform:translateY(14px)}}@keyframes av-glow{0%,to{box-shadow:inset 0 0 0 2px var(--ember),0 0 0 5px #ff5a1f1f,0 12px 36px #ff5a1f26}50%{box-shadow:inset 0 0 0 2px var(--ember-hot),0 0 0 9px #ff5a1f33,0 12px 44px #ff5a1f4d}}@keyframes av-talk{0%{opacity:1}50%{opacity:0}}@keyframes av-nod{0%,to{transform:rotate(0)}50%{transform:rotate(-3deg)}}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:none}}@keyframes typing{0%,to{opacity:.5;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}
