:root{--bg:#faf6f1;--surface:#fff;--surface-2:#f3ece3;--ink:#2a2420;--ink-2:#6b6058;--line:#e7ddd0;--accent:#d9482b;--accent-ink:#fff;--accent-soft:#fbe6df;--ok:#3d7a4a;--warn:#b7791f;--warn-soft:#fbf0d9;--danger:#b3261e;--radius:14px;--shadow:0 1px 2px #3c28140f, 0 6px 20px #3c28140f;--serif:ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1b1815;--surface:#25211d;--surface-2:#2e2924;--ink:#f1ebe4;--ink-2:#a79b90;--line:#3a342d;--accent:#ef6a4c;--accent-ink:#1b0f0b;--accent-soft:#3d2620;--ok:#7ec28c;--warn:#e5b04f;--warn-soft:#36301f;--danger:#f08a82;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);padding-bottom:env(safe-area-inset-bottom);margin:0;font-size:16px;line-height:1.5}h1,h2,h3{font-family:var(--serif);letter-spacing:-.01em;margin:0 0 .5em;line-height:1.2}h1{font-size:1.9rem}h2{font-size:1.35rem}h3{font-size:1.1rem}p{margin:0 0 .8em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}small,.muted{color:var(--ink-2)}.small{font-size:.875rem}.center{text-align:center}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.stack>*+*{margin-top:14px}.grow{flex:1;min-width:0}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top);position:sticky;top:0}.topbar-inner{align-items:center;gap:18px;max-width:1040px;margin:0 auto;padding:10px 16px;display:flex}.brand{font-family:var(--serif);color:var(--ink);align-items:center;gap:8px;font-size:1.3rem;font-weight:700;display:flex}.brand:hover{text-decoration:none}.brand img{border-radius:7px;width:26px;height:26px}.nav{align-items:center;gap:4px;margin-left:auto;display:flex}.nav a,.nav button.linklike{color:var(--ink-2);border-radius:999px;padding:7px 12px;font-size:.95rem;font-weight:500}.nav a:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.nav a.active{background:var(--accent-soft);color:var(--accent)}.page{max-width:1040px;margin:0 auto;padding:20px 16px 100px}.page.narrow{max-width:640px}.page.auth{max-width:420px;padding-top:8vh}.bottomnav{display:none}@media (width<=720px){.nav{display:none}.topbar-inner .who{margin-left:auto}.bottomnav{z-index:30;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottomnav a{text-align:center;color:var(--ink-2);flex-direction:column;align-items:center;gap:2px;padding:9px 4px 8px;font-size:.72rem;display:flex}.bottomnav a.active{color:var(--accent)}.bottomnav a:hover{text-decoration:none}.bottomnav svg{width:22px;height:22px}h1{font-size:1.6rem}}@media (width>=721px){.only-mobile{display:none!important}}input,select,textarea,button{font:inherit;color:inherit}input[type=text],input[type=password],input[type=url],input[type=search],input[type=number],input[type=email],select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:11px;outline:none;width:100%;padding:11px 13px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea{resize:vertical;min-height:120px;line-height:1.45}label{margin-bottom:5px;font-size:.9rem;font-weight:600;display:block}.field{margin-bottom:14px}.hint{color:var(--ink-2);margin-top:4px;font-size:.85rem}.btn,button.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:11px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2);text-decoration:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.06);background:var(--accent)}.btn.danger{color:var(--danger)}.btn.small{border-radius:9px;padding:6px 11px;font-size:.85rem}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn[disabled]{opacity:.55;cursor:default}button.linklike{cursor:pointer;color:var(--accent);background:0 0;border:0;padding:0}button.linklike:hover{text-decoration:underline}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card.flat{box-shadow:none}.alert{border-radius:11px;margin-bottom:14px;padding:11px 14px;font-size:.95rem}.alert.error{color:#8c1d18;background:#fde9e7}.alert.ok{color:#1f5a2d;background:#e3f2e6}.alert.warn{background:var(--warn-soft);color:var(--warn)}@media (prefers-color-scheme:dark){.alert.error{color:#f5b3ad;background:#3d1f1d}.alert.ok{color:#a7dbb2;background:#1f3325}}.chip{background:var(--surface-2);color:var(--ink-2);cursor:default;border:0;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:.8rem;font-weight:500;display:inline-flex}a.chip,button.chip{cursor:pointer}a.chip:hover{background:var(--accent-soft);color:var(--accent);text-decoration:none}.chip.on{background:var(--accent);color:var(--accent-ink)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chips{flex-wrap:wrap;gap:6px;display:flex}.addbox{gap:8px;margin-bottom:14px;display:flex}.addbox input{flex:1}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar .search{flex:1;min-width:200px}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}@media (width<=480px){.grid{grid-template-columns:repeat(2,1fr);gap:12px}}.rcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--ink);flex-direction:column;display:flex;position:relative;overflow:hidden}.rcard:hover{text-decoration:none;transform:translateY(-1px)}.rcard .thumb{aspect-ratio:4/3;background:var(--surface-2);color:var(--ink-2);place-items:center;font-size:2rem;display:grid;overflow:hidden}.rcard .thumb img{object-fit:cover;width:100%;height:100%}.rcard .body{padding:10px 12px 12px}.rcard .title{font-family:var(--serif);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:6px;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.rcard .meta{color:var(--ink-2);flex-wrap:wrap;gap:8px;font-size:.8rem;display:flex}.rcard .fav{color:#fff;background:#00000073;border-radius:999px;place-items:center;width:28px;height:28px;font-size:.9rem;display:grid;position:absolute;top:8px;right:8px}.empty{text-align:center;color:var(--ink-2);padding:56px 16px}.empty .big{margin-bottom:8px;font-size:3rem}.imports{gap:8px;margin-bottom:16px;display:grid}.import{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.import.failed{border-color:color-mix(in srgb, var(--danger) 40%, var(--line))}.spinner{border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;flex:none;width:18px;height:18px;margin-top:2px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hero{grid-template-columns:1fr;gap:16px;margin-bottom:18px;display:grid}@media (width>=760px){.hero.has-img{grid-template-columns:300px 1fr}}.hero-img{border-radius:var(--radius);aspect-ratio:4/3;background:var(--surface-2);overflow:hidden}.hero-img img{object-fit:cover;width:100%;height:100%}.facts{flex-wrap:wrap;gap:18px;margin:10px 0;display:flex}.fact{color:var(--ink-2);flex-direction:column;font-size:.8rem;display:flex}.fact b{color:var(--ink);font-size:1.05rem;font-family:var(--serif)}.cols{grid-template-columns:1fr;gap:22px;display:grid}@media (width>=860px){.cols{grid-template-columns:340px 1fr;align-items:start}.cols .sticky{position:sticky;top:76px}}.ing-list{margin:0;padding:0;list-style:none}.ing-list li{border-bottom:1px dashed var(--line);align-items:baseline;gap:10px;padding:7px 0;display:flex}.ing-list li:last-child{border-bottom:0}.ing-list .q{text-align:right;white-space:nowrap;min-width:4.4em;font-weight:600}.ing-list .inferred{color:var(--warn)}.ing-group{font-family:var(--serif);color:var(--accent);margin:14px 0 2px;font-weight:600}.steps{counter-reset:step;margin:0;padding:0;list-style:none}.steps li{counter-increment:step;grid-template-columns:34px 1fr;gap:10px;padding:10px 0;display:grid}.steps li:before{content:counter(step);background:var(--accent-soft);width:28px;height:28px;color:var(--accent);border-radius:50%;place-items:center;font-size:.9rem;font-weight:700;display:grid}.planlist{margin:0;padding-left:1.2em}.planlist li{margin:4px 0}.scale{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.scale button{cursor:pointer;width:36px;height:36px;color:var(--accent);background:0 0;border:0;font-size:1.2rem}.scale button:hover{background:var(--surface-2)}.scale span{text-align:center;min-width:3.2em;font-weight:700}.seg{border:1px solid var(--line);background:var(--surface);border-radius:999px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;padding:6px 12px;font-size:.85rem;font-weight:600}.seg button.on{background:var(--accent);color:var(--accent-ink)}details.fold{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 14px}details.fold summary{cursor:pointer;font-weight:600}details.fold[open] summary{margin-bottom:8px}pre.raw{white-space:pre-wrap;font-family:var(--sans);color:var(--ink-2);max-height:320px;margin:0;font-size:.9rem;overflow:auto}.stars button{cursor:pointer;color:var(--line);background:0 0;border:0;padding:0 2px;font-size:1.4rem}.stars button.on{color:#e2a21a}.macros{text-align:center;grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.macros div{background:var(--surface-2);border-radius:10px;padding:8px 4px}.macros b{font-family:var(--serif);font-size:1.1rem;display:block}.macros span{color:var(--ink-2);font-size:.75rem}.shop-list{margin:0;padding:0;list-style:none}.shop-list li{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 4px;display:flex}.shop-list li.done .t{color:var(--ink-2);text-decoration:line-through}.shop-list input[type=checkbox],.check input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent);flex:none}.cook{background:var(--bg);z-index:50;padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;position:fixed;inset:0}.cook-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 16px;display:flex}.cook-body{flex:1;width:100%;max-width:760px;margin:0 auto;padding:22px 20px;overflow:auto}.cook-step{font-size:clamp(1.4rem,4.6vw,2.1rem);line-height:1.4;font-family:var(--serif)}.cook-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:10px;display:grid}.cook-foot .btn{padding:16px;font-size:1.1rem}.progress{background:var(--surface-2);border-radius:3px;flex:1;height:5px;overflow:hidden}.progress i{background:var(--accent);height:100%;transition:width .2s;display:block}table.t{border-collapse:collapse;width:100%;font-size:.92rem}table.t th,table.t td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:9px 8px}table.t th{color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}code,.code{background:var(--surface-2);word-break:break-all;border-radius:6px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.copybox{gap:8px;display:flex}.copybox input{font-family:ui-monospace,monospace;font-size:.85rem}@media print{.topbar,.bottomnav,.hidden-print,.cook-foot,.no-print{display:none!important}body{color:#000;background:#fff}.page{max-width:none;padding:0}.card,details.fold{box-shadow:none;border-color:#ccc}.cols{grid-template-columns:260px 1fr}.cols .sticky{position:static}.steps li:before{color:#000;background:#eee}a{color:#000}:root{--bg:#fff;--surface:#fff;--ink:#000;--ink-2:#444;--line:#ccc;--accent:#000;--accent-soft:#eee}}
