:root{--paper:#fbfbf9;--paper-2:#f2f2ef;--paper-3:#e9e9e5;--surface:#ffffff;--ink:#111110;--ink-2:#56564f;--ink-3:#8d8d85;--rule:#e0e0da;--rule-2:#c7c7c0;--accent:#e0241b;--accent-ink:#ffffff;--accent-wash:#fdecea;--sans:"Archivo","Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;--tnum:"tnum" 1,"lnum" 1,"cv01" 1;--measure:680px;--rail:212px;--pad:20px;--tap:44px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0c0c0b;--paper-2:#151514;--paper-3:#1d1d1b;--surface:#121211;--ink:#f4f4f0;--ink-2:#a3a39a;--ink-3:#6e6e66;--rule:#262624;--rule-2:#3a3a37;--accent:#ff3b30;--accent-ink:#0c0c0b;--accent-wash:#2a1413;color-scheme:dark}}:root[data-theme=dark]{--paper:#0c0c0b;--paper-2:#151514;--paper-3:#1d1d1b;--surface:#121211;--ink:#f4f4f0;--ink-2:#a3a39a;--ink-3:#6e6e66;--rule:#262624;--rule-2:#3a3a37;--accent:#ff3b30;--accent-ink:#0c0c0b;--accent-wash:#2a1413;color-scheme:dark}*,:after,:before{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0}body{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;font-weight:400;letter-spacing:-.006em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100dvh;overscroll-behavior-y:none}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}.cyc .t,.deck,.empty,.foot-note,.ing,.lede,.note-t,.recipe-note,[contenteditable],input,textarea{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}button{background:none;border:0;padding:0;cursor:pointer;text-align:left}a{color:inherit;text-decoration:none}h1,h2,h3,h4,ol,p,ul{margin:0}ol,ul{padding:0;list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app{display:flex;flex-direction:column;min-height:100dvh}.rail{display:none}.head{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--rule);padding:calc(var(--safe-t) + 14px) var(--pad) 13px;display:flex;align-items:baseline;justify-content:space-between;gap:16px}.head-name{font-weight:500;letter-spacing:.14em}.head-meta,.head-name{font-family:var(--mono);font-size:11px;text-transform:uppercase}.head-meta{font-variant-numeric:tabular-nums;font-feature-settings:var(--tnum),"tnum";letter-spacing:.1em;color:var(--ink-3);display:flex;align-items:center;gap:10px;white-space:nowrap}.unsent{color:var(--accent)}.unsent:before{content:"";display:inline-block;width:5px;height:5px;background:var(--accent);margin-right:6px;vertical-align:1px}.leaf{flex:1 1;width:100%;max-width:var(--measure);margin:0 auto;padding:0 var(--pad) calc(var(--tap) + var(--safe-b) + 56px)}.foot{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--paper);border-top:1px solid var(--rule);padding-bottom:var(--safe-b);display:grid;grid-auto-flow:column;grid-auto-columns:1fr}.foot a{min-height:var(--tap);padding:9px 2px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--ink-3);border-right:1px solid var(--rule);transition:color .12s linear}.foot a:last-child{border-right:0}.foot a.on{color:var(--ink)}.foot a.on .lbl{color:var(--accent)}.foot .lbl{font-family:var(--mono);font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.1em}@media (min-width:900px){.app{flex-direction:row}.rail{display:flex;flex-direction:column;width:var(--rail);flex:0 0 var(--rail);border-right:1px solid var(--rule);position:-webkit-sticky;position:sticky;top:0;height:100dvh;background:var(--paper)}.rail-mark{padding:22px var(--pad) 20px;border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.22em}.rail-mark b{color:var(--accent);font-weight:500}.rail nav{display:flex;flex-direction:column}.rail nav a{display:flex;align-items:center;gap:11px;padding:11px var(--pad);border-bottom:1px solid var(--rule);color:var(--ink-2);font-size:14px;transition:background .12s linear,color .12s linear}.rail nav a.on,.rail nav a:hover{background:var(--paper-2);color:var(--ink)}.rail nav a.on{box-shadow:inset 2px 0 0 var(--accent)}.rail-foot{margin-top:auto;padding:16px var(--pad);border-top:1px solid var(--rule)}.main{flex:1 1;min-width:0;display:flex;flex-direction:column}.head{padding-left:28px;padding-right:28px}.leaf{padding:0 28px 96px;margin:0}.foot{display:none}}.strip{display:flex;align-items:center;gap:12px;padding:9px var(--pad);border-bottom:1px solid var(--rule);background:var(--paper-2);font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-2)}.strip span{flex:1 1;min-width:0}.strip button{min-height:30px;padding:0 10px;border:1px solid var(--ink);color:var(--ink);font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.11em;white-space:nowrap}.strip button:hover{background:var(--ink);color:var(--paper)}.strip button.x{border:0;padding:0 4px;color:var(--ink-3);font-size:12px}@media (min-width:900px){.strip{padding-left:28px;padding-right:28px}}.display{font-size:clamp(30px,7.5vw,42px);line-height:1.04;font-weight:500;letter-spacing:-.035em;margin:30px 0 0}.display .thin{color:var(--ink-3);font-weight:400}.display .rule{color:var(--accent)}.deck{margin-top:12px;font-size:16px;line-height:1.45;color:var(--ink-2);max-width:46ch}.deck b{font-weight:500;color:var(--ink)}.lede{margin-top:10px;font-size:13px;line-height:1.5;max-width:54ch}.label,.lede{color:var(--ink-3)}.label{font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.15em}.section{display:flex;align-items:center;gap:14px;margin:38px 0 0;padding-bottom:9px;border-bottom:1px solid var(--ink)}.section h2{font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.15em;color:var(--ink)}.section .fill{flex:1 1}.section .count{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--ink-3);font-variant-numeric:tabular-nums;font-feature-settings:var(--tnum),"tnum"}.section.sub{border-bottom-color:var(--rule-2);margin-top:26px}.section.sub h2{color:var(--ink-3)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:var(--tnum),"tnum"}.row{display:grid;grid-template-columns:22px 1fr auto;align-items:baseline;grid-gap:12px;gap:12px;width:100%;min-height:var(--tap);padding:13px 0 12px;border-bottom:1px solid var(--rule);color:inherit}button.row{transition:background .1s linear}button.row:hover{background:var(--paper-2)}button.row:active{background:var(--paper-3)}.row .mk{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--ink-3);font-variant-numeric:tabular-nums;font-feature-settings:var(--tnum),"tnum";letter-spacing:.04em}.row .mk.on{color:var(--accent)}.row .bd{min-width:0}.row .t{display:block;font-size:15px;line-height:1.34;overflow-wrap:anywhere}.row .m{display:block;margin-top:3px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3)}.row .m,.row .v{font-family:var(--mono)}.row .v{font-size:13px;font-variant-numeric:tabular-nums;font-feature-settings:var(--tnum),"tnum";color:var(--ink-2);white-space:nowrap}.row.done .t{text-decoration:line-through;text-decoration-thickness:1px;color:var(--ink-3)}.row.done .mk{color:var(--ink)}.row.timed{grid-template-columns:42px 1fr auto}.row.timed .mk{font-size:10px;letter-spacing:.02em}.figures,.row:last-of-type{border-bottom:1px solid var(--rule)}.figures{display:grid;grid-template-columns:repeat(var(--cols,3),1fr)}.figures>*{border-right:1px solid var(--rule);padding:16px 14px 15px 0}.figures>:last-child{border-right:0}.figures>*+*{padding-left:14px}.fig-n{font-family:var(--mono);font-size:26px;font-weight:400;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-feature-settings:var(--tnum),"tnum";display:block}.fig-n .u{font-size:12px;margin-left:3px;letter-spacing:0}.fig-l,.fig-n .u{color:var(--ink-3)}.fig-l{display:block;margin-top:8px;font-family:var(--mono);font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.13em}.fig-n.hot{color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 18px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-family:var(--mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.13em;transition:background .12s linear,color .12s linear,border-color .12s linear}.btn:hover{background:var(--ink);color:var(--paper)}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.3;pointer-events:none}.btn.fill{background:var(--ink);color:var(--paper)}.btn.fill:hover{background:var(--ink-2);border-color:var(--ink-2)}.btn.accent{border-color:var(--accent)}.btn.accent,.btn.accent:hover{background:var(--accent);color:var(--accent-ink)}.btn.accent:hover{filter:brightness(1.08)}.btn.quiet{border-color:var(--rule-2);color:var(--ink-2)}.btn.quiet:hover{background:var(--paper-2);color:var(--ink);border-color:var(--ink-3)}.btn.sm{min-height:34px;padding:0 12px;font-size:10px;letter-spacing:.11em}.btn.wide{width:100%}.btn-row{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}.btn-row .grow{flex:1 1}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.chip{min-height:34px;padding:0 11px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--rule-2);color:var(--ink-2);font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.11em;transition:all .12s linear}.chip:hover{border-color:var(--ink-3);color:var(--ink)}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.chip .n{opacity:.55;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.seg{display:flex;border:1px solid var(--rule-2);overflow-x:auto;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.seg button{flex:1 0 auto;min-height:40px;padding:0 14px;white-space:nowrap;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--rule-2);font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-3);transition:all .12s linear}.seg button:last-child{border-right:0}.seg button.on{background:var(--ink);color:var(--paper)}.field{display:block;margin-top:20px}.field>.label{display:block;margin-bottom:8px}.area,.input{width:100%;padding:12px 13px;min-height:var(--tap);background:var(--surface);border:1px solid var(--rule-2);color:var(--ink);font-size:16px;transition:border-color .12s linear}.area:focus,.input:focus{outline:none;border-color:var(--ink)}.area{min-height:116px;resize:vertical;line-height:1.5}.area::placeholder,.input::placeholder{color:var(--ink-3)}.stepper{display:flex;border:1px solid var(--rule-2)}.stepper button{width:54px;flex:0 0 54px;min-height:58px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:19px;color:var(--ink-2);transition:background .1s linear}.stepper button:hover{background:var(--paper-2);color:var(--ink)}.stepper button:active{background:var(--paper-3)}.stepper .val{flex:1 1;min-width:0;border-left:1px solid var(--rule-2);border-right:1px solid var(--rule-2);text-align:center;background:transparent;font-family:var(--mono);font-size:22px;font-variant-numeric:tabular-nums;font-feature-settings:var(--tnum),"tnum";letter-spacing:-.01em;padding:0 4px;-moz-appearance:textfield}.stepper .val::-webkit-inner-spin-button,.stepper .val::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper .val:focus{outline:none;background:var(--paper-2)}.stepper .unit{display:flex;align-items:center;padding:0 13px;border-left:1px solid var(--rule-2);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3)}.scrim{position:fixed;inset:0;z-index:90;background:color-mix(in srgb,var(--ink) 34%,transparent);animation:fade .14s ease-out}@keyframes fade{0%{opacity:0}}.sheet{position:fixed;left:0;right:0;z-index:91;bottom:var(--kb,0);background:var(--paper);border-top:1px solid var(--ink);padding:0 var(--pad) calc(var(--safe-b) + 22px);max-height:calc(88dvh - var(--kb, 0px));overflow-y:auto;animation:rise .2s cubic-bezier(.2,.7,.3,1)}@keyframes rise{0%{transform:translateY(100%)}}@media (min-width:700px){.sheet{left:50%;right:auto;bottom:auto;top:50%;transform:translate(-50%,-50%);max-height:88dvh;width:min(520px,calc(100vw - 48px));border:1px solid var(--ink);animation:pop .16s cubic-bezier(.2,.7,.3,1)}@keyframes pop{0%{opacity:0;transform:translate(-50%,-46%)}}}.sheet-head{position:-webkit-sticky;position:sticky;top:0;background:var(--paper);z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0 13px;margin-bottom:4px;border-bottom:1px solid var(--ink)}.sheet-head h3{font-family:var(--mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.14em}.sheet-x{width:32px;height:32px;margin-right:-6px;display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-size:17px;line-height:1}.sheet-x:hover{color:var(--ink)}.sheet .btn-row{margin-top:26px}.pad{width:100%;margin-top:22px;border:1px solid var(--ink);background:var(--surface);padding:34px 20px 26px;display:flex;flex-direction:column;align-items:center;-moz-user-select:none;user-select:none;-webkit-user-select:none;transition:background .06s linear}.pad:active{background:var(--paper-3)}.pad .count{font-family:var(--mono);font-size:clamp(64px,22vw,108px);line-height:.9;font-variant-numeric:tabular-nums;font-feature-settings:var(--tnum),"tnum";letter-spacing:-.045em}.pad .of{margin-top:12px;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-3)}.beads{display:grid;grid-template-columns:repeat(18,1fr);grid-gap:4px;gap:4px;width:100%;max-width:300px;margin:26px 0 20px}.bead{height:4px;background:var(--rule)}.bead.f{background:var(--accent)}.pad .hint{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:var(--ink-3)}.sets{flex-wrap:wrap;gap:6px;margin-top:12px}.set,.sets{display:flex}.set{min-width:74px;min-height:46px;padding:6px 10px;border:1px solid var(--rule-2);flex-direction:column;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums;font-feature-settings:var(--tnum),"tnum";color:var(--ink-3);transition:all .12s linear}.set:hover{border-color:var(--ink-3);color:var(--ink)}.set .n{font-size:8px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:3px;opacity:.7}.set.done{border-color:var(--ink);color:var(--ink);background:var(--paper-2)}.set.pr{border-color:var(--accent);color:var(--accent)}.set.add{border-style:dashed;min-width:46px;font-size:16px}.move{padding:20px 0 18px;border-bottom:1px solid var(--rule)}.move-h{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.move-h .nm{font-size:16px;letter-spacing:-.012em}.move-h .sc{font-family:var(--mono);font-size:10px;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.move-h .sc,.move-m{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3)}.move-m{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:12px;font-family:var(--mono);font-size:10px}.move-m b{font-weight:400;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pr-flag{color:var(--accent)}.bar{height:2px;background:var(--rule);margin-top:9px}.bar i{display:block;height:100%;background:var(--ink)}.bar.hot i{background:var(--accent)}.spark{display:block;width:100%;height:42px;margin-top:14px}.spark path{fill:none;stroke:var(--ink);stroke-width:1.25;vector-effect:non-scaling-stroke}.spark .base{stroke:var(--rule);stroke-width:1}.spark circle{fill:var(--accent)}.recipe{padding:4px 0 16px}.ing{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--rule)}.ing .n{font-size:14px}.ing .n i{display:block;margin-top:2px;font-size:9px;font-style:normal;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-3)}.ing .n i,.ing .q{font-family:var(--mono)}.ing .q{font-size:13px;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;font-feature-settings:var(--tnum),"tnum"}.ing .q em{display:block;margin-top:2px;font-style:normal;font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-3)}.recipe-note{margin-top:14px;font-size:13px;line-height:1.5;color:var(--ink-2);border-left:2px solid var(--accent);padding-left:12px;max-width:52ch}.count-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule)}.count-row .nm{font-size:15px}.count-row .stepper{width:190px;flex:0 0 190px}.count-row .stepper button{min-height:44px;width:44px;flex:0 0 44px;font-size:17px}.count-row .stepper .val{font-size:17px}.cycle{margin-top:6px;border-bottom:1px solid var(--rule)}.cyc{display:grid;grid-template-columns:26px 1fr auto;grid-gap:12px;gap:12px;align-items:baseline;padding:9px 0;border-top:1px solid var(--rule);color:var(--ink-3)}.cyc .i{font-family:var(--mono);font-size:10px;letter-spacing:.06em;font-variant-numeric:tabular-nums;font-feature-settings:var(--tnum),"tnum"}.cyc .t{font-size:14px;line-height:1.3;overflow-wrap:anywhere}.cyc .d{font-family:var(--mono);font-size:10px;letter-spacing:.06em;font-variant-numeric:tabular-nums;font-feature-settings:var(--tnum),"tnum";white-space:nowrap}.cyc.seen{color:var(--ink)}.cyc.seen .i{color:var(--ink-3)}.cyc.due,.cyc.due .d,.cyc.due .i{color:var(--accent)}.note{padding:18px 0 17px;border-bottom:1px solid var(--rule)}.note-h{display:flex;gap:12px;align-items:baseline;justify-content:space-between;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-3)}.note-h .hd{color:var(--accent)}.note-t{margin-top:9px;font-size:16px;line-height:1.46}.note-s{margin-top:10px;display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-2);border-bottom:1px solid var(--rule-2);padding-bottom:2px}.note-s:hover{color:var(--accent);border-color:var(--accent)}.mod{display:grid;grid-template-columns:26px 1fr auto;grid-gap:14px;gap:14px;align-items:start;padding:18px 0;border-bottom:1px solid var(--rule)}.mod .ic{color:var(--ink);padding-top:1px}.mod .ic.off{color:var(--ink-3);opacity:.5}.mod h4{font-size:15px;font-weight:500;letter-spacing:-.01em}.mod p{margin-top:4px;font-size:13px;color:var(--ink-2);line-height:1.42}.mod .owns{margin-top:7px;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3)}.mod.planned{opacity:.55}.sw{width:46px;height:26px;flex:0 0 46px;border:1px solid var(--rule-2);background:transparent;position:relative;transition:all .14s linear}.sw i{position:absolute;top:2px;left:2px;width:20px;height:20px;background:var(--ink-3);transition:all .14s cubic-bezier(.2,.7,.3,1)}.sw.on{border-color:var(--accent);background:var(--accent-wash)}.sw.on i{left:22px;background:var(--accent)}.sw[disabled]{opacity:.35}.empty{margin-top:26px;padding:30px 0 34px;border-bottom:1px solid var(--rule);color:var(--ink-3);font-size:14px;line-height:1.5;max-width:44ch}.empty b{display:block;color:var(--ink);font-weight:500;margin-bottom:6px;font-size:15px}.foot-note{margin-top:32px;padding-top:16px;border-top:1px solid var(--rule);font-size:12px;line-height:1.55;color:var(--ink-3);max-width:52ch}.foot-note b{font-weight:400;color:var(--ink-2)}.back{display:inline-flex;align-items:center;gap:8px;margin-top:18px;min-height:34px;font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.13em;color:var(--ink-3)}.back:hover{color:var(--accent)}.quick{position:fixed;right:var(--pad);z-index:45;bottom:calc(var(--tap) + var(--safe-b) + 20px);width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);font-size:22px;line-height:1;transition:filter .12s linear}.quick:hover{filter:brightness(1.1)}@media (min-width:900px){.quick{bottom:28px;right:28px}}