:root{--color-brand: rgb(5, 32, 145);--color-brand-muted: rgba(5, 32, 145, .6);--color-brand-faint: rgba(5, 32, 145, .1);--color-bg: #ffffff;--font-serif: "Fraunces", "Playfair Display", Georgia, serif;--font-sans: "Inter", sans-serif;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-12: 3rem;--spacing-16: 4rem;--spacing-24: 6rem;--spacing-32: 8rem;--max-width-content: 65ch;--max-width-layout: 900px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg);color:var(--color-brand);font-family:var(--font-sans);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:400;line-height:1.2;letter-spacing:.02em}a{color:inherit;text-decoration:none;transition:opacity .2s ease}a:hover{opacity:.7}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .8s cubic-bezier(.2,.8,.2,1) forwards}.layout{min-height:100vh;display:flex;flex-direction:column}.masthead{padding:var(--spacing-6) var(--spacing-8);display:flex;justify-content:space-between;align-items:baseline;max-width:var(--max-width-layout);margin:0 auto;width:100%;position:relative;z-index:100}.masthead-brand{display:flex;flex-direction:column;gap:2px}.masthead-title{font-family:var(--font-serif);font-size:1.5rem;letter-spacing:.02em;display:block}.masthead-subtitle{font-family:var(--font-sans);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-brand-muted)}.masthead-nav{display:flex;gap:var(--spacing-6);font-family:var(--font-sans);font-size:.75rem;text-transform:uppercase;letter-spacing:.18em;font-weight:500;color:var(--color-brand-muted);align-items:center}.masthead-nav .nav-link-active{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;color:var(--color-brand)}.nav-dropdown{position:relative;z-index:100}.nav-dropdown-trigger{display:inline-block;cursor:pointer;font-family:var(--font-sans);font-size:.75rem;text-transform:uppercase;letter-spacing:.18em;color:var(--color-brand)}.nav-dropdown-menu{position:absolute;top:100%;left:0;transform:translateY(4px);min-width:280px;background:#fff;border:1px solid var(--color-brand-faint);padding:var(--spacing-7) var(--spacing-6) var(--spacing-14) var(--spacing-7);z-index:50;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;text-align:left;box-shadow:0 8px 24px #0520910f}.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu{opacity:1;visibility:visible}.nav-dropdown-section+.nav-dropdown-section{margin-top:var(--spacing-4)}.nav-dropdown-heading{font-family:var(--font-sans);font-size:.65rem;text-transform:uppercase;letter-spacing:.18em;color:var(--color-brand-muted);margin-bottom:var(--spacing-2);padding:var(--spacing-2) 0 0 var(--spacing-2);font-weight:500}.nav-dropdown-subsection{margin-top:var(--spacing-3);padding-left:var(--spacing-2)}.nav-dropdown-subheading{display:block;font-family:var(--font-sans);font-size:.6rem;text-transform:uppercase;letter-spacing:.16em;color:var(--color-brand-muted);margin-bottom:var(--spacing-1);padding:0 0 0 var(--spacing-2);font-weight:500}.nav-dropdown-item{display:block;padding:var(--spacing-1) 0 var(--spacing-1) var(--spacing-4);font-family:var(--font-serif);font-size:.825rem;text-transform:none;letter-spacing:0;font-weight:400;color:var(--color-brand);line-height:1.4}.nav-dropdown-item:hover{text-decoration:underline}.main-content{padding:var(--spacing-12) var(--spacing-8) var(--spacing-4);max-width:var(--max-width-content);margin:0 auto;width:100%}.footer{padding:var(--spacing-8);max-width:var(--max-width-layout);margin:auto auto 0;width:100%}.footer-rule{height:1px;background-color:var(--color-brand-faint);border:none;margin-bottom:var(--spacing-6)}.footer-text{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-brand-muted);text-align:center}.cover{margin:0 0 var(--spacing-12) 0}.cover img{width:100%;height:auto;display:block;border-radius:2px}.intro{font-size:1.05rem;font-family:var(--font-sans);font-weight:300;line-height:1.8;margin-bottom:var(--spacing-6)}.intro-cta{margin-bottom:var(--spacing-16)}.toc{display:flex;flex-direction:column;gap:var(--spacing-12);margin-top:var(--spacing-16)}.toc-section{display:flex;flex-direction:column}.toc-section-title{font-family:var(--font-sans);font-size:1rem;text-transform:uppercase;letter-spacing:.18em;color:var(--color-brand-muted);margin-bottom:var(--spacing-4);font-weight:500}.toc-item{display:flex;padding:var(--spacing-4) 0 var(--spacing-4) var(--spacing-6);border-bottom:1px solid var(--color-brand-faint);align-items:center;gap:var(--spacing-4)}.toc-thumb{width:120px;height:120px;flex:0 0 120px;object-fit:cover;border-radius:4px;background:var(--color-brand-faint);display:block}.toc-thumb-placeholder{background:var(--color-brand-faint)}.toc-section .toc-item:first-of-type{border-top:1px solid var(--color-brand-faint)}.toc-number{width:3rem;font-family:var(--font-serif);color:var(--color-brand-muted);font-size:.9rem}.toc-content{flex:1;display:flex;justify-content:space-between;align-items:baseline;gap:var(--spacing-4);transition:transform .3s ease}.toc-item:hover .toc-content{transform:translate(4px)}.toc-title{font-family:var(--font-serif);font-size:1.5rem;line-height:1.3}.toc-desc{font-family:var(--font-sans);font-style:italic;font-size:.9rem;color:var(--color-brand-muted);text-align:right}.recipe-header{margin-bottom:var(--spacing-12);text-align:center}.recipe-section-label{font-family:var(--font-sans);font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--color-brand-muted);margin-bottom:var(--spacing-4)}.recipe-title{font-size:3rem;line-height:1.1}.recipe-title-descriptor{display:block;font-size:1.75rem;font-style:italic;font-weight:400;color:var(--color-brand-muted);margin-top:var(--spacing-3)}.notes-list{list-style:none}.notes-item{margin-bottom:var(--spacing-4);font-size:.95rem;line-height:1.7;padding-left:var(--spacing-4);border-left:1px solid var(--color-brand-faint)}.recipe-empty-note{font-size:.95rem;line-height:1.7;font-style:italic;color:var(--color-brand-muted)}.signoff{font-family:var(--font-serif);font-style:italic;margin-top:var(--spacing-12)}.signoff-date{font-style:normal;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-brand-muted)}.home-links{margin:var(--spacing-8) 0 var(--spacing-16);text-align:center;font-family:var(--font-serif);font-style:italic;font-size:1.1rem;color:var(--color-brand)}.home-links a{border-bottom:1px solid var(--color-brand-faint);padding-bottom:1px}.home-links-divider{display:inline-block;margin:0 var(--spacing-4);color:var(--color-brand-muted);font-style:normal}.ps{margin:var(--spacing-6) auto 0!important;text-align:center;max-width:var(--max-width-content);padding:0 var(--spacing-8);font-size:.95rem;font-weight:300;color:var(--color-brand-muted)}.ps a{border-bottom:1px solid var(--color-brand-faint)}.splash{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-12) var(--spacing-8);max-width:720px;margin:0 auto;text-align:center;gap:var(--spacing-12)}.splash-cover{width:100%;margin:0}.splash-cover img{width:100%;height:auto;display:block;border-radius:2px}.splash-content{display:flex;flex-direction:column;gap:var(--spacing-4)}.splash-title{font-family:var(--font-serif);font-size:2.5rem;letter-spacing:.02em;margin:0}.splash-subtitle{font-family:var(--font-sans);font-size:.75rem;text-transform:uppercase;letter-spacing:.18em;color:var(--color-brand-muted);margin:0}.splash-byline{font-family:var(--font-serif);font-size:1rem;margin:0}.splash-cta-row{display:flex;justify-content:center;margin-top:var(--spacing-8);margin-bottom:var(--spacing-8)}.splash .cta-button{border:none;cursor:pointer;font:inherit}.splash-coming-soon{display:inline-block;cursor:default;pointer-events:none}.splash-coming-soon:hover{background-color:var(--color-brand);color:var(--color-bg)}.modal-overlay{position:fixed;inset:0;background:#0520912e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:var(--spacing-6);z-index:1000}.modal-card{background:#fff;border:1px solid var(--color-brand-faint);border-radius:4px;padding:var(--spacing-12) var(--spacing-10) var(--spacing-10);max-width:440px;width:100%;position:relative;text-align:center;box-shadow:0 20px 60px #0520911f}.modal-close{position:absolute;top:var(--spacing-3);right:var(--spacing-4);background:transparent;border:none;font-size:1.5rem;line-height:1;color:var(--color-brand-muted);cursor:pointer;padding:var(--spacing-2)}.modal-title{font-family:var(--font-serif);font-size:1.6rem;letter-spacing:.02em;margin:0 0 var(--spacing-3)}.modal-text{font-family:var(--font-sans);font-weight:300;font-size:.95rem;color:var(--color-brand-muted);margin:0 0 var(--spacing-6)}.modal-form{display:flex;flex-direction:column;gap:var(--spacing-4)}.modal-input{font-family:var(--font-sans);font-size:1rem;padding:var(--spacing-3) var(--spacing-4);border:1px solid var(--color-brand-faint);border-radius:2px;color:inherit;background:#fff;text-align:center}.modal-input:focus{outline:none;border-color:var(--color-brand)}.modal-error{font-family:var(--font-sans);font-size:.85rem;color:#b00020;margin:0}.modal-cta{border:none;cursor:pointer;font:inherit}.modal-cta:disabled{opacity:.6;cursor:not-allowed}.modal-success{display:flex;flex-direction:column;gap:var(--spacing-4);align-items:center}.splash-learn{font-family:var(--font-sans);font-weight:300;font-size:.95rem;color:var(--color-brand-muted);margin:0 auto;white-space:nowrap}@media(max-width:640px){.splash-learn{white-space:normal;max-width:48ch}}.splash-learn a{border-bottom:1px solid var(--color-brand-faint)}.splash-footer{font-family:var(--font-sans);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-brand-muted);border-top:1px solid var(--color-brand-faint);padding-top:var(--spacing-6);width:100%}@media(max-width:600px){.splash-title{font-size:1.8rem}}.home-description{font-family:var(--font-sans);font-weight:300;font-size:1.05rem;line-height:1.8;color:var(--color-brand);max-width:640px;margin:0 auto var(--spacing-16);padding:0 var(--spacing-8);text-align:center}.cta-row{display:flex;justify-content:center;padding:var(--spacing-16) var(--spacing-8) var(--spacing-10);max-width:var(--max-width-layout);margin:0 auto;width:100%}.cta-button{font-family:var(--font-sans);font-size:.75rem;text-transform:uppercase;letter-spacing:.18em;font-weight:500;color:var(--color-bg);background-color:var(--color-brand);padding:var(--spacing-4) var(--spacing-8);border:1px solid var(--color-brand);transition:background-color .2s ease,color .2s ease,opacity .2s ease}.cta-button:hover{background-color:var(--color-bg);color:var(--color-brand);opacity:1}.recipe-photo{margin:0 auto var(--spacing-16);width:100%}.toc-section-link,.recipe-section-link,.nav-dropdown-heading-link{color:inherit;border:none;transition:opacity .2s ease;display:block}.toc-section-link:hover,.recipe-section-link:hover,.nav-dropdown-heading-link:hover{opacity:.7;border:none}.nav-dropdown-heading-link:hover{text-decoration:underline;text-underline-offset:3px}.section-page{max-width:var(--max-width-layout);margin:0 auto;padding:var(--spacing-16) var(--spacing-8)}.section-page-title{font-family:var(--font-serif);font-weight:400;font-size:3rem;line-height:1.1;color:var(--color-brand);text-align:center;margin:0 0 var(--spacing-8)}.section-intro{font-family:var(--font-sans);font-weight:300;font-size:1.05rem;line-height:1.8;color:var(--color-brand);max-width:640px;margin:0 auto var(--spacing-16);text-align:center}.section-page-list{max-width:720px;margin:0 auto}.staples-content{max-width:640px;margin:0 auto;font-family:var(--font-sans);font-weight:300;color:var(--color-brand);line-height:1.8}.staples-paragraph{font-size:1.05rem;margin:0 0 var(--spacing-6)}.staples-list{margin:var(--spacing-8) 0 0;padding:0 0 0 1.25rem;list-style:disc;display:flex;flex-direction:column;gap:var(--spacing-3)}.staples-item{font-family:var(--font-sans);font-weight:300;font-size:1rem;line-height:1.7;color:var(--color-brand)}.staples-label{font-family:var(--font-serif);font-weight:600;font-style:italic;font-size:1.05rem}.recipe-photo img{width:100%;height:auto;display:block}.recipe-photo-caption{font-family:var(--font-serif);font-style:italic;font-size:.95rem;color:var(--color-brand-muted);text-align:center;margin-top:var(--spacing-3)}.recipe-photo-placeholder{display:flex;align-items:center;justify-content:center;aspect-ratio:4 / 3;background:var(--color-brand-faint);margin-bottom:var(--spacing-16);font-family:var(--font-sans);font-size:.7rem;text-transform:uppercase;letter-spacing:.18em;color:var(--color-brand-muted)}.recipe-headnote{font-family:var(--font-sans);font-weight:300;font-size:1.05rem;line-height:1.8;margin-bottom:var(--spacing-12)}.recipe-headnote:first-letter{font-family:var(--font-serif);font-size:5.4rem;float:left;line-height:1;margin-right:var(--spacing-2);margin-top:0;margin-bottom:-.6rem}.recipe-body{display:grid;grid-template-columns:1fr;gap:var(--spacing-12)}@media(min-width:768px){.recipe-body{grid-template-columns:1fr}}.section-title{font-family:var(--font-serif);font-size:1.25rem;letter-spacing:.02em;margin-bottom:var(--spacing-6);color:var(--color-brand);border-bottom:1px solid var(--color-brand-faint);padding-bottom:var(--spacing-2)}.ingredients-list{list-style:none;counter-reset:ingredient-counter}.ingredient-item{counter-increment:ingredient-counter;margin-bottom:var(--spacing-3);position:relative;padding-left:var(--spacing-8);font-family:var(--font-sans);font-weight:300;font-size:1.05rem;line-height:1.6}.ingredient-item:before{content:counter(ingredient-counter) ".";position:absolute;left:0;font-family:var(--font-serif);color:var(--color-brand-muted);font-size:1.1rem}.method-list{list-style:none;counter-reset:method-counter}.method-item{counter-increment:method-counter;margin-bottom:var(--spacing-6);position:relative;padding-left:var(--spacing-8);font-family:var(--font-sans);font-weight:300;font-size:1.05rem;line-height:1.6}.method-item:before{content:counter(method-counter) ".";position:absolute;left:0;font-family:var(--font-serif);color:var(--color-brand-muted);font-size:1.1rem}.back-link{display:inline-block;margin-top:var(--spacing-16);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-brand-faint);padding-bottom:2px}.back-link:hover{border-bottom-color:var(--color-brand)}.about-portrait{margin:0 0 var(--spacing-10);text-align:center}.about-portrait img{display:block;width:100%;max-width:280px;aspect-ratio:1 / 1;object-fit:cover;object-position:center 45%;margin:0 auto;border-radius:50%}.text-page h1{font-size:2.5rem;margin-bottom:var(--spacing-8)}.text-page p{font-size:1.1rem;line-height:1.8;margin-bottom:var(--spacing-6)}.text-page-light p{font-family:var(--font-sans);font-weight:300;font-size:1.05rem}@media(max-width:600px){.masthead{flex-direction:column;align-items:center;gap:var(--spacing-4)}.toc-content{flex-direction:column;gap:var(--spacing-1);align-items:flex-start}.toc-desc{text-align:left}.recipe-title{font-size:2.2rem}.recipe-meta{flex-direction:column;gap:var(--spacing-2);align-items:center}}.masthead-nav .auth-link,.masthead-nav .auth-button{font-family:var(--font-sans);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.18em;color:var(--color-brand-muted);text-decoration:none;background:none;border:none;cursor:pointer;padding:0}.masthead-nav .auth-button.primary{border:1px solid var(--color-blue);border-radius:999px;padding:.35rem .85rem;transition:background-color .2s ease,color .2s ease}.masthead-nav .auth-button.primary:hover{background:var(--color-blue);color:#fff}.masthead-nav .auth-link:hover{text-decoration:underline}.paywall-loading{min-height:200px}.paywall-teaser{margin-bottom:var(--spacing-6);color:var(--color-text-muted, #555)}.paywall-card{margin:var(--spacing-8) auto;max-width:720px;padding:var(--spacing-8) var(--spacing-6);border:1px solid rgba(5,32,145,.18);border-radius:12px;text-align:center;background:#fafafa}.paywall-title{font-family:var(--font-serif);font-size:1.75rem;margin:0 0 var(--spacing-3);color:var(--color-blue)}.paywall-card .paywall-copy{font-family:var(--font-sans);font-weight:300;font-size:1.05rem;line-height:1.8;margin-top:2rem!important;margin-bottom:var(--spacing-5);color:var(--color-brand)}.paywall-button{font-family:var(--font-sans);font-size:1rem;font-weight:500;background:var(--color-blue);color:#fff;border:none;border-radius:999px;padding:.75rem 1.75rem;cursor:pointer;transition:background-color .2s ease,opacity .2s ease}.paywall-button:hover:not(:disabled){background:#03186e}.paywall-button:disabled{opacity:.6;cursor:not-allowed}.paywall-error{margin-top:var(--spacing-3);color:#b00020;font-size:.9rem}.paywall-signin{margin-top:var(--spacing-4);font-family:var(--font-sans);font-size:.95rem;color:#555}.paywall-link{color:var(--color-blue);text-decoration:underline}.unlocked-banner{margin:var(--spacing-4) auto;max-width:760px;padding:var(--spacing-3) var(--spacing-4);background:#05209114;color:var(--color-blue);border-radius:8px;font-family:var(--font-sans);font-size:.95rem;text-align:center}.auth-page{display:flex;justify-content:center;padding:var(--spacing-8) var(--spacing-4)}.cook-title{font-family:var(--font-serif);font-size:clamp(2.5rem,5vw,3.5rem);color:var(--color-blue);margin-bottom:var(--spacing-4)}.cook-intro{font-family:var(--font-serif);font-size:1.15rem;color:var(--color-blue);max-width:640px;margin-bottom:var(--spacing-8);line-height:1.6}.cook-links{display:flex;flex-direction:column;border-top:1px solid var(--color-brand-faint)}.cook-link{display:block;padding:var(--spacing-6) 0;border-bottom:1px solid var(--color-brand-faint);text-decoration:none;color:var(--color-blue);transition:padding-left .2s ease}.cook-link:hover{padding-left:var(--spacing-3)}.cook-link-title{font-family:var(--font-serif);font-size:1.75rem;margin-bottom:var(--spacing-2);color:var(--color-blue)}.cook-link-description{font-family:var(--font-serif);font-size:1rem;color:var(--color-brand-muted)}.recipes-page-title{text-align:center;margin-bottom:var(--spacing-8)}
