:root{--paper:#f7f7f2;--card:#fff;--ink:#20241f;--ink-soft:#5a6055;--emerald:#0e7c66;--emerald-dark:#0a5c4c;--amber:#e4a11b;--line:#d8dad2;--mono:"IBM Plex Mono",monospace;--display:"Bricolage Grotesque",sans-serif;--body:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}body{background:var(--paper);color:var(--ink);font-family:var(--body);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--emerald);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--emerald);outline-offset:2px}.container{max-width:1040px;margin:0 auto;padding:0 20px}.site-header{border-bottom:1px solid var(--line);background:var(--paper)}.site-header .container{display:flex;align-items:center;justify-content:space-between;height:64px}.logo{font-family:var(--display);font-weight:700;font-size:1.15rem;color:var(--ink);letter-spacing:-.02em}.logo:hover{text-decoration:none}.logo .dot{color:var(--emerald)}.header-nav a{font-family:var(--mono);font-size:.8rem;color:var(--ink-soft);margin-left:20px}.hero{padding:72px 0 56px}.hero h1{font-family:var(--display);font-size:clamp(2.1rem,5vw,3.4rem);font-weight:800;line-height:1.08;letter-spacing:-.03em;max-width:720px}.hero h1 em{font-style:normal;color:var(--emerald)}.hero p{margin-top:18px;max-width:560px;font-size:1.05rem}.hero p,.hero-meta{color:var(--ink-soft)}.hero-meta{margin-top:26px;font-family:var(--mono);font-size:.78rem;display:flex;gap:22px;flex-wrap:wrap}.hero-meta span:before{content:"▸ ";color:var(--amber)}.section-label{font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:14px;margin:40px 0 18px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:18px;gap:18px;padding-bottom:72px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:22px;display:flex;flex-direction:column;gap:12px;transition:border-color .15s ease,transform .15s ease}.card:hover{border-color:var(--emerald);transform:translateY(-2px)}a.card,a.card:hover{text-decoration:none;color:var(--ink)}.card h3{font-family:var(--display);font-size:1.15rem;font-weight:700;line-height:1.25;letter-spacing:-.01em}.card p{color:var(--ink-soft);font-size:.92rem;flex:1 1}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:.7rem;color:var(--emerald-dark);background:#eef4f0;border:1px solid #d5e5dd;border-radius:4px;padding:2px 8px}.card-meta,.chip{font-family:var(--mono)}.card-meta{font-size:.72rem;color:var(--ink-soft)}.recipe-header{padding:56px 0 24px;border-bottom:1px dashed var(--line)}.eyebrow{font-family:var(--mono);font-size:.75rem;color:var(--amber);text-transform:uppercase;letter-spacing:.12em}.recipe-header h1{font-family:var(--display);font-weight:800;font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.12;letter-spacing:-.02em;margin-top:10px;max-width:780px}.recipe-header .summary{margin-top:14px;color:var(--ink-soft);max-width:640px}.recipe-facts{display:flex;gap:26px;flex-wrap:wrap;margin-top:20px;font-family:var(--mono);font-size:.78rem;color:var(--ink-soft)}.recipe-facts strong{color:var(--ink);font-weight:600}.recipe-body{display:grid;grid-template-columns:1fr 320px;grid-gap:48px;gap:48px;padding:40px 0 80px}@media (max-width:860px){.recipe-body{grid-template-columns:1fr}}.steps{list-style:none;position:relative}.steps:before{content:"";position:absolute;left:15px;top:8px;bottom:8px;border-left:2px dotted var(--emerald)}.step{position:relative;padding:0 0 30px 52px}.step:last-child{padding-bottom:0}.step-num{position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--emerald);color:#fff;font-family:var(--mono);font-size:.8rem;font-weight:600;display:flex;align-items:center;justify-content:center}.step h3{font-family:var(--display);font-size:1.05rem;font-weight:700;margin-bottom:6px}.step p{color:var(--ink-soft);font-size:.95rem}.step code{font-family:var(--mono);font-size:.82rem;background:#eef0ea;border-radius:4px;padding:1px 6px}.sidebar{display:flex;flex-direction:column;gap:20px}.panel{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px}.panel h2{font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:14px}.ingredient{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:.9rem}.ingredient:last-child{border-bottom:none}.ingredient .name{font-weight:600}.ingredient .role{font-family:var(--mono);font-size:.7rem;color:var(--ink-soft);text-align:right}.gate input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:6px;font-size:.92rem;background:var(--paper);color:var(--ink);margin-bottom:10px}.gate button{width:100%;padding:12px;border:none;border-radius:6px;background:var(--emerald);color:#fff;font-weight:600;font-size:.95rem;cursor:pointer;transition:background .15s ease}.gate button:hover{background:var(--emerald-dark)}.gate .fineprint{font-size:.75rem;color:var(--ink-soft);margin-top:10px}.gate .success{color:var(--emerald-dark);font-size:.9rem}.gate .success a{font-weight:700}.gate .error{color:#b0413e;font-size:.85rem;margin-top:8px}.site-footer{border-top:1px solid var(--line);padding:28px 0 48px;font-family:var(--mono);font-size:.75rem;color:var(--ink-soft)}.site-footer .container{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}