:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-display:"Bodoni 72", Didot, "Iowan Old Style", Georgia, serif;--font-body:"Avenir Next", Inter, system-ui, sans-serif;--font-size-body:clamp(1.25rem, .4vw + 1.15rem, 1.5rem);--font-size-small:clamp(1rem, .18vw + .95rem, 1.125rem);--font-size-label:clamp(1.125rem, .24vw + 1.05rem, 1.3rem);--font-size-nav:clamp(1.25rem, .3vw + 1.15rem, 1.45rem);--font-size-title:clamp(3.75rem, 5.3vw, 6.25rem);--sidebar-width:clamp(20rem, 23vw, 24rem);--content-max:100rem;--control-height:3.75rem;--control-height-large:4.5rem;--ink:#20231f;--ink-soft:#5f635d;--ink-faint:#696d67;--paper:#efeee9;--surface:#f9f8f4;--surface-muted:#e7e6e0;--border:#cbc8bf;--border-strong:#aaa99f;--sage:#3f4c43;--sage-dark:#303a33;--sage-soft:#e1e5df;--moss:#71806d;--moss-soft:#dce6e0;--clay:#806a48;--clay-dark:#69563a;--clay-soft:#ebe5da;--petal:#a96868;--petal-soft:#e8d7cf;--gold:#a57b39;--gold-soft:#e9d9b8;--gold-ink:#725a2f;--spectacle-coral:#d46f4d;--spectacle-gold:#e5b54c;--spectacle-mint:#70a68a;--spectacle-plum:#8b6fa8;--danger:#7d4d49;--focus:#315a73;--shadow-dialog:0 8px 24px #20231f14;--shadow-soft:0 18px 50px #353b321a;--shadow-glow:0 18px 60px #a57b392e;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:24px;--motion-instant:80ms;--motion-state:.16s;--motion-emphasis:.32s;--motion-celebration:.6s;--motion-spectacle:1.2s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-soft:cubic-bezier(.4, 0, .2, 1);--transition:var(--motion-state) var(--ease-out)}@layer legacy{*{box-sizing:border-box}html{background:var(--paper)}body{background:var(--paper);min-width:320px;min-height:100vh;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}button,input,select,textarea{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--font-display);letter-spacing:-.025em;font-weight:500}h1{font-size:clamp(2.3rem,5vw,3.8rem);line-height:1}.app-shell{min-height:100vh}.sidebar{z-index:10;border-right:1px solid var(--border);background:var(--surface);flex-direction:column;width:238px;padding:34px 24px 28px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:12px;display:flex}.brand__mark{background:var(--sage-soft);width:38px;height:38px;color:var(--sage-dark);border-radius:50%;place-items:center;display:grid}.brand strong,.brand small{display:block}.brand strong{font-family:var(--font-display);font-size:1.25rem;font-weight:600;line-height:1.15}.brand small{color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;font-size:.69rem}.sidebar__nav{gap:6px;margin-top:58px;display:grid}.nav-link{border-radius:var(--radius-sm);color:var(--ink-soft);transition:background var(--transition), color var(--transition);align-items:center;gap:12px;padding:11px 13px;font-weight:550;display:flex}.nav-link:hover{background:var(--surface-muted);color:var(--ink)}.nav-link--active{background:var(--sage-soft);color:var(--sage-dark)}.sidebar__note{border-top:1px solid var(--border);color:var(--ink-faint);font-family:var(--font-display);margin-top:auto;padding:16px 4px 0;font-size:.9rem;font-style:italic}.main-content{min-height:100vh;margin-left:238px}.page{width:min(100%,1040px);margin:0 auto;padding:64px clamp(28px,5vw,72px) 80px}.page--wide{width:min(100%,1240px)}.page-header,.today-header{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:48px;display:flex}.page-header p,.today-header p{max-width:550px;color:var(--ink-soft);margin-top:14px;font-size:1rem}.eyebrow{color:var(--sage-dark);letter-spacing:.13em;text-transform:uppercase;margin-bottom:12px;font-size:.7rem;font-weight:700;display:block}.button{border-radius:var(--radius-sm);min-height:42px;transition:background var(--transition), border-color var(--transition), transform var(--transition);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-weight:650;text-decoration:none;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.55}.button--primary{background:var(--ink);color:var(--surface)}.button--primary:hover:not(:disabled){background:var(--sage-dark)}.button--secondary{border-color:var(--border-strong);background:var(--surface)}.button--quiet{background:0 0}.button--danger{background:var(--danger);color:#fff}.icon-button,.text-button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-width:38px;height:38px;transition:border-color var(--transition), background var(--transition);place-items:center;display:inline-grid}.icon-button:hover,.text-button:hover{border-color:var(--border-strong);background:var(--surface-muted)}.text-button{padding:0 12px;font-size:.8rem;font-weight:650;display:inline-flex}.summary-cards{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:52px;display:grid}.summary-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:14px;padding:20px;display:flex}.summary-card__icon{background:var(--surface-muted);width:38px;height:38px;color:var(--ink-soft);border-radius:50%;flex:none;place-items:center;display:grid}.summary-card__icon--sage{background:var(--sage-soft);color:var(--sage-dark)}.summary-card__icon--clay{background:var(--clay-soft);color:var(--clay-dark)}.summary-card strong,.summary-card span{display:block}.summary-card strong{font-family:var(--font-display);font-size:1.35rem;line-height:1.2}.summary-card div>span{color:var(--ink-faint);font-size:.78rem}.progress-ring{flex:none;place-items:center;width:78px;height:78px;display:grid;position:relative}.progress-ring svg{width:100%;height:100%;position:absolute;transform:rotate(-90deg)}.progress-ring circle{fill:none;stroke:var(--border);stroke-width:3px}.progress-ring circle+circle{stroke:var(--sage);stroke-dasharray:113;stroke-linecap:round;transition:stroke-dashoffset .3s}.progress-ring strong{font-size:.9rem}.today-section{padding-top:4px}.section-heading{justify-content:space-between;align-items:end;margin-bottom:18px;display:flex}.section-heading h2{font-size:1.75rem}.section-heading .eyebrow{margin-bottom:5px}.inline-link{color:var(--sage-dark);align-items:center;gap:6px;font-size:.82rem;font-weight:700;display:inline-flex}.today-list{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.today-habit{border-bottom:1px solid var(--border);grid-template-columns:auto auto 1fr auto;align-items:center;gap:13px;padding:17px 20px;display:grid}.today-habit:last-child{border-bottom:0}.today-habit h3{font-size:.94rem}.today-habit p{max-width:440px;color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.today-check,.check-button{border:1px solid var(--border-strong);color:#fff;background:0 0;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.today-check--checked,.check-button--checked{border-color:#0000}.habit-color{border-radius:50%;width:7px;height:7px}.today-habit__streak,.streak{color:var(--clay-dark);align-items:center;gap:5px;font-size:.78rem;font-weight:650;display:inline-flex}.week-toolbar{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);justify-content:space-between;align-items:center;margin-bottom:22px;padding:14px 16px;display:flex}.week-toolbar span,.week-toolbar strong{display:block}.week-toolbar span{color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:700}.week-toolbar strong{font-family:var(--font-display);margin-top:1px;font-size:1rem;font-weight:600}.week-toolbar__actions{gap:7px;display:flex}.habit-list{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.habit-grid{grid-template-columns:minmax(190px,1.4fr) minmax(310px,2fr) 80px 84px;align-items:center;gap:16px;padding:0 20px;display:grid}.habit-grid--header{border-bottom:1px solid var(--border);min-height:65px;color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;font-size:.67rem;font-weight:700}.habit-row{border-bottom:1px solid var(--border);min-height:82px}.habit-row:last-child{border-bottom:0}.habit-identity{align-items:center;gap:12px;min-width:0;display:flex}.habit-identity h2{font-family:var(--font-body);text-overflow:ellipsis;white-space:nowrap;font-size:.91rem;font-weight:680;overflow:hidden}.habit-identity p{color:var(--ink-faint);margin-top:3px;font-size:.73rem}.week-days{grid-template-columns:repeat(7,1fr);justify-items:center;gap:5px;display:grid}.habit-grid--header .week-days span{border-radius:20px;justify-items:center;gap:2px;width:34px;padding:6px 0;display:grid}.habit-grid--header .week-days small{font-size:.63rem;font-weight:600}.habit-grid--header .week-days strong{color:var(--ink-soft);font-size:.75rem}.habit-grid--header .week-days .is-today{background:var(--sage-soft);color:var(--sage-dark)}.check-button{border-radius:var(--radius-sm);width:30px;height:30px}.check-button:hover:not(:disabled){border-color:var(--sage)}.streak span{color:var(--ink-faint);font-weight:500}.habit-actions{justify-content:flex-end;gap:6px;display:flex}.habit-actions .icon-button{width:32px;min-width:32px;height:32px;color:var(--ink-soft)}.habit-actions__mobile{display:none}.status-panel{border:1px dashed var(--border-strong);border-radius:var(--radius-md);min-height:150px;color:var(--sage-dark);background:#fffefa8c;align-items:flex-start;gap:14px;padding:28px;display:flex}.status-panel div{flex:1}.status-panel h3{color:var(--ink);font-family:var(--font-display);font-size:1.25rem}.status-panel p{max-width:480px;color:var(--ink-soft);margin-top:4px}.status-panel__spinner{animation:.9s linear infinite spin}.inline-error{color:var(--danger);margin-top:14px;font-size:.8rem}.dialog-overlay{z-index:50;background:#2528217a;animation:.15s ease-out fade-in;position:fixed;inset:0}.dialog-content{z-index:51;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:min(100vw - 32px,540px);max-height:calc(100vh - 40px);box-shadow:var(--shadow-dialog);padding:28px;animation:.18s ease-out dialog-in;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.dialog-content--small{width:min(100vw - 32px,430px)}.dialog-content>h2,.dialog-heading h2{font-family:var(--font-display);font-size:1.65rem;font-weight:500}.dialog-content>p,.dialog-heading p{color:var(--ink-soft);margin-top:7px}.dialog-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.habit-form{gap:20px;margin-top:26px;display:grid}.field{gap:7px;display:grid}.field label,.fieldset legend{color:var(--ink-soft);font-size:.75rem;font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;transition:border-color var(--transition);outline:none;padding:10px 12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--sage)}.field textarea{resize:vertical}.fieldset{border:0;min-width:0;margin:0;padding:0}.segmented{background:var(--surface-muted);border-radius:10px;grid-template-columns:repeat(2,1fr);gap:6px;padding:4px;display:grid}.segmented input,.color-picker input{opacity:0;pointer-events:none;position:absolute}.segmented label span{color:var(--ink-soft);text-align:center;cursor:pointer;border-radius:7px;padding:7px 12px;display:block}.segmented input:checked+span{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #3230291a}.color-picker{gap:10px;display:flex}.color-picker label span{border:3px solid var(--surface);cursor:pointer;border-radius:50%;width:28px;height:28px;display:block}.color-picker input:checked+span{outline:2px solid var(--ink);outline-offset:1px}.dialog-actions{justify-content:flex-end;gap:9px;margin-top:26px;display:flex}.coming-badge{border:1px solid var(--border);background:var(--clay-soft);color:var(--clay-dark);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:6px 10px;font-size:.68rem;font-weight:750}.finance-preview{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--border);grid-template-columns:2fr 1fr 1fr;gap:1px;margin-bottom:28px;display:grid;overflow:hidden}.finance-total,.finance-stat{background:var(--surface);padding:24px}.finance-total span,.finance-stat span,.finance-total p{color:var(--ink-faint);font-size:.76rem}.finance-total strong{font-family:var(--font-display);margin:8px 0;font-size:2.3rem;display:block}.finance-stat{align-items:center;gap:12px;display:flex}.finance-stat strong{font-family:var(--font-display);margin-top:4px;font-size:1.35rem;display:block}.coming-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);grid-template-columns:auto 1fr;gap:20px;padding:34px;display:grid}.coming-panel__icon{background:var(--sage-soft);width:52px;height:52px;color:var(--sage-dark);border-radius:50%;place-items:center;display:grid}.coming-panel h2{font-size:1.7rem}.coming-panel p{max-width:620px;color:var(--ink-soft);margin-top:9px}.coming-panel ul{color:var(--ink-soft);gap:7px;margin:22px 0;padding-left:19px;display:grid}.coming-panel li::marker{color:var(--sage)}.privacy-note{color:var(--ink-faint);align-items:center;gap:7px;font-size:.76rem;display:inline-flex}.mobile-nav{display:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,-47%)}}@media (width<=980px){.sidebar{width:190px;padding-inline:18px}.main-content{margin-left:190px}.habit-grid{grid-template-columns:minmax(150px,1fr) minmax(280px,1.5fr) 64px 38px;gap:10px;padding-inline:14px}.habit-actions .icon-button{display:none}.habit-actions__mobile{display:block}}@media (width<=760px){.sidebar{display:none}.main-content{margin-left:0;padding-bottom:72px}.page{padding:36px 20px 56px}.mobile-nav{z-index:20;padding:8px max(14px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));border-top:1px solid var(--border);background:var(--surface);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav__link{color:var(--ink-faint);justify-items:center;gap:2px;font-size:.65rem;display:grid}.mobile-nav__link--active{color:var(--sage-dark)}.page-header,.today-header{align-items:flex-start;margin-bottom:34px}.summary-cards{grid-template-columns:1fr;gap:9px;margin-bottom:40px}.habit-list{overflow-x:auto}.habit-grid{min-width:740px}.finance-preview{grid-template-columns:1fr 1fr}.finance-total{grid-column:1/-1}}@media (width<=480px){h1{font-size:2.5rem}.page-header{flex-direction:column}.page-header .button{width:100%}.today-header{align-items:center}.progress-ring{width:64px;height:64px}.week-toolbar{align-items:flex-start;gap:12px}.week-toolbar .text-button{display:none}.status-panel{flex-wrap:wrap;padding:22px}.status-panel .button{width:100%}.coming-panel{grid-template-columns:1fr;padding:25px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.button,.icon-button,.text-button,.nav-link,.mobile-nav__link,.field input,.field select,.field textarea{min-height:44px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.mobile-nav{grid-template-columns:repeat(4,1fr)}.dialog-form{gap:18px;margin-top:24px;display:grid}.field-help,.data-row small,.category-item small,.budget-row small,.level-details small{color:var(--ink-faint);font-size:12px}.form-error{border-left:3px solid var(--danger);background:var(--clay-soft);color:var(--ink);padding:12px}.finance-toolbar{border-block:1px solid var(--border);align-items:center;gap:12px;margin-bottom:24px;padding-block:12px;display:flex}.finance-toolbar label{font-weight:650}.finance-toolbar input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:44px;padding:8px 10px}.finance-toolbar span{color:var(--ink-soft);margin-left:auto}.finance-metrics{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);grid-template-columns:repeat(4,1fr);margin-bottom:48px;display:grid}.finance-metric{border-right:1px solid var(--border);min-width:0;padding:20px}.finance-metric:last-child{border-right:0}.finance-metric span,.finance-metric strong{display:block}.finance-metric span{color:var(--ink-soft);font-size:12px}.finance-metric strong,.money-value{font-variant-numeric:tabular-nums;margin-top:7px}.finance-metric strong{overflow-wrap:anywhere;font-family:var(--font-display);font-size:20px;font-weight:500}.planner-section{margin-top:48px}.planner-section .section-heading,.data-list{border-bottom:1px solid var(--border)}.data-row,.budget-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:12px;min-height:72px;padding:12px 4px;display:grid}.data-row:first-child,.budget-row:first-child{border-top:0}.data-row strong,.data-row small,.category-item strong,.category-item small,.budget-row strong,.budget-row small{display:block}.money-value{white-space:nowrap;font-weight:650}.budget-row{grid-template-columns:minmax(140px,1fr) minmax(120px,190px) auto auto}.budget-row input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);min-width:0;min-height:44px;padding:8px 10px}.category-grid,.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.category-item,.badge-item{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:12px;min-height:70px;padding:14px;display:flex}.category-item>div,.badge-item>div{flex:1;min-width:0}.category-dot{border-radius:50%;flex:none;width:10px;height:10px}.empty-copy{color:var(--ink-soft);padding:24px 0}.onboarding-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);max-width:620px;margin:8vh auto 0;padding:32px}.onboarding-panel h1{font-size:clamp(32px,6vw,48px)}.onboarding-panel p{max-width:58ch;color:var(--ink-soft);margin:16px 0 24px}.onboarding-panel .field{margin-bottom:20px}.level-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);grid-template-columns:150px 1fr;align-items:center;gap:28px;padding:28px;display:grid}.level-panel>div:first-child span,.level-panel>div:first-child strong{display:block}.level-panel>div:first-child span{color:var(--ink-soft)}.level-panel>div:first-child strong{font-family:var(--font-display);font-size:42px;font-weight:500}.level-details{gap:8px;display:grid}progress{width:100%;height:12px;accent-color:var(--sage)}.achievement-feedback{border:1px solid var(--sage);border-radius:var(--radius-md);background:var(--sage-soft);align-items:center;gap:10px;margin-bottom:20px;padding:12px 16px;animation:.18s ease-out fade-in;display:flex}.achievement-feedback .text-button{margin-left:auto}.challenge-panel,.challenge-form{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);gap:18px;padding:24px;display:grid}.challenge-panel p,.challenge-form p,.finance-review p,.badge-item p{color:var(--ink-soft)}.challenge-form{grid-template-columns:1fr minmax(160px,220px) 130px auto;align-items:end}.badge-item{color:var(--ink-faint);align-items:flex-start}.badge-item--awarded{border-color:var(--sage);color:var(--sage-dark)}.badge-item p{margin:4px 0;font-size:13px}.finance-review{border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:24px;padding:24px;display:flex}.finance-review h2{margin-bottom:6px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=900px){.finance-metrics{grid-template-columns:repeat(2,1fr)}.finance-metric:nth-child(2){border-right:0}.finance-metric:nth-child(-n+2){border-bottom:1px solid var(--border)}.challenge-form{grid-template-columns:1fr 1fr}.challenge-form>p{grid-column:1/-1}}@media (width<=580px){.finance-toolbar,.finance-review{flex-direction:column;align-items:stretch}.finance-toolbar span{margin-left:0}.finance-metrics,.category-grid,.badge-grid,.level-panel{grid-template-columns:1fr}.finance-metric,.finance-metric:nth-child(2){border-right:0;border-bottom:1px solid var(--border)}.finance-metric:last-child{border-bottom:0}.data-row,.budget-row{grid-template-columns:minmax(0,1fr) auto auto}.data-row .money-value,.budget-row input{grid-area:2/1/auto/-1}.budget-row .button{grid-column:1/3}.challenge-form{grid-template-columns:1fr}.challenge-form>p{grid-column:auto}.onboarding-panel{padding:24px 20px}}@media (prefers-reduced-motion:reduce){.achievement-feedback{animation:none}}}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-synthesis:none}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #71806d4d}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}.app-shell{min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:5;flex-direction:column;width:244px;height:100vh;padding:36px 24px 28px;display:flex;position:fixed;top:0;left:0}.brand{align-items:center;gap:12px;margin:0 8px 56px;display:flex}.brand__mark{background:var(--sage);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.brand strong,.brand small{display:block}.brand strong{font-family:var(--font-display);letter-spacing:-.02em;font-size:22px;font-weight:500;line-height:1}.brand small{color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;margin-top:4px;font-size:10px}.sidebar__nav{gap:8px;display:grid}.nav-link{border-radius:var(--radius-sm);color:var(--ink-soft);transition:background var(--transition), color var(--transition);align-items:center;gap:13px;padding:12px 14px;font-size:14px;font-weight:550;display:flex}.nav-link:hover{color:var(--ink);background:#ffffff8c}.nav-link--active{background:var(--surface);box-shadow:inset 3px 0 var(--sage);color:var(--ink)}.sidebar__note{border-top:1px solid var(--border);color:var(--ink-faint);font-family:var(--font-display);margin:auto 10px 0;padding-top:22px;font-size:13px;font-style:italic;line-height:1.6}.page{max-width:1040px;margin:0 auto;padding:70px 56px 80px}.page--wide{max-width:1220px}.eyebrow{color:var(--sage-dark);letter-spacing:.13em;text-transform:uppercase;margin-bottom:10px;font-size:11px;font-weight:700;display:block}.page-header,.today-header{justify-content:space-between;align-items:flex-end;margin-bottom:42px;display:flex}.page-header h1,.today-header h1{font-family:var(--font-display);letter-spacing:-.045em;margin-bottom:14px;font-size:clamp(40px,5vw,58px);font-weight:400;line-height:1}.page-header p,.today-header p{color:var(--ink-soft);font-family:var(--font-display);margin-bottom:0;font-size:18px}.button{border-radius:var(--radius-sm);cursor:pointer;min-height:42px;transition:background var(--transition), border-color var(--transition), transform var(--transition);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 17px;font-size:13px;font-weight:650;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.55;transform:none}.button--primary{background:var(--sage);color:#fff}.button--primary:hover{background:var(--sage-dark)}.button--secondary{background:var(--surface);border-color:var(--border-strong)}.button--quiet{background:0 0}.button--danger{background:var(--danger);color:#fff}.icon-button,.text-button{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.icon-button{border-radius:50%;width:36px;height:36px}.icon-button:hover{background:var(--surface-muted);color:var(--ink)}.text-button{padding:6px 9px;font-size:12px;font-weight:650}.summary-cards{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:48px;display:grid}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:14px;min-height:96px;padding:20px;display:flex}.summary-card__icon{background:var(--surface-muted);color:var(--ink-soft);border-radius:50%;justify-content:center;align-items:center;min-width:40px;height:40px;display:flex}.summary-card__icon--sage{background:var(--sage-soft);color:var(--sage-dark)}.summary-card__icon--clay{background:var(--clay-soft);color:var(--clay-dark)}.summary-card strong,.summary-card span{display:block}.summary-card strong{font-family:var(--font-display);font-size:23px;font-weight:500}.summary-card div>span{color:var(--ink-faint);margin-top:3px;font-size:12px}.progress-ring{justify-content:center;align-items:center;width:84px;height:84px;display:flex;position:relative}.progress-ring svg{width:84px;height:84px;position:absolute;transform:rotate(-90deg)}.progress-ring circle{fill:none;stroke:var(--border);stroke-width:3px}.progress-ring circle:last-child{stroke:var(--sage);stroke-dasharray:113;stroke-linecap:round;transition:stroke-dashoffset .3s}.progress-ring strong{font-size:14px}.today-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:30px}.section-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;margin-bottom:4px;padding-bottom:20px;display:flex}.section-heading h2,.coming-panel h2{font-family:var(--font-display);margin-bottom:0;font-size:27px;font-weight:500}.inline-link{color:var(--sage-dark);align-items:center;gap:7px;font-size:12px;font-weight:700;display:flex}.today-habit{border-bottom:1px solid var(--border);grid-template-columns:auto auto 1fr auto;align-items:center;gap:13px;min-height:78px;display:grid}.today-habit:last-child{border-bottom:0}.today-habit h3{margin-bottom:4px;font-size:14px}.today-habit p{color:var(--ink-faint);margin-bottom:0;font-size:12px}.today-check,.check-button{border:1px solid var(--border-strong);cursor:pointer;transition:background var(--transition), border var(--transition);background:0 0;justify-content:center;align-items:center;display:flex}.today-check{border-radius:50%;width:28px;height:28px}.today-check--checked,.check-button--checked{color:#fff;border-color:#0000}.habit-color{border-radius:50%;width:8px;min-width:8px;height:8px;display:block}.today-habit__streak,.streak{color:var(--clay-dark);align-items:center;gap:4px;font-size:12px;display:flex}.week-toolbar{border-bottom:1px solid var(--border);border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:20px;padding:16px 5px;display:flex}.week-toolbar span,.week-toolbar strong{display:block}.week-toolbar span{color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px;font-size:10px}.week-toolbar strong{font-family:var(--font-display);font-size:16px;font-weight:500}.week-toolbar__actions{align-items:center;gap:3px;display:flex}.habit-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.habit-grid{grid-template-columns:minmax(210px,1.35fr) minmax(310px,1.5fr) 78px 76px;align-items:center;gap:18px;padding:0 24px;display:grid}.habit-grid--header{background:var(--surface-muted);color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;min-height:65px;font-size:10px;font-weight:700}.habit-row{border-top:1px solid var(--border);min-height:94px}.habit-identity{align-items:center;gap:13px;min-width:0;display:flex}.habit-identity h2{text-overflow:ellipsis;white-space:nowrap;margin-bottom:5px;font-size:14px;overflow:hidden}.habit-identity p{color:var(--ink-faint);margin:0;font-size:11px}.week-days{grid-template-columns:repeat(7,1fr);gap:7px;display:grid}.habit-grid--header .week-days>span{flex-direction:column;align-items:center;gap:4px;display:flex}.habit-grid--header .week-days small{font-size:9px;font-weight:700}.habit-grid--header .week-days strong{border-radius:50%;justify-content:center;align-items:center;width:25px;height:25px;font-size:11px;display:flex}.habit-grid--header .week-days .is-today strong{background:var(--sage-dark);color:#fff}.check-button{border-radius:50%;width:30px;height:30px;margin:auto}.check-button:hover{border-color:var(--sage)}.streak strong{color:var(--ink)}.streak span{color:var(--ink-faint)}.habit-actions{display:flex}.habit-actions__mobile{display:none}.status-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--sage-dark);align-items:center;gap:17px;min-height:116px;padding:25px;display:flex}.status-panel h3{color:var(--ink);font-family:var(--font-display);margin-bottom:5px;font-size:19px;font-weight:500}.status-panel p{color:var(--ink-soft);margin-bottom:0;font-size:13px}.status-panel .button{margin-left:auto}.status-panel__spinner{animation:.8s linear infinite spin}.inline-error{color:var(--danger);margin-top:14px;font-size:12px}.dialog-overlay{z-index:20;background:#2528217a;animation:.16s fade-in;position:fixed;inset:0}.dialog-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-dialog);z-index:21;width:520px;max-width:calc(100vw - 32px);max-height:min(90vh,720px);padding:30px;animation:.18s dialog-in;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.dialog-content--small{width:430px}.dialog-heading{justify-content:space-between;align-items:flex-start;display:flex}.dialog-content h2{font-family:var(--font-display);margin:0 0 7px;font-size:27px;font-weight:500}.dialog-content>p,.dialog-heading p{color:var(--ink-soft);font-size:13px;line-height:1.55}.habit-form{gap:20px;margin-top:25px;display:grid}.field{gap:8px;display:grid}.field label,.fieldset legend{letter-spacing:.04em;font-size:11px;font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:#fff;padding:11px 12px}.field textarea{resize:vertical}.form-row{grid-template-columns:1fr 150px;gap:18px;display:grid}.fieldset{border:0;margin:0;padding:0}.fieldset legend{margin-bottom:8px}.segmented{background:var(--surface-muted);border-radius:var(--radius-sm);padding:3px;display:flex}.segmented label{flex:1}.segmented input,.color-picker input{opacity:0;width:1px;height:1px;position:absolute}.segmented span{cursor:pointer;text-align:center;border-radius:6px;padding:9px;display:block}.segmented input:checked+span{background:#fff;box-shadow:0 1px 3px #2528211a}.color-picker{gap:12px;display:flex}.color-picker span{border:3px solid var(--surface);box-shadow:0 0 0 1px var(--border-strong);cursor:pointer;border-radius:50%;width:28px;height:28px;display:block}.color-picker input:checked+span{box-shadow:0 0 0 2px var(--ink)}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.coming-badge{background:var(--clay-soft);border:1px solid var(--border);color:var(--clay-dark);letter-spacing:.08em;text-transform:uppercase;border-radius:99px;padding:8px 12px;font-size:10px;font-weight:750}.finance-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:1.4fr 1fr 1fr;margin-bottom:28px;display:grid;overflow:hidden}.finance-total,.finance-stat{padding:25px}.finance-total{background:var(--sage-dark);color:#fff}.finance-total span,.finance-stat span{font-size:11px}.finance-total strong{font-family:var(--font-display);margin:14px 0;font-size:38px;font-weight:400;display:block}.finance-total p{color:#ffffffa6;margin:0;font-size:11px}.finance-stat{border-left:1px solid var(--border);align-items:center;gap:13px;display:flex}.finance-stat strong{font-family:var(--font-display);margin-top:5px;font-size:26px;font-weight:400;display:block}.coming-panel{border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:auto 1fr;align-items:flex-start;gap:22px;padding:36px;display:grid}.coming-panel__icon{background:var(--surface-muted);color:var(--sage-dark);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.coming-panel p,.coming-panel li{color:var(--ink-soft);font-size:13px;line-height:1.7}.coming-panel p{max-width:600px;margin:13px 0}.coming-panel ul{margin:0 0 20px;padding-left:18px}.privacy-note{color:var(--ink-faint);align-items:center;gap:7px;font-size:11px;display:flex}.mobile-nav{display:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,-48%)}}@media (width<=1050px){.habit-grid{grid-template-columns:minmax(180px,1fr) minmax(290px,1.4fr) 65px 40px;padding:0 18px}.habit-actions .icon-button{display:none}.habit-actions__mobile{display:block}}@media (width<=820px){.sidebar{display:none}.main-content{margin-left:0;padding-bottom:76px}.mobile-nav{background:var(--surface);border-top:1px solid var(--border);padding:8px max(12px, env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));z-index:10;grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav__link{color:var(--ink-faint);flex-direction:column;align-items:center;gap:4px;padding:4px;font-size:10px;display:flex}.mobile-nav__link--active{color:var(--sage-dark)}.page{padding:46px 24px 56px}.habit-list{background:0 0;border:0;overflow:visible}.habit-grid--header{display:none}.habit-grid{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);grid-template-columns:1fr auto;gap:18px;margin-bottom:12px;padding:20px}.habit-row{min-height:0}.habit-row .week-days{order:3;grid-area:2/1/auto/-1}.habit-row .streak{grid-area:3/1}.habit-actions{grid-area:1/2}.habit-actions .icon-button{display:inline-flex}.habit-actions__mobile{display:none}}@media (width<=580px){.page{padding-left:18px;padding-right:18px}.page-header,.today-header{align-items:flex-start;margin-bottom:32px}.page-header{flex-direction:column;gap:22px}.page-header h1,.today-header h1{font-size:40px}.progress-ring,.progress-ring svg{width:68px;height:68px}.summary-cards{grid-template-columns:1fr;gap:10px;margin-bottom:28px}.summary-card{min-height:76px;padding:14px 16px}.today-section{padding:22px 18px}.today-habit{grid-template-columns:auto 1fr auto;padding:6px 0}.today-habit>.habit-color{display:none}.week-toolbar{align-items:flex-start;gap:12px}.week-toolbar__actions{flex-wrap:wrap;justify-content:flex-end}.status-panel{flex-wrap:wrap;align-items:flex-start}.status-panel .button{margin-left:39px}.dialog-content{border-radius:var(--radius-md);padding:24px 20px}.form-row{grid-template-columns:1fr}.finance-preview{grid-template-columns:1fr 1fr}.finance-total{grid-column:1/-1}.finance-stat{border-left:0}.finance-stat:last-child{border-left:1px solid var(--border)}.coming-panel{grid-template-columns:1fr;padding:26px 22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.button,.icon-button,.text-button,.nav-link,.mobile-nav__link,.field input,.field select,.field textarea{min-height:44px}.icon-button{width:44px;height:44px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (width<=820px){.mobile-nav{grid-template-columns:repeat(4,1fr)}}.recovery-action{min-height:44px;color:var(--ink-soft);background:0 0;border:0;align-items:center;gap:6px;margin-top:4px;padding:0;font-size:12px;font-weight:650;display:inline-flex}.recovery-action:hover:not(:disabled){color:var(--sage-dark);text-underline-offset:3px;text-decoration:underline}.recovery-action:disabled{cursor:not-allowed;opacity:.55}.recovery-message{white-space:normal;max-width:34ch;margin-top:4px;font-size:12px}.recovery-message--success{color:var(--sage-dark)}.recovery-message--error{color:var(--danger)}.currency-status{align-items:center;gap:10px;margin-left:auto;display:flex}.currency-status strong,.currency-status small{display:block}.currency-status small{max-width:48ch;color:var(--ink-soft)}@media (width<=580px){.currency-status{flex-direction:column;align-items:flex-start;margin-left:0}}body{font-size:var(--font-size-body);line-height:1.6}#root,.app-shell{width:100%;min-height:100dvh}.sidebar{width:var(--sidebar-width);background:var(--surface);height:100dvh;padding:clamp(2rem,3.4vw,3.5rem) clamp(1.5rem,2.2vw,2.5rem);overflow-y:auto}.brand{gap:1rem;margin:0 0 clamp(3rem,7vh,5rem)}.brand__mark{background:var(--sage);width:3.6rem;height:3.6rem;color:var(--surface);transition:transform var(--transition);flex:none}.brand:hover .brand__mark,.mobile-brand:hover .brand__mark{transform:rotate(-4deg)scale(1.04)}.brand strong,.mobile-brand strong{font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(1.95rem,1.7vw,2.4rem);font-weight:500;line-height:.95}.brand small,.mobile-brand small{color:var(--ink-soft);font-size:var(--font-size-small);letter-spacing:.08em;text-transform:none;margin-top:.45rem;font-weight:600}.sidebar__nav{gap:.65rem}.nav-link{border-radius:var(--radius-md);min-height:3.75rem;font-size:var(--font-size-nav);transition:background var(--transition), color var(--transition), transform var(--transition);gap:1rem;padding:.95rem 1.1rem;font-weight:600}.nav-link:hover{transform:translate(.2rem)}.nav-link--active{box-shadow:inset 4px 0 var(--sage)}.sidebar__note{font-size:var(--font-size-label);margin-inline:0;padding-top:1.5rem;line-height:1.55}.main-content{min-height:100dvh;margin-left:var(--sidebar-width)}.page,.page--wide{width:100%;max-width:var(--content-max);padding:clamp(3.5rem,6vw,6rem) clamp(2rem,4.8vw,5.5rem) clamp(5rem,8vw,7rem)}.page-header,.today-header{gap:clamp(2rem,5vw,5rem);margin-bottom:clamp(2.75rem,5vw,4.5rem)}.page-header h1,.today-header h1,h1{font-family:var(--font-display);font-size:var(--font-size-title);letter-spacing:-.05em;font-weight:400;line-height:.95}h2{font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(2.25rem,2.7vw,3.25rem);font-weight:500;line-height:1.05}h3{font-family:var(--font-display);font-size:clamp(1.6rem,1.55vw,2rem);font-weight:500;line-height:1.15}.page-header p,.today-header p{max-width:42rem;font-family:var(--font-body);font-size:var(--font-size-body);line-height:1.6}.eyebrow{font-size:var(--font-size-small);letter-spacing:.11em;margin-bottom:.9rem}.button{min-height:3.25rem;font-size:var(--font-size-label);padding-inline:1.4rem}.field label,.finance-toolbar label{font-size:var(--font-size-label)}.field input,.field select,.field textarea,.finance-toolbar input,.budget-row input{min-height:3.25rem;font-size:1.0625rem}.field-help,.data-row small,.category-item small,.budget-row small,.level-details small,.recovery-action,.recovery-message{font-size:var(--font-size-small)}.mobile-header{display:none}@media (width<=1100px){:root{--sidebar-width:19.5rem}.page,.page--wide{padding-inline:clamp(1.75rem,3.8vw,3.5rem)}}@media (width<=820px){.sidebar{display:none}.mobile-header{z-index:9;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f9f8f4f0;align-items:center;min-height:5rem;padding:.75rem clamp(1.125rem,4vw,2rem);display:flex;position:sticky;top:0}.mobile-brand{align-items:center;gap:.8rem;display:flex}.mobile-brand .brand__mark{width:3rem;height:3rem}.mobile-brand strong{font-size:1.85rem;display:block}.mobile-brand small{margin-top:.2rem;font-size:.8rem;display:block}.main-content{min-height:calc(100dvh - 5rem);margin-left:0;padding-bottom:5.5rem}.mobile-nav{min-height:5rem;padding:.55rem max(.75rem, env(safe-area-inset-left)) calc(.55rem + env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-right));grid-template-columns:repeat(4,minmax(0,1fr))}.mobile-nav__link{justify-content:center;gap:.3rem;min-width:0;min-height:3.75rem;padding:.3rem;font-size:.8rem;font-weight:650}.mobile-nav__link--active{border-radius:var(--radius-sm);background:var(--sage-soft)}.page,.page--wide{padding-top:clamp(2.5rem,7vw,4rem)}}@media (width<=580px){:root{--font-size-title:clamp(3.5rem, 16vw, 4.5rem)}.page,.page--wide{padding:2.5rem 1.125rem 6.5rem}.page-header h1,.today-header h1,h1{font-size:var(--font-size-title)}}.brand__mark{width:4.5rem;height:4.5rem}.brand strong,.mobile-brand strong{font-size:clamp(2.35rem,2vw,2.85rem)}.nav-link{min-height:var(--control-height-large);padding:1.1rem 1.25rem}.nav-link svg{width:1.75rem;height:1.75rem}.button,.text-button,.recovery-action{min-height:var(--control-height);font-size:var(--font-size-label);padding-inline:1.5rem}.icon-button{width:var(--control-height);height:var(--control-height);min-height:var(--control-height)}.field input,.field select,.field textarea,.finance-toolbar input,.budget-row input{min-height:var(--control-height);font-size:var(--font-size-label);padding-inline:1rem}.summary-card{min-height:9rem;padding:1.75rem}.summary-card strong{font-size:2.25rem}.summary-card div>span{font-size:var(--font-size-small)}.status-panel{gap:1.5rem;min-height:10rem;padding:2rem}.status-panel>svg{width:2.25rem;height:2.25rem}.status-panel h3{font-size:2rem}.status-panel p{font-size:var(--font-size-body)}.today-habit{min-height:6.5rem;padding-block:1.25rem}.today-habit h3,.habit-identity h2{font-size:var(--font-size-label)}.today-habit p,.habit-identity p,.today-habit__streak,.streak{font-size:var(--font-size-small)}.today-check,.check-button{width:2.75rem;height:2.75rem;min-height:2.75rem}.week-toolbar{min-height:6rem;padding-block:1.25rem}.week-toolbar span,.habit-grid--header{font-size:var(--font-size-small)}.week-toolbar strong{font-size:1.5rem}.habit-grid--header{min-height:5.5rem}.habit-row{min-height:7.5rem}.habit-grid--header .week-days small,.habit-grid--header .week-days strong{font-size:var(--font-size-small)}.habit-grid--header .week-days strong{width:2.25rem;height:2.25rem}@media (width<=820px){.mobile-header{min-height:6.5rem}.main-content{min-height:calc(100dvh - 6.5rem);padding-bottom:7rem}.mobile-nav{min-height:6.5rem}.mobile-nav__link{gap:.45rem;min-height:5rem;font-size:.95rem}.mobile-nav__link svg{width:1.75rem;height:1.75rem}}@media (prefers-reduced-motion:reduce){.brand__mark,.nav-link{transform:none!important}}.session-loading,.auth-page{place-items:center;min-height:100vh;display:grid}.session-loading{color:var(--ink-soft);align-content:center;gap:1rem}.auth-page{background:radial-gradient(circle at 15% 18%, var(--sage-soft), transparent 32rem), radial-gradient(circle at 88% 82%, var(--clay-soft), transparent 30rem), var(--paper);padding:clamp(1rem,5vw,4rem);position:relative;overflow:hidden}.auth-page__motif{width:min(34rem,80vw);color:var(--sage);opacity:.22;pointer-events:none;position:absolute;bottom:-8rem;right:-7rem}.auth-card{z-index:1;border:1px solid color-mix(in srgb, var(--border) 78%, white);border-radius:var(--radius-xl);background:color-mix(in srgb, var(--surface) 94%, transparent);width:min(100%,31rem);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:clamp(2rem,6vw,3.5rem);position:relative}.auth-brand{font-family:var(--font-display);align-items:center;gap:.85rem;margin-bottom:3rem;font-size:1.5rem;font-weight:600;display:flex}.auth-brand .brand__mark{width:3.25rem;height:3.25rem}.auth-card h1{font-size:clamp(2.5rem,8vw,4rem)}.auth-card__intro{color:var(--ink-soft);margin-top:1rem;font-size:1rem}.auth-form{gap:1.25rem;margin-top:2.25rem;display:grid}.auth-form__submit{width:100%;min-height:3.25rem;margin-top:.35rem}.auth-message{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--ink-soft);margin-top:1.25rem;padding:1rem 1.1rem}.auth-message--notice{border-color:var(--clay);background:var(--clay-soft)}.auth-message--success{border-color:var(--sage);background:var(--sage-soft);color:var(--sage-dark);margin-bottom:1.5rem}.auth-card__footnote{color:var(--ink-faint);font-size:var(--font-size-small);text-align:center;margin-top:2rem}.auth-security-note{border-radius:var(--radius-sm);background:var(--sage-soft);color:var(--sage-dark);align-items:flex-start;gap:.85rem;margin-top:1.5rem;padding:1rem;display:flex}.auth-security-note svg{flex:none;margin-top:.1rem}.auth-card__logout{width:100%;margin-top:1.25rem}.sidebar__session{border-top:1px solid var(--border);gap:.1rem;margin-top:auto;padding-top:1.25rem;display:grid}.sidebar__session>span{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.sidebar__session>small{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar__logout,.mobile-header__logout{border-radius:var(--radius-sm);min-height:3rem;color:var(--ink-soft);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.sidebar__logout{justify-content:flex-start;gap:.6rem;margin-top:.75rem;padding:0 .75rem}.sidebar__logout:hover,.mobile-header__logout:hover{background:var(--surface-muted);color:var(--ink)}.mobile-header__logout{width:3rem}.admin-header__icon{background:var(--sage-soft);width:4rem;height:4rem;color:var(--sage-dark);border-radius:50%;flex:none;place-items:center;display:grid}.admin-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-dialog);margin-bottom:2rem;padding:clamp(1.25rem,4vw,2rem)}.admin-panel__heading{align-items:flex-start;gap:1rem;margin-bottom:1.75rem;display:flex}.admin-panel__heading>svg{color:var(--sage-dark);flex:none}.admin-panel__heading h2{font-size:1.7rem}.admin-panel__heading p{color:var(--ink-soft);margin-top:.3rem}.admin-create-form{grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end;gap:1rem;display:grid}.admin-create-form .button{min-height:var(--control-height)}.admin-users{gap:1rem;display:grid}.admin-user{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);padding:1.25rem}.admin-user__identity,.admin-user__actions{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.admin-user__identity strong,.admin-user__identity span{display:block}.admin-user__identity div>span{color:var(--ink-faint);font-size:var(--font-size-small)}.status-pill{font-size:var(--font-size-small);border-radius:999px;padding:.35rem .65rem;font-weight:700}.status-pill--active{background:var(--sage-soft);color:var(--sage-dark)}.status-pill--disabled{background:var(--surface);color:var(--ink-faint)}.admin-user__controls{grid-template-columns:minmax(12rem,2fr) minmax(9rem,1fr);gap:1rem;margin-top:1.25rem;display:grid}.admin-user__actions{flex-wrap:wrap;justify-content:flex-start;margin-top:1rem}.admin-reset{border-color:var(--clay)}.admin-reset__form{align-items:end;gap:1rem;display:flex}.admin-reset__form .field{flex:1}.admin-reset__actions{gap:.75rem;display:flex}@media (width<=980px){.admin-create-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.admin-create-form,.admin-user__controls{grid-template-columns:1fr}.admin-reset__form,.admin-reset__actions{flex-direction:column;align-items:stretch}.admin-create-form .button,.admin-user__actions .button,.admin-user__actions .text-button{width:100%}}@media (width<=520px){.auth-page{align-items:stretch;padding:0}.auth-card{min-height:100vh;box-shadow:none;border:0;border-radius:0;padding:2rem 1.25rem}.auth-brand{margin-bottom:3.5rem}.mobile-nav{overflow-x:auto}.mobile-nav__link{min-width:4.5rem}}.app-shell{background:radial-gradient(circle at 84% 7%, #e9d9b857, transparent 25rem), radial-gradient(circle at 16% 84%, #dce6e08c, transparent 30rem), var(--paper);position:relative;overflow:clip}.main-content{position:relative}.page{isolation:isolate;position:relative}.page:before{z-index:-1;content:"";border:1px solid #71806d1f;border-radius:48% 52% 62% 38%;width:14rem;height:14rem;position:absolute;top:1.5rem;right:clamp(1rem,5vw,5rem);rotate:12deg}.sidebar{isolation:isolate;box-shadow:16px 0 50px #20231f08}.sidebar__motif{z-index:-1;color:#71806d1a;pointer-events:none;width:11rem;position:absolute;bottom:2rem;right:-3.5rem}.brand__mark{position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff2e}.brand__mark:after{content:"";border:1px solid #ffffff3d;border-radius:50%;position:absolute;inset:8%}.organic-motif{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}.today-header{border-radius:var(--radius-xl);min-height:19rem;box-shadow:var(--shadow-soft);background:radial-gradient(circle at 80% 20%,#e9d9b8c2,#0000 18rem),linear-gradient(135deg,#f9f8f4fa,#e1e5dfc2);border:1px solid #aaa99fa6;align-items:center;padding:clamp(2rem,5vw,4.5rem);position:relative;overflow:hidden}.today-header:after{content:"";border:1px solid #3f4c431f;border-radius:50%;width:22rem;height:22rem;position:absolute;bottom:-8rem;right:-5rem;box-shadow:0 0 0 2.5rem #3f4c4308,0 0 0 5rem #3f4c4305}.today-hero-copy{z-index:1;max-width:44rem;position:relative}.today-hero-copy h1{max-width:9ch}.hero-motif{z-index:0;color:#3f4c432e;pointer-events:none;width:18rem;position:absolute;bottom:-2.5rem;right:7rem}.daily-orb{z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f9f8f4ad;border:1px solid #ffffffb8;border-radius:50%;flex:none;place-items:center;width:10rem;height:10rem;display:grid;position:relative;box-shadow:0 1.2rem 3rem #3f4c4324,inset 0 0 0 .65rem #ffffff57}.daily-orb .progress-ring{width:8.5rem;height:8.5rem}.daily-orb__copy strong{font-family:var(--font-display);font-size:1.65rem;font-weight:500;display:block}.daily-orb__copy{justify-items:center;line-height:1.05;display:grid;position:absolute}.daily-orb__copy span{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;margin-top:.25rem;font-size:.72rem;font-weight:700}.summary-cards{gap:1rem}.summary-card{min-height:8.5rem;transition:translate var(--transition), box-shadow var(--transition), border-color var(--transition);background:#f9f8f4d6;border-color:#aaa99f94;position:relative;overflow:hidden;box-shadow:0 .8rem 2rem #353b320d}.summary-card:after{content:"";border:1px solid #71806d21;border-radius:50%;width:6rem;height:6rem;position:absolute;bottom:-2.4rem;right:-1.7rem}.summary-card:hover{border-color:#71806d85;translate:0 -.15rem;box-shadow:0 1rem 2.5rem #353b3217}.summary-card__icon{width:3.25rem;height:3.25rem}.summary-card__icon--gold{background:var(--gold-soft);color:var(--gold-ink)}.today-section{border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);background:#f9f8f4e0;position:relative;overflow:hidden}.today-section .section-heading{padding:2.25rem 2.25rem 1.5rem}.today-list{background:0 0;border:0;border-radius:0}.today-habit{min-height:7.5rem;transition:background var(--transition), border-color var(--transition);padding:1.4rem 2.25rem;position:relative}.today-habit[data-complete=true]{background:radial-gradient(circle at 1.8rem,#dce6e0c7,#0000 8rem),#f9f8f459}.today-habit h3{font-family:var(--font-body);font-size:var(--font-size-label);font-weight:700}.today-habit p{font-size:var(--font-size-small);margin-top:.25rem}.habit-state{color:var(--ink-soft);font-weight:650}.today-check,.check-button{width:3rem;height:3rem;min-height:3rem;transition:background var(--transition), border-color var(--transition), color var(--transition), transform var(--transition);position:relative;overflow:visible}.today-check:after,.check-button:after{z-index:-1;border-radius:inherit;content:"";border:1px solid #71806d00;position:absolute;inset:-.35rem}.today-check:active,.check-button:active{transform:scale(.94)}.today-check--checked,.check-button--checked{box-shadow:0 .5rem 1.4rem #3f4c432e}.today-habit[data-celebrating=true] .today-check:after,.check-button[data-celebrating=true]:after{border-color:#71806d59}.streak,.today-habit__streak,.streak-pill{min-height:2.25rem;color:var(--gold-ink);background:#e9d9b86b;border:1px solid #a57b393d;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .7rem;display:inline-flex}.week-toolbar{border:1px solid var(--border);border-radius:var(--radius-lg);background:#f9f8f4c7;padding:1.25rem 1.5rem;position:relative;overflow:hidden;box-shadow:0 .6rem 1.8rem #353b320a}.habit-list{border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.habit-grid--header{background:linear-gradient(90deg,#dce6e08c,#f9f8f4b8)}.habit-row{transition:background var(--transition);position:relative}.habit-row[data-complete=true]{background:#dce6e03d}.recovery-message--success{border-left:2px solid var(--moss);padding-left:.75rem}.celebration{border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);background:radial-gradient(circle at 8%,#e9d9b8d1,#0000 13rem),#f9f8f4f0;border:1px solid #a57b3952;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1.15rem 1.25rem;display:grid;position:relative;overflow:hidden}.celebration--check-in{box-shadow:var(--shadow-soft);background:radial-gradient(circle at 8%,#dce6e0eb,#0000 13rem),#f9f8f4f0;border-color:#71806d57}.celebration--reward{background:radial-gradient(circle at 8%,#e8d7cfeb,#0000 13rem),#f9f8f4f0;border-color:#a9686847}.celebration__icon{background:var(--gold-soft);width:3.25rem;height:3.25rem;color:var(--gold-ink);border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #725a2f1f}.celebration--check-in .celebration__icon{background:var(--moss-soft);color:var(--sage-dark)}.celebration--reward .celebration__icon{background:var(--petal-soft);color:var(--petal)}.celebration__copy{min-width:0}.celebration__eyebrow{color:var(--gold-ink);letter-spacing:.09em;text-transform:uppercase;align-items:center;gap:.35rem;font-size:.7rem;font-weight:750;display:flex}.celebration__copy strong{font-family:var(--font-display);margin-top:.2rem;font-size:1.35rem;font-weight:600;display:block}.celebration__copy p{color:var(--ink-soft);margin:.15rem 0 0;font-size:.88rem}.celebration__close{width:2.75rem;height:2.75rem;color:var(--ink-soft);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.celebration__close:hover{color:var(--ink);background:#ffffff94}.celebration__particles{pointer-events:none;position:absolute;inset:0}.celebration__particles span{background:var(--gold);opacity:0;border-radius:100% 0;width:.45rem;height:.8rem;position:absolute}.celebration__particles span:first-child{top:18%;left:8%}.celebration__particles span:nth-child(2){background:var(--moss);top:65%;left:15%}.celebration__particles span:nth-child(3){background:var(--petal);top:22%;right:14%}.celebration__particles span:nth-child(4){background:var(--moss);bottom:12%;right:24%}.celebration__particles span:nth-child(5){top:10%;left:48%}.spectacle{z-index:200;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.spectacle__veil{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:radial-gradient(circle at 50% 48%,#f9f8f4f5 0 9rem,#0000 28rem),radial-gradient(circle at 18% 22%,#d46f4d9e,#0000 30rem),radial-gradient(circle at 82% 78%,#70a68a94,#0000 32rem),radial-gradient(circle,#e9d9b8e0,#3f4c43d1 68%),#20231fb8;position:absolute;inset:0}.spectacle--streak .spectacle__veil{background:radial-gradient(circle at 50% 48%,#f9f8f4f7 0 9rem,#0000 28rem),radial-gradient(circle at 14% 72%,#d46f4db8,#0000 28rem),radial-gradient(circle at 84% 22%,#8b6fa89e,#0000 30rem),radial-gradient(circle,#e5b54ce6,#7d4d49d1 70%),#20231fc2}.spectacle--day .spectacle__veil{background:radial-gradient(circle at 50% 48%,#f9f8f4f7 0 9rem,#0000 29rem),radial-gradient(circle at 12% 22%,#70a68aad,#0000 30rem),radial-gradient(circle at 88% 78%,#e5b54c94,#0000 30rem),radial-gradient(circle,#dce6e0f2,#315a73c7 72%),#20231fbd}.spectacle__rays{aspect-ratio:1;opacity:.34;background:repeating-conic-gradient(from 4deg,#0000 0deg 8deg,#ffffffad 8deg 11deg,#0000 11deg 21deg);width:max(115vw,75rem);position:absolute;-webkit-mask-image:radial-gradient(circle,#0000 0 8rem,#000 14rem,#0000 48%);mask-image:radial-gradient(circle,#0000 0 8rem,#000 14rem,#0000 48%)}.spectacle__orbit{border:2px solid #ffffff8f;border-radius:50%;position:absolute;box-shadow:0 0 0 1.5rem #ffffff0d,0 0 4rem #e9d9b86b}.spectacle__orbit--outer{aspect-ratio:1;width:min(78vw,43rem)}.spectacle__orbit--inner{aspect-ratio:1;opacity:.62;border-style:dashed;width:min(54vw,29rem)}.spectacle__content{z-index:2;width:min(100vw - 2rem,46rem);color:var(--ink);text-align:center;text-wrap:balance;justify-items:center;padding:2rem;display:grid;position:relative}.spectacle__motif{z-index:1;color:#ffffff42;filter:drop-shadow(0 0 1.5rem #ffffff2e);width:min(38vw,26rem);position:absolute}.spectacle__motif--left{bottom:-6rem;left:-4rem;rotate:-20deg}.spectacle__motif--right{top:-5rem;right:-3rem;rotate:22deg}.spectacle__kicker{color:var(--gold-ink);letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:.65rem;font-size:clamp(.75rem,1.4vw,.95rem);font-weight:800;display:flex}.spectacle__emblem{aspect-ratio:1;background:radial-gradient(circle at 35% 28%, #ffffffeb, transparent 36%), var(--gold-soft);width:clamp(5.5rem,12vw,8rem);color:var(--gold-ink);border:2px solid #725a2f52;border-radius:50%;place-items:center;margin:1.1rem 0 .7rem;display:grid;box-shadow:0 0 0 .7rem #e9d9b838,0 1.5rem 4rem #20231f42}.spectacle--day .spectacle__emblem{background:radial-gradient(circle at 35% 28%, #ffffffeb, transparent 36%), var(--moss-soft);color:var(--sage-dark);border-color:#3f4c4352}.spectacle__value{font-family:var(--font-display);letter-spacing:-.065em;text-shadow:0 .2rem #ffffff75;font-size:clamp(4.2rem,13vw,9rem);font-weight:500;line-height:.8;display:block}.spectacle__unit{color:var(--gold-ink);font-family:var(--font-display);margin-top:.45rem;font-size:clamp(1.3rem,3vw,2rem);font-style:italic;display:block}.spectacle h2{max-width:12ch;margin:1rem 0 0;font-size:clamp(2.8rem,7.5vw,5.8rem);line-height:.88}.spectacle p{max-width:42rem;color:var(--ink-soft);margin:1.2rem 0 0;font-size:clamp(1rem,2vw,1.35rem);font-weight:600}.spectacle__close{z-index:4;top:max(1rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right));color:#fff;pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#20231f7a;border:1px solid #ffffff6b;border-radius:50%;place-items:center;width:3.25rem;height:3.25rem;display:grid;position:absolute}.spectacle__close:hover{background:#20231fb8}.spectacle__particles{z-index:1;position:absolute;inset:50%}.spectacle__particles span{background:var(--spectacle-gold);border-radius:100% 0;width:clamp(.65rem,1.5vw,1.1rem);height:clamp(1.1rem,2.5vw,1.9rem);position:absolute;box-shadow:0 0 1.4rem #e5b54c9e}.spectacle__particles span:nth-child(3n){background:var(--spectacle-coral);border-radius:50%;box-shadow:0 0 1.4rem #d46f4d9e}.spectacle__particles span:nth-child(3n+2){background:var(--spectacle-mint);border-radius:0 100%;box-shadow:0 0 1.4rem #70a68a9e}.spectacle__particles span:nth-child(4n){background:var(--spectacle-plum);box-shadow:0 0 1.4rem #8b6fa89e}.spectacle__particles span:first-child{--particle-x:-42vw;--particle-y:-36vh;--particle-r:85deg}.spectacle__particles span:nth-child(2){--particle-x:-29vw;--particle-y:-43vh;--particle-r:-110deg}.spectacle__particles span:nth-child(3){--particle-x:-13vw;--particle-y:-46vh;--particle-r:120deg}.spectacle__particles span:nth-child(4){--particle-x:8vw;--particle-y:-44vh;--particle-r:-75deg}.spectacle__particles span:nth-child(5){--particle-x:26vw;--particle-y:-39vh;--particle-r:140deg}.spectacle__particles span:nth-child(6){--particle-x:43vw;--particle-y:-27vh;--particle-r:-130deg}.spectacle__particles span:nth-child(7){--particle-x:46vw;--particle-y:-5vh;--particle-r:95deg}.spectacle__particles span:nth-child(8){--particle-x:42vw;--particle-y:20vh;--particle-r:-115deg}.spectacle__particles span:nth-child(9){--particle-x:31vw;--particle-y:39vh;--particle-r:155deg}.spectacle__particles span:nth-child(10){--particle-x:12vw;--particle-y:45vh;--particle-r:-80deg}.spectacle__particles span:nth-child(11){--particle-x:-8vw;--particle-y:44vh;--particle-r:135deg}.spectacle__particles span:nth-child(12){--particle-x:-27vw;--particle-y:39vh;--particle-r:-150deg}.spectacle__particles span:nth-child(13){--particle-x:-43vw;--particle-y:26vh;--particle-r:105deg}.spectacle__particles span:nth-child(14){--particle-x:-47vw;--particle-y:5vh;--particle-r:-120deg}.spectacle__particles span:nth-child(15){--particle-x:-39vw;--particle-y:-16vh;--particle-r:145deg}.spectacle__particles span:nth-child(16){--particle-x:35vw;--particle-y:10vh;--particle-r:-95deg}.spectacle__particles span:nth-child(17){--particle-x:19vw;--particle-y:34vh;--particle-r:125deg}.spectacle__particles span:nth-child(18){--particle-x:-21vw;--particle-y:27vh;--particle-r:-140deg}.progress-hero{border-radius:var(--radius-xl);background:radial-gradient(circle at 18% 30%, #e9d9b8d6, transparent 20rem), radial-gradient(circle at 92% 80%, #dce6e0e0, transparent 24rem), var(--surface);box-shadow:var(--shadow-soft);border:1px solid #a57b3938;grid-template-columns:minmax(12rem,.72fr) minmax(0,1.5fr);align-items:center;gap:clamp(2rem,5vw,5rem);padding:clamp(2rem,5vw,4.5rem);display:grid;position:relative;overflow:hidden}.level-emblem{aspect-ratio:1;background:#f9f8f4b8;border:1px solid #725a2f38;border-radius:50%;place-items:center;width:min(15rem,100%);display:grid;position:relative;box-shadow:0 1.2rem 3.5rem #725a2f24,inset 0 0 0 .85rem #e9d9b86b}.level-emblem:before,.level-emblem:after{content:"";border:1px solid #725a2f2e;border-radius:50%;position:absolute}.level-emblem:before{inset:1.8rem}.level-emblem:after{inset:3rem}.level-emblem span,.level-emblem strong{z-index:1;text-align:center;display:block;position:relative}.level-emblem span{color:var(--gold-ink);letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:750}.level-emblem strong{font-family:var(--font-display);font-size:clamp(4rem,8vw,6rem);font-weight:500;line-height:.92}.progress-hero__motif{color:#725a2f1f;width:18rem;position:absolute;bottom:-4rem;right:-3rem}.level-details{gap:1rem}.level-details>span{color:var(--ink-soft);font-size:var(--font-size-label)}.level-details progress,.challenge-panel progress{background:#cbc8bf8c;border:0;border-radius:999px;height:1rem;overflow:hidden}progress::-webkit-progress-bar{background:#cbc8bf8c;border-radius:999px}progress::-webkit-progress-value{background:linear-gradient(90deg, var(--sage), var(--moss));border-radius:999px}progress::-moz-progress-bar{background:var(--sage);border-radius:999px}.challenge-panel,.challenge-form{border-radius:var(--radius-lg);position:relative;overflow:hidden;box-shadow:0 .8rem 2rem #353b320d}.badge-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.badge-item{text-align:center;min-height:12rem;transition:border-color var(--transition), box-shadow var(--transition), translate var(--transition);flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;position:relative;overflow:hidden}.badge-item:before{content:"";border:1px solid #aaa99f38;border-radius:50%;width:7rem;height:7rem;position:absolute;top:-2.5rem}.badge-item>svg{width:2.25rem;height:2.25rem;margin-bottom:.65rem;position:relative}.badge-item--awarded{background:radial-gradient(circle at 50% 8%, #e9d9b8c7, transparent 8rem), var(--surface);box-shadow:var(--shadow-glow);color:var(--gold-ink);border-color:#a57b3961}.badge-item--awarded:hover{translate:0 -.2rem}.reward-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.reward-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:radial-gradient(circle at 100% 0, #e8d7cf94, transparent 12rem), var(--surface);grid-template-columns:auto 1fr;gap:1rem;padding:1.5rem;display:grid;position:relative;overflow:hidden;box-shadow:0 .8rem 2rem #353b320d}.reward-card__icon{background:var(--petal-soft);width:3rem;height:3rem;color:var(--petal);border-radius:50%;place-items:center;display:grid}.reward-card__content{min-width:0}.reward-card__content h3{font-family:var(--font-body);font-size:1.1rem;font-weight:750}.reward-card__content p{color:var(--ink-soft);margin:.35rem 0 .8rem;font-size:.88rem}.reward-card__cost{background:var(--gold-soft);color:var(--gold-ink);border-radius:999px;padding:.35rem .65rem;font-size:.78rem;font-weight:750;display:inline-flex}.reward-card__actions{border-top:1px solid var(--border);flex-wrap:wrap;grid-column:1/-1;gap:.5rem;padding-top:1rem;display:flex}.finance-review{border-radius:var(--radius-lg);background:radial-gradient(circle at 100% 50%, #dce6e094, transparent 18rem), var(--surface);overflow:hidden}@media (prefers-reduced-motion:no-preference){.organic-motif path,.organic-motif circle{animation:motif-draw var(--motion-celebration) var(--ease-out) both;stroke-dasharray:320;stroke-dashoffset:320px}.today-habit[data-celebrating=true] .today-check:after,.check-button[data-celebrating=true]:after{animation:completion-ring var(--motion-celebration) var(--ease-out)}.today-habit[data-celebrating=true] .today-check svg,.check-button[data-celebrating=true] svg{animation:check-arrive var(--motion-emphasis) var(--ease-out)}.celebration{animation:celebration-arrive var(--motion-emphasis) var(--ease-out)}.celebration__icon{animation:emblem-arrive var(--motion-celebration) var(--ease-out)}.celebration__particles span{animation:petal-rise var(--motion-celebration) var(--ease-out)}.spectacle{animation:spectacle-stage 3.4s var(--ease-soft) both}.spectacle__veil{animation:spectacle-veil var(--motion-spectacle) var(--ease-out) both}.spectacle__rays{animation:spectacle-rays var(--motion-spectacle) var(--ease-out) both}.spectacle__orbit--outer{animation:spectacle-orbit var(--motion-spectacle) var(--ease-out) both}.spectacle__orbit--inner{animation:spectacle-orbit var(--motion-spectacle) 80ms var(--ease-out) both}.spectacle__content{animation:spectacle-content var(--motion-spectacle) var(--ease-out) both}.spectacle__emblem{animation:spectacle-emblem var(--motion-spectacle) var(--ease-out) both}.spectacle__motif--left{animation:spectacle-motif-left var(--motion-spectacle) var(--ease-out) both}.spectacle__motif--right{animation:spectacle-motif-right var(--motion-spectacle) var(--ease-out) both}.spectacle__particles span{animation:spectacle-particle var(--motion-spectacle) var(--ease-out) both}}@keyframes motif-draw{to{stroke-dashoffset:0}}@keyframes completion-ring{0%{opacity:.8;transform:scale(.7)}to{opacity:0;transform:scale(1.55)}}@keyframes check-arrive{0%{opacity:0;transform:scale(.45)rotate(-16deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes celebration-arrive{0%{opacity:0;transform:translateY(-.6rem)}}@keyframes emblem-arrive{0%{opacity:0;transform:scale(.7)rotate(-8deg)}55%{transform:scale(1.06)rotate(2deg)}}@keyframes petal-rise{0%{opacity:0;transform:translateY(1rem)rotate(0)}35%{opacity:.7}to{opacity:0;transform:translateY(-1.5rem)rotate(32deg)}}@keyframes spectacle-stage{0%{opacity:0}8%,72%{opacity:1}to{opacity:0}}@keyframes spectacle-veil{0%{opacity:0;transform:scale(1.16)}}@keyframes spectacle-rays{0%{opacity:0;transform:rotate(-18deg)scale(.65)}to{transform:rotate(12deg)scale(1)}}@keyframes spectacle-orbit{0%{opacity:0;transform:scale(.28)rotate(-24deg)}62%{opacity:.9}to{transform:scale(1)rotate(8deg)}}@keyframes spectacle-content{0%{opacity:0;transform:scale(.58)translateY(2rem)}55%{opacity:1;transform:scale(1.04)translateY(0)}to{transform:scale(1)translateY(0)}}@keyframes spectacle-emblem{0%{transform:rotate(-22deg)scale(.5)}58%{transform:rotate(5deg)scale(1.12)}to{transform:rotate(0)scale(1)}}@keyframes spectacle-particle{0%{opacity:0;transform:translate(0)rotate(0)scale(.2)}20%{opacity:1}to{opacity:.85;transform:translate(var(--particle-x), var(--particle-y)) rotate(var(--particle-r)) scale(1)}}@keyframes spectacle-motif-left{0%{opacity:0;transform:translate(-5rem,5rem)scale(.7)}}@keyframes spectacle-motif-right{0%{opacity:0;transform:translate(5rem,-5rem)scale(.7)}}@media (width<=900px){.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-hero{grid-template-columns:1fr}.level-emblem{width:12rem}}@media (width<=820px){.mobile-nav{grid-template-columns:repeat(4,minmax(0,1fr))}.today-header{min-height:0}.hero-motif{width:13rem;right:3rem}.habit-grid{min-width:0}}@media (width<=580px){.today-header{gap:2rem;padding:1.6rem;display:grid}.today-hero-copy h1{max-width:none}.daily-orb{justify-self:end;width:8.5rem;height:8.5rem}.daily-orb .progress-ring{width:7.25rem;height:7.25rem}.hero-motif{width:12rem;bottom:-3rem;left:-2rem;right:auto}.today-section .section-heading,.today-habit{padding-inline:1.2rem}.today-habit{grid-template-columns:auto 1fr auto}.badge-grid,.reward-grid{grid-template-columns:1fr}.celebration{grid-template-columns:auto 1fr}.celebration__close{position:absolute;top:.5rem;right:.5rem}.celebration__copy{padding-right:1.75rem}}@media (prefers-reduced-motion:reduce){.organic-motif path,.organic-motif circle,.celebration,.celebration__icon,.celebration__particles span,.today-check:after,.check-button:after{animation:none!important}.summary-card:hover,.badge-item--awarded:hover{translate:none}.celebration__particles{display:none}.spectacle{background:#f9f8f4fa}.spectacle__veil,.spectacle__rays,.spectacle__orbit,.spectacle__particles,.spectacle__motif{display:none}.spectacle__content,.spectacle__emblem{animation:none!important;transform:none!important}}
