@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-normal-7BpKI3vF.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-normal-YHFkNujK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-normal-CFFu7zhK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f5efe6;--raised:#fbf8f3;--sunken:#ece4d8;--ink:#2b2420;--muted:#665a50;--faint:#8a7d71;--line:#ded4c5;--line-strong:#c9bca9;--period:#a93b28;--period-tint:#ecd3c8;--period-ghost:#d9a99b;--fertile:#2a6b53;--fertile-tint:#d5e5da;--fertile-mid:#8fbba5;--peak:#1f5a46;--focus:#1f5a46;--danger:#a93b28;--font-display:"Fraunces Variable", "Iowan Old Style", Georgia, serif;--font-body:"Instrument Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--radius:14px;--radius-sm:9px;--gutter:20px;--tabbar-h:64px;--ease:cubic-bezier(.22, .8, .26, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#1a1613;--raised:#241f1b;--sunken:#14110f;--ink:#f1e9de;--muted:#b0a396;--faint:#8a7e72;--line:#38302a;--line-strong:#4b4037;--period:#e58068;--period-tint:#4a2a22;--period-ghost:#7a4437;--fertile:#74bc9f;--fertile-tint:#243a31;--fertile-mid:#3f7a64;--peak:#8fd3b6;--focus:#8fd3b6;--danger:#e58068;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--paper)}body{background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0;font-size:16px;line-height:1.45}h1,h2,h3,p{margin:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}.display{font-family:var(--font-display);font-variation-settings:"opsz" 96, "SOFT" 60, "WONK" 0;letter-spacing:-.02em;font-weight:420;line-height:1}.num{font-variant-numeric:tabular-nums}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.muted{color:var(--muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{background:var(--ink);min-height:48px;color:var(--paper);transition:transform .15s var(--ease), opacity .15s;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:16px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.98)}.btn[disabled]{opacity:.45;cursor:default}.btn--period{background:var(--period);color:var(--paper)}@media (prefers-color-scheme:dark){.btn--period{color:#1a1613}}.btn--ghost{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line-strong);background:0 0}.btn--block{width:100%}.link-btn{color:var(--ink);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);font-weight:600}.link-btn--danger{color:var(--danger)}.field{gap:6px;display:grid}.field>label,.field>.label{color:var(--muted);font-size:13px;font-weight:600}.input{background:var(--raised);border:1.5px solid var(--line);border-radius:var(--radius-sm);appearance:none;width:100%;min-height:48px;padding:10px 14px}.input:focus-visible{border-color:var(--ink);outline:none}textarea.input{resize:vertical;min-height:84px;line-height:1.4}.page{padding:calc(env(safe-area-inset-top) + 22px) var(--gutter) calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 28px);max-width:560px;animation:rise .45s var(--ease) both;margin:0 auto}.rule{border:0;border-top:1px solid var(--line);margin:0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.tabbar{z-index:20;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--paper);border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;inset:auto 0 0}.tabbar__item{color:var(--muted);letter-spacing:.01em;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11.5px;font-weight:600;display:flex;position:relative}.tabbar__item[aria-current=page]{color:var(--ink)}.tabbar__item[aria-current=page]:before{content:"";background:var(--period);border-radius:50%;width:5px;height:5px;position:absolute;top:7px;transform:translate(15px)}.icon-btn{width:44px;height:44px;color:var(--ink);border-radius:50%;place-items:center;display:grid}@media (hover:hover){.icon-btn:hover{background:var(--sunken)}}.toggle{background:var(--line-strong);width:52px;height:32px;transition:background .2s var(--ease);border-radius:999px;flex:none;position:relative}.toggle:after{content:"";width:26px;height:26px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle[aria-checked=true]{background:var(--fertile)}.toggle[aria-checked=true]:after{transform:translate(20px)}.toggle[disabled]{opacity:.5}.stepper{align-items:center;gap:6px;display:inline-flex}.stepper__btn{width:42px;height:42px;box-shadow:inset 0 0 0 1.5px var(--line-strong);border-radius:50%;place-items:center;display:grid}.stepper__btn[disabled]{opacity:.35}.stepper__value{justify-content:center;align-items:baseline;gap:5px;min-width:84px;display:flex}.stepper__value .display{font-size:30px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{min-height:40px;box-shadow:inset 0 0 0 1.5px var(--line-strong);border-radius:999px;padding:0 15px;font-size:15px;transition:background .15s,color .15s}.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);box-shadow:none}.notice{background:var(--sunken);border-radius:12px;padding:14px 16px;font-size:15px;line-height:1.5}.fine{color:var(--muted);max-width:44ch;margin-top:22px;font-size:13px;line-height:1.55}.toast-region{inset:auto 0 calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 14px) 0;z-index:60;pointer-events:none;justify-content:center;display:flex;position:fixed}.toast{background:var(--ink);max-width:min(90vw,420px);color:var(--paper);animation:rise .3s var(--ease) both;border-radius:999px;padding:12px 18px;font-size:15px;font-weight:500}.toast--error{background:var(--period);color:var(--paper)}.boot,.page--loading{min-height:60dvh}.sheet{width:100%;max-width:560px;max-height:none;color:var(--ink);background:0 0;border:0;margin:auto auto 0;padding:0;overflow:visible}.sheet::backdrop{background:#18110c80;animation:.25s both fade}.sheet__panel{background:var(--paper);max-height:92dvh;animation:slide .38s var(--ease) both;border-radius:26px 26px 0 0;flex-direction:column;padding-top:8px;display:flex}.sheet__grip{background:var(--line-strong);border-radius:2px;width:38px;height:4px;margin:0 auto 2px}.sheet__head{padding:4px 8px 0 var(--gutter);justify-content:space-between;align-items:center;display:flex}.sheet__title{font-size:26px}.sheet__body{overscroll-behavior:contain;padding:6px var(--gutter) 20px;flex:1;overflow-y:auto}.sheet__foot{padding:12px var(--gutter) calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--paper)}@keyframes slide{0%{opacity:0;transform:translateY(40px)}}@keyframes fade{0%{opacity:0}}.day__meta{font-size:15px}.day__section{gap:10px;margin-top:24px;display:grid}.day__by{margin-top:22px;font-size:13px}.day__hint{font-size:14px;line-height:1.45}.day__period-actions{flex-wrap:wrap;align-items:center;gap:10px 18px;display:flex}.day__period-actions .btn{min-height:44px;font-size:15px}.flow{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.flow__btn{border-radius:var(--radius-sm);color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--line);flex-direction:column;align-items:center;gap:4px;padding:12px 0 10px;font-size:13px;font-weight:600;transition:background .15s;display:flex}.flow__btn[aria-pressed=true]{background:var(--period-tint);color:var(--period);box-shadow:inset 0 0 0 1.5px var(--period)}.sheet-form{gap:18px;padding-top:10px;display:grid}.sheet-form__delete{justify-self:start}.login{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 24px) var(--gutter) calc(env(safe-area-inset-bottom) + 28px);flex-direction:column;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.login__mark{width:min(86vw,400px);height:auto;animation:rise .8s var(--ease) both;position:absolute;top:-28px;right:-70px}.login__body{max-width:440px;animation:rise .6s .1s var(--ease) both;position:relative}.login__title{margin-left:-4px;font-size:clamp(76px,24vw,120px);font-weight:380}.login__lead{max-width:17em;margin-top:14px;font-size:20px;line-height:1.35}.login__actions{justify-items:start;gap:14px;margin-top:34px;display:grid}.login__google{min-height:44px}.login__error{color:var(--danger);font-size:15px;font-weight:500}.login__dev{border-top:1px dashed var(--line-strong);gap:10px;width:100%;max-width:300px;padding-top:14px;display:grid}.login__fine{color:var(--muted);max-width:34ch;margin-top:28px;font-size:13px}.onboard{max-width:520px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 22px) var(--gutter) calc(env(safe-area-inset-bottom) + 28px);flex-direction:column;margin:0 auto;display:flex}.onboard__progress{gap:6px;margin-bottom:44px;display:flex}.onboard__progress span{background:var(--line);border-radius:2px;flex:1;height:4px;transition:background .3s}.onboard__progress .is-on{background:var(--period)}.onboard__step{animation:rise .45s var(--ease) both;flex-direction:column;flex:1;gap:20px;display:flex}.onboard__step>.btn--block:last-child,.onboard__step>.btn--block:nth-last-child(2):not(:only-child){margin-top:auto}.onboard__step>.onboard__skip{margin-top:0}.onboard__title{margin-top:-8px;font-size:clamp(40px,11vw,54px);font-weight:400;line-height:1.02}.onboard__lead{color:var(--muted);font-size:17px;line-height:1.5}.onboard__lead strong{color:var(--ink);font-weight:600}.onboard__ok{color:var(--fertile);align-items:center;gap:10px;font-weight:600;display:flex}.onboard__form{gap:22px;margin:6px 0;display:grid}.onboard__skip{align-self:center}.steps{margin:4px 0;padding:0;list-style:none;display:grid}.steps__item{border-top:1px solid var(--line);grid-template-columns:34px 1fr 30px;align-items:start;gap:14px;padding:18px 0;line-height:1.45;display:grid}.steps__item:last-child{border-bottom:1px solid var(--line)}.steps__n{color:var(--period);font-size:34px;line-height:.95}.steps__icon{color:var(--ink);justify-self:end}.home__hero{margin-top:6px}.home__dayrow{align-items:flex-end;gap:14px;display:flex}.home__num{font-variation-settings:"opsz" 144, "SOFT" 80, "WONK" 0;letter-spacing:-.045em;margin-left:-6px;font-size:clamp(104px,33vw,148px);font-weight:340}.home__daylabel{color:var(--muted);margin:14px 0 -14px 2px;font-size:15px;font-weight:600}.home__numlabel{color:var(--muted);padding-bottom:20px;font-size:15px;font-weight:600}.home__headline{margin-top:4px;font-size:32px;font-weight:440;line-height:1.08}.home__sub{max-width:32ch;color:var(--muted);margin-top:8px;font-size:16px}.strip{width:100%;height:auto;margin:22px 0 14px;display:block;overflow:visible}.home__row{justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 0;display:flex}.home__next{margin:4px 0 2px;font-size:30px;font-weight:440}.home__explain{max-width:34ch;font-size:14.5px;line-height:1.45}.home__logged{max-width:26ch;margin-top:4px;font-size:16px}.home__by{margin-top:4px;font-size:13px}.home__log .btn{flex:none;min-height:44px}.home__flag{text-align:left;background:var(--raised);border-left:3px solid var(--period);border-radius:0 var(--radius-sm) var(--radius-sm) 0;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:14px;padding:12px 14px;font-size:14.5px;line-height:1.4;display:flex}.home__cta{margin-top:6px}.confidence{color:var(--muted);flex:none;align-items:center;gap:8px;padding-top:2px;font-size:13px;font-weight:600;display:inline-flex}.confidence__pips{gap:3px;display:inline-flex}.confidence__pips i{background:var(--line-strong);border-radius:50%;width:7px;height:7px}.confidence__pips i.is-on{background:var(--fertile)}.cal__head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.cal__title{font-size:36px;font-weight:400}.cal__nav{margin-right:-10px;display:flex}.cal__grid{grid-template-columns:repeat(7,1fr);display:grid}.cal__dow{text-align:center;letter-spacing:.04em;color:var(--muted);padding:6px 0 10px;font-size:12px;font-weight:600}.cal__cell{height:54px;position:relative}.cal__cell button{place-items:center;display:grid;position:absolute;inset:0}.cal__num{z-index:1;border-radius:50%;place-items:center;width:38px;height:38px;font-size:16px;display:grid;position:relative}.cal__cell.is-out{opacity:.36}.band:before{content:"";background:color-mix(in oklab, var(--fertile) 17%, var(--paper));height:38px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.band--puncak:before{background:color-mix(in oklab, var(--fertile) 42%, var(--paper))}.band-start:before{border-radius:999px 0 0 999px;left:4px}.band-end:before{border-radius:0 999px 999px 0;right:4px}.band-start.band-end:before{border-radius:999px}.is-period .cal__num{background:var(--period);color:var(--paper);font-weight:600}.is-predicted .cal__num{box-shadow:inset 0 0 0 1.5px var(--period);color:var(--period);border:1.5px dashed var(--period);box-shadow:none;background-clip:padding-box;font-weight:600}.is-today .cal__num{box-shadow:0 0 0 2px var(--paper), 0 0 0 3.5px var(--ink);font-weight:700}.cal__marks{justify-content:center;gap:3px;display:flex;position:absolute;bottom:2px;left:0;right:0}.cal__mark{background:var(--ink);border-radius:50%;width:5px;height:5px}.is-period .cal__mark{background:var(--period)}.cal__heart{z-index:2;width:13px;height:13px;color:var(--period);pointer-events:none;position:absolute;top:3px;left:calc(50% + 9px)}.cal__mark--lh,.is-period .cal__mark--lh{background:var(--ink);border-radius:1px;transform:rotate(45deg)}.legend{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:10px 20px;margin:22px 0 0;padding:16px 0 0;font-size:13px;list-style:none;display:flex}.legend li{align-items:center;gap:8px;display:flex}.key{border-radius:50%;width:16px;height:16px;display:inline-block}.key--period{background:var(--period)}.key--predicted{border:1.5px dashed var(--period)}.key--subur{background:color-mix(in oklab, var(--fertile) 17%, var(--paper));width:22px;height:14px;box-shadow:inset 0 0 0 1px var(--line);border-radius:7px}.key--puncak{background:color-mix(in oklab, var(--fertile) 42%, var(--paper));border-radius:7px;width:22px;height:14px}.key--dot{background:var(--ink);width:5px;height:5px;margin:0 5px}.key--heart{width:14px;height:14px;color:var(--period);margin:0 1px}.key--lh{background:var(--ink);border-radius:1px;width:6px;height:6px;margin:0 5px;transform:rotate(45deg)}.hist__title{margin-top:4px;font-size:40px;font-weight:400}.hist__summary{align-items:flex-end;gap:22px;margin:26px 0 8px;display:flex}.hist__avg{letter-spacing:-.04em;font-size:84px;font-weight:340}.hist__basis{flex:1;padding-bottom:8px;font-size:14px;line-height:1.45}.hist__flags{gap:12px;margin:22px 0 8px;display:grid}.flag{background:var(--raised);border-left:3px solid var(--period);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:14px 16px;font-size:15px;line-height:1.45}.flag__actions{align-items:center;gap:16px;margin-top:12px;display:flex}.flag__actions .btn{min-height:42px;padding:0 18px;font-size:15px}.hist__list{border-top:1px solid var(--line);margin-top:18px}.cycle{text-align:left;border-bottom:1px solid var(--line);width:100%;padding:15px 0 16px;display:block}.cycle__head{justify-content:space-between;gap:12px;margin-bottom:9px;font-size:15px;font-weight:600;display:flex}.cycle.is-current .cycle__head>span:first-child{color:var(--fertile)}.cycle__head .muted{font-weight:500}.cycle__badge{color:var(--period);box-shadow:inset 0 0 0 1px var(--period);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11.5px;font-style:normal;font-weight:600}.bar{border-radius:6px;height:11px;display:flex;overflow:hidden}.bar i{height:100%;display:block}.bar__period{background:var(--period)}.bar__rest{background:var(--line-strong)}.bar__ahead{background:repeating-linear-gradient(90deg, var(--line-strong) 0 3px, transparent 3px 7px);opacity:.7}.is-flagged .bar__rest{background:var(--period-ghost)}.hist__empty{max-width:34ch;padding:26px 0;font-size:15px}.hist__add{margin-top:24px}.group{margin-top:36px}.group>.eyebrow{border-bottom:1px solid var(--line-strong);padding-bottom:10px}.row{border-bottom:1px solid var(--line);color:inherit;justify-content:space-between;align-items:center;gap:16px;padding:15px 0;text-decoration:none;display:flex}.row__title{font-weight:600}.row .muted{font-size:14px}.row--link svg{color:var(--muted);flex:none}.prefs.is-dim{opacity:.55}.invite{border-bottom:1px solid var(--line);gap:14px;padding:16px 0;display:grid}.invite .muted{font-size:13.5px;line-height:1.5}.input--time{text-align:center;width:auto;min-width:120px}.settings__test{margin-top:16px}
