:root{--ink:#0d0d0d;--paper:#f7ffee;--green-button:#6ead6b;--lime:#c4f000;--orange:#ff4d00;--blue:#2b50ff;--pink:#ff2e88;--cyan:#16e0e0;--yellow:#ffde59;--card:#fff;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--border:3px;--border-thin:2px;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--tap:44px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background-color:var(--paper);color:var(--ink);font-family:var(--font-sans);overscroll-behavior-y:none;-webkit-font-smoothing:antialiased;min-height:100dvh;font-size:16px;line-height:1.45}button,input,textarea,select{color:var(--ink);font-family:inherit;font-size:16px}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation;cursor:pointer}a{color:inherit;-webkit-tap-highlight-color:transparent;text-decoration:none}:focus-visible{outline:var(--border) solid var(--blue);outline-offset:2px}.app{max-width:720px;padding:0 16px;padding-top:max(12px, env(safe-area-inset-top));padding-bottom:max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex}.row{align-items:center;gap:8px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.row-top{align-items:flex-start;gap:12px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.spacer{flex:auto}.rail{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;margin:0 -16px;padding:4px 16px;display:flex;overflow-x:auto}.rail::-webkit-scrollbar{display:none}.rail>*{flex:none}.mono{font-family:var(--font-mono);letter-spacing:-.01em;font-weight:800}.title-xl{font-family:var(--font-mono);margin:0;font-size:clamp(1.5rem,7vw,2.125rem);font-weight:900;line-height:1.1}.title-lg{font-family:var(--font-mono);margin:0;font-size:clamp(1.25rem,5.5vw,1.625rem);font-weight:900;line-height:1.15}.title-md{font-family:var(--font-mono);margin:0;font-size:1.0625rem;font-weight:900}.label{font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase;font-size:.6875rem;font-weight:800}.body{color:color-mix(in srgb, var(--ink) 85%, transparent);margin:0;font-size:.9375rem;font-weight:500}.muted{color:color-mix(in srgb, var(--ink) 55%, transparent);font-size:.9375rem}.clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.struck{color:color-mix(in srgb, var(--ink) 50%, transparent);text-decoration:line-through}.neo-card{background:var(--card);border:var(--border) solid var(--ink);border-radius:var(--radius-lg);box-shadow:5px 5px 0 var(--ink);padding:16px}.neo-card--tight{box-shadow:4px 4px 0 var(--ink);padding:12px}.neo-card--raised{box-shadow:6px 6px 0 var(--ink)}.neo-btn{min-height:var(--tap);background:var(--yellow);color:var(--ink);font-family:var(--font-mono);border:var(--border) solid var(--ink);border-radius:var(--radius-lg);box-shadow:4px 4px 0 var(--ink);justify-content:center;align-items:center;gap:6px;padding:12px 16px;font-size:.9375rem;font-weight:900;transition:transform 80ms ease-out,box-shadow 80ms ease-out;display:inline-flex}.neo-btn:active:not(:disabled){box-shadow:0 0 0 var(--ink);transform:translate(4px,4px)}.neo-btn:disabled{background:color-mix(in srgb, var(--ink) 20%, transparent);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink) 40%, transparent);cursor:not-allowed}.neo-btn--sm{border-width:var(--border-thin);border-radius:var(--radius-md);min-height:36px;box-shadow:3px 3px 0 var(--ink);padding:8px 12px;font-size:.75rem}.neo-btn--sm:active:not(:disabled){transform:translate(3px,3px)}.neo-btn--block{width:100%}.neo-btn--icon{min-width:var(--tap);padding:8px;font-size:1.125rem}.neo-btn--lime{background:var(--lime)}.neo-btn--yellow{background:var(--yellow)}.neo-btn--cyan{background:var(--cyan)}.neo-btn--white{background:var(--card)}.neo-btn--orange{background:var(--orange);color:#fff}.neo-btn--pink{background:var(--pink);color:#fff}.neo-btn--blue{background:var(--blue);color:#fff}.neo-btn--green{background:var(--green-button);color:#fff}.chip{background:var(--card);min-height:36px;color:var(--ink);font-family:var(--font-mono);text-transform:uppercase;border:var(--border-thin) solid var(--ink);border-radius:var(--radius-md);box-shadow:2px 2px 0 var(--ink);white-space:nowrap;align-items:center;gap:6px;padding:8px 12px;font-size:.75rem;font-weight:800;transition:transform 80ms ease-out,box-shadow 80ms ease-out;display:inline-flex}.chip[aria-pressed=true],.chip--selected{background:var(--lime);box-shadow:3px 3px 0 var(--ink)}.chip--favorite[aria-pressed=true]{background:var(--pink);color:#fff}.chip:active{box-shadow:0 0 0 var(--ink);transform:translate(2px,2px)}.tag{font-family:var(--font-mono);text-transform:uppercase;border:var(--border-thin) solid var(--ink);border-radius:var(--radius-sm);background:var(--cyan);white-space:nowrap;align-items:center;gap:4px;padding:4px 8px;font-size:.6875rem;font-weight:800;display:inline-flex}.tag--blue{background:var(--blue);color:#fff}.tag--yellow{background:var(--yellow)}.tag--lime{background:var(--lime)}.tag--orange{background:var(--orange);color:#fff}.section-tag{background:var(--blue);color:#fff;font-family:var(--font-mono);letter-spacing:.02em;border:var(--border-thin) solid var(--ink);border-radius:var(--radius-sm);padding:5px 9px;font-size:.6875rem;font-weight:900;display:inline-flex}.field{flex-direction:column;gap:6px;display:flex}.neo-input,.neo-textarea,.neo-select{background:var(--paper);border:var(--border-thin) solid var(--ink);border-radius:var(--radius-md);appearance:none;width:100%;padding:11px;font-size:16px}.neo-input:focus,.neo-textarea:focus,.neo-select:focus{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);outline:none}.neo-input--mono{font-family:var(--font-mono);font-weight:700}.neo-textarea{resize:vertical;min-height:76px;line-height:1.45}.neo-select{font-family:var(--font-mono);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%230d0d0d' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 7px center;background-repeat:no-repeat;background-size:14px;min-height:40px;padding:9px 26px 9px 9px;font-size:.875rem;font-weight:800}.search-bar{background:var(--card);border:var(--border) solid var(--ink);border-radius:var(--radius-lg);box-shadow:4px 4px 0 var(--ink);align-items:center;gap:10px;padding:0 12px;display:flex}.search-bar input{font-family:var(--font-mono);background:0 0;border:none;outline:none;flex:auto;min-width:0;padding:13px 0;font-size:16px;font-weight:700}.search-bar input::placeholder{color:color-mix(in srgb, var(--ink) 45%, transparent)}.search-clear{background:0 0;border:none;margin-right:-4px;padding:8px;font-size:1.125rem;line-height:1}.switch{min-height:var(--tap);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;display:flex}.switch input{opacity:0;pointer-events:none;position:absolute}.switch-track{border:var(--border-thin) solid var(--ink);background:var(--card);border-radius:999px;flex:none;width:52px;height:30px;transition:background .12s ease-out;position:relative}.switch-track:after{content:"";background:var(--ink);border-radius:999px;width:22px;height:22px;transition:transform .12s ease-out;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--pink)}.switch input:checked+.switch-track:after{background:var(--card);transform:translate(22px)}.switch input:focus-visible+.switch-track{outline:var(--border) solid var(--blue);outline-offset:2px}.check-row{text-align:left;background:var(--card);border:var(--border-thin) solid var(--ink);border-radius:var(--radius-md);align-items:center;gap:12px;width:100%;padding:10px;display:flex}.check-row--done{background:var(--paper)}.check-box{border:var(--border-thin) solid var(--ink);border-radius:var(--radius-sm);background:var(--card);flex:none;place-items:center;width:26px;height:26px;font-size:1rem;line-height:1;display:grid}.check-box--done{background:var(--lime)}.step-row{text-align:left;background:var(--card);border:var(--border-thin) solid var(--ink);border-radius:var(--radius-md);align-items:flex-start;gap:12px;width:100%;padding:12px;display:flex}.step-row--done{background:var(--paper)}.progress-track{background:var(--card);border:var(--border-thin) solid var(--ink);height:16px;position:relative;overflow:hidden}.progress-fill{background:var(--lime);border-right:var(--border-thin) solid var(--ink);transition:width .25s cubic-bezier(.34,1.4,.64,1);position:absolute;inset:0 auto 0 0}.sheet{z-index:50;background:var(--paper);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.sheet-header{padding:12px 16px;padding-top:max(12px, env(safe-area-inset-top));background:var(--card);border-bottom:var(--border) solid var(--ink);flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet-body{-webkit-overflow-scrolling:touch;padding:16px;padding-bottom:max(32px, env(safe-area-inset-bottom));flex-direction:column;flex:auto;gap:20px;display:flex;overflow-y:auto}.sheet-footer{padding:12px 16px;padding-bottom:max(16px, env(safe-area-inset-bottom));background:var(--paper);border-top:var(--border) solid var(--ink);flex:none;gap:12px;display:flex}.sheet-footer>*{flex:1 1 0}.empty-state{text-align:center;background:var(--cyan);border:var(--border) solid var(--ink);border-radius:var(--radius-lg);box-shadow:6px 6px 0 var(--ink);flex-direction:column;align-items:center;gap:12px;margin:24px 8px;padding:24px;display:flex}.empty-state-emoji{font-size:44px;line-height:1}.overlay{z-index:60;background:color-mix(in srgb, var(--ink) 55%, transparent);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{background:var(--card);border:var(--border) solid var(--ink);border-radius:var(--radius-lg);box-shadow:6px 6px 0 var(--ink);flex-direction:column;gap:14px;width:100%;max-width:380px;padding:20px;display:flex}.dialog-actions{gap:10px;display:flex}.dialog-actions>*{flex:1 1 0}.toast{left:50%;bottom:max(20px, env(safe-area-inset-bottom));z-index:70;background:var(--ink);max-width:calc(100vw - 32px);color:var(--paper);font-family:var(--font-mono);border-radius:var(--radius-md);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink) 35%, transparent);padding:11px 16px;font-size:.8125rem;font-weight:800;position:fixed;transform:translate(-50%)}.toast--error{background:var(--orange);color:#fff}.skeleton{border:var(--border) solid var(--ink);border-radius:var(--radius-lg);height:104px;box-shadow:5px 5px 0 var(--ink);background:linear-gradient(100deg, var(--card) 30%, var(--paper) 50%, var(--card) 70%);background-size:220% 100%;animation:1.1s linear infinite shimmer}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-20% 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.recipe-card{flex-direction:column;gap:14px;display:flex;position:relative}.card-link{flex-direction:column;gap:8px;display:flex}.card-link:after{content:"";z-index:1;border-radius:var(--radius-lg);position:absolute;inset:0}.card-link:focus-visible:after{outline:var(--border) solid var(--blue);outline-offset:2px}.card-fav{z-index:2;justify-content:center;min-width:40px;font-size:1rem;position:relative}.ingredient-editor{background:color-mix(in srgb, var(--paper) 60%, var(--card));border:var(--border-thin) solid var(--ink);border-radius:var(--radius-md);flex-direction:column;gap:8px;padding:10px;display:flex}.measure-row{grid-template-columns:minmax(0,.8fr) minmax(0,1fr) minmax(0,1.4fr) auto;align-items:center;gap:6px;display:grid}.icon-btn{min-width:36px;min-height:36px;color:var(--pink);background:0 0;border:none;place-items:center;padding:0;font-size:1.0625rem;display:inline-grid}.icon-btn:active{transform:scale(.9)}.cook-step{text-align:center;flex-direction:column;align-items:center;gap:20px;padding:28px;display:flex}.cook-step-text{margin:0;font-size:1.1875rem;font-weight:700;line-height:1.55}.cook-body{-webkit-overflow-scrolling:touch;flex-direction:column;flex:auto;justify-content:center;gap:20px;padding:16px;display:flex;overflow-y:auto}
