@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.contents{display:contents}}:root,:root[data-theme=dark]{color-scheme:dark;--canvas:#11110f;--surface:#181815;--raised:#20201c;--ink:#f1eee7;--muted:#aaa59b;--quiet:#777269;--line:#393730;--accent:#7e9be1;--accent-ink:#101722;--danger:#e4877c;--level-1:#3b3b36;--level-2:#565c62;--level-3:#61718a;--level-4:#6f89bd;--level-5:#91acee;--font-body:"Instrument Sans","Segoe UI",Arial,sans-serif;--font-utility:"IBM Plex Mono","Cascadia Mono","SFMono-Regular",Consolas,monospace}:root[data-theme=light]{color-scheme:light;--canvas:#f3f0e8;--surface:#ebe7dc;--raised:#fffdf7;--ink:#1d1c19;--muted:#656158;--quiet:#817c71;--line:#c9c3b6;--accent:#365ba8;--accent-ink:#fff;--danger:#9d3e35;--level-1:#d9d4c8;--level-2:#b9c0c8;--level-3:#91a2b9;--level-4:#6683b5;--level-5:#365ba8}*{box-sizing:border-box}html{background:var(--canvas);color:var(--ink);font-family:var(--font-body);-webkit-tap-highlight-color:transparent}body,html{min-width:320px}body{background:radial-gradient(#807c731a .45px,transparent .55px) 0 0 /5px 5px,var(--canvas);min-height:100dvh;margin:0}button,input,select,textarea{color:inherit;font:inherit}a,button,input,textarea{outline:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-frame,.app-main{min-height:100dvh}.brand-bar{width:min(100% - 2rem,64rem);padding-top:max(1.3rem,env(safe-area-inset-top));margin-inline:auto}.wordmark{letter-spacing:-.02em;align-items:center;gap:.7rem;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex}.wordmark-mark{grid-template-columns:repeat(3,1fr);gap:2px;width:1.2rem;display:grid}.wordmark-mark i{aspect-ratio:1;background:var(--ink)}.wordmark-mark i.accent{background:var(--accent)}.wordmark-mark--large{gap:4px;width:2.6rem}.app-main{width:min(100% - 2rem,64rem);padding:2.5rem 0 calc(7rem + env(safe-area-inset-bottom));margin-inline:auto}.app-main--auth{place-items:center;width:100%;padding:0;display:grid}.page{width:min(100%,50rem);margin-inline:auto}.year-page{width:100%}.bottom-nav{z-index:30;width:min(100%,34rem);min-height:4.6rem;padding:.35rem .65rem calc(.35rem + env(safe-area-inset-bottom));background:var(--canvas);border:1px solid var(--line);border-bottom:0;grid-template-columns:repeat(3,1fr);margin-inline:auto;display:grid;position:fixed;bottom:0;left:0;right:0}@supports (color:color-mix(in lab,red,red)){.bottom-nav{background:color-mix(in srgb,var(--canvas) 92%,transparent)}}.bottom-nav{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.nav-item{min-width:44px;min-height:52px;color:var(--muted);font-family:var(--font-utility);letter-spacing:.08em;text-transform:uppercase;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;font-size:.55rem;text-decoration:none;display:flex}.nav-item.is-active{color:var(--accent)}.nav-glyph{font-family:var(--font-utility);font-size:1.2rem;line-height:1}.page-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:1rem;padding-bottom:1.7rem;display:flex}.eyebrow{color:var(--accent);font-family:var(--font-utility);letter-spacing:.11em;text-transform:uppercase;margin:0 0 .65rem;font-size:.64rem}h1,h2,p{margin-top:0}h1{letter-spacing:-.065em;margin-bottom:0;font-size:clamp(2.7rem,8vw,5.3rem);font-weight:700;line-height:.86}h2{letter-spacing:-.035em}.accent{color:var(--accent)}.month-controls{gap:.4rem;display:flex}.icon-button{border:1px solid var(--line);background:0 0;place-items:center;width:44px;height:44px;display:grid}.icon-button:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.summary-grid{border-block:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin:1.5rem 0;display:grid}.summary-grid div{min-width:0;padding:1rem}.summary-grid div+div{border-left:1px solid var(--line)}.summary-grid span,.summary-grid strong{display:block}.summary-grid strong{font-family:var(--font-utility);font-size:1.35rem}.summary-grid span{color:var(--muted);font-family:var(--font-utility);letter-spacing:.05em;text-transform:uppercase;margin-top:.25rem;font-size:.55rem}.calendar-panel{margin-top:1.5rem}.calendar-grid,.weekday-row{grid-template-columns:repeat(7,minmax(44px,1fr));display:grid}.weekday-row span{color:var(--quiet);font-family:var(--font-utility);text-align:center;padding:.7rem 0;font-size:.58rem}.calendar-cell{aspect-ratio:1;min-width:0;padding:3px}.day-button{width:100%;min-width:44px;height:100%;min-height:44px;color:var(--muted);background:0 0;border:1px solid #0000;position:relative}.day-button:not(:disabled):hover{border-color:var(--line);background:var(--surface)}.day-button.is-today{border-color:var(--accent);color:var(--ink)}.day-button i{background:currentColor;height:5px;position:absolute;bottom:14%;left:17%;right:17%}.day-button.level-1 i,.level-legend .level-1,.year-square.level-1{background:var(--level-1)}.day-button.level-2 i,.level-legend .level-2,.year-square.level-2{background:var(--level-2)}.day-button.level-3 i,.level-legend .level-3,.year-square.level-3{background:var(--level-3)}.day-button.level-4 i,.level-legend .level-4,.year-square.level-4{background:var(--level-4)}.day-button.level-5 i,.level-legend .level-5,.year-square.level-5{background:var(--level-5)}.day-button.is-pending:after{background:var(--danger);content:"";width:4px;height:4px;position:absolute;top:6px;right:6px}.observation{border-block:1px solid var(--line);gap:1rem;margin:2rem 0;padding:1.1rem 0;display:flex}.observation-mark{background:var(--accent);flex:none;width:8px;height:8px;margin-top:.25rem}.observation p{margin-bottom:0}.observation span,.observation strong{display:block}.observation span{color:var(--muted);margin-top:.3rem}.reminder-banner{border:1px solid var(--accent);background:0 0;justify-content:space-between;align-items:center;gap:1rem;width:100%;min-height:52px;padding:.8rem 1rem;display:flex}.reminder-banner strong{color:var(--accent)}.sync-line{color:var(--quiet);font-family:var(--font-utility);text-transform:uppercase;align-items:center;gap:.5rem;font-size:.58rem;display:flex}.sync-dot{background:var(--accent);width:6px;height:6px}.sync-dot--error,.sync-dot--offline{background:var(--danger)}.sheet-backdrop{z-index:50;background:#00000094;justify-content:center;align-items:flex-end;padding:1rem;display:flex;position:fixed;inset:0}.day-sheet{border:1px solid var(--line);background:var(--raised);width:min(100%,38rem);max-height:calc(100dvh - 2rem);padding:1.4rem;overflow:auto;box-shadow:0 -16px 60px #0003}.sheet-header{justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1.7rem;display:flex}.sheet-header h2{max-width:25rem;margin:0;font-size:clamp(1.6rem,5vw,2.4rem);line-height:1}.picker{border:0;grid-template-columns:repeat(5,1fr);gap:.45rem;margin:0 0 1.5rem;padding:0;display:grid}.picker-legend{color:var(--muted);grid-column:1/-1;margin-bottom:.6rem;font-size:.78rem}.level-option{cursor:pointer;flex-direction:column;align-items:center;gap:.45rem;min-width:0;display:flex}.level-square{aspect-ratio:1;border:1px solid var(--line);place-items:center;width:100%;max-width:4rem;min-height:44px;display:grid}.level-square__core{aspect-ratio:1;background:var(--level-1);width:42%}.level-option--2 .level-square__core{background:var(--level-2)}.level-option--3 .level-square__core{background:var(--level-3)}.level-option--4 .level-square__core{background:var(--level-4)}.level-option--5 .level-square__core{background:var(--level-5)}.level-option input:checked+.level-square{border-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.level-option input:checked+.level-square{background:color-mix(in srgb,var(--accent) 12%,transparent)}}.level-label{color:var(--muted);font-family:var(--font-utility);font-size:.55rem}.entry-form label,.field{color:var(--muted);gap:.45rem;font-size:.8rem;display:grid}.entry-form label{justify-content:space-between;display:flex}.field input,textarea{border:1px solid var(--line);background:var(--surface);border-radius:0;width:100%}textarea{resize:vertical;margin-top:.5rem;padding:.85rem}.field input{min-height:44px;padding:.65rem .75rem}.button-pair,.sheet-actions{justify-content:flex-end;gap:.65rem;margin-top:1rem;display:flex}.button{border:1px solid var(--line);min-height:44px;font-family:var(--font-utility);letter-spacing:.05em;text-transform:uppercase;background:0 0;padding:.7rem 1rem;font-size:.66rem}.button--primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.button--danger{border-color:var(--danger);color:var(--danger)}.form-error{color:var(--danger);margin:.65rem 0}.sheet-enter-active,.sheet-leave-active{transition:opacity .18s}.sheet-enter-active .day-sheet,.sheet-leave-active .day-sheet{transition:transform .24s cubic-bezier(.2,.8,.2,1)}.sheet-enter-from,.sheet-leave-to{opacity:0}.sheet-enter-from .day-sheet,.sheet-leave-to .day-sheet{transform:translateY(2rem)}.year-scroll{overscroll-behavior-inline:contain;scrollbar-color:var(--quiet) transparent;scrollbar-width:thin;padding:.3rem 0 .65rem;overflow-x:auto}.contribution-panel{border:1px solid var(--line);background:var(--surface);padding:1rem 1rem .85rem}@supports (color:color-mix(in lab,red,red)){.contribution-panel{background:color-mix(in srgb,var(--surface) 42%,transparent)}}.contribution-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem;display:flex}.contribution-heading h2{letter-spacing:-.01em;margin:0;font-size:.83rem;font-weight:600}.year-chart{--square-size:12px;--square-gap:3px;grid-template-rows:1.25rem auto;grid-template-columns:2rem auto;-moz-column-gap:.5rem;column-gap:.5rem;width:-moz-max-content;width:max-content;display:grid}.year-months{grid-area:1/2;grid-template-columns:repeat(var(--week-count),var(--square-size));gap:var(--square-gap);color:var(--muted);font-family:var(--font-utility);text-transform:uppercase;font-size:.55rem;line-height:1;display:grid}.year-months span{white-space:nowrap}.year-landmarks{grid-area:2/1;grid-template-rows:repeat(7,var(--square-size));gap:var(--square-gap);color:var(--quiet);font-family:var(--font-utility);font-size:.5rem;line-height:var(--square-size);display:grid}.year-landmarks span:first-child{grid-row:2}.year-landmarks span:nth-child(2){grid-row:4}.year-landmarks span:nth-child(3){grid-row:6}.year-month h2{height:1.6rem;color:var(--muted);font-family:var(--font-utility);text-transform:uppercase;margin:0;font-size:.6rem;font-weight:500}.year-landmarks span{text-align:right}.year-days{grid-area:2/2;grid-template-columns:repeat(var(--week-count),var(--square-size));grid-template-rows:repeat(7,var(--square-size));gap:var(--square-gap);display:grid}.year-square{width:var(--square-size);min-width:var(--square-size);height:var(--square-size);min-height:var(--square-size);border:1px solid var(--line);background:var(--raised);border-radius:2px;padding:0}@supports (color:color-mix(in lab,red,red)){.year-square{background:color-mix(in srgb,var(--raised) 72%,transparent)}}.year-square{transition:border-color .1s,transform .1s}.year-square:not(:disabled):hover{z-index:1;border-color:var(--ink);transform:scale(1.18)}.year-square.is-today{outline:1px solid var(--accent);outline-offset:2px}.year-square:disabled{border-color:var(--line)}@supports (color:color-mix(in lab,red,red)){.year-square:disabled{border-color:color-mix(in srgb,var(--line) 28%,transparent)}}.year-square:disabled{background:var(--raised)}@supports (color:color-mix(in lab,red,red)){.year-square:disabled{background:color-mix(in srgb,var(--raised) 28%,transparent)}}.year-square:disabled{opacity:.5}.level-legend{color:var(--muted);font-family:var(--font-utility);text-transform:uppercase;flex:none;align-items:center;gap:3px;font-size:.55rem;display:flex}.level-legend span:first-child{margin-right:.25rem}.level-legend span:last-child{margin-left:.25rem}.level-legend i{border-radius:2px;width:10px;height:10px}.level-legend .level-empty{border:1px solid var(--line);background:var(--raised)}@supports (color:color-mix(in lab,red,red)){.level-legend .level-empty{background:color-mix(in srgb,var(--raised) 72%,transparent)}}.settings-stack{gap:1rem;margin-top:1.5rem;display:grid}.settings-section{border:1px solid var(--line);background:var(--surface);gap:1rem;margin-top:1rem;padding:1.2rem;display:grid}@supports (color:color-mix(in lab,red,red)){.settings-section{background:color-mix(in srgb,var(--surface) 60%,transparent)}}.section-heading{gap:1rem;display:flex}.section-heading>span{color:var(--accent);font-family:var(--font-utility);font-size:.62rem}.section-heading h2{margin:0;font-size:1.25rem}.section-heading p{color:var(--muted);margin:.2rem 0 0}.segmented-control{grid-template-columns:repeat(3,1fr);display:grid}.segmented-control label{min-width:0}.segmented-control input{opacity:0;position:absolute}.segmented-control span{border:1px solid var(--line);min-height:44px;font-family:var(--font-utility);text-transform:uppercase;place-items:center;font-size:.62rem;display:grid}.segmented-control input:checked+span{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.inline-choice{color:var(--muted);border:0;gap:1.2rem;padding:0;display:flex}.inline-choice legend{color:var(--muted);margin-bottom:.5rem;font-size:.8rem}.action-row,.switch-row{justify-content:space-between;align-items:center;gap:1rem;min-height:44px;display:flex}.switch-row small,.switch-row span{display:block}.switch-row small{color:var(--muted);margin-top:.25rem}.switch-row input{width:2.5rem;height:1.4rem}.text-button{min-height:44px;color:var(--accent);text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.fine-print,.form-status{color:var(--muted);margin:0;font-size:.78rem;line-height:1.45}.settings-save{justify-self:start}.danger-zone{border-color:var(--danger)}@supports (color:color-mix(in lab,red,red)){.danger-zone{border-color:color-mix(in srgb,var(--danger) 55%,var(--line))}}.sign-in-page{width:min(100% - 2rem,60rem);min-height:100dvh;padding-block:max(2rem,env(safe-area-inset-top)) max(2rem,env(safe-area-inset-bottom));grid-template-columns:1fr 26rem;align-items:center;gap:clamp(2rem,9vw,8rem);display:grid}.sign-in-brand h1{margin:1.3rem 0}.sign-in-brand>p:last-child{max-width:28rem;color:var(--muted);font-size:1.1rem;line-height:1.5}.clerk-card-box,.clerk-root{width:100%}.clerk-card{border:1px solid var(--line);background:var(--raised);box-shadow:none;border-radius:0}@media(min-width:42rem){.day-sheet{margin-bottom:2rem}}@media(max-width:42rem){.app-main{padding-top:1.7rem}.summary-grid{grid-template-columns:repeat(2,1fr)}.summary-grid div:nth-child(3){border-left:0}.summary-grid div:nth-child(3),.summary-grid div:nth-child(4){border-top:1px solid var(--line)}.contribution-heading{flex-direction:column;align-items:flex-start}.contribution-panel{padding-inline:.75rem}.sign-in-page{grid-template-columns:1fr;align-content:center;gap:2rem}.sign-in-brand h1{font-size:3.2rem}}@media(max-width:23rem){.app-main,.brand-bar{width:min(100% - .5rem,64rem)}.calendar-cell{padding:1px}.level-label{font-size:.48rem}.button-pair,.sheet-actions{flex-direction:column}.button-pair .button,.sheet-actions .button{width:100%}}@media(prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@font-face{font-family:Instrument Sans;src:local("Instrument Sans Variable"),url(../_fonts/KK7qrOqqIFCcORDposqP2UMdkwT7KS6SmrYRu27z_qQ-wN_IFOjKg8kjq3R_mtB7_-Ps7PWq-8n5H-ddLoW4870.woff2) format(woff2);font-display:swap;unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd;font-weight:400 700;font-style:normal}@font-face{font-family:IBM Plex Mono;src:local("IBM Plex Mono Regular"),local("IBM Plex Mono"),url(../_fonts/oA7rp6XLB_UIP_utZxXIDlSPcMeVLGKMaeey_kAD0fo-98JsXCHs_mcC6olFARmc-2GM9H4YyxJhTUClXLaqEOU.woff2) format(woff2);font-display:swap;unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd;font-weight:400;font-style:normal}@font-face{font-family:IBM Plex Mono;src:local("IBM Plex Mono Medium"),url(../_fonts/Y7f-8GVyzqqVUZE9RGKSEwHKp-J5xG9W9JvAuAXnukE-a6vWQ8lr44WUpidIwQELsd_UxxoksjFr_7OFl0B1cj4.woff2) format(woff2);font-display:swap;unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd;font-weight:500;font-style:normal}@font-face{font-family:IBM Plex Mono;src:local("IBM Plex Mono SemiBold"),url(../_fonts/4QnBRRPRkqsZZsI-BMyAY6O8mcHveU0lVITGztsdgaU-6W9goIX2kkUb_cEk1DVhEit9nFnfoMy0U1qs3xF4uAE.woff2) format(woff2);font-display:swap;unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd;font-weight:600;font-style:normal}
