:root{--paper: #f0efeb;--ink: #161513;--wine: #6d1524;--wine-muted: #a44152;--thread-idle: #b9b4aa;--ink-60: rgba(22, 21, 19, .6);--ink-38: rgba(22, 21, 19, .38);--hairline: rgba(22, 21, 19, .12);--font-display: "Raleway", system-ui, sans-serif;--font-quote: "Cormorant Garamond", Georgia, serif;--font-ui: "Inter", system-ui, -apple-system, sans-serif;--stroke: 1.25px;--step: 8px;--gutter: 24px;--radius: 2px;--ease-draw: cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;position:relative;background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px}h1,h2,h3{font-family:var(--font-display);font-weight:300;text-transform:lowercase;letter-spacing:.5px;margin:0}h1{font-size:28px;line-height:1.25}h2{font-size:21px;line-height:1.3}h3{font-size:17px;font-weight:400;letter-spacing:.3px}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}input,select{font-family:var(--font-display);font-weight:400;font-size:16px;letter-spacing:.3px;color:inherit;background:transparent;border:none;border-bottom:var(--stroke) solid var(--hairline);padding:8px 0;width:100%;outline:none}input:focus{border-bottom-color:var(--wine)}.app{max-width:520px;margin:0 auto;min-height:100%;padding:calc(env(safe-area-inset-top) + 28px) var(--gutter) calc(env(safe-area-inset-bottom) + 96px);display:flex;flex-direction:column}.quote{font-family:var(--font-quote);font-style:italic;font-weight:400;font-size:21px;line-height:1.35;color:var(--ink)}.eyebrow{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-38)}.muted{color:var(--ink-60);font-size:14px;line-height:1.55}.btn{font-family:var(--font-display);text-transform:lowercase;font-size:14px;font-weight:500;letter-spacing:.5px;padding:15px 22px;border:var(--stroke) solid var(--ink);border-radius:var(--radius);transition:background .16s ease,color .16s ease}.btn--primary{background:var(--ink);color:var(--paper)}.btn:disabled{background:none;color:var(--ink-38);border-color:var(--hairline);cursor:default}.btn--wine{background:var(--wine);border-color:var(--wine);color:var(--paper)}.btn--ghost{border-color:var(--hairline)}.stack{display:flex;flex-direction:column}.fade-in{animation:fade-in .42s var(--ease-draw) both}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.back{font-size:13px;color:var(--ink-60);margin-bottom:20px;align-self:flex-start}.field{display:block;margin:18px 0}.field .eyebrow{display:block;margin-bottom:4px}.chip{font-family:var(--font-ui);font-size:13px;color:var(--ink-60);border:var(--stroke) solid var(--hairline);border-radius:999px;padding:6px 12px;margin:0 6px 6px 0}.underline-mark{position:absolute;left:0;right:0;bottom:-2px;height:6px;display:block;overflow:hidden;pointer-events:none}.underline-mark__reveal{display:block;width:100%;height:100%;will-change:clip-path}.underline-mark__reveal>svg{display:block;width:100%;height:100%;overflow:visible}.ritual-list{list-style:none;margin:28px 0 0;padding:0}.ritual-list>li{border-bottom:var(--stroke) solid var(--hairline)}.ritual-row{display:flex;align-items:center;gap:12px}.ritual-row__target{position:relative;flex:1;padding:18px 0;touch-action:pan-y;-webkit-user-select:none;user-select:none;outline:none}.ritual-row__target:focus-visible .ritual-row__label{box-shadow:0 0 0 2px var(--wine-muted)}.ritual-row__label{position:relative;display:inline-block;font-family:var(--font-display);font-weight:400;font-size:17px;letter-spacing:.3px;transition:color .2s ease}.ritual-row__target.is-marked .ritual-row__label{color:var(--ink-60)}.ritual-row__minimal{font-family:var(--font-quote);font-style:italic;font-weight:400;font-size:16px;color:var(--wine-muted);letter-spacing:0}.ritual-row__goal{display:block;font-family:var(--font-quote);font-style:italic;font-size:16px;color:var(--ink-60);margin-top:1px}.ritual-row__target:not(.is-marked) .ritual-row__label:after{content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:1px dotted var(--thread-idle);opacity:.55}.ritual-row__aside{flex:none}.ritual-row__icon{color:var(--ink-38);padding:12px 4px;display:flex}.today__head{margin-bottom:8px}.today__identity{margin:10px 0 0;max-width:22ch}.today__hint{font-size:13px;margin:14px 0 0}.today__thread{display:block;width:100%;margin-top:auto;padding-top:36px;text-align:left}.today__thread-caption{display:block;margin-top:10px}.thread{width:100%;height:30px;display:block}.today__nav{display:flex;gap:10px;margin-top:22px}.today__nav .btn{flex:1;text-align:center}.onboarding{gap:6px}.onboarding h1{margin-bottom:10px;max-width:16ch}.onboarding>.btn{margin-top:28px}.phrase-list,.toggle-list,.trigger-list{list-style:none;margin:22px 0 0;padding:0}.phrase-list__item{position:relative;display:block;width:100%;text-align:left;padding:12px 0;color:var(--ink-60);transition:color .18s ease}.phrase-list__item.is-chosen{color:var(--ink)}.toggle-list>li{border-bottom:var(--stroke) solid var(--hairline)}.toggle-list__item{display:block;width:100%;text-align:left;padding:16px 0;opacity:.42;transition:opacity .18s ease}.toggle-list__item.is-on{opacity:1}.toggle-list__label{position:relative;display:inline-block;font-family:var(--font-display);font-weight:400;font-size:17px;letter-spacing:.3px}.toggle-list__hint{font-family:var(--font-ui);font-size:13px;line-height:1.45;margin:0 0 14px;max-width:34ch}.detail__title{margin-bottom:8px}.detail__trigger{color:var(--ink-60);margin:0 0 30px}.detail__options{display:flex;flex-direction:column;gap:4px}.detail__option{position:relative;text-align:left;padding:16px 0;font-family:var(--font-display);font-weight:400;font-size:17px;letter-spacing:.3px;color:var(--ink-60);border-bottom:var(--stroke) solid var(--hairline)}.detail__option.is-chosen{color:var(--ink)}.detail__note{font-size:13px;margin:26px 0 32px}.month__identity{margin:8px 0 30px}.month__thread{display:flex;flex-direction:column;gap:10px}.month__week{display:flex;align-items:center;gap:10px}.month__week-label{width:20px;flex:none}.summary{margin:34px 0 0}.summary>div{display:flex;justify-content:space-between;align-items:baseline;padding:11px 0;border-bottom:var(--stroke) solid var(--hairline)}.summary dt{color:var(--ink-60);font-size:14px;font-family:var(--font-ui)}.summary dd{margin:0;font-family:var(--font-display);font-weight:400;font-size:17px;letter-spacing:.3px}.month__note{font-size:13px;margin-top:22px}.settings__block{margin:32px 0}.settings__block h2{margin-bottom:12px}.settings__suggestions{display:flex;flex-wrap:wrap;margin:12px 0 16px}.settings__rituals{list-style:none;margin:0;padding:0}.settings__ritual{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:var(--stroke) solid var(--hairline)}.settings__ritual-body{flex:1;display:flex;flex-direction:column;gap:2px}.settings__ritual-body>span{font-family:var(--font-display);font-weight:400;font-size:17px;letter-spacing:.3px}.settings__goal{color:var(--ink-60);border-bottom-color:transparent;padding:2px 0}.settings__goal:focus{border-bottom-color:var(--wine)}.settings__goal::placeholder{color:var(--ink-38)}.switch{flex:none;width:34px;height:18px;border:var(--stroke) solid var(--hairline);border-radius:999px;margin-top:4px;position:relative;transition:border-color .18s ease,background .18s ease}.switch.is-on{border-color:var(--wine);background:var(--wine)}.switch__dot{position:absolute;top:3px;left:3px;width:10px;height:10px;border-radius:50%;background:var(--thread-idle);transition:transform .18s var(--ease-draw),background .18s ease}.switch.is-on .switch__dot{transform:translate(15px);background:var(--paper)}.interlude{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--paper);display:flex;flex-direction:column;z-index:20}.interlude__photo{flex:1;background:radial-gradient(120% 80% at 30% 20%,#4a4844,#1d1c1a 60%,#0d0d0c);filter:grayscale(1) contrast(1.05);position:relative}.interlude__photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.16;background-image:radial-gradient(rgba(255,255,255,.5) .5px,transparent .5px);background-size:3px 3px}.interlude__body{padding:34px var(--gutter) calc(env(safe-area-inset-bottom) + 34px);max-width:520px;width:100%;margin:0 auto}.interlude__quote{margin:12px 0 0;font-size:22px}.interlude__keyword{position:relative;display:inline-block}.interlude__identity{font-family:var(--font-quote);font-style:italic;font-size:16px;margin-top:22px}.interlude__close{margin-top:26px}.today__rest{margin:40px 0 0}.today__rest-note{font-size:13px;margin:10px 0 22px}.plan__note{font-size:13px;margin:8px 0 0}.plan__note+.plan__note{margin:12px 0 26px}.plan__group{margin-bottom:30px}.plan__category{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;font-family:var(--font-display);font-weight:500;color:var(--ink-38);margin-bottom:12px}.plan__row{padding:12px 0;border-bottom:var(--stroke) solid var(--hairline)}.plan__label{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.plan__label>span:first-child{font-family:var(--font-display);font-weight:400;font-size:17px;letter-spacing:.3px}.plan__count{font-family:var(--font-ui);font-size:13px;white-space:nowrap}.plan__days{display:flex;gap:6px;margin-top:10px}.plan__days--wide{margin-top:6px}.plan__day{flex:1;padding:9px 0;font-family:var(--font-ui);font-size:13px;text-align:center;color:var(--ink-38);border:var(--stroke) solid var(--hairline);border-radius:var(--radius);transition:color .16s ease,border-color .16s ease,background .16s ease}.plan__day.is-on{color:var(--paper);background:var(--wine);border-color:var(--wine)}.plan__day.is-today{border-color:var(--ink-38)}.plan__day.is-on.is-today{border-color:var(--ink)}.plan__add{width:100%;margin:8px 0 30px}.plan__form{border-top:var(--stroke) solid var(--hairline);padding-top:22px;margin-bottom:30px}.plan__form-actions{display:flex;gap:10px;margin-top:22px}.plan__form-actions .btn{flex:1;text-align:center}.plan__remove{list-style:none;margin:0;padding:0}.plan__remove>li{display:flex;justify-content:space-between;align-items:baseline;padding:11px 0;border-bottom:var(--stroke) solid var(--hairline)}.plan__remove>li>span{font-family:var(--font-display);font-weight:400;font-size:17px;letter-spacing:.3px}.plan__remove-btn{font-family:var(--font-ui);font-size:13px;color:var(--wine-muted)}.chip--ui{font-size:13px}.chip--ui.is-chosen{color:var(--paper);background:var(--wine);border-color:var(--wine)}.report__title{margin-bottom:6px}.report__title-inner{position:relative;display:inline-block}.report__identity{margin:14px 0 26px}.report__thread{margin-bottom:8px}.report__category{margin-top:30px}.report__category h2{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;font-family:var(--font-display);font-weight:500;color:var(--ink-38);margin-bottom:14px}.report__rituals{list-style:none;margin:0;padding:0}.report__ritual{margin-bottom:18px}.report__ritual-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;margin-bottom:7px}.report__ritual-head>span:first-child{font-family:var(--font-display);font-weight:400;font-size:17px;letter-spacing:.3px}.report__ritual-head .muted{font-size:13px;white-space:nowrap}.report__bar{height:3px;background:var(--hairline);border-radius:999px;overflow:hidden}.report__bar-fill{display:block;height:100%;background:var(--wine);border-radius:999px}.report__ritual-note{font-family:var(--font-ui);font-size:13px;margin:6px 0 0}.report__actions{display:flex;flex-direction:column;gap:10px;margin-top:36px}.report__actions .btn{text-align:center}.report__saved{font-size:13px;margin-top:12px;text-align:center}.month__report-link{display:block;width:100%;text-align:center;margin-top:26px}.archive{list-style:none;margin:24px 0 0;padding:0}.archive>li{border-bottom:var(--stroke) solid var(--hairline)}.archive__item{display:flex;justify-content:space-between;align-items:baseline;width:100%;padding:18px 0}.archive__month{font-family:var(--font-display);font-weight:400;font-size:17px;letter-spacing:.3px}.report__note{font-family:var(--font-ui);font-size:13px;margin:16px 0 0}.explain{font-size:14px;line-height:1.65;color:var(--ink-60);margin:0 0 16px}.thread-demo{margin:22px 0 26px}.onboarding__coda{margin:12px 0 0;font-size:21px}.onboarding__keyword{position:relative;display:inline-block}.toggle-row{display:flex;gap:14px;align-items:flex-start;padding:15px 0}.toggle-row__body{display:flex;flex-direction:column;gap:1px}.toggle-row__label{font-family:var(--font-display);font-weight:400;font-size:17px;letter-spacing:.3px;transition:color .16s ease}.toggle-row__label.is-off{color:var(--ink-38)}.toggle-row__minimal{font-family:var(--font-quote);font-style:italic;font-size:17px;color:var(--ink-60)}.toggle-row__hint{font-size:13px;line-height:1.45;margin:7px 0 0;max-width:30ch}.add-row{display:flex;align-items:baseline;gap:12px;border-bottom:var(--stroke) solid var(--hairline);margin-top:6px}.add-row input{border-bottom:none}.add-row__btn{flex:none;font-size:13px;color:var(--wine);padding:10px 0}.add-row__btn:disabled{color:var(--ink-38)}.goal-list{list-style:none;margin:18px 0 0;padding:0}.goal-list .field{margin:6px 0 14px}.goal-list__note{font-size:13px;margin-top:4px}.plan-summary__phrase{margin:6px 0 26px}.plan-summary{list-style:none;margin:0;padding:0}.plan-summary__item{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:13px 0;border-bottom:var(--stroke) solid var(--hairline)}.plan-summary__label{font-family:var(--font-display);font-weight:400;font-size:17px;letter-spacing:.3px}.plan-summary__goal{font-family:var(--font-quote);font-style:italic;font-size:17px;color:var(--wine-muted);white-space:nowrap}.detail__goal{color:var(--wine-muted);margin:0 0 4px}.proper-name{text-transform:none}.plan__start{width:100%;margin:4px 0 34px}.howto{margin:22px 0 0}.howto__toggle{font-family:var(--font-quote);font-style:italic;font-size:17px;color:var(--ink-60);padding:4px 0}.howto__mark{color:var(--wine);font-style:normal;font-size:16px;margin-left:2px}.howto__text{font-size:13px;line-height:1.55;color:var(--ink-60);margin:8px 0 0;max-width:42ch}.onboarding__hint{font-family:var(--font-ui);font-size:13px;color:var(--ink-60);margin:14px 0 0}.onboarding__sub{margin:10px 0 0}.step-back{align-self:flex-start;font-family:var(--font-ui);font-size:13px;color:var(--wine);padding:4px 0;margin-bottom:16px}.step-back span{margin-right:2px}.signin__error{font-family:var(--font-ui);font-size:13px;color:var(--wine);margin:10px 0 0}.signin__email{color:var(--ink)}.signin__again{margin-top:18px;align-self:center}.settings__account-actions{display:flex;gap:10px;margin-top:16px}.settings__account-actions .btn{flex:1;text-align:center}.settings__sync-note{font-size:13px;margin-top:12px}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:var(--ink);display:flex;align-items:flex-end;opacity:1;transition:opacity .5s ease}.splash.is-leaving{opacity:0;pointer-events:none}.splash__photo{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 80% at 30% 20%,#4a4844,#1d1c1a 60%,#0d0d0c);overflow:hidden}.splash__photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04);animation:splash-drift 3.4s ease-out both}@keyframes splash-drift{0%{transform:scale(1.06)}to{transform:scale(1)}}.splash__photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#0d0d0cb8,#0d0d0c26 45%,#0d0d0c0d)}.splash__title{position:relative;width:100%;max-width:520px;margin:0 auto;padding:0 var(--gutter) calc(env(safe-area-inset-bottom) + 56px)}.splash__word{position:relative;display:inline-block;font-family:var(--font-display);font-weight:300;font-size:30px;letter-spacing:1.5px;color:var(--paper);animation:splash-word .9s var(--ease-draw) both}@keyframes splash-word{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.welcome h1{margin:14px 0 0;max-width:17ch}.welcome__line{margin:18px 0 0;color:var(--ink-60)}.welcome__actions{display:flex;flex-direction:column;gap:10px;margin-top:40px}.welcome__actions .btn{text-align:center}.welcome__note{font-size:13px;margin-top:22px;max-width:34ch}
