:root{color-scheme:light;--paper: #f4eedf;--paper-deep: #e9ddc6;--ink: #172321;--ink-muted: #4f5c57;--tomato: #b92e27;--tomato-dark: #7f1f1a;--cream: #fffaf0;--herb: #245d43;--mustard: #c58b22;--danger: #9d2924;--night: #13211e;--night-surface: #1d302b;--night-text: #f7f0df;--display: Georgia, "Iowan Old Style", "Times New Roman", serif;--body: "Avenir Next", Avenir, "Segoe UI", system-ui, sans-serif;--shadow: 0 16px 40px rgb(23 35 33 / 12%)}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);scroll-behavior:smooth}body{margin:0;min-width:320px;font-family:var(--body);font-size:17px;line-height:1.55;background:var(--paper)}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.04;letter-spacing:-.025em}h1{max-width:14ch;font-size:clamp(2.6rem,7vw,5.4rem);margin-bottom:24px}.hero h1{font-size:clamp(2.6rem,5.5vw,4.7rem)}h2{font-size:clamp(2rem,4vw,3.5rem)}h3{font-size:1.55rem}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--mustard);outline-offset:3px}main h1[tabindex="-1"]:focus{outline:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:16px;top:8px;z-index:100;padding:12px 18px;color:var(--cream);background:var(--night);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1200px;margin:auto;padding:16px 32px;border-bottom:1px solid rgb(23 35 33 / 18%)}.wordmark,.footer-brand{min-width:44px;min-height:44px;display:inline-flex;align-items:center;gap:12px;font-family:var(--display);font-size:1.15rem;font-weight:600;text-decoration:none}.brand-mark{width:30px;height:36px;color:var(--tomato);flex:none}.site-header nav{display:flex;align-items:center;gap:28px;font-size:.9rem;font-weight:650}.site-header nav a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none;border-bottom:2px solid transparent}.site-header nav a:hover,.site-header nav a[aria-current]{border-color:var(--tomato)}.demo-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px max(24px,calc((100vw - 1136px)/2));color:var(--night-text);background:var(--night)}.demo-banner p{margin:0;font-size:.9rem}.demo-banner div{display:flex;gap:8px}.banner-button{min-height:44px;padding:8px 14px;color:var(--night-text);border:1px solid #97b0a9;border-radius:8px;background:transparent;cursor:pointer}.banner-button-light{color:var(--night);background:var(--cream);border-color:var(--cream)}.hero{max-width:1280px;min-height:620px;margin:auto;display:grid;grid-template-columns:minmax(340px,.82fr) minmax(500px,1.18fr);align-items:center;gap:24px;padding:40px 32px 48px}.hero-copy{position:relative;z-index:2;padding-left:max(0px,calc((100vw - 1200px)/2));transform:translateY(-40px)}.eyebrow,.recipe-kicker,.section-number{margin-bottom:14px;font-size:.76rem;font-weight:800;line-height:1.2;letter-spacing:.14em;text-transform:uppercase;color:var(--tomato-dark)}.lede{max-width:52ch;margin-bottom:28px;font-size:1.18rem;color:var(--ink-muted)}.hero-actions,.toolbar,.recipe-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:11px 20px;border:2px solid var(--ink);border-radius:10px 22px 10px 10px;font-weight:750;line-height:1.2;text-decoration:none;cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0)}.button.primary{color:var(--cream);border-color:var(--tomato-dark);background:var(--tomato);box-shadow:4px 4px 0 var(--tomato-dark)}.button.primary:hover{background:var(--tomato-dark)}.button.secondary{color:var(--ink);background:transparent}.button.secondary:hover{background:var(--paper-deep)}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.action-note{max-width:50ch;margin:16px 0 8px;font-size:.88rem;color:var(--ink-muted)}.plain-facts{display:flex;flex-wrap:wrap;gap:10px 20px;padding:0;margin:0;list-style:none;font-size:.82rem;font-weight:700}.plain-facts span{color:var(--herb);margin-right:4px}.hero-art{position:relative;isolation:isolate}.hero-art picture{display:block;overflow:hidden;border-radius:120px 12px;box-shadow:var(--shadow);animation:passport-enter .65s cubic-bezier(.2,.8,.2,1) both}.hero-art img{width:100%;aspect-ratio:3 / 2;object-fit:cover}.art-caption{position:absolute;right:24px;bottom:-18px;z-index:2;max-width:240px;margin:0;padding:12px 16px;font-family:var(--display);font-style:italic;background:var(--cream);box-shadow:4px 4px 0 var(--mustard);transform:rotate(-2deg)}.paper-tab{position:absolute;z-index:-1;width:80px;height:160px;right:8%;top:-22px;border-radius:12px 12px 0 0;background:var(--paper-deep);animation:tab-enter .7s .15s both}.tab-two{right:25%;top:-32px;height:130px;background:var(--mustard);animation-delay:.22s}.tab-three{right:41%;top:-18px;height:120px;background:var(--tomato);animation-delay:.29s}@keyframes passport-enter{0%{opacity:0;transform:translateY(8px)}}@keyframes tab-enter{0%{opacity:0;transform:translateY(14px)}}.preview-section,.how-section,.limits-section{padding:96px max(32px,calc((100vw - 1136px)/2))}.preview-section{color:var(--night-text);background:var(--night)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:48px}.section-heading h2{max-width:14ch;margin:0}.preview-section .section-heading .eyebrow{color:#eeb762}.recipe-preview{display:grid;grid-template-columns:180px 1fr;gap:24px}.preview-index{display:flex;flex-direction:column;justify-content:space-between;min-height:420px;padding:16px 0;border-top:1px solid #82928d;border-bottom:1px solid #82928d;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}.preview-card{position:relative;max-width:820px;padding:48px;color:var(--ink);background:var(--cream);border-radius:4px 38px 4px 4px;box-shadow:14px 14px 0 var(--tomato)}.preview-card h3{max-width:16ch;margin-bottom:8px;font-size:clamp(2.2rem,5vw,4.5rem)}.preview-columns{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:48px;padding-top:24px;border-top:1px solid var(--ink)}.preview-columns div{display:grid;gap:6px}.preview-columns span{color:var(--ink-muted)}.how-section{background:var(--paper)}.narrow{max-width:720px;display:block}.steps-list{padding:0;margin:0;list-style:none;border-top:1px solid var(--ink)}.steps-list li{min-height:170px;display:grid;grid-template-columns:100px 1fr;align-items:start;padding:32px 0;border-bottom:1px solid rgb(23 35 33 / 35%)}.steps-list>li>span{color:var(--tomato);font-size:.82rem;font-weight:800}.steps-list h3{margin-bottom:8px;font-size:clamp(2rem,4vw,3rem)}.steps-list p{max-width:52ch;margin:0;color:var(--ink-muted)}.limits-section{display:grid;grid-template-columns:1fr 1fr;gap:80px;background:var(--paper-deep)}.limits-section h2{max-width:12ch}.limits-copy{max-width:58ch;font-size:1.05rem}.page{max-width:1200px;min-height:62vh;margin:auto;padding:72px 32px 112px}.page-heading{margin-bottom:48px}.page-intro{max-width:60ch;color:var(--ink-muted);font-size:1.08rem}.split-heading{display:flex;align-items:end;justify-content:space-between;gap:40px}.split-heading h1{font-size:clamp(2.7rem,6vw,4.8rem)}.search-wrap{display:grid;grid-template-columns:minmax(240px,560px) auto;gap:8px 24px;align-items:end;margin-bottom:40px}.search-wrap label{grid-column:1;font-size:.84rem;font-weight:800}.search-field{display:flex;align-items:center;min-height:54px;padding:0 16px;background:var(--cream);border:2px solid var(--ink);border-radius:8px 22px 8px 8px}.search-field span{font-size:1.6rem;transform:rotate(-20deg)}.search-field input{width:100%;min-height:48px;padding:0 12px;color:var(--ink);border:0;outline:0;background:transparent}.search-count{margin:0 0 14px;color:var(--ink-muted);font-size:.85rem}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.recipe-card{min-width:0;background:var(--cream);border-top:5px solid var(--tomato);border-radius:4px 28px 4px 4px;box-shadow:0 8px 24px #17232114;transition:transform .18s ease,box-shadow .18s ease}.recipe-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.card-link{min-height:320px;display:flex;flex-direction:column;padding:28px;text-decoration:none}.card-link h2{margin-bottom:12px;font-size:2rem;overflow-wrap:anywhere}.card-link>p:not(.recipe-kicker){color:var(--ink-muted)}.card-link dl{display:flex;gap:28px;margin:auto 0 24px}.card-link dl div{display:flex;flex-direction:column-reverse}.card-link dt{font-size:.72rem;font-weight:750;text-transform:uppercase;color:var(--ink-muted)}.card-link dd{margin:0;font-family:var(--display);font-size:1.4rem}.open-label{font-weight:800;text-decoration:underline;text-underline-offset:4px}.empty-state,.no-results{max-width:680px;margin:48px auto;padding:64px 32px;text-align:center;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.empty-state h2,.no-results h2{margin-bottom:12px}.empty-state p,.no-results p{color:var(--ink-muted)}.empty-folio{width:72px;height:84px;display:grid;place-items:center;margin:0 auto 24px;color:var(--cream);background:var(--tomato);border-radius:3px 14px 3px 3px;font-size:2rem}.import-panel{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;margin-bottom:64px;padding:40px;color:var(--night-text);background:var(--night);border-radius:4px 28px 4px 4px}.import-panel h2{margin-bottom:12px;font-size:2.2rem}.import-panel p{max-width:56ch}.import-panel .section-number{color:#eeb762}.file-picker{align-self:center;text-align:center;padding:28px;border:1px dashed #9dafaa}.file-picker input{position:absolute;width:1px;height:1px;opacity:0}.file-picker p{margin:14px 0 0;font-size:.82rem;overflow-wrap:anywhere}.form-status{grid-column:1 / -1;margin:0;font-weight:700}.form-status.error{color:#ffd0cc}.form-status.success{color:#bfe4ca}.manual-panel{padding-top:48px;border-top:1px solid var(--ink)}.manual-heading{margin-bottom:32px}.manual-heading h2{font-size:2.4rem}.paste-panel{display:grid;gap:10px;max-width:720px;margin:0 0 40px;padding:24px;background:var(--paper-deep);border-left:5px solid var(--tomato)}.paste-panel label{font-weight:800}.paste-panel textarea{width:100%;padding:12px 14px;color:var(--ink);background:var(--cream);border:1px solid #6f7975;border-radius:7px;resize:vertical}.paste-panel p{max-width:62ch;margin:0;color:var(--ink-muted);font-size:.92rem}.paste-panel .form-status{min-height:0;font-weight:700}.paste-panel .button{justify-self:start}#recipe-form{display:grid;grid-template-columns:1fr 1fr;gap:24px}.field{display:flex;flex-direction:column;gap:8px}.field.full,.form-actions.full,.form-error.full{grid-column:1 / -1}.field label{font-size:.86rem;font-weight:800}.field label span{font-weight:500;color:var(--ink-muted)}.field input,.field textarea{width:100%;padding:12px 14px;color:var(--ink);background:var(--cream);border:1px solid #6f7975;border-radius:7px}.field input{min-height:48px}.field textarea{resize:vertical}.field input:focus,.field textarea:focus{border-color:var(--ink)}.form-error{min-height:26px;margin:0;color:var(--danger);font-weight:700}.form-actions{display:flex;align-items:center;gap:24px}.back-link{min-height:44px;display:inline-flex;align-items:center;gap:8px;margin-bottom:40px;font-weight:750}.recipe-header{display:flex;align-items:end;justify-content:space-between;gap:40px;padding-bottom:48px;border-bottom:3px double var(--ink)}.recipe-header h1{max-width:15ch;margin-bottom:12px;font-size:clamp(3rem,7vw,5.8rem)}.recipe-yield{margin:0;color:var(--ink-muted);font-size:1.1rem}.recipe-actions{justify-content:end;max-width:390px}.text-button{min-height:44px;padding:8px 12px;border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.text-button.danger{color:var(--danger)}.provenance{display:flex;gap:24px;align-items:baseline;padding:24px 0;border-bottom:1px solid rgb(23 35 33 / 25%)}.provenance p{margin:0}.recipe-body{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(400px,1.25fr);gap:80px;padding:64px 0}.recipe-body h2,.notes h2{font-size:2.5rem}.ingredient-list{padding:0;margin:0;list-style:none;border-top:1px solid var(--ink)}.ingredient-list li{min-height:52px;display:grid;grid-template-columns:44px 1fr;align-items:center;gap:8px;border-bottom:1px solid rgb(23 35 33 / 25%)}.ingredient-list input{width:44px;height:44px;margin:0;accent-color:var(--herb)}.ingredient-list label{min-height:44px;display:inline-flex;align-items:center;cursor:pointer}.ingredient-list input:checked+label{color:var(--ink-muted);text-decoration:line-through}.method-list{padding:0;margin:0;list-style:none;counter-reset:method}.method-list li{position:relative;min-height:80px;padding:0 0 28px 58px;border-left:1px solid rgb(23 35 33 / 30%);counter-increment:method}.method-list li:before{content:counter(method,decimal-leading-zero);position:absolute;left:-1px;top:0;width:38px;height:38px;display:grid;place-items:center;color:var(--cream);background:var(--tomato);border-radius:0 12px 0 0;transform:translate(-50%);font-size:.74rem;font-weight:800}.notes{max-width:740px;padding:36px;background:var(--paper-deep);border-radius:4px 24px 4px 4px}.notes p:last-child{margin-bottom:0}.prose-page{max-width:800px}.prose-page h1{max-width:13ch;font-size:clamp(2.8rem,6vw,5rem)}.prose-page h2{margin-top:48px;font-size:2rem}.prose-page p{max-width:66ch}.updated{color:var(--ink-muted)}.not-found{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px}.not-found h1{font-size:clamp(3rem,7vw,5rem)}.lost-card{width:min(100%,360px);aspect-ratio:3 / 4;display:flex;flex-direction:column;gap:22px;padding:40px;color:var(--cream);background:var(--tomato);border-radius:5px 52px 5px 5px;box-shadow:18px 18px 0 var(--night);transform:rotate(6deg)}.lost-card span{font-family:var(--display);font-size:6rem}.lost-card i{display:block;height:2px;background:var(--cream);opacity:.65}.site-footer{display:grid;grid-template-columns:1fr auto;gap:40px 64px;padding:64px max(32px,calc((100vw - 1136px)/2));color:var(--night-text);background:var(--night)}.site-footer .brand-mark{color:#ec5b50}.site-footer p{margin:12px 0 0;color:#b8c7c3;font-size:.82rem}.site-footer nav{display:flex;flex-wrap:wrap;align-items:start;gap:24px}.site-footer nav a{min-height:44px;display:inline-flex;align-items:center}.build-id{grid-column:1 / -1;padding-top:24px;border-top:1px solid #4e625d}.toast{position:fixed;z-index:90;left:50%;bottom:24px;max-width:calc(100vw - 32px);padding:14px 18px;color:var(--night-text);background:var(--night);border:1px solid #718780;border-radius:8px;box-shadow:var(--shadow);opacity:0;transform:translate(-50%,20px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.toast.show{opacity:1;transform:translate(-50%);pointer-events:auto}.toast button{min-height:44px;margin-left:12px;color:var(--night-text);border:0;background:transparent;font-weight:800;text-decoration:underline;cursor:pointer}@media(max-width:900px){.hero{grid-template-columns:1fr;padding-top:48px}.hero-copy{padding-left:0;transform:none}.hero-art{margin-top:32px}.recipe-grid{grid-template-columns:repeat(2,1fr)}.split-heading,.recipe-header{align-items:start;flex-direction:column}.recipe-actions{justify-content:start}.recipe-body,.limits-section{gap:48px}}@media(max-width:680px){body{font-size:16px}.site-header{min-height:72px;padding:10px 18px;align-items:start}.wordmark span{max-width:80px;line-height:1.05}.site-header nav{max-width:200px;gap:4px 14px;justify-content:end;flex-wrap:wrap;font-size:.78rem}.site-header nav a{min-height:44px}.demo-banner{align-items:start;padding:12px 18px;flex-direction:column;gap:8px}.demo-banner div{width:100%}.demo-banner button{flex:1}.hero{min-height:0;padding:48px 18px 72px}h1{font-size:clamp(2.7rem,13vw,4rem)}.hero-actions{align-items:stretch;flex-direction:column}.hero-actions .button{width:100%}.plain-facts{align-items:start;flex-direction:column;gap:8px}.hero-art picture{border-radius:62px 8px}.art-caption{right:8px;bottom:-32px;max-width:200px;font-size:.85rem}.preview-section,.how-section,.limits-section,.page{padding:72px 18px}.section-heading,.limits-section{display:block}.recipe-preview{grid-template-columns:1fr}.preview-index{min-height:0;flex-direction:row}.preview-card{padding:30px 24px;box-shadow:8px 8px 0 var(--tomato)}.preview-columns{grid-template-columns:1fr;gap:24px;margin-top:32px}.steps-list li{grid-template-columns:52px 1fr;min-height:150px}.limits-copy{margin-top:32px}.split-heading{display:block}.toolbar{margin-top:28px}.toolbar .button{flex:1}.search-wrap{grid-template-columns:1fr}.search-count{grid-row:3}.recipe-grid{grid-template-columns:1fr}.card-link{min-height:280px}.import-panel{grid-template-columns:1fr;padding:28px 20px}.paste-panel{padding:20px}.paste-panel .button{width:100%}#recipe-form{grid-template-columns:1fr}.field,.field.full,.form-actions.full,.form-error.full{grid-column:1}.recipe-body{grid-template-columns:1fr}.recipe-header h1{font-size:clamp(3rem,15vw,4.8rem)}.recipe-actions{width:100%}.recipe-actions .button{flex:1}.provenance{align-items:start;flex-direction:column;gap:4px}.not-found{grid-template-columns:1fr}.lost-card{width:240px;margin:auto}.site-footer{grid-template-columns:1fr;padding:56px 18px}.site-footer nav{flex-direction:column;gap:8px}.build-id{grid-column:1}}@media print{@page{margin:16mm}body{color:#000;background:#fff;font-size:11pt}.site-header,.site-footer,.demo-banner,.back-link,.recipe-actions,.toast{display:none!important}.page.recipe-page{max-width:none;padding:0}.recipe-header{padding-bottom:8mm}.recipe-header h1{font-size:32pt}.recipe-body{grid-template-columns:.8fr 1.2fr;gap:12mm;padding:10mm 0}.ingredient-list input{display:none}.ingredient-list li{grid-template-columns:1fr}.method-list li:before{color:#000;background:#fff;border:1px solid #000}.notes{background:#fff;border:1px solid #777;break-inside:avoid}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.button:hover,.recipe-card:hover,.lost-card{transform:none}}
