:root{--linen: #EDE3D1;--linen-light: #F7F0E3;--linen-eve: #DED0B8;--weave: rgba(110, 86, 56, .035);--ink: #35291F;--ink-soft: #5C4D42;--thread-line: #7D6A53;--seam: rgba(125, 106, 83, .38);--corn: #34508F;--corn-light: #D9E0EF;--poppy: #B53F31;--sun: #F1B93F;--satin-edge: #9A6C1B;--wheat: #D59B34;--leaf: #4F7A3D;--cloud: #646E96;--moon: #5A6590;--petal: #FFFBF2;--ground: var(--linen);--pad: clamp(18px, 5.5vw, 32px);--gap: clamp(28px, 6.5vw, 42px)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--linen);color:var(--ink);font:400 19px/1.5 Alegreya Sans,system-ui,sans-serif;color-scheme:light;accent-color:var(--corn);caret-color:var(--corn);scrollbar-color:var(--thread-line) var(--linen);overscroll-behavior-y:none}::selection{background:var(--corn-light);color:var(--ink)}button,input,textarea{font:inherit;color:inherit}:where(button,input,textarea,[tabindex]):focus-visible{outline:2.5px solid var(--corn);outline-offset:3px;border-radius:6px}.app{min-height:100dvh;display:flex;flex-direction:column;background-color:var(--ground);background-image:repeating-linear-gradient(0deg,var(--weave) 0 1px,transparent 1px 5px),repeating-linear-gradient(90deg,var(--weave) 0 1px,transparent 1px 5px)}.app>*{width:100%;max-width:760px;margin-inline:auto}.app{overflow-x:clip}.app.eve{--ground: var(--linen-eve)}.band{position:relative;height:clamp(140px,38vw,180px);margin-top:max(6px,env(safe-area-inset-top))}.band-small{height:104px}.band svg{position:absolute;inset:0;width:100%;height:100%;display:block}.band .band-horizon{left:calc(50% - 50vw);width:100vw}.band-horizon,.chart{animation:sew 1s cubic-bezier(.16,1,.3,1) both}@keyframes sew{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}.luminary{transition:transform .55s cubic-bezier(.2,.8,.3,1)}.stitch{fill:none;stroke-width:2.6;stroke-dasharray:7 5;stroke-linecap:round}.stitch.leaf{stroke:var(--leaf)}.bloom-head{transform-box:fill-box;transform-origin:50% 100%;animation:bloom .5s cubic-bezier(.16,1,.3,1)}@keyframes bloom{0%{transform:scale(.35);opacity:.3}to{transform:none;opacity:1}}.bar{padding:4px var(--pad) 0}.bar-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.bar-top-end{justify-content:flex-end}.date{margin:0;font-size:18px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.hello{margin:6px 0 0;font:700 clamp(38px,11vw,50px)/1.02 Caveat,cursive;color:var(--corn);text-wrap:balance}.tabs{display:flex;gap:16px;flex:none}.tab{display:inline-flex;align-items:center;min-height:48px;background:none;border:0;padding:6px 2px;cursor:pointer;font-size:18px;font-weight:500;color:var(--ink-soft);border-bottom:2px dashed transparent;border-radius:0}.tab[aria-current=true]{color:var(--ink);border-bottom-color:var(--corn)}.sheet{flex:1;padding:0 var(--pad) var(--gap)}.section{margin-top:var(--gap)}.section>h2{margin:0 0 12px;font:700 21px/1.2 Alegreya Sans,sans-serif}.row{margin-top:20px;padding-top:16px;border-top:2px dashed var(--seam)}.row-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.row-label{font-size:21px;font-weight:700}.row-value{font-size:17px;font-weight:500;color:var(--ink-soft);font-variant-numeric:tabular-nums}.marks{display:grid;grid-template-columns:repeat(5,1fr);touch-action:pan-y}.mark-btn{appearance:none;background:none;border:0;padding:4px 0;cursor:pointer;display:grid;place-items:center;min-height:62px}.mark{width:clamp(46px,13vw,58px);height:clamp(46px,13vw,58px);display:block;transition:transform .18s ease}.mark-btn.is-current .mark{transform:scale(1.12)}.run{fill:none;stroke:var(--thread-line);stroke-width:2;stroke-dasharray:3.4 2.8;stroke-linecap:round;stroke-linejoin:round}.chips{display:flex;flex-wrap:wrap;gap:9px}.chip,.range button,.send{position:relative}.chip:after,.range button:after,.send:after{content:"";position:absolute;inset:4px;pointer-events:none;border:1.5px dashed var(--thread-line);border-radius:4px}.chip{appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;min-height:48px;padding:10px 15px;border-radius:7px;background:var(--linen-light);color:var(--ink);font-size:18px;line-height:1.2}.chip[aria-pressed=true]{background:var(--poppy);color:var(--linen-light)}.chip.plain[aria-pressed=true]{background:var(--corn)}.chip[aria-pressed=true]:after,.range button[aria-pressed=true]:after,.send:after{border-color:#f7f0e3a6}.chip-seed{width:9px;height:9px;margin-left:7px;color:var(--poppy)}.chip[aria-pressed=true] .chip-seed{color:var(--sun)}.note{width:100%;min-height:92px;resize:vertical;background:var(--linen-light);border:1.5px dashed var(--thread-line);border-radius:8px;padding:12px 14px;color:var(--ink);font-size:18px}.note::placeholder{color:var(--ink-soft)}.foot{position:sticky;bottom:0;margin-top:var(--gap);padding:12px var(--pad) calc(14px + env(safe-area-inset-bottom));background:var(--ground)}.foot:before{content:"";position:absolute;top:0;left:var(--pad);right:var(--pad);border-top:2px dashed var(--seam)}.send{width:100%;border:0;border-radius:10px;cursor:pointer;padding:18px;background:var(--corn);color:var(--linen-light);font:700 21px/1 Alegreya Sans,sans-serif}.send:after{inset:5px;border-radius:7px}.send:active:not(:disabled){background:#2a4478}.send:disabled{background:none;color:var(--ink-soft);font-weight:500;cursor:default;box-shadow:inset 0 0 0 1.5px var(--seam)}.send:disabled:after{display:none}.said{text-align:center;margin:10px 0 0;font-size:17px;color:var(--ink-soft)}.history .sheet{padding-bottom:40px}.range{display:flex;gap:8px}.range button{border:0;background:var(--linen-light);color:var(--ink);min-height:48px;padding:8px 16px;border-radius:7px;cursor:pointer;font-size:17px}.range button[aria-pressed=true]{background:var(--corn);color:var(--linen-light)}.chart{width:100%;height:auto;display:block}.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px 40px}.chart-label{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 4px;font-size:20px}.chart-name{display:inline-flex;align-items:center;gap:8px;font-weight:700}.chart-name .mark{width:32px;height:32px}.plot{position:relative;padding-left:24px}.tick{position:absolute;left:0;transform:translateY(-50%);font-size:15px;line-height:1;color:var(--ink-soft);font-variant-numeric:tabular-nums}.chart-label span{font-size:17px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.chart-axis{display:flex;justify-content:space-between;margin:2px 0 0;padding-left:24px;font-size:15px;color:var(--ink-soft)}.chart-note{margin:4px 0 0;font-size:17px;color:var(--ink-soft)}.grid{display:grid;gap:4px;grid-template-columns:auto repeat(3,1fr);align-items:center}.grid-head{font-size:16px;color:var(--ink-soft);text-align:center}.grid-day{font-size:16px;color:var(--ink-soft);padding-right:8px;white-space:nowrap;font-variant-numeric:tabular-nums}.cell{height:34px;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:15px;font-variant-numeric:tabular-nums;color:var(--ink);background:var(--linen-light) radial-gradient(rgba(125,106,83,.22) .7px,transparent .9px) 0 0 / 5px 5px;box-shadow:inset 0 0 0 1px var(--seam)}.cell b{font-weight:700}.cell.none{background:none;color:var(--thread-line);box-shadow:none;border:1.5px dashed var(--seam)}.xs{display:block;fill:none;stroke:var(--corn);stroke-width:1.7;stroke-linecap:round}.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:16px;color:var(--ink-soft)}.legend i{display:inline-block;width:15px;height:15px;border-radius:3px;margin-right:6px;vertical-align:-2px;box-shadow:inset 0 0 0 1px var(--seam)}.legend i.none{box-shadow:none;border:1.5px dashed var(--thread-line)}.empty{color:var(--ink-soft);margin:0}.center{flex:1;display:grid;align-content:center;gap:16px;padding:var(--pad)}.center h1{font:700 clamp(42px,11vw,54px)/1 Caveat,cursive;color:var(--corn);margin:0}.center p{margin:0;color:var(--ink-soft)}.field-input{width:100%;padding:13px 14px;border:1.5px dashed var(--thread-line);border-radius:8px;background:var(--linen-light);color:var(--ink)}.hint{margin:0;color:var(--ink-soft)}.about{margin-top:var(--gap);font-size:17px;color:var(--ink-soft)}.about p{margin:0 0 8px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:1ms!important;animation-duration:1ms!important}}
