@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/e98d46a045b40d15-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/5f17cfda124f680e-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/c6256ce6d30a299d-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/9187e9c0f697e151-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/b0ecc10bfe2ff8d4-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/1c0acefdc7f4bae4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/175336a67732591c-s.p.woff2) format("woff2");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-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/8140c3f5465d3dcb-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/c65239c6cd09dd6e-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/689d5aae6896c892-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/2404f3d7e0bb4cd0-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/b39c22a0b74cc818-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/47ae032d3fb504fe-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/bf0b6634f251496a-s.p.woff2) format("woff2");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-face{font-family:Literata Fallback;src:local("Times New Roman");ascent-override:99.62%;descent-override:26.07%;line-gap-override:0.00%;size-adjust:118.15%}.__className_574ef4{font-family:Literata,Literata Fallback}.__variable_574ef4{--font-reading:"Literata","Literata Fallback"}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/56069e83bb5b2425-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/91601dd83defba07-s.p.woff2) format("woff2");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-face{font-family:Schibsted Grotesk Fallback;src:local("Arial");ascent-override:93.46%;descent-override:24.67%;line-gap-override:0.00%;size-adjust:104.49%}.__className_caefae{font-family:Schibsted Grotesk,Schibsted Grotesk Fallback;font-style:normal}.__variable_caefae{--font-ui:"Schibsted Grotesk","Schibsted Grotesk Fallback"}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64418ffc17e50301-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0e96d314a90a6138-s.p.woff2) format("woff2");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-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ba43ea3467e29870-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b7ea2ab4a8ad1f81-s.p.woff2) format("woff2");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-face{font-family:DM Mono Fallback;src:local("Arial");ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.00%;size-adjust:134.59%}.__className_f9c3d4{font-family:DM Mono,DM Mono Fallback;font-style:normal}.__variable_f9c3d4{--font-mono:"DM Mono","DM Mono Fallback"}:root{--ground:#ebebe8;--leaf:#f7f7f5;--ink:#161716;--ink-soft:#4a4c49;--ink-faint:#767974;--rule:#d9d9d5;--sky-1:#ededea;--sky-2:#c2c4bc;--sky-3:#83877d;--topbar-h:52px;--tabbar-h:62px;--safe-top:env(safe-area-inset-top,0px);--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--accent:#2e7d4f;--on-accent:#ffffff;--accent-wash:color-mix(in oklab,var(--accent) 10%,var(--ground));--stroke:color-mix(in oklab,var(--accent) 80%,var(--ink));--step--1:0.8125rem;--step-0:1rem;--step-1:1.1875rem;--step-2:1.5rem;--step-3:2.125rem;--step-4:2.875rem;--gutter:16px;--tap:48px;--radius-s:6px;--radius-m:12px;--ease-out:cubic-bezier(0.22,1,0.36,1);--safe-bottom:env(safe-area-inset-bottom,0px);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#121413;--leaf:#1b1d1c;--ink:#ececea;--ink-soft:#b2b4b0;--ink-faint:#868984;--rule:#2c2e2c;--accent-wash:color-mix(in oklab,var(--accent) 18%,var(--ground));--stroke:color-mix(in oklab,var(--accent) 55%,white);color-scheme:dark}}:root[data-theme=dark]{--ground:#121413;--leaf:#1b1d1c;--ink:#ececea;--ink-soft:#b2b4b0;--ink-faint:#868984;--rule:#2c2e2c;--accent-wash:color-mix(in oklab,var(--accent) 18%,var(--ground));--stroke:color-mix(in oklab,var(--accent) 55%,white);color-scheme:dark}.scope{--accent-wash:color-mix(in oklab,var(--accent) 10%,var(--ground));--stroke:color-mix(in oklab,var(--accent) 80%,var(--ink))}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .scope{--accent-wash:color-mix(in oklab,var(--accent) 18%,var(--ground));--stroke:color-mix(in oklab,var(--accent) 55%,white)}}:root[data-theme=dark] .scope{--accent-wash:color-mix(in oklab,var(--accent) 18%,var(--ground));--stroke:color-mix(in oklab,var(--accent) 55%,white)}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100dvh;background:var(--ground);color:var(--ink);font-family:var(--font-ui),system-ui,sans-serif;font-size:var(--step-0);line-height:1.45;overflow-x:hidden}a{color:inherit}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--stroke);outline-offset:2px;border-radius:var(--radius-s)}img{max-width:100%}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.page{max-width:760px;margin:0 auto;padding:0 var(--gutter) calc(var(--tabbar-h) + 96px + var(--safe-bottom))}.chips{display:flex;gap:8px;overflow-x:auto;padding:14px var(--gutter);margin:0 calc(-1 * var(--gutter));scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--rule);background:var(--leaf);font-size:var(--step--1);transition:background-color .16s ease,color .16s ease,border-color .16s ease}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--ground)}.section-title{font-size:var(--step--1);font-weight:600;color:var(--ink-soft);margin:26px 0 6px;display:flex;justify-content:space-between;align-items:baseline}.section-title .count{font-weight:400;color:var(--ink-faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.empty{padding:40px 8px;color:var(--ink-soft);text-align:center}.empty strong{display:block;color:var(--ink);font-family:var(--font-reading),serif;font-size:var(--step-2);font-weight:500;margin-bottom:6px}.dock{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-bottom));padding:10px var(--gutter);background:color-mix(in oklab,var(--ground) 86%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--rule);z-index:20}.dock-inner{max-width:760px;margin:0 auto;display:flex;gap:8px}.btn{min-height:var(--tap);padding:0 18px;border-radius:var(--radius-m);border:1px solid var(--rule);background:var(--leaf);font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:transform .12s var(--ease-out),background-color .16s ease}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-quiet{border-color:transparent;background:transparent;color:var(--ink-soft)}.btn[disabled]{opacity:.45;cursor:default}input.field{width:100%;min-height:var(--tap);padding:0 14px;border-radius:var(--radius-m);border:1px solid var(--rule);background:var(--leaf);font-size:16px}input.field:focus{outline:none;border-color:var(--stroke)}.toast{position:fixed;left:50%;bottom:calc(var(--tabbar-h) + 84px + var(--safe-bottom));transform:translateX(-50%);z-index:40;display:flex;align-items:center;gap:14px;width:max-content;max-width:calc(100vw - 2 * var(--gutter));padding:8px 8px 8px 16px;border-radius:var(--radius-m);background:var(--ink);color:var(--ground);font-size:var(--step--1);box-shadow:0 8px 28px rgb(0 0 0/.22);animation:toast-in .22s var(--ease-out)}.toast button{min-height:36px;padding:0 12px;border:0;border-radius:var(--radius-s);background:color-mix(in oklab,var(--ground) 16%,transparent);color:inherit;font-weight:600}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}.syncbar{position:fixed;top:env(safe-area-inset-top,0);left:0;right:0;z-index:50;padding:6px var(--gutter);background:var(--ink);color:var(--ground);font-size:var(--step--1);text-align:center}.syncbar-problem{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;background:#8c2b1d;color:#fff}.syncbar-problem button{border:0;background:rgb(255 255 255/.18);border-radius:var(--radius-s);min-height:32px;padding:0 12px}.aisle-name{font-size:var(--step--1);font-weight:600;color:var(--stroke);margin:22px 0 2px}.items{list-style:none;margin:0;padding:0}.item{gap:12px;border-bottom:1px solid var(--rule)}.item,.item-check{display:flex;align-items:center;min-height:56px}.item-check{flex:1 1;min-width:0;gap:14px;padding:0;border:0;background:none;text-align:left}.box{flex:none;width:26px;height:26px;border-radius:8px;border:2px solid var(--ink-faint);display:grid;place-items:center;transition:background-color .18s ease,border-color .18s ease}.box svg{width:16px;height:16px;stroke:var(--on-accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .22s var(--ease-out) 60ms}.item-name{position:relative;font-size:var(--step-1);line-height:1.25}.item-name:after{content:"";position:absolute;left:-2px;right:-4px;top:55%;height:2px;background:var(--stroke);border-radius:2px;transform:scaleX(0) rotate(-1.5deg);transform-origin:left center;transition:transform .26s var(--ease-out)}.item.is-bought .box{background:var(--accent);border-color:var(--accent)}.item.is-bought .box svg{stroke-dashoffset:0}.item.is-bought .item-name{color:var(--ink-soft)}.item.is-bought .item-name:after{transform:scaleX(1) rotate(-1.5deg)}.qty{flex:none;min-width:52px;min-height:40px;padding:0 10px;border:1px dashed var(--rule);border-radius:var(--radius-s);background:none;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink-faint);font-size:var(--step--1)}select.qty{width:76px;min-width:0;padding:0 6px;-moz-appearance:none;appearance:none;-webkit-appearance:none;text-align:center}.qty.has-value{border-style:solid;color:var(--ink)}.qty-input{width:84px;min-height:40px;padding:0 8px;border-radius:var(--radius-s);border:1px solid var(--stroke);background:var(--leaf);font-size:16px}.item-arrive{animation:arrive .32s var(--ease-out)}@keyframes arrive{0%{opacity:0;transform:translateY(-8px)}}.add-form{display:flex;gap:8px;flex:1 1}.suggestions{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:6px}.suggestions button{min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--rule);background:var(--leaf);font-size:var(--step--1)}.reader{max-width:680px;margin:0 auto;padding:18px 20px calc(var(--tabbar-h) + 120px + var(--safe-bottom))}.reader-progress{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--accent);transform-origin:left;transform:scaleX(var(--progress,0));z-index:30}.reader-title{font-family:var(--font-reading),serif;font-size:clamp(2rem,7vw,2.75rem);line-height:1.12;font-weight:600;letter-spacing:-.015em;margin:0 0 12px}.reader-meta{color:var(--ink-faint);font-size:var(--step--1);margin:0 0 28px}.prose{font-family:var(--font-reading),serif;font-size:1.1875rem;line-height:1.72;color:var(--ink);overflow-wrap:break-word}.prose>:first-child{margin-top:0}.prose blockquote,.prose ol,.prose p,.prose pre,.prose table,.prose ul{margin:0 0 1.15em}.prose h1,.prose h2,.prose h3,.prose h4{font-family:var(--font-ui),sans-serif;line-height:1.25;letter-spacing:-.01em;margin:2em 0 .6em}.prose h1{font-size:1.5rem}.prose h2{font-size:1.3rem}.prose h3,.prose h4{font-size:1.1rem}.prose ol,.prose ul{padding-left:1.3em}.prose li{margin:.3em 0}.prose li::marker{color:var(--stroke)}.prose blockquote{margin-left:0;padding-left:1em;border-left:3px solid var(--accent);font-style:italic;color:var(--ink-soft)}.prose img{display:block;border-radius:var(--radius-m);margin:1.4em auto;max-height:70vh;width:auto}.prose a{color:var(--stroke);text-decoration-thickness:1px;text-underline-offset:3px}.prose .wikilink{color:var(--ink);text-decoration:none;background:var(--accent-wash);border-bottom:1.5px solid color-mix(in oklab,var(--accent) 50%,transparent);padding:0 1px}.prose .wikilink.missing{background:none;border-bottom:1px dotted var(--ink-faint);color:var(--ink-soft)}.prose code{font-size:.85em;padding:.1em .3em;border-radius:4px;background:var(--accent-wash)}.prose pre{overflow-x:auto;padding:14px;border-radius:var(--radius-m);background:var(--leaf);border:1px solid var(--rule);font-size:.85rem}.prose pre code{background:none;padding:0}.prose table{display:block;overflow-x:auto;border-collapse:collapse;font-family:var(--font-ui),sans-serif;font-size:.9rem}.prose td,.prose th{border-bottom:1px solid var(--rule);padding:6px 10px;text-align:left}.prose hr{border:0;height:1px;background:var(--rule);margin:2.4em 0}.prose input[type=checkbox]{accent-color:var(--accent);margin-right:.4em}.prose .callout{margin:0 0 1.15em;padding:14px 16px;border-radius:var(--radius-m);background:var(--accent-wash);font-size:1.0625rem}.prose .callout>:last-child{margin-bottom:0}.prose .callout-title{font-family:var(--font-ui),sans-serif;font-weight:600;font-size:var(--step--1);margin-bottom:4px}.related{margin-top:48px;padding-top:18px;border-top:1px solid var(--rule)}.related h2{font-size:var(--step--1);font-weight:600;color:var(--ink-soft);margin:0 0 8px}.related ul{list-style:none;margin:0;padding:0}.related a{display:flex;align-items:center;min-height:var(--tap);text-decoration:none;border-bottom:1px solid var(--rule)}.recipe-hero{margin:0 -20px 22px;aspect-ratio:16/10;overflow:hidden;background:var(--accent-wash)}.recipe-hero img{width:100%;height:100%;object-fit:cover;display:block}.facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 0 26px;padding:0;list-style:none;font-size:var(--step--1);color:var(--ink-soft)}.facts strong{display:block;color:var(--ink);font-size:var(--step-1);font-weight:500}.recipe-h{font-size:1.3rem;margin:30px 0 10px;letter-spacing:-.01em}.ingredients{list-style:none;padding:0;margin:0 0 14px}.ingredient{display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-bottom:1px solid var(--rule);font-size:1.0625rem;line-height:1.35}.ingredient input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--accent)}.ingredient label{flex:1 1}.ingredient .tag{flex:none;font-size:var(--step--1);color:var(--stroke);white-space:nowrap}.steps{list-style:none;counter-reset:step;padding:0;margin:0}.steps li{counter-increment:step;position:relative;padding:0 0 18px 44px;font-family:var(--font-reading),serif;font-size:1.125rem;line-height:1.6}.steps li:before{content:counter(step);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-family:var(--font-ui),sans-serif;font-size:var(--step--1);font-weight:600}.steps li p{margin:0}.cook{position:fixed;inset:0;z-index:60;background:var(--ground);display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top, 0px) + 14px) 22px calc(18px + var(--safe-bottom))}.cook-top{justify-content:space-between;color:var(--ink-soft);font-size:var(--step--1)}.cook-step,.cook-top{display:flex;align-items:center}.cook-step{flex:1 1;font-family:var(--font-reading),serif;font-size:clamp(1.5rem,6.4vw,2.25rem);line-height:1.4}.cook-step p{margin:0}.cook-dots{display:flex;gap:6px;justify-content:center;margin-bottom:14px}.cook-dots span{width:7px;height:7px;border-radius:50%;background:var(--rule);transition:background-color .2s ease,transform .2s var(--ease-out)}.cook-dots span[data-on=true]{background:var(--accent);transform:scale(1.3)}.cook-nav{display:grid;grid-template-columns:1fr 2fr;grid-gap:10px;gap:10px}.cook-step-enter{animation:step-in .28s var(--ease-out)}@keyframes step-in{0%{opacity:0;transform:translateX(18px)}}.unlock{min-height:100dvh;display:grid;place-items:center;padding:var(--gutter);text-align:center}.unlock h1{font-family:var(--font-reading),serif;font-weight:500;font-size:var(--step-4);margin:0 0 8px}.unlock p{color:var(--ink-soft);margin:0 auto 26px;max-width:30ch}.unlock .error{color:#b2321f;margin-top:14px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:1ms!important;transition-duration:1ms!important}}:root{--ease-spring:cubic-bezier(0.34,1.4,0.64,1);--shadow-card:0 1px 2px rgb(24 32 27/0.06),0 6px 18px -8px rgb(24 32 27/0.18)}.views-bar{position:-webkit-sticky;position:sticky;top:calc(var(--topbar-h) + var(--safe-top));z-index:15;display:flex;align-items:center;gap:8px;padding:10px var(--gutter);background:color-mix(in oklab,var(--ground) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--rule)}.views{position:relative;flex:1 1;display:flex;gap:2px;padding:3px;border-radius:999px;background:color-mix(in oklab,var(--ink) 7%,var(--ground));overflow-x:auto;scrollbar-width:none}.views::-webkit-scrollbar{display:none}.views-indicator{position:absolute;top:3px;bottom:3px;left:0;width:var(--w,0);transform:translateX(var(--x,0));border-radius:999px;background:var(--leaf);box-shadow:0 1px 3px rgb(0 0 0/.12);transition:transform .26s var(--ease-out),width .26s var(--ease-out)}.view-tab{position:relative;z-index:1;flex:none;min-height:36px;padding:0 14px;border:0;border-radius:999px;background:none;color:var(--ink-soft);font-size:var(--step--1);font-weight:500;white-space:nowrap;transition:color .16s ease}.view-tab[aria-selected=true]{color:var(--ink)}.view-count{margin-left:6px;color:var(--ink-faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.filter-btn{position:relative;flex:none;width:42px;height:42px;border-radius:50%;border:1px solid var(--rule);background:var(--leaf);display:grid;place-items:center;transition:transform .1s ease}.filter-btn:active{transform:scale(.92);transition:transform .22s var(--ease-spring)}.filter-btn svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;fill:none}.filter-btn.is-active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.filter-count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--ink);color:var(--ground);font-size:11px;font-weight:600;display:grid;place-items:center}.grid{display:grid;grid-gap:20px 12px;gap:20px 12px;margin-top:16px}.grid-cover,.grid-dish,.grid-poster{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-text{gap:10px}.grid-task,.grid-text{grid-template-columns:minmax(0,1fr)}.grid-task{gap:8px}@media (min-width:600px){.grid-cover,.grid-poster{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-text{grid-template-columns:repeat(2,minmax(0,1fr))}}.card{view-transition-class:card;display:flex;flex-direction:column;min-width:0;text-decoration:none;color:inherit;-webkit-touch-callout:none;transition:transform .22s var(--ease-spring)}.card:active{transform:scale(.97);transition:transform .1s ease}.card-picture{position:relative;display:block;aspect-ratio:2/3;border-radius:var(--radius-m);overflow:hidden;background:var(--accent-wash);box-shadow:var(--shadow-card)}.card-dish .card-picture{aspect-ratio:4/3}.card-cover .card-picture{border-radius:4px 10px 10px 4px}.card-cover .card-picture:after{content:"";position:absolute;inset:0 auto 0 0;width:7px;background:linear-gradient(90deg,rgb(0 0 0/.22),rgb(255 255 255/.12) 60%,transparent)}.card-picture img{width:100%;height:100%;object-fit:cover;display:block}.type-tile{position:absolute;inset:0;display:flex;align-items:flex-end;padding:12px;background:var(--grain),radial-gradient(140% 80% at 50% 120%,var(--sky-3) 0,var(--sky-2) 50%,transparent 85%),linear-gradient(180deg,var(--sky-1),var(--sky-2));background-blend-mode:overlay,normal,normal;color:var(--ink)}.type-tile span{font-family:var(--font-reading),serif;font-size:clamp(1.15rem,5vw,1.5rem);font-weight:600;line-height:1.08;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.card-stars{position:absolute;left:8px;bottom:8px;padding:2px 8px;border-radius:999px;background:rgb(0 0 0/.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#ffd66b;font-size:12px;letter-spacing:1px}.card-title{margin-top:8px;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-picture:has(.type-tile)+.card-title{display:none}.card-picture:has(.type-tile)~.card-meta{margin-top:8px}.card-meta{margin-top:2px;color:var(--ink-faint);font-size:var(--step--1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-text{padding:16px;border-radius:var(--radius-m);background:var(--leaf);box-shadow:var(--shadow-card);border-left:4px solid var(--accent)}.card-title-serif{margin-top:0;font-family:var(--font-reading),serif;font-size:var(--step-1);font-weight:600}.card-excerpt{margin-top:6px;color:var(--ink-soft);font-size:.9375rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-text .card-meta{margin-top:10px}.card-task{flex-direction:row;align-items:flex-start;gap:12px;padding:14px 14px 14px 12px;border-radius:var(--radius-m);background:var(--leaf);box-shadow:var(--shadow-card)}.card-task:active{transform:none}.task-check{flex:none;width:30px;height:30px;margin:-2px 0;border-radius:50%;border:2px solid var(--ink-faint);background:none;display:grid;place-items:center;transition:background-color .16s ease,border-color .16s ease,transform .22s var(--ease-spring)}.task-check:active{transform:scale(.85)}.task-check svg{width:16px;height:16px;stroke:var(--on-accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .22s var(--ease-out) 40ms}.card-task.is-done .task-check{background:var(--accent);border-color:var(--accent)}.card-task.is-done .task-check svg{stroke-dashoffset:0}.card-task.is-done .card-title{color:var(--ink-faint);text-decoration:line-through}.card-task-body{flex:1 1;min-width:0;text-decoration:none}.card-task .card-title{margin-top:0;font-weight:500}.card-badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}.badge{padding:1px 8px;border-radius:999px;background:var(--accent-wash);color:var(--stroke);font-size:12px;font-weight:500}.badge-due{background:var(--ink);color:var(--ground)}.card-meta-inline{color:var(--ink-faint);font-size:12px}::view-transition-group(.card){animation-duration:.3s;animation-timing-function:var(--ease-out)}::view-transition-new(.card):only-child{animation:card-in .26s var(--ease-out) both}::view-transition-old(.card):only-child{animation:card-out .18s ease-in both}@keyframes card-in{0%{opacity:0;transform:scale(.94)}}@keyframes card-out{to{opacity:0;transform:scale(.94)}}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation:none!important}}.sheet{width:100%;max-width:640px;max-height:82dvh;margin:auto auto 0;padding:0;border:0;border-radius:20px 20px 0 0;background:var(--ground);color:var(--ink);transform:translateY(100%);transition:transform .22s var(--ease-out),display .22s allow-discrete,overlay .22s allow-discrete}.sheet[open]{transform:translateY(0);transition-duration:.3s}@starting-style{.sheet[open]{transform:translateY(100%)}}.sheet::-webkit-backdrop{background:rgb(0 0 0/0);-webkit-transition:background-color .3s var(--ease-out),display .3s allow-discrete,overlay .3s allow-discrete;transition:background-color .3s var(--ease-out),display .3s allow-discrete,overlay .3s allow-discrete}.sheet::backdrop{background:rgb(0 0 0/0);transition:background-color .3s var(--ease-out),display .3s allow-discrete,overlay .3s allow-discrete}.sheet[open]::-webkit-backdrop{background:rgb(0 0 0/.4)}.sheet[open]::backdrop{background:rgb(0 0 0/.4)}@starting-style{.sheet[open]::-webkit-backdrop{background:rgb(0 0 0/0)}.sheet[open]::backdrop{background:rgb(0 0 0/0)}}.sheet-body{padding:10px var(--gutter) calc(16px + var(--safe-bottom));overflow-y:auto;max-height:82dvh}.sheet-handle{display:block;width:38px;height:5px;margin:0 auto 10px;border-radius:3px;background:var(--rule)}.sheet-head{display:flex;justify-content:space-between;align-items:center;min-height:var(--tap)}.sheet-head h2{margin:0;font-family:var(--font-reading),serif;font-size:var(--step-2);font-weight:600}.facet h3{margin:18px 0 8px;font-size:var(--step--1);font-weight:600;color:var(--ink-soft)}.facet-options{display:flex;flex-wrap:wrap;gap:8px}.chip-count{margin-left:4px;opacity:.6;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sheet-done{width:100%;margin-top:22px}.note-hero{display:flex;justify-content:center;margin:4px 0 22px}.note-hero img{width:min(52vw,240px);aspect-ratio:2/3;object-fit:cover;box-shadow:0 18px 40px -16px rgb(0 0 0/.45)}.note-actions,.note-hero img{border-radius:var(--radius-m)}.note-actions{display:flex;flex-direction:column;gap:14px;margin:0 0 30px;padding:14px;background:var(--leaf);box-shadow:var(--shadow-card)}.segmented{display:flex;padding:3px;border-radius:999px;background:color-mix(in oklab,var(--ink) 7%,var(--ground))}.segmented button{flex:1 1;min-height:40px;border:0;border-radius:999px;background:none;color:var(--ink-soft);font-size:var(--step--1);font-weight:500;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease}.segmented button[aria-checked=true]{background:var(--accent);color:var(--on-accent);box-shadow:0 1px 3px rgb(0 0 0/.15)}.stars{display:flex;align-items:center;gap:2px}.stars-label{flex:1 1;color:var(--ink-soft);font-size:var(--step--1)}.star{width:40px;height:40px;border:0;background:none;font-size:26px;line-height:1;color:color-mix(in oklab,var(--ink) 18%,var(--ground));transition:color .16s ease}.star.is-on{color:#e0a526}.star.is-popped{animation:star-pop .3s var(--ease-spring)}@keyframes star-pop{50%{transform:scale(1.3)}}.toggle,.toggles{display:flex;gap:10px}.toggle{flex:1 1;align-items:center;min-height:var(--tap);padding:0 12px;border:1px solid var(--rule);border-radius:var(--radius-m);background:var(--ground);font-weight:500}.toggle-track{position:relative;flex:none;width:42px;height:26px;border-radius:999px;background:var(--rule);transition:background-color .18s ease}.toggle-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgb(0 0 0/.25);transition:transform .24s var(--ease-spring)}.toggle[aria-checked=true] .toggle-track{background:var(--accent)}.toggle[aria-checked=true] .toggle-thumb{transform:translateX(16px)}.mono{font-size:10.5px;color:var(--ink-soft)}.mono,.topbar{font-family:var(--font-mono),ui-monospace,monospace;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.topbar{position:fixed;inset:0 0 auto;z-index:25;height:calc(var(--topbar-h) + var(--safe-top));padding:var(--safe-top) var(--gutter) 0;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:color-mix(in oklab,var(--ink) 80%,transparent);transition:background-color .24s var(--ease-out),box-shadow .24s var(--ease-out),color .24s var(--ease-out)}.topbar.is-solid{background:color-mix(in oklab,var(--ground) 82%,transparent);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 1px 0 var(--rule);color:var(--ink)}.topbar-back,.topbar-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-back{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);text-decoration:none}.topbar-back span{font-size:20px;line-height:1}.topbar-date{flex:none;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sky{position:relative;height:max(46vh,300px);margin-bottom:-1px;background:var(--grain),radial-gradient(130% 75% at 50% 112%,var(--sky-3) 0,color-mix(in oklab,var(--sky-3) 60%,var(--sky-2)) 22%,var(--sky-2) 48%,transparent 78%),linear-gradient(180deg,var(--sky-1) 0,color-mix(in oklab,var(--sky-1) 55%,var(--sky-2)) 70%,var(--sky-2) 100%);background-blend-mode:overlay,normal,normal;overflow:hidden}.sky:after{content:"";position:absolute;inset:auto -20% -40%;height:80%;background:radial-gradient(closest-side,color-mix(in oklab,var(--sky-3) 70%,white),transparent);opacity:.55;animation:horizon 1.6s var(--ease-out) both}@keyframes horizon{0%{transform:translateY(18%) scale(.9);opacity:0}}.sky-short{height:calc(var(--topbar-h) + var(--safe-top) + 120px)}.sky-dots{position:absolute;top:calc(var(--topbar-h) + var(--safe-top) + 14px);left:var(--gutter);display:flex;flex-direction:column;gap:10px;z-index:1}.mini-dots i,.sky-dots i{display:block;border-radius:50%;box-shadow:inset 0 0 0 1px rgb(255 255 255/.35)}.sky-dots i{width:11px;height:11px}.sky-end{position:absolute;bottom:0;left:0;width:1px;height:1px}.dash{max-width:760px;margin:0 auto;padding:18px var(--gutter) 6px}.dash-head{display:flex;justify-content:space-between;align-items:baseline}.mini-dots{display:inline-flex;gap:4px;margin-left:10px;vertical-align:middle}.mini-dots i{width:6px;height:6px}.dash-big{display:flex;align-items:flex-end;justify-content:space-between;margin:6px 0 14px}.big-number{font-size:clamp(3.5rem,17vw,4.75rem);font-weight:500;line-height:.95;letter-spacing:-.04em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.big-unit{margin-left:6px;font-size:1.125rem;font-weight:400;letter-spacing:0;color:var(--ink-faint)}.dash-glyph{color:var(--ink);margin-bottom:4px;stroke-width:1.1}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px 18px;gap:16px 18px;margin:0}.stat dt{margin-bottom:4px}.stat dd{margin:0;display:flex;align-items:center;justify-content:space-between;gap:10px}.stat-value{font-size:1.3rem;font-weight:500;letter-spacing:-.01em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gauge{position:relative;flex:none;width:5px;height:30px;border-radius:3px;background:linear-gradient(0deg,var(--sky-1),var(--sky-2) 45%,var(--sky-3));overflow:visible}.gauge-mark{position:absolute;left:-4px;right:-4px;bottom:calc(var(--g) * 100%);height:2px;margin-bottom:-1px;border-radius:1px;background:var(--ink);animation:gauge-in .7s var(--ease-out) both}@keyframes gauge-in{0%{bottom:0;opacity:0}}.progress-block{margin-top:18px}.progress{position:relative;height:46px;margin-top:6px;border-radius:12px;overflow:hidden;background:color-mix(in oklab,var(--sky-2) 40%,var(--leaf))}.progress-fill{position:absolute;inset:0 auto 0 0;width:var(--p);border-radius:12px;background:var(--grain),linear-gradient(90deg,var(--sky-1),var(--sky-2) 55%,var(--sky-3));background-blend-mode:overlay,normal;transform-origin:left;animation:fill-in .9s var(--ease-out) both .15s}@keyframes fill-in{0%{transform:scaleX(0)}}.progress-value{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:1.25rem;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.progress-value small{margin-left:2px;font-size:.7rem;color:var(--ink-soft)}.tabbar{position:fixed;inset:auto 0 0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tabbar-h) + var(--safe-bottom));padding:6px 8px var(--safe-bottom);background:color-mix(in oklab,var(--ground) 84%,transparent);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 -1px 0 var(--rule)}.tabbar-pill{position:absolute;top:6px;left:0;width:var(--pill-w,0);height:calc(var(--tabbar-h) - 12px);transform:translateX(var(--pill-x,0));opacity:var(--pill-o,0);border-radius:14px;background:var(--grain),radial-gradient(120% 120% at 50% 120%,var(--sky-3),var(--sky-2) 55%,var(--sky-1));background-blend-mode:overlay,normal;transition:transform .32s var(--ease-spring),width .32s var(--ease-out),opacity .2s ease}.tab{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:none;color:var(--ink-soft);text-decoration:none;font-family:var(--font-mono),ui-monospace,monospace;font-size:9.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;transition:color .18s ease,transform .1s ease}.tab:active{transform:scale(.9);transition:transform .22s var(--ease-spring)}.tab[aria-current=page]{color:var(--ink)}.tab[aria-current=page] svg{stroke-width:2}.more{position:fixed;inset:0;z-index:29}.more-backdrop{position:absolute;inset:0;border:0;background:rgb(0 0 0/.28);animation:fade-in .2s ease both}.more-panel{position:absolute;left:10px;right:10px;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 8px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;padding:10px;border-radius:20px;background:var(--ground);box-shadow:0 20px 50px -12px rgb(0 0 0/.4);transform-origin:90% 100%;animation:panel-in .26s var(--ease-spring) both}.more-item{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 10px;border-radius:14px;background:var(--leaf);text-decoration:none;font-weight:500;transition:transform .1s ease}.more-item:active{transform:scale(.96)}.more-sky{flex:none;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:#fff;background:var(--grain),radial-gradient(120% 120% at 50% 120%,var(--sky-3),var(--sky-2) 60%,var(--sky-1));background-blend-mode:overlay,normal}@keyframes fade-in{0%{opacity:0}}@keyframes panel-in{0%{opacity:0;transform:translateY(12px) scale(.94)}}.home{max-width:760px;margin:0 auto;padding:calc(var(--topbar-h) + var(--safe-top) + 12px) var(--gutter) calc(var(--tabbar-h) + 40px + var(--safe-bottom))}.home h1{margin:0 0 4px;font-size:clamp(3rem,15vw,4rem);font-weight:500;letter-spacing:-.04em;line-height:1}.home .lede{margin:0 0 22px;color:var(--ink-soft)}.beds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.bed{display:flex;flex-direction:column;justify-content:space-between;min-height:150px;padding:12px 14px;border-radius:18px;color:var(--ink);text-decoration:none;background:var(--grain),radial-gradient(140% 90% at 50% 125%,var(--sky-3) 0,var(--sky-2) 45%,transparent 80%),linear-gradient(180deg,var(--sky-1),var(--sky-2));background-blend-mode:overlay,normal,normal;transition:transform .22s var(--ease-spring)}.bed:active{transform:scale(.97);transition:transform .1s ease}.bed-top{display:flex;justify-content:space-between;align-items:center}.bed-top .mono{color:color-mix(in oklab,var(--ink) 75%,transparent)}.bed-count{font-size:2.6rem;font-weight:500;letter-spacing:-.04em;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bed-count small{display:block;margin-top:4px;font-family:var(--font-mono),ui-monospace,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in oklab,var(--ink) 70%,transparent)}.install-hint{margin-top:24px;color:var(--ink-soft);font-size:var(--step--1);line-height:1.55}.sky-short+.reader .note-hero,.sky-short+.reader .recipe-hero{margin-top:-96px;position:relative}