@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap");*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.border{border-width:1px}.uppercase{text-transform:uppercase}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--bg:#0a0a0a;--surface:#141414;--surface2:#1c1c1c;--border:hsla(0,0%,100%,.08);--border2:hsla(0,0%,100%,.14);--text:#f0f0f0;--muted:#666;--muted2:#444;--accent:#f5a623;--accent-dim:rgba(245,166,35,.12);--accent-glow:rgba(245,166,35,.35);--done:#f5a623;--empty:#1e1e1e;--radius:14px;--radius-sm:8px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:DM Sans,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden;overflow-y:auto}a{color:inherit}input,select,textarea{font-family:DM Sans,sans-serif}button{font:inherit}@keyframes spin{to{transform:rotate(1turn)}}@keyframes habit-card-celebrate{0%{transform:translateY(0) scale(1);box-shadow:0 0 0 rgba(245,166,35,0)}35%{transform:translateY(-2px) scale(1.01);box-shadow:0 18px 34px rgba(245,166,35,.12)}to{transform:translateY(0) scale(1);box-shadow:0 0 0 rgba(245,166,35,0)}}@keyframes habit-check-ring{0%{transform:scale(.45);opacity:.55}to{transform:scale(1.8);opacity:0}}@keyframes habit-streak-lift{0%{transform:translateY(0)}35%{transform:translateY(-3px)}to{transform:translateY(0)}}@keyframes habit-beam-sweep{0%{transform:translateX(-100%);opacity:0}30%{opacity:1}to{transform:translateX(220%);opacity:0}}@keyframes habit-day-pop{0%{transform:translateY(0) scale(1);filter:brightness(1)}45%{transform:translateY(-2px) scale(1.08);filter:brightness(1.2)}to{transform:translateY(0) scale(1);filter:brightness(1)}}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-sheet-in{0%{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.habit-card{transform-origin:center bottom;transition:transform .24s cubic-bezier(.22,1,.36,1),border-color .18s ease,background .18s ease}.habit-card:active{transform:scale(.992)}.habit-card[data-done=true]{background:radial-gradient(circle at top right,rgba(245,166,35,.14),transparent 36%),var(--surface)}.habit-card[data-celebrating=true]{animation:habit-card-celebrate .72s cubic-bezier(.22,1,.36,1)}.habit-card__beam:after{content:"";position:absolute;inset:0;width:40%;background:linear-gradient(90deg,transparent,rgba(255,243,214,.95),transparent)}.habit-card[data-celebrating=true] .habit-card__beam:after{animation:habit-beam-sweep .72s cubic-bezier(.22,1,.36,1)}.habit-card__check{isolation:isolate;transform:scale(1);transition:transform .18s cubic-bezier(.22,1,.36,1),background .18s ease,border-color .18s ease,box-shadow .22s ease}.habit-card__check[data-pressed=true]{transform:scale(.88)}.habit-card__check[data-done=true]{box-shadow:0 10px 24px rgba(245,166,35,.22)}.habit-card__check-ring{position:absolute;inset:-2px;border-radius:inherit;border:1px solid rgba(245,166,35,.7);opacity:0}.habit-card__check[data-celebrate=true] .habit-card__check-ring{animation:habit-check-ring .72s cubic-bezier(.22,1,.36,1)}.habit-card__check-icon{position:relative;z-index:1;transition:transform .22s cubic-bezier(.22,1,.36,1),stroke .18s ease}.habit-card__check[data-done=true] .habit-card__check-icon{transform:scale(1.06)}.habit-card__streak{transform-origin:left center}.habit-card__streak[data-celebrate=true]{animation:habit-streak-lift .62s cubic-bezier(.22,1,.36,1)}.habit-card__day{transition:transform .18s ease,filter .18s ease,border-color .18s ease}.habit-card__day[data-celebrate=true]{animation:habit-day-pop .42s cubic-bezier(.22,1,.36,1);animation-delay:var(--day-delay,0ms)}.log-modal-backdrop{animation:modal-backdrop-in .18s ease-out}.log-modal-sheet{animation:modal-sheet-in .32s cubic-bezier(.22,1,.36,1);transform-origin:center bottom}@media (prefers-reduced-motion:reduce){.habit-card,.habit-card__check,.habit-card__check-icon,.habit-card__day,.log-modal-backdrop,.log-modal-sheet{animation:none!important;transition:none!important;transform:none!important}.habit-card__beam:after,.habit-card__check-ring{display:none}}.auth-shell{min-height:100vh;padding:clamp(20px,4vw,40px);display:grid;place-items:center;background:radial-gradient(circle at top,rgba(245,166,35,.22),transparent 28%),radial-gradient(circle at 80% 20%,rgba(245,166,35,.08),transparent 18%),linear-gradient(180deg,#0e0d0c,#090909 50%,#13100a)}.auth-panel{width:min(100%,470px);padding:clamp(24px,4vw,40px);border-radius:28px;border:1px solid rgba(245,166,35,.2);background:linear-gradient(180deg,rgba(245,166,35,.08),rgba(245,166,35,.02)),hsla(0,0%,5%,.92);box-shadow:0 24px 80px rgba(0,0,0,.45),inset 0 1px 0 hsla(0,0%,100%,.04)}.auth-kicker{margin-bottom:14px;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:rgba(245,166,35,.78)}.auth-title{font-family:Fraunces,serif;font-size:clamp(2.3rem,7vw,4.2rem);line-height:.92;letter-spacing:-.06em;max-width:8ch}.auth-copy{margin-top:18px;max-width:40ch;color:#c4b8a3;line-height:1.65;font-size:.98rem}.auth-form{margin-top:28px;display:grid;gap:14px}.auth-field{display:grid;gap:8px}.auth-field span{font-size:.86rem;color:#d8ccb7}.auth-field input{width:100%;border:1px solid rgba(245,166,35,.14);border-radius:16px;background:hsla(0,0%,100%,.03);color:var(--text);padding:15px 16px;outline:none;transition:border-color .16s ease,transform .16s ease,background .16s ease}.auth-field input::-moz-placeholder{color:#7e6e57}.auth-field input::placeholder{color:#7e6e57}.desktop-only,.desktop-rail{display:none}.dashboard-shell{min-height:100vh}.dashboard-main{min-width:0}.dashboard-panel{min-height:100vh}.dashboard-view{min-height:100%}@media (max-width:899px){.dashboard-main,.dashboard-panel,.dashboard-shell,.dashboard-view{min-height:auto}.dashboard-shell{padding-bottom:calc(96px + env(safe-area-inset-bottom, 0px))}.dashboard-view--today{padding-bottom:calc(112px + env(safe-area-inset-bottom, 0px))}}.today-header{padding:24px 20px 0;display:grid;gap:18px}.today-header__eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(245,166,35,.78);margin-bottom:10px}.today-header__title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.today-header__title{font-size:28px;font-weight:600;letter-spacing:-.5px}.today-header__date{font-size:13px;color:var(--muted);margin-top:2px}.today-hero{display:none}.today-section{padding:20px 20px 0}.today-section__header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.today-section__count{display:none}.today-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-view{min-height:100vh}.detail-hero__kicker{display:none}.detail-layout{display:block}.bottom-nav{display:flex}@media (min-width:900px){body{background:radial-gradient(circle at top left,rgba(245,166,35,.12),transparent 28%),radial-gradient(circle at 85% 14%,rgba(245,166,35,.08),transparent 20%),linear-gradient(180deg,#110f0c,#090909 52%,#0f0d0a)}.mobile-only{display:none!important}.desktop-only{display:inline-flex}.dashboard-shell{display:grid;grid-template-columns:minmax(280px,320px) minmax(0,1fr);gap:24px;padding:24px}.desktop-rail{position:sticky;top:24px;height:calc(100vh - 48px);border-radius:32px;border:1px solid rgba(245,166,35,.14);background:linear-gradient(180deg,rgba(245,166,35,.12),rgba(245,166,35,.02) 40%),rgba(17,15,12,.88);box-shadow:0 28px 90px rgba(0,0,0,.38),inset 0 1px 0 hsla(0,0%,100%,.04);padding:28px;display:grid;grid-template-rows:auto auto 1fr auto auto;gap:22px}.desktop-rail__brand{display:grid;gap:6px}.desktop-rail__kicker{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(245,166,35,.78)}.desktop-rail__title{font-family:Fraunces,serif;font-size:clamp(2rem,3vw,2.8rem);line-height:.92;letter-spacing:-.06em;max-width:8ch}.desktop-rail__date{color:#b7a894;font-size:.95rem}.desktop-rail__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.desktop-rail__stats div{border-radius:18px;border:1px solid hsla(0,0%,100%,.06);background:hsla(0,0%,100%,.03);padding:12px 12px 14px;display:grid;gap:6px}.desktop-rail__stats span{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.desktop-rail__stats strong{font-size:1.45rem;font-weight:600;letter-spacing:-.04em}.desktop-rail__nav{display:grid;gap:10px;align-content:start}.desktop-rail__nav-item{width:100%;border:1px solid hsla(0,0%,100%,.06);background:hsla(0,0%,100%,.02);color:var(--text);border-radius:18px;padding:15px 16px;text-align:left;cursor:pointer;display:grid;gap:4px;transition:transform .18s ease,border-color .18s ease,background .18s ease}.desktop-rail__nav-item:hover{transform:translateY(-1px);border-color:rgba(245,166,35,.16)}.desktop-rail__nav-item[data-active=true]{background:linear-gradient(180deg,rgba(245,166,35,.16),rgba(245,166,35,.05));border-color:rgba(245,166,35,.24)}.desktop-rail__nav-item span{font-size:1rem;font-weight:600}.desktop-rail__nav-item small{color:#b8aa97;font-size:.8rem}.desktop-rail__add,.today-hero__add{justify-content:center;align-items:center;border:none;border-radius:999px;background:var(--accent);color:#130d04;padding:14px 18px;font-weight:600;cursor:pointer}.desktop-rail__sync{align-self:end}.dashboard-panel{min-height:calc(100vh - 48px);border-radius:34px;border:1px solid hsla(0,0%,100%,.06);background:linear-gradient(180deg,hsla(0,0%,100%,.025),hsla(0,0%,100%,.01)),hsla(0,0%,5%,.8);box-shadow:0 24px 80px rgba(0,0,0,.32),inset 0 1px 0 hsla(0,0%,100%,.04);overflow:hidden}.dashboard-main{min-width:0}.dashboard-view{padding-bottom:28px!important}.dashboard-view--today{padding-bottom:36px}.today-header{padding:36px 40px 0;grid-template-columns:minmax(0,1fr) minmax(260px,360px);align-items:end}.today-header__title{font-family:Fraunces,serif;font-size:clamp(3rem,5vw,4.5rem);line-height:.92;letter-spacing:-.06em}.today-header__date{margin-top:12px;font-size:.95rem;color:#c0b19d}.today-hero{display:grid;gap:18px;justify-items:start;padding:22px 24px;border-radius:26px;border:1px solid rgba(245,166,35,.18);background:radial-gradient(circle at top right,rgba(245,166,35,.24),transparent 45%),rgba(245,166,35,.06)}.today-hero__copy{display:grid;gap:4px}.today-hero__copy strong{font-size:clamp(2.1rem,4vw,3rem);line-height:.95;letter-spacing:-.06em}.today-hero__copy span{color:#cebca6;line-height:1.5}.today-hero__label{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:rgba(245,166,35,.86)!important}.today-section{padding:28px 40px 0}.today-section__header{margin-bottom:18px}.today-section__count{display:inline-flex;align-items:center;border:1px solid hsla(0,0%,100%,.08);border-radius:999px;padding:7px 12px;color:#bbac99;font-size:.82rem}.today-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.dashboard-view--search,.dashboard-view--settings{padding:36px 40px 28px!important}.detail-view{padding:28px 36px 40px!important}.detail-back{margin-bottom:28px!important}.detail-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:28px;align-items:end;margin-bottom:30px}.detail-hero__copy{min-width:0}.detail-hero__kicker{display:block;margin-bottom:14px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(245,166,35,.78)}.detail-hero__emoji{font-size:64px!important}.detail-hero__title{font-family:Fraunces,serif;font-size:clamp(2.6rem,4vw,4rem)!important;line-height:.92;letter-spacing:-.06em}.detail-stats{margin-bottom:0!important;gap:14px!important}.detail-stat{border-radius:18px!important;background:linear-gradient(180deg,hsla(0,0%,100%,.03),hsla(0,0%,100%,.015)),var(--surface)!important}.detail-stat__value{font-size:30px!important;letter-spacing:-.05em}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,360px);gap:26px;align-items:start}.detail-history{margin-bottom:0!important;padding:24px 26px 28px;border-radius:28px;border:1px solid hsla(0,0%,100%,.06);background:linear-gradient(180deg,hsla(0,0%,100%,.02),hsla(0,0%,100%,.01)),hsla(0,0%,6%,.74)}.detail-history__years{gap:28px!important}.detail-history__year{padding-bottom:24px;border-bottom:1px solid hsla(0,0%,100%,.05)}.detail-history__year:last-child{border-bottom:none;padding-bottom:0}.detail-history__months{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:18px!important}.detail-history__cell{border-radius:3px!important}.detail-log-panel{margin-top:0!important;position:sticky;top:24px;align-self:start}.detail-log-panel__toggle{padding:18px!important;border-radius:22px!important;background:radial-gradient(circle at top right,rgba(245,166,35,.16),transparent 40%),var(--surface)!important}.detail-log-panel__body{max-height:calc(100vh - 150px);overflow:auto;padding-right:4px}.detail-log-card{border-radius:16px!important}.dashboard-view--search>div:first-child,.dashboard-view--settings>div:first-child{margin-bottom:28px!important}.habit-list{margin-top:22px!important}.search-toolbar{top:0!important;margin-bottom:28px!important}.search-results{gap:22px!important}.search-group-card{padding:18px 18px 16px!important}.bottom-nav{display:none!important}}.auth-field input:focus{border-color:rgba(245,166,35,.45);background:hsla(0,0%,100%,.05);transform:translateY(-1px)}.auth-remember{display:flex;align-items:center;gap:10px;margin-top:6px;color:#d8ccb7;font-size:.92rem}.auth-remember input{width:16px;height:16px;accent-color:var(--accent)}.auth-error{border-radius:14px;background:rgba(180,57,36,.16);border:1px solid rgba(214,91,67,.28);color:#ffb7a8;padding:12px 14px;font-size:.92rem}.auth-submit{margin-top:8px;border:0;border-radius:999px;padding:15px 20px;background:linear-gradient(135deg,#f5a623,#ffd27b);color:#17110a;font-weight:600;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease;box-shadow:0 16px 36px rgba(245,166,35,.22)}.auth-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 22px 42px rgba(245,166,35,.28)}.auth-submit:disabled{opacity:.7;cursor:wait}.auth-note{margin-top:26px;display:grid;gap:12px}.auth-note-line{width:72px;height:1px;background:linear-gradient(90deg,rgba(245,166,35,.6),rgba(245,166,35,0))}.auth-note p{color:#8d7d66;font-size:.86rem;line-height:1.6}@media (max-width:640px){.auth-panel{min-height:calc(100vh - 40px);display:flex;flex-direction:column;justify-content:center}}