@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-500.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-600.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-700.woff2) format("woff2")}:root{--color-bg-primary: #fafafa;--color-bg-secondary: #f2f2f2;--color-bg-card: #ffffff;--color-bg-elevated: #ffffff;--color-bg-overlay: rgba(0, 0, 0, .4);--color-text-primary: #1a1a1a;--color-text-secondary: #636363;--color-text-tertiary: #666666;--color-text-inverse: #ffffff;--color-accent: #2c2c2c;--color-accent-soft: #e8e8e8;--color-ember: #e2683c;--color-ember-soft: #fbe7de;--color-ember-text: #1a1a1a;--color-tg-button: var(--tg-theme-button-color, var(--color-accent));--color-tg-button-text: var(--tg-theme-button-text-color, var(--color-text-inverse));--color-border: #ebebeb;--color-border-strong: #d4d4d4;--color-success: #4a9b6e;--color-danger: #c44040;--color-day-empty: #f0f0f0;--color-day-partial: #d4d4d4;--color-day-complete: #2c2c2c;--color-day-current: var(--color-ember);--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", sans-serif;--font-family-display: "Space Grotesk", -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", sans-serif;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 15px;--font-size-md: 17px;--font-size-lg: 20px;--font-size-xl: 24px;--font-size-2xl: 28px;--font-size-3xl: 40px;--font-size-hero: 56px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.15;--line-height-normal: 1.4;--line-height-relaxed: 1.6;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .02em;--letter-spacing-caps: .08em;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-base: 16px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--radius-sm: 10px;--radius-md: 12px;--radius-lg: 14px;--radius-full: 9999px;--shadow-xs: none;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .03);--shadow-md: 0 1px 3px rgba(0, 0, 0, .05), 0 1px 2px rgba(0, 0, 0, .03);--shadow-lg: 0 10px 28px rgba(0, 0, 0, .09), 0 3px 8px rgba(0, 0, 0, .05);--shadow-xl: 0 16px 40px rgba(0, 0, 0, .1), 0 4px 12px rgba(0, 0, 0, .06);--shadow-focus: 0 0 0 3px rgba(44, 44, 44, .5);--shadow-accent: none;--transition-fast: .15s cubic-bezier(.25, .1, .25, 1);--transition-base: .2s cubic-bezier(.25, .1, .25, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--nav-height: 64px;--safe-area-bottom: var(--tg-safe-area-bottom, env(safe-area-inset-bottom, 0px));--content-max-width: 480px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-text-primary);background:var(--color-bg-primary);overflow-x:hidden;min-height:100vh;min-height:100dvh}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}button{font-family:inherit;border:none;background:none;cursor:pointer;font-size:inherit}input,textarea{font-family:inherit;font-size:inherit;border:none;outline:none;background:none}:where(button,a,input,textarea,select,[role=button],[tabindex]):focus-visible{outline:2px solid transparent;outline-offset:2px;box-shadow:var(--shadow-focus)}.fade-in{animation:fadeIn var(--transition-base) ease forwards}.pop-in{animation:popIn .2s cubic-bezier(.34,1.56,.64,1) forwards}.slide-in-up{animation:slideUp .25s cubic-bezier(.22,1,.36,1) forwards;opacity:0}.stagger-0{animation-delay:0ms}.stagger-1{animation-delay:40ms}.stagger-2{animation-delay:80ms}.stagger-3{animation-delay:.12s}.stagger-4{animation-delay:.16s}.stagger-5{animation-delay:.2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.85)}60%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes checkPop{0%{transform:scale(1)}35%{transform:scale(1.25)}70%{transform:scale(.95)}to{transform:scale(1)}}@keyframes taskComplete{0%{background-color:transparent}30%{background-color:var(--color-accent-soft)}to{background-color:transparent}}@keyframes successPulse{0%{box-shadow:0 0 0 0 var(--color-accent-soft)}50%{box-shadow:0 0 0 8px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes breathe{0%,to{transform:scale(1);box-shadow:0 0 0 0 var(--color-accent-soft)}50%{transform:scale(1.012);box-shadow:0 0 0 6px transparent}}@keyframes dayOpen{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes dayClose{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96) translateY(8px)}}@keyframes calendarCellPop{0%{transform:scale(.9);opacity:0}60%{transform:scale(1.04);opacity:1}to{transform:scale(1);opacity:1}}.day-open-anim{animation:dayOpen .25s cubic-bezier(.22,1,.36,1) forwards}.day-close-anim{animation:dayClose .2s cubic-bezier(.22,1,.36,1) forwards}.calendar-cell-enter{animation:calendarCellPop .2s cubic-bezier(.22,1,.36,1) forwards}@media (hover: hover){.card-interactive{transition:box-shadow var(--transition-base),transform var(--transition-base)}.card-interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}}.completion-glow{animation:completionGlow 1.2s ease forwards}@keyframes completionGlow{0%{box-shadow:var(--shadow-sm)}40%{box-shadow:0 4px 20px #4a9b6e26,var(--shadow-md)}to{box-shadow:var(--shadow-sm)}}.close-day-anim{animation:closeDayRitual .6s cubic-bezier(.22,1,.36,1) forwards}@keyframes closeDayRitual{0%{opacity:1;transform:scale(1)}30%{transform:scale(1.01)}60%{opacity:1}to{opacity:.97;transform:scale(1)}}.seal-cell{animation:seal .82s var(--ease-out-expo) forwards}@keyframes seal{0%{transform:scale(.92);background-color:var(--color-ember);box-shadow:0 0 0 6px var(--color-ember-soft)}45%{transform:scale(1.07);background-color:var(--color-ember);box-shadow:0 0 0 12px var(--color-ember-soft)}to{transform:scale(1);background-color:var(--color-day-complete);box-shadow:0 0 #7f7f7f00}}.sheet-backdrop{animation:sheetBackdropIn .2s ease forwards}.sheet-panel{animation:sheetPanelUp .28s cubic-bezier(.22,1,.36,1) forwards}@keyframes sheetBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes sheetPanelUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.tab-enter{animation:tabEnter .2s var(--ease-out-expo) forwards}@keyframes tabEnter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.tab-enter-right{animation:tabEnterRight .2s var(--ease-out-expo) forwards}@keyframes tabEnterRight{0%{opacity:0;transform:translate(22px)}to{opacity:1;transform:translate(0)}}.tab-enter-left{animation:tabEnterLeft .2s var(--ease-out-expo) forwards}@keyframes tabEnterLeft{0%{opacity:0;transform:translate(-22px)}to{opacity:1;transform:translate(0)}}.progress-fill-anim{animation:progressFillSmooth .45s var(--ease-out-expo) forwards}@keyframes progressFillSmooth{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.stagger-6{animation-delay:.24s}.stagger-7{animation-delay:.28s}.stagger-8{animation-delay:.32s}@keyframes loadingPulse{0%,to{opacity:.35;transform:scale(1)}50%{opacity:.7;transform:scale(1.3)}}.loading-pulse{animation:loadingPulse 1.2s ease-in-out infinite}button:active{transform:scale(.97);transition:transform 80ms ease}nav button:active,input:active,textarea:active{transform:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.theme-ivory{--color-bg-primary: #faf8f5;--color-bg-secondary: #f3efe9;--color-bg-card: #ffffff;--color-bg-elevated: #ffffff;--color-bg-overlay: rgba(0, 0, 0, .35);--color-text-primary: #2d2a26;--color-text-secondary: #6f695f;--color-text-tertiary: #695f56;--color-text-inverse: #ffffff;--color-accent: #8b6f4e;--color-accent-soft: #ede6da;--color-border: #e8e2d8;--color-border-strong: #d5ccbf;--color-success: #5a8a5e;--color-day-empty: #ede8e0;--color-day-partial: #d5ccbf;--color-day-complete: #8b6f4e;--color-day-current: var(--color-ember);--shadow-focus: 0 0 0 3px rgba(139, 111, 78, .5)}.theme-forest{--color-bg-primary: #f5f8f5;--color-bg-secondary: #e8ede8;--color-bg-card: #ffffff;--color-bg-elevated: #ffffff;--color-bg-overlay: rgba(0, 0, 0, .35);--color-text-primary: #1c2a1c;--color-text-secondary: #536853;--color-text-tertiary: #54624f;--color-text-inverse: #ffffff;--color-accent: #3b6b3b;--color-accent-soft: #dde8dd;--color-border: #dbe3db;--color-border-strong: #c2d0c2;--color-success: #3b8b4a;--color-day-empty: #e2e9e2;--color-day-partial: #b5c8b5;--color-day-complete: #3b6b3b;--color-day-current: var(--color-ember);--shadow-focus: 0 0 0 3px rgba(59, 107, 59, .5)}.theme-ocean{--color-bg-primary: #f4f7fa;--color-bg-secondary: #e6ecf2;--color-bg-card: #ffffff;--color-bg-elevated: #ffffff;--color-bg-overlay: rgba(0, 0, 0, .35);--color-text-primary: #1a2533;--color-text-secondary: #536579;--color-text-tertiary: #516170;--color-text-inverse: #ffffff;--color-accent: #2b5b8a;--color-accent-soft: #dae4ef;--color-border: #d8e1ea;--color-border-strong: #bdc9d8;--color-success: #3d8b6a;--color-day-empty: #dfe6ee;--color-day-partial: #b5c5d8;--color-day-complete: #2b5b8a;--color-day-current: var(--color-ember);--shadow-focus: 0 0 0 3px rgba(43, 91, 138, .5)}:root[data-tg-theme=dark]{--color-bg-primary: #1c1c1e;--color-bg-secondary: #2c2c2e;--color-bg-card: #2c2c2e;--color-bg-elevated: #3a3a3c;--color-bg-overlay: rgba(0, 0, 0, .6);--color-text-primary: #f5f5f7;--color-text-secondary: #9e9ea5;--color-text-tertiary: #95959a;--color-text-inverse: #1c1c1e;--color-accent: #ededed;--color-accent-soft: #3a3a3c;--color-ember: #ee7a4d;--color-ember-soft: #3a2a22;--color-ember-text: var(--color-text-inverse);--color-border: #38383a;--color-border-strong: #48484a;--color-success: #4cb07a;--color-danger: #e5807f;--color-day-empty: #2c2c2e;--color-day-partial: #48484a;--color-day-complete: #ededed;--color-day-current: var(--color-ember);--shadow-focus: 0 0 0 3px rgba(255, 255, 255, .6)}:root[data-tg-theme=dark].theme-ivory{--color-accent: #dac3a4;--color-accent-soft: #3a352c;--color-day-complete: #dac3a4;--color-day-current: var(--color-ember)}:root[data-tg-theme=dark].theme-forest{--color-accent: #82be95;--color-accent-soft: #28332b;--color-day-complete: #82be95;--color-day-current: var(--color-ember)}:root[data-tg-theme=dark].theme-ocean{--color-accent: #7fb2de;--color-accent-soft: #243240;--color-day-complete: #7fb2de;--color-day-current: var(--color-ember)}
