@font-face{font-family:MazeLine;src:url(/fonts/MazeLine-Free.ttf)format("truetype");font-display:swap}:root{--ink-950:#1a1616;--paper-0:#fff;--paper-50:#ededeb;--paper-100:#dcdcd9;--coral-bg:#f0645a;--coral-ink:#4c0c08;--sage-bg:#9ac97f;--sage-ink:#1f4515;--sky-bg:#3fb6de;--sky-ink:#073342;--marigold-bg:#f0a93b;--marigold-ink:#4a2e06;--violet-bg:#c589d6;--violet-ink:#451f4d;--ok-600:#176a46;--ok-300:#6fc79a;--warning-700:#7a5107;--warning-300:#e3ae4d;--danger-700:#9e1440;--danger-300:#e27fa0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--keyline-width:2px;--control-border-width:3px;--focus-ring-width:2px;--focus-ring-offset:2px;--control-height:44px;--control-height-compact:32px;--toggle-inset:2px;--field-width-numeric:140px;--button-radius:0px;--input-radius:0px;--chip-radius:0px;--card-radius:0px;--overlay-radius:0px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--font-display:"Anton", "Arial Narrow", sans-serif;--font-heading:"Anton", "Arial Narrow", sans-serif;--font-reading:"Archivo", system-ui, sans-serif;--font-ui:"Archivo", system-ui, sans-serif;--font-label:"Archivo", system-ui, sans-serif;--font-logotype:"MazeLine", monospace;--text-xs:12px;--text-sm:13.5px;--text-base:16px;--text-md:18px;--text-lg:20px;--text-xl:24px;--text-2xl:30px;--text-3xl:40px;--text-4xl:52px;--dur-micro:.11s;--dur-micro-exit:80ms;--dur-small:.17s;--dur-small-exit:.13s;--dur-standard:.25s;--dur-standard-exit:.2s;--dur-view:.34s;--dur-view-exit:.3s;--ease-entrance:cubic-bezier(.3,.7,.4,1);--ease-exit:cubic-bezier(.5,0,.75,.2);--ease-stamp:cubic-bezier(.34,1.4,.64,1);--bg-base:var(--paper-0);--surface-1:#fff;--surface-2:var(--paper-50);--surface-3:#fff;--text-high:var(--ink-950);--text-muted:#5c5854;--keyline:var(--ink-950);--accent:var(--coral-bg);--accent-solid:oklch(from var(--accent) clamp(.42, l, .58) c h);--accent-hover:color-mix(in oklch, var(--accent), black 12%);--accent-pressed:color-mix(in oklch, var(--accent), black 22%);--accent-subtle:color-mix(in oklch, var(--accent) 14%, var(--bg-base));--accent-border:color-mix(in oklch, var(--accent) 70%, var(--bg-base));--accent-ink:var(--coral-ink);--text-on-accent:#fff;--surface-on-accent:#fff;--ink-on-accent:var(--coral-ink);--ok:var(--ok-600);--ok-subtle:#ddeee4;--warning:var(--warning-700);--warning-subtle:#f3e4c2;--danger:var(--danger-700);--danger-subtle:#f7dce7;--elevation-1:0 1px 3px #1a161624;--elevation-2:0 4px 14px #1a161629;--scrim:#1a161699;--cat-1-bg:var(--coral-bg);--cat-1-ink:var(--coral-ink);--cat-2-bg:var(--sage-bg);--cat-2-ink:var(--sage-ink);--cat-3-bg:var(--sky-bg);--cat-3-ink:var(--sky-ink);--cat-4-bg:var(--marigold-bg);--cat-4-ink:var(--marigold-ink);--cat-5-bg:var(--violet-bg);--cat-5-ink:var(--violet-ink)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}[data-theme=dark],[data-theme=light] .dark-ground{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-base:#121212;--surface-1:#1c1c1c;--surface-2:#242424;--surface-3:#2a2a2a;--text-high:#e8e8e4;--text-muted:#a8a89f;--keyline:#e8e8e4;--accent:var(--coral-bg);--accent-hover:color-mix(in oklch, var(--accent), white 14%);--accent-pressed:color-mix(in oklch, var(--accent), white 24%);--accent-subtle:color-mix(in oklch, var(--accent) 18%, var(--bg-base));--accent-border:color-mix(in oklch, var(--accent) 60%, var(--bg-base));--accent-ink:#e8877d;--ok:var(--ok-300);--ok-subtle:#1c3327;--warning:var(--warning-300);--warning-subtle:#332608;--danger:var(--danger-300);--danger-subtle:#3a1826;--elevation-1:0 1px 3px #00000080;--elevation-2:0 6px 20px #0000008c;--scrim:#000000a6}[data-theme=oled]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-base:#000;--surface-1:#0a0a0a;--surface-2:#161616;--surface-3:#1f1f1f;--text-high:#dcdcd6;--text-muted:#9e9e96;--keyline:#dcdcd6;--accent:var(--coral-bg);--accent-hover:color-mix(in oklch, var(--accent), white 16%);--accent-pressed:color-mix(in oklch, var(--accent), white 26%);--accent-subtle:color-mix(in oklch, var(--accent) 20%, var(--bg-base));--accent-border:color-mix(in oklch, var(--accent) 60%, var(--bg-base));--accent-ink:#e8877d;--ok:var(--ok-300);--ok-subtle:#131f17;--warning:var(--warning-300);--warning-subtle:#231a08;--danger:var(--danger-300);--danger-subtle:#28121c;--elevation-1:0 0 0 1px #ffffff1a;--elevation-2:0 0 0 1px #ffffff24;--scrim:#000000bf}*{box-sizing:border-box}html,body{margin:0}body{background-color:var(--bg-base);color:var(--text-high);font-family:var(--font-ui);font-size:var(--text-base)}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-heading);color:var(--text-high);margin:0 0 var(--space-3);text-transform:uppercase;letter-spacing:.01em}h1{font-family:var(--font-display);font-size:var(--text-3xl);line-height:1.05}h2{font-size:var(--text-2xl);border-bottom:var(--keyline-width) solid var(--keyline);padding-bottom:var(--space-3);margin-top:0;line-height:1.1}h3{font-size:var(--text-lg)}p{color:var(--text-muted);line-height:1.55;font-family:var(--font-ui)}.reading{font-family:var(--font-reading);color:var(--text-high);line-height:1.6}.label{font-family:var(--font-label);letter-spacing:.02em;font-weight:700;font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase}.dim{color:var(--text-muted);font-size:var(--text-xs)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:var(--focus-ring-width) solid var(--accent);outline-offset:var(--focus-ring-offset)}.icon{stroke:currentColor;stroke-width:1.5px;fill:none;stroke-linecap:square;stroke-linejoin:miter;width:24px;height:24px}.mark{font-family:var(--font-logotype);color:var(--text-high);line-height:.8;display:inline-block}.mark.reveal{opacity:0;animation:settle-in var(--dur-view) var(--ease-entrance) forwards;transform:scale(.85)}@keyframes settle-in{to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.mark.reveal{opacity:1;animation:none;transform:scale(1)}}.btn{font-family:var(--font-label);font-weight:700;font-size:var(--text-sm);letter-spacing:.02em;text-transform:uppercase;border-radius:var(--button-radius);height:var(--control-height);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-2);border:none;padding:0 22px;display:inline-flex}.btn-primary{background-color:var(--accent-solid);color:var(--text-on-accent);transition:transform var(--dur-micro) var(--ease-stamp), background-color var(--dur-micro) var(--ease-entrance)}.btn-primary:hover{background-color:var(--accent-hover)}.btn-primary:active{transform:scale(.96)}.btn-secondary{color:var(--text-high);border:var(--control-border-width) solid var(--keyline);background:0 0}.btn-secondary:hover{background:var(--surface-2)}.btn-ghost{color:var(--text-high);border:var(--control-border-width) solid transparent;background:0 0}.btn-ghost:hover{border-color:var(--keyline)}.btn[disabled]{cursor:not-allowed;pointer-events:none}.btn[disabled]:not(.is-loading){opacity:.45}.btn-icon{width:var(--space-10);height:var(--space-10);border:var(--control-border-width) solid transparent;color:var(--text-high);background:0 0;justify-content:center;padding:0}.btn-icon:hover,.btn-icon:focus-visible{border-color:var(--keyline)}.btn-in-bar{height:var(--control-height-compact);padding:0 var(--space-3)}@media (prefers-reduced-motion:reduce){.btn-primary{transition:none}.btn-primary:active{transform:none}}.field{margin-bottom:var(--space-4);flex-direction:column;gap:6px;max-width:360px;display:flex}.field input,.field textarea{font-family:var(--font-ui);font-size:var(--text-base);background:var(--surface-1);color:var(--text-high);border:var(--control-border-width) solid var(--keyline);border-radius:var(--input-radius);padding:10px 12px}.field input:focus,.field textarea:focus{box-shadow:0 0 0 var(--focus-ring-width) var(--accent);outline:none}.field.error input,.field.error textarea{border-color:var(--danger)}.help{font-size:var(--text-xs);color:var(--text-muted);font-family:var(--font-ui);align-items:center;gap:var(--space-1);display:flex}.field.error .help,.help-error,.required-mark{color:var(--danger)}.help .icon{width:var(--space-4);height:var(--space-4);flex-shrink:0}.field-numeric{max-width:var(--field-width-numeric)}.field-title{max-width:none}.field-title input{font-size:var(--text-2xl);font-family:var(--font-heading);text-transform:uppercase}.chip{font-family:var(--font-label);text-transform:uppercase;border-radius:var(--chip-radius);align-items:center;gap:6px;padding:5px 10px;font-size:11px;font-weight:700;display:inline-flex}.chip-tag{color:var(--text-high);border:var(--keyline-width) solid var(--keyline);cursor:pointer;background:0 0}.chip-create{color:var(--text-high);border:var(--keyline-width) dashed var(--keyline);cursor:pointer;background:0 0}.chip-filter{background:var(--accent-subtle);color:var(--accent-ink);border:var(--keyline-width) solid var(--accent-border);cursor:pointer}.ingredient-amt-chip input{width:52px;font:inherit;color:inherit;text-align:right;background:0 0;border:none;border-right:1px solid;margin-right:2px;padding:0 6px 0 0}.ingredient-amt-chip input:focus{outline:none}.chip .chip-untag{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;line-height:1;display:inline-flex}.segmented{border:var(--control-border-width) solid var(--keyline);align-self:flex-start;width:fit-content;display:inline-flex}.segmented button{font-family:var(--font-label);font-weight:700;font-size:var(--text-xs);text-transform:uppercase;padding:var(--space-2) var(--space-4);background:var(--surface-1);color:var(--text-high);border:none;border-right:var(--control-border-width) solid var(--keyline);cursor:pointer;white-space:nowrap}.segmented button:last-child{border-right:none}.segmented button[aria-pressed=true]{background:var(--text-high);color:var(--bg-base)}.segmented button:hover:not([aria-pressed=true]){background:var(--surface-2)}.toast-layer{left:0;right:0;bottom:var(--space-6);pointer-events:none;z-index:100;justify-content:center;display:flex;position:fixed}.toast{background:var(--text-high);color:var(--bg-base);box-shadow:var(--elevation-2);padding:var(--space-3) var(--space-5);align-items:center;gap:var(--space-4);font-family:var(--font-label);font-weight:700;font-size:var(--text-xs);text-transform:uppercase;white-space:nowrap;pointer-events:auto;animation:toast-rise var(--dur-standard) var(--ease-entrance);display:flex}@keyframes toast-rise{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.empty-slot{background:var(--surface-2);color:var(--text-muted);font-family:var(--font-ui);font-size:var(--text-sm);text-align:center;padding:var(--space-6) var(--space-4);margin:0}.overlay-scrim{background:var(--scrim);padding:var(--space-6);z-index:200;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.overlay-panel{background:var(--surface-3);border:var(--keyline-width) solid var(--keyline);border-radius:var(--overlay-radius);width:100%;max-width:420px;animation:overlay-enter var(--dur-standard) var(--ease-entrance)}.overlay-panel .head{background:var(--text-high);color:var(--bg-base);height:var(--control-height);padding:0 var(--space-5);font-family:var(--font-label);font-weight:700;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.02em;align-items:center;display:flex}.overlay-panel .body{padding:var(--space-5)}.overlay-panel .body .field:last-child{margin-bottom:0}.overlay-panel .actions{padding:var(--space-4) var(--space-5);border-top:var(--keyline-width) solid var(--keyline);gap:var(--space-3);justify-content:flex-end;display:flex}.overlay-panel.exiting{animation:overlay-exit var(--dur-standard-exit) var(--ease-exit) forwards}.overlay-scrim.exiting{animation:scrim-exit var(--dur-standard-exit) var(--ease-exit) forwards}@keyframes overlay-enter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes overlay-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.98)}}@keyframes scrim-exit{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.overlay-panel,.overlay-panel.exiting,.overlay-scrim.exiting{animation:none}.overlay-panel.exiting,.overlay-scrim.exiting{opacity:0}}.settings-cluster{border:var(--keyline-width) solid var(--keyline)}.settings-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:var(--keyline-width) solid var(--keyline);flex-wrap:wrap;display:flex}.settings-row:last-child{border-bottom:none}.settings-row .rowlabel{font-family:var(--font-ui);font-weight:500;font-size:var(--text-sm)}.settings-row .rowhelp{color:var(--text-muted);margin-top:2px;font-size:11px}.cat-hue-1{background:var(--cat-1-bg);color:var(--cat-1-ink)}.cat-hue-2{background:var(--cat-2-bg);color:var(--cat-2-ink)}.cat-hue-3{background:var(--cat-3-bg);color:var(--cat-3-ink)}.cat-hue-4{background:var(--cat-4-bg);color:var(--cat-4-ink)}.cat-hue-5{background:var(--cat-5-bg);color:var(--cat-5-ink)}.grid-4{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.card{background:var(--surface-1);border:var(--keyline-width) solid var(--keyline);border-radius:var(--card-radius);transition:box-shadow var(--dur-small);color:inherit;text-decoration:none;display:block;overflow:hidden}.card:hover{box-shadow:var(--elevation-1)}.card .thumb{background:var(--surface-2);border-bottom:var(--keyline-width) solid var(--keyline);height:150px;position:relative}.card .cattag{font-family:var(--font-label);text-transform:uppercase;padding:6px 14px;font-size:11px;font-weight:700;position:absolute;top:0;left:0}.card .body{padding:var(--space-4)}.card .body h3{text-transform:none;font-family:var(--font-heading);font-size:var(--text-lg);margin-bottom:4px}.card-footer-row{margin-top:var(--space-4);padding-top:var(--space-4);border-top:var(--keyline-width) solid var(--keyline);justify-content:space-between;align-items:flex-end;display:flex}.card-footer-row .time-serves-group{gap:var(--space-6);display:flex}.card-pending{border-style:dashed}.card-pending .thumb{justify-content:center;align-items:center;display:flex}.card-pending .body .btn-block{width:100%;margin-top:var(--space-3)}.stat-block{display:inline-block}.stat-block .num{font-family:var(--font-display);color:var(--text-high);font-size:28px;line-height:1}.stat-block .cap{font-family:var(--font-label);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:700;display:block}.pip-meter-group{gap:var(--space-1);flex-direction:column;display:inline-flex}.pip-meter-group.align-center{align-items:center}.pip-meter-group.align-end{align-items:flex-end}.pip-meter-group .pip-label{font-family:var(--font-label);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:700}.pip-grid{grid-template-columns:var(--space-4) var(--space-4);grid-template-rows:var(--space-4) var(--space-4);gap:3px;display:grid}.pip-grid i,.pip-grid button{width:var(--space-4);height:var(--space-4);border:var(--keyline-width) solid var(--keyline);background:0 0;padding:0;display:block}.pip-grid button{cursor:pointer}.pip-grid i.filled,.pip-grid button.filled{background:var(--text-high);border-color:var(--text-high)}.status-pill{font-family:var(--font-label);text-transform:uppercase;border:var(--keyline-width) solid var(--keyline);background:var(--surface-1);align-items:center;gap:6px;padding:5px 10px;font-size:11px;font-weight:700;display:inline-flex}.empty-state{text-align:center;padding:var(--space-16) var(--space-6);border:var(--keyline-width) dashed var(--keyline)}.empty-state .mark{margin:0 auto var(--space-4);font-size:72px;display:block}.recipe-header{gap:var(--space-8);border-bottom:var(--keyline-width) solid var(--keyline);padding-bottom:var(--space-8);margin-bottom:var(--space-8);grid-template-columns:1fr 260px;display:grid}.recipe-photo{background:var(--surface-2);border:var(--keyline-width) solid var(--keyline);height:220px}.recipe-tag-row{margin-bottom:var(--space-3);flex-wrap:wrap;gap:8px;display:flex}.recipe-stats-row{border:var(--keyline-width) solid var(--keyline);margin-top:var(--space-6);display:flex}.recipe-stats-row .recipe-stats-cell{padding:var(--space-4);text-align:center;border-right:var(--keyline-width) solid var(--keyline);flex:1}.recipe-stats-row .recipe-stats-cell:last-child{border-right:none}.recipe-stats-cell.adjustable{background:var(--accent-subtle)}.servings-adjust-row{justify-content:center;align-items:center;gap:10px;display:flex}.btn-icon-sm{width:26px;height:26px}.servings-note{margin-top:var(--space-1);display:block}.ingredient-table{border:var(--keyline-width) solid var(--keyline);border-collapse:collapse;width:100%;margin-bottom:var(--space-8)}.ingredient-table th{background:var(--text-high);color:var(--bg-base);font-family:var(--font-label);text-transform:uppercase;letter-spacing:.02em;text-align:left;padding:var(--space-2) var(--space-3);font-size:10px;font-weight:700}.ingredient-table td{padding:var(--space-2) var(--space-3);font-family:var(--font-ui);font-size:var(--text-sm);border-top:var(--keyline-width) solid var(--keyline)}.ingredient-table tbody tr:nth-child(odd) td{background:var(--surface-2)}.ingredient-table .dim{font-style:italic}.app-header{z-index:50;background:var(--bg-base);border-bottom:var(--keyline-width) solid var(--keyline);position:sticky;top:0}.app-header .inner{max-width:1180px;padding:var(--space-3) var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin:0 auto;display:flex}.app-header h1{font-size:var(--text-xl);border:none;margin:0;padding:0}.app-header .mark{font-size:36px;text-decoration:none}.app-main{max-width:1180px;padding:var(--space-8) var(--space-6);margin:0 auto}.app-main-narrow{max-width:760px}.app-footer{margin-top:var(--space-10);padding-top:var(--space-6);border-top:var(--keyline-width) solid var(--keyline);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.editor-panel{border:var(--keyline-width) solid var(--keyline)}.editor-panel .head{background:var(--text-high);border-bottom:var(--keyline-width) solid var(--keyline);padding:var(--space-3) var(--space-4);height:var(--control-height);justify-content:space-between;align-items:center;display:flex}.editor-panel .head h3{font-size:var(--text-sm);color:var(--bg-base);font-family:var(--font-label);letter-spacing:.02em;border:none;margin:0;padding:0}.editor-panel .head .btn-ghost{color:var(--bg-base);border-color:#0000}.editor-panel .head .btn-ghost:hover{border-color:var(--bg-base)}.editable-ingredient-grid{grid-template-columns:70px 70px 1fr 1fr var(--control-height);border-bottom:var(--keyline-width) solid var(--keyline);display:grid}.editable-ingredient-grid.header-row{background:var(--text-high);color:var(--bg-base);font-family:var(--font-label);text-transform:uppercase;font-size:10px;font-weight:700}.editable-ingredient-grid:last-child{border-bottom:none}.editable-ingredient-grid>div{padding:var(--space-2) var(--space-3);border-right:var(--keyline-width) solid var(--keyline);min-width:0}.editable-ingredient-grid>div:last-child{border-right:none}.editable-ingredient-grid input{width:100%;font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-high);background:0 0;border:none;padding:0}.editable-ingredient-grid input:focus{background:var(--accent-subtle);outline:none}.row-remove{justify-content:center;align-items:center;display:flex;padding:0!important}.step-editor-row{border-bottom:var(--keyline-width) solid var(--keyline);display:flex}.step-editor-row:last-child{border-bottom:none}.step-editor-row .num{background:var(--surface-1);width:48px;color:var(--text-high);border-right:var(--keyline-width) solid var(--keyline);font-family:var(--font-display);font-size:var(--text-lg);flex-shrink:0;justify-content:center;align-items:center;display:flex}.step-editor-row .content{padding:var(--space-4);flex:1;min-width:0}.step-editor-row textarea{width:100%;min-height:70px;font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-high);resize:none;background:0 0;border:none;padding:0}.step-editor-row textarea:focus{outline:none}.step-editor-row .row-remove{width:var(--control-height);border-left:var(--keyline-width) solid var(--keyline);flex-shrink:0;align-items:flex-start;padding-top:var(--space-2)!important}.step-ingredient-tags{margin-top:var(--space-3);padding-top:var(--space-3);border-top:var(--keyline-width) dashed var(--keyline);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.step-ingredient-tags .cap{font-family:var(--font-label);text-transform:uppercase;color:var(--text-muted);width:100%;margin-bottom:2px;font-size:10px;font-weight:700}.category-picker{gap:var(--space-2);flex-wrap:wrap;display:flex}.field-row{gap:var(--space-5);flex-wrap:wrap;display:flex}.field-row .field{margin-bottom:var(--space-8)}.group-label{margin-bottom:var(--space-2);display:block}.footer-actions{border-top:var(--keyline-width) solid var(--keyline);background:var(--surface-1);padding:var(--space-5) var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex;position:sticky;bottom:0}.footer-actions .actions{gap:var(--space-3);display:flex}.stack-8{margin-bottom:var(--space-8)}.page-placeholder{padding:var(--space-8)}.icon-solid{stroke:none;fill:currentColor}.icon-brand{stroke:none}.btn.is-loading{color:#0000;pointer-events:none;position:relative}.btn.is-loading .icon{visibility:hidden}.btn.is-loading .dots{justify-content:center;align-items:center;gap:5px;display:flex;position:absolute;inset:0}.btn.is-loading .dots i{background:var(--text-high);width:5px;height:5px;animation:1.1s ease-in-out infinite dotpulse;display:inline-block}.btn-primary.is-loading .dots i{background:var(--text-on-accent)}.btn.is-loading .dots i:nth-child(2){animation-delay:.15s}.btn.is-loading .dots i:nth-child(3){animation-delay:.3s}@keyframes dotpulse{0%,80%,to{opacity:.25}40%{opacity:1}}@media (prefers-reduced-motion:reduce){.btn.is-loading .dots i{opacity:.8;animation:none}}.sign-in-screen{background:var(--accent-solid);text-align:center;padding:var(--space-16) var(--space-8);z-index:300;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sign-in-lockup{max-width:360px}.wordmark{font-family:var(--font-logotype);color:var(--text-on-accent);text-transform:none;letter-spacing:0;margin:0 0 var(--space-3);font-size:56px;line-height:.9}.wordmark-rule{width:var(--space-16);height:var(--keyline-width);background:var(--text-on-accent);margin:0 auto var(--space-6)}.sign-in-copy{color:var(--text-on-accent);margin:0 0 var(--space-6)}.btn-on-accent{background:var(--surface-on-accent);border-color:var(--surface-on-accent);color:var(--ink-on-accent);font-weight:800}.btn-on-accent:hover{background:var(--surface-on-accent)}.btn-on-accent.is-loading .dots i{background:var(--ink-on-accent)}.sync-gate{text-align:center;justify-content:center;align-items:center;gap:var(--space-4);background:var(--bg-base);padding:var(--space-6);z-index:300;flex-direction:column;display:flex;position:fixed;inset:0}.sync-gate h3,.sync-gate p{margin:0}.mark-gate{font-size:64px}.mark-gate-failed{opacity:.5;font-size:56px}.gate-actions{gap:var(--space-3);display:flex}.status-pill-ok{background:var(--ok-subtle);color:var(--ok)}.status-pill-warning{background:var(--warning-subtle);color:var(--warning)}.status-pill-danger{background:var(--danger-subtle);color:var(--danger)}.status-pill-neutral{background:var(--surface-2);color:var(--text-muted)}.status-pill .icon{width:var(--space-4);height:var(--space-4);flex-shrink:0}.btn-in-toast{padding:var(--space-1) 10px;color:var(--bg-base);border-color:var(--bg-base);font-size:11px}.btn-in-toast:hover{border-color:var(--bg-base)}.footer-group{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.footer-label{display:block}.footer-synced{font-family:var(--font-ui);font-size:var(--text-base);color:var(--text-high)}.settings-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.settings-row-stacked{flex-direction:column;align-items:stretch}.rowlabel-stacked{margin-bottom:var(--space-2)}.sync-log{margin:0;padding:0;list-style:none}.sync-log li{justify-content:space-between;gap:var(--space-4);padding:var(--space-2) 0;border-bottom:var(--keyline-width) solid var(--keyline);font-size:var(--text-sm);display:flex}.sync-log li:last-child{border-bottom:none}.skeleton-row{background:var(--surface-2);border:var(--keyline-width) solid var(--keyline);height:14px;margin-bottom:var(--space-2);animation:1.4s ease-in-out infinite skeleton-pulse}.skeleton-row-wide{width:70%}.skeleton-row-short{width:45%}@keyframes skeleton-pulse{0%,to{opacity:.35}50%{opacity:.9}}@media (prefers-reduced-motion:reduce){.skeleton-row{opacity:.6;animation:none}}.two-col{gap:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(360px,1fr));display:grid}.url-row{align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-8);flex-direction:row;display:flex}.url-row .field{flex:1;max-width:none;margin-bottom:0}.import-photo{height:200px;margin-bottom:var(--space-6);overflow:hidden}.import-photo img{object-fit:cover;width:100%;height:100%;display:block}.method-intro{text-align:center;margin-bottom:var(--space-10)}.method-intro h1{margin-top:var(--space-2)}.method-rule{width:70px;height:var(--space-1);background:var(--accent-solid);margin:var(--space-5) auto 0}.method-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));max-width:900px;margin:0 auto;display:grid}.method-card{box-sizing:border-box;height:100%;padding:var(--space-8);gap:var(--space-4);cursor:pointer;background:var(--surface-1);font:inherit;color:var(--text-high);flex-direction:column;text-decoration:none;display:flex;position:relative}.method-card h3{margin-bottom:0}.method-card p{margin:0}.method-card .icon-badge{width:var(--space-12);height:var(--space-12);background:var(--accent-solid);justify-content:center;align-items:center;display:flex}.method-card .icon-badge .icon{stroke:var(--text-on-accent)}.method-card-action{margin-top:var(--space-4);align-self:flex-start}.action-failure{border:var(--keyline-width) solid var(--danger);background:var(--surface-1);padding:var(--space-6);max-width:520px}.action-failure-heading{align-items:center;gap:var(--space-2);margin:0 0 var(--space-3);font-family:var(--font-label);font-weight:700;font-size:var(--text-xs);letter-spacing:.02em;text-transform:uppercase;color:var(--danger);display:flex}.action-failure p:last-of-type{margin:0}.action-failure-actions{gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.icon-inline{width:var(--space-3);height:var(--space-3)}.app-main-bleed{max-width:none;padding:0}.split-view{gap:var(--keyline-width);background:var(--keyline);grid-template-columns:repeat(auto-fit,minmax(360px,1fr));min-height:70vh;display:grid}.split-view .left{background:var(--surface-2);padding:var(--space-6);gap:var(--space-4);flex-direction:column;align-items:center;display:flex}.split-view .right{background:var(--bg-base);padding:var(--space-6)}.scan-page{width:100%;max-width:480px;height:auto;overflow:hidden}.scan-page img{width:100%;height:auto;display:block}.scan-page-caption{text-align:center;margin-top:var(--space-2);display:block}.capture-actions{gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;justify-content:center;display:flex}.capture-pages{align-items:center;gap:var(--space-5);flex-direction:column;display:flex}.select-wrap{display:inline-block;position:relative}.select-wrap select{appearance:none;font-family:var(--font-ui);font-size:var(--text-sm);border:var(--control-border-width) solid var(--keyline);border-radius:var(--input-radius);background:var(--surface-1);color:var(--text-high);cursor:pointer;width:100%;padding:10px 40px 10px 12px}.select-wrap .chev{pointer-events:none;color:var(--text-high);width:12px;height:12px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.select-wrap select::-ms-expand{display:none}.settings-select{width:180px}.upload-control{border:var(--control-border-width) dashed var(--keyline);padding:var(--space-4);text-align:center;cursor:pointer;background:var(--surface-1);font:inherit;color:var(--text-high);width:100%;display:block}.upload-control:hover{background:var(--surface-2)}.upload-control[disabled]{cursor:not-allowed;opacity:.45}.settings-row-fullwidth{flex:1}.settings-row-fullwidth .upload-control{margin-top:var(--space-2)}.checkbox{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-family:var(--font-ui);display:flex}.checkbox input{appearance:none;border:var(--keyline-width) solid var(--keyline);cursor:pointer;background:var(--surface-1);border-radius:0;width:18px;height:18px;margin:0;position:relative}.checkbox input:checked{background:var(--text-high);border-color:var(--text-high)}.checkbox input:checked:after{content:"";border:solid var(--bg-base);border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:0;left:4px;transform:rotate(45deg)}.keep-original{margin-top:var(--space-6)}.recipe-header .recipe-photo{position:relative;overflow:hidden}.recipe-header .recipe-photo button{cursor:pointer;background:0 0;border:none;width:100%;height:100%;padding:0}.recipe-header .recipe-photo img{object-fit:cover;width:100%;height:100%;display:block}.overlay-panel.has-image{max-width:min(90vw,720px)}.overlay-panel .body img{width:100%;height:auto;display:block}.chip-tag.removable{gap:var(--space-2);cursor:default}.chip-untag .icon{width:12px;height:12px}.search-field{flex:1;max-width:420px;position:relative}.search-field input{width:100%;height:var(--control-height);font-family:var(--font-ui);font-size:var(--text-sm);padding:0 var(--space-10) 0 var(--space-4);border:var(--control-border-width) solid var(--keyline);border-radius:var(--input-radius);background:var(--surface-1);color:var(--text-high)}.search-field input:focus{box-shadow:0 0 0 var(--focus-ring-width) var(--accent);outline:none}.search-field .icon{right:var(--space-3);pointer-events:none;width:18px;height:18px;color:var(--text-muted);position:absolute;top:50%;transform:translateY(-50%)}.filter-row{align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.no-results{text-align:center;padding:var(--space-8) 0;font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-muted);margin:0}.cook-shell{background:var(--bg-base);color:var(--text-high);flex-direction:column;min-height:100vh;display:flex}.app-main-cook{width:100%;max-width:760px;padding:var(--space-16) var(--space-8);flex-direction:column;flex:1;justify-content:center;align-items:stretch;display:flex}.cook-footer{border-top:var(--keyline-width) solid var(--keyline);padding:var(--space-5) var(--space-8);gap:var(--space-4);background:var(--bg-base);display:flex;position:sticky;bottom:0}.cook-footer .btn-primary{flex:2}.cat-tone-1{--cat-tone:var(--cat-1-bg)}.cat-tone-2{--cat-tone:var(--cat-2-bg)}.cat-tone-3{--cat-tone:var(--cat-3-bg)}.cat-tone-4{--cat-tone:var(--cat-4-bg)}.cat-tone-5{--cat-tone:var(--cat-5-bg)}.cat-tone-accent{--cat-tone:var(--accent)}.cook-step-label{color:var(--cat-tone)}.cook-instruction{font-family:var(--font-display);font-size:var(--text-4xl);text-transform:uppercase;color:var(--text-high);margin:var(--space-3) 0 var(--space-8);line-height:1.05}.ingredient-hint{text-decoration:underline;-webkit-text-decoration-color:var(--cat-tone);text-decoration-color:var(--cat-tone);text-underline-offset:5px;text-decoration-thickness:3px}.step-ingredients-readout{border:var(--keyline-width) solid var(--keyline);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-6);gap:var(--space-2);flex-direction:column;display:flex}.step-ingredients-readout .cap{font-family:var(--font-label);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.ingredient-readout-list{gap:var(--space-3) var(--space-6);font-family:var(--font-reading);font-size:var(--text-lg);flex-wrap:wrap;display:flex}.ingredient-readout-list .amt{font-family:var(--font-display);margin-right:6px}.next-pill{cursor:pointer;background:var(--text-high);width:100%;color:var(--bg-base);text-align:center;font-family:var(--font-label);text-transform:uppercase;border:none;padding:14px;font-size:13px;font-weight:700;display:block}.header-actions{gap:var(--space-3);display:flex}.btn:not(.btn-icon) .icon{width:16px;height:16px}
