:root{--st-bg: #fbfaf5;--st-ink: #1a160e;--st-ink-soft: rgba(26, 22, 14, .72);--st-ink-soft-2: rgba(26, 22, 14, .52);--st-line: rgba(26, 22, 14, .12);--st-card: #ffffff;--st-accent: #1f4ed8;--st-accent-soft: rgba(31, 78, 216, .12);--st-danger: #b91c1c;--st-cell-bg: rgba(26, 22, 14, .06);--st-radius-sm: 8px;--st-radius: 12px;--st-radius-lg: 16px;--st-shadow: 0 1px 0 var(--st-line), 0 8px 24px rgba(26, 22, 14, .04);--st-shadow-pop: 0 8px 24px rgba(26, 22, 14, .16)}[data-theme=dark]{--st-bg: #0e0c08;--st-ink: #f4f1ea;--st-ink-soft: rgba(244, 241, 234, .72);--st-ink-soft-2: rgba(244, 241, 234, .52);--st-line: rgba(244, 241, 234, .14);--st-card: #1a160e;--st-accent: #8fa9ff;--st-accent-soft: rgba(143, 169, 255, .18);--st-danger: #f87171;--st-cell-bg: rgba(244, 241, 234, .08);--st-shadow: 0 1px 0 var(--st-line), 0 8px 24px rgba(0, 0, 0, .4);--st-shadow-pop: 0 8px 24px rgba(0, 0, 0, .6)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--st-bg: #0e0c08;--st-ink: #f4f1ea;--st-ink-soft: rgba(244, 241, 234, .72);--st-ink-soft-2: rgba(244, 241, 234, .52);--st-line: rgba(244, 241, 234, .14);--st-card: #1a160e;--st-accent: #8fa9ff;--st-accent-soft: rgba(143, 169, 255, .18);--st-danger: #f87171;--st-cell-bg: rgba(244, 241, 234, .08);--st-shadow: 0 1px 0 var(--st-line), 0 8px 24px rgba(0, 0, 0, .4);--st-shadow-pop: 0 8px 24px rgba(0, 0, 0, .6)}}.st-page{background:var(--st-bg);color:var(--st-ink);min-height:70vh;padding-bottom:6rem}.st-topbar{position:sticky;top:0;z-index:20;background:color-mix(in oklab,var(--st-bg) 88%,transparent);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--st-line)}.st-topbar-inner{max-width:920px;margin:0 auto;padding:.75rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.st-brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:600}.st-brand-mark{color:var(--st-accent);display:inline-flex}.st-brand-name{font-size:1.0625rem}.st-topbar-actions{display:inline-flex;gap:.5rem;flex-wrap:wrap}.st-btn{appearance:none;border:1px solid var(--st-line);background:var(--st-card);color:var(--st-ink);border-radius:999px;padding:.5rem .9rem;font:inherit;font-size:.875rem;font-weight:500;display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}.st-btn:hover{background:color-mix(in oklab,var(--st-accent) 8%,var(--st-card));border-color:color-mix(in oklab,var(--st-accent) 35%,var(--st-line))}.st-btn:active{transform:translateY(1px)}.st-btn:focus-visible{outline:2px solid var(--st-accent);outline-offset:2px}.st-btn-primary{background:var(--st-accent);border-color:var(--st-accent);color:#fff}.st-btn-primary:hover{background:color-mix(in oklab,var(--st-accent) 88%,black);border-color:color-mix(in oklab,var(--st-accent) 88%,black)}.st-btn-ghost{background:transparent}.st-btn-sm{padding:.35rem .7rem;font-size:.8125rem}.st-danger{color:var(--st-danger);border-color:color-mix(in oklab,var(--st-danger) 35%,var(--st-line))}.st-danger:hover{background:color-mix(in oklab,var(--st-danger) 8%,var(--st-card))}.st-stage{max-width:920px;margin:2.25rem auto 1.25rem;padding:0 1.25rem}.st-eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--st-ink-soft-2);margin:0 0 .35rem;font-weight:600}.st-title{font-family:Fraunces,Iowan Old Style,Georgia,serif;font-weight:500;font-style:italic;font-size:clamp(2rem,6vw,3rem);line-height:1.05;margin:0 0 .4rem}.st-sub{color:var(--st-ink-soft-2);font-size:.9375rem;margin:0}.st-habits{max-width:920px;margin:1.25rem auto 0;padding:0 1.25rem;display:grid;gap:.75rem}.st-habit-card{background:var(--st-card);border:1px solid var(--st-line);border-radius:var(--st-radius);padding:.9rem 1rem 1rem;box-shadow:var(--st-shadow)}.st-habit-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.st-habit-name-row{display:inline-flex;align-items:center;gap:.55rem;min-width:0}.st-habit-mark{width:10px;height:10px;border-radius:999px;flex-shrink:0}.st-habit-name{font-family:Fraunces,Iowan Old Style,Georgia,serif;font-style:italic;font-size:1.0625rem;font-weight:500;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-habit-actions{display:inline-flex;gap:.4rem}.st-habit-stats{display:flex;gap:1.1rem;margin-top:.55rem;color:var(--st-ink-soft);font-size:.8125rem;flex-wrap:wrap}.st-habit-stats strong{font-family:JetBrains Mono,ui-monospace,monospace;font-weight:500;color:var(--st-ink)}.st-grid{margin-top:.7rem;display:grid;grid-template-columns:repeat(30,minmax(0,1fr));gap:4px}.st-cell{appearance:none;border:0;padding:0;aspect-ratio:1;border-radius:4px;background:var(--st-cell-bg);cursor:pointer;transition:background-color .12s ease,transform 90ms ease}.st-cell:hover{transform:scale(1.06)}.st-cell:focus-visible{outline:2px solid var(--st-accent);outline-offset:1px}.st-cell.is-stamped{background:var(--cell-color, var(--st-accent))}.st-cell.is-today{box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--st-ink) 30%,transparent)}.st-cell.is-today.is-stamped{box-shadow:inset 0 0 0 2px color-mix(in oklab,white 50%,transparent)}.st-cell.is-future{opacity:.3;cursor:default;pointer-events:none}.st-empty{max-width:580px;margin:3rem auto 0;padding:0 1.25rem;text-align:center}.st-import{max-width:920px;margin:1.5rem auto 0;padding:0 1.25rem}.st-import-inner{background:var(--st-accent-soft);border:1px solid color-mix(in oklab,var(--st-accent) 30%,var(--st-line));border-radius:var(--st-radius);padding:.85rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.st-import-line{margin:0;color:var(--st-ink)}.st-import-actions{gap:.4rem}.st-row{display:inline-flex;gap:.5rem;flex-wrap:wrap}.st-why,.st-faq{max-width:740px;margin:3rem auto 0;padding:0 1.25rem}.st-h2{font-family:Fraunces,Iowan Old Style,Georgia,serif;font-style:italic;font-weight:500;font-size:clamp(1.5rem,3.6vw,2rem);margin:0 0 .85rem}.st-body{color:var(--st-ink-soft);font-size:1rem;line-height:1.65;max-width:60ch}.st-body+.st-body{margin-top:.6rem}.st-faq-list{display:grid;gap:.5rem;margin-top:1rem}.st-faq-item{border:1px solid var(--st-line);border-radius:var(--st-radius-sm);background:var(--st-card);padding:.75rem .9rem}.st-faq-q{cursor:pointer;font-weight:600;font-size:.9375rem;list-style:none}.st-faq-q::-webkit-details-marker{display:none}.st-faq-q:after{content:"+";float:right;color:var(--st-ink-soft-2);font-weight:400}details[open] .st-faq-q:after{content:"–"}.st-faq-a{color:var(--st-ink-soft);margin:.5rem 0 0;font-size:.9375rem;line-height:1.55}.st-toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);background:var(--st-ink);color:var(--st-bg);padding:.55rem .9rem;border-radius:999px;font-size:.875rem;box-shadow:var(--st-shadow-pop);z-index:50}.st-dialog{position:fixed;inset:0;z-index:40}.st-dialog-backdrop{position:absolute;inset:0;background:#1a160e66;backdrop-filter:blur(2px)}.st-dialog-panel{position:relative;max-width:460px;margin:4rem auto 0;background:var(--st-card);border:1px solid var(--st-line);border-radius:var(--st-radius-lg);box-shadow:var(--st-shadow-pop);padding:1.25rem 1.25rem 1.5rem}.st-dialog-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.85rem;gap:1rem}.st-form{display:grid;gap:1rem}.st-field{display:flex;flex-direction:column;gap:.35rem}.st-label{font-size:.8125rem;color:var(--st-ink-soft);font-weight:500}.st-input{appearance:none;border:1px solid var(--st-line);background:var(--st-bg);color:var(--st-ink);padding:.55rem .7rem;border-radius:var(--st-radius-sm);font:inherit;font-size:.9375rem}.st-input:focus{outline:2px solid var(--st-accent);outline-offset:2px;border-color:transparent}.st-color-row{display:inline-flex;gap:.4rem;flex-wrap:wrap}.st-color-swatch{appearance:none;border:2px solid transparent;background:var(--swatch);width:28px;height:28px;border-radius:999px;cursor:pointer;padding:0}.st-color-swatch[aria-checked=true]{border-color:var(--st-ink);box-shadow:0 0 0 2px var(--st-bg)}.st-edit-actions{justify-content:space-between;gap:.5rem}@media(max-width:600px){.st-topbar-actions .st-btn span{display:none}.st-grid{gap:3px}}
