*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a09;--surface:#141413;--cream:#f4f1e8;--smoke:#9c9a93;--ash:#6b6962;--gold:#c9a84c;--bronze:#8b6914;--sage:#7a8f6f;--copper:#a0674b;--border:#4a48404d;--border-faint:#4a484026;--font-heading:"Playfair Display", Georgia, serif;--font-body:"DM Sans", -apple-system, sans-serif;--font-mono:"DM Mono", "SF Mono", monospace;--max-w:640px}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-body);background:var(--bg);color:var(--cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:300;line-height:1.9}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}img{max-width:100%;display:block}ul,ol{list-style:none}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--cream);font-weight:400;line-height:1.15}.page{max-width:var(--max-w);margin:0 auto;padding:0 28px 80px}.top-nav{z-index:100;-webkit-backdrop-filter:blur(12px);max-width:var(--max-w);background:#0a0a09eb;justify-content:space-between;align-items:center;margin:0 auto;padding:18px 28px;display:flex;position:sticky;top:0}.top-nav-wordmark{font-family:var(--font-heading);color:var(--bronze);letter-spacing:-.02em;font-size:18px;font-weight:400}.top-nav-search{width:44px;height:44px;color:var(--ash);justify-content:center;align-items:center;transition:color .2s;display:flex}.top-nav-search:active{color:var(--cream)}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;padding:0 28px 40px;display:flex}.hero h1{font-family:var(--font-heading);color:var(--cream);letter-spacing:-.03em;margin-bottom:12px;font-size:clamp(2.8rem,8vw,4rem);font-weight:400}.hero .tagline{font-family:var(--font-body);color:var(--smoke);letter-spacing:.04em;font-size:14px;font-style:italic;font-weight:300}.search-bar{border-bottom:1px solid var(--gold);align-items:center;gap:12px;margin-bottom:56px;padding:12px 0;display:flex}.search-bar input{font-size:15px;font-family:var(--font-body);color:var(--cream);background:0 0;border:none;outline:none;flex:1;font-weight:300}.search-bar input::placeholder{color:var(--ash)}.search-bar svg{color:var(--ash);opacity:.6;flex-shrink:0}.section-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ash);margin-bottom:20px;font-size:11px;font-weight:300}.section-label .count{color:var(--smoke);margin-left:8px}.row{border-bottom:1px solid var(--border-faint);justify-content:space-between;align-items:baseline;gap:16px;min-height:48px;padding:16px 0;transition:opacity .2s;display:flex}.row:first-child{border-top:1px solid var(--border-faint)}.row:active{opacity:.5}.row-name{font-family:var(--font-heading);text-transform:capitalize;letter-spacing:-.01em;flex:1;font-size:17px;font-weight:400;line-height:1.3}.row-detail{font-family:var(--font-mono);color:var(--ash);flex-shrink:0;font-size:12px;font-weight:300}.row-arrow{color:var(--gold);opacity:0;flex-shrink:0;font-size:16px;transition:opacity .2s}.row:hover .row-arrow{opacity:1}.entry-row{border-bottom:1px solid var(--border-faint);padding:22px 0;transition:opacity .2s}.entry-row:first-child{border-top:1px solid var(--border-faint)}.entry-row:active{opacity:.5}.entry-row h3{font-family:var(--font-heading);letter-spacing:-.02em;margin-bottom:6px;font-size:19px;font-weight:400;line-height:1.25}.entry-row .desc{color:var(--smoke);-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:14px;font-weight:300;line-height:1.6;display:-webkit-box;overflow:hidden}.entry-row .source{font-family:var(--font-mono);color:var(--ash);margin-top:6px;font-size:11px;font-style:italic;font-weight:300}.tier-dots{vertical-align:middle;gap:3px;margin-right:8px;display:inline-flex}.tier-dot{background:var(--gold);opacity:.2;border-radius:50%;width:5px;height:5px}.tier-dot.filled{opacity:1}.td-header{margin-bottom:40px;padding-top:8px}.td-meta{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ash);align-items:center;gap:12px;margin-bottom:16px;font-size:11px;font-weight:300;display:flex}.td-header h1{margin-bottom:12px;font-size:clamp(2rem,5vw,3.5rem)}.td-source{font-family:var(--font-mono);color:var(--ash);font-size:12px;font-style:italic;font-weight:300}.td-body{color:var(--cream);max-width:var(--max-w);margin-bottom:48px;font-size:16px;font-weight:300;line-height:1.9}.td-body p{margin-bottom:20px}.td-section{margin-bottom:44px}.td-section-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ash);margin-bottom:16px;font-size:11px;font-weight:300}.td-section-content{border-left:2px solid var(--gold);color:var(--cream);padding-left:16px;font-size:15px;font-weight:300;line-height:1.85}.td-section-content p{margin-bottom:12px}.td-section.parallels .td-section-content{border-left-color:var(--copper)}.td-thread{border-left:2px solid var(--gold);color:var(--smoke);padding-left:16px;font-style:italic}.td-difficulty{font-family:var(--font-mono);color:var(--sage);letter-spacing:.04em;border:1px solid #7a8f6f4d;border-radius:2px;padding:2px 8px;font-size:10px;font-weight:300}.td-time{font-family:var(--font-mono);color:var(--smoke);letter-spacing:.04em;font-size:10px;font-weight:300}.td-quality{border-left:none;flex-direction:column;gap:0;padding-left:0;display:flex}.td-quality-tier{color:var(--smoke);border-left:2px solid var(--border);padding:10px 16px;font-size:14px;font-weight:300;line-height:1.7}.td-quality-tier.exceptional{color:var(--cream);border-left-color:var(--gold)}.td-quality-tier.insufficient{color:var(--ash);border-left-color:var(--copper)}.td-sensory{border-left:none;padding-left:0}.td-sensory-row{border-bottom:1px solid var(--border-faint);gap:16px;padding:8px 0;font-size:14px;font-weight:300;line-height:1.6;display:flex}.td-sensory-row:last-child{border-bottom:none}.td-sensory-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ash);flex-shrink:0;width:64px;padding-top:2px;font-size:11px;font-weight:300}.td-door{color:var(--smoke);padding-left:16px;font-style:italic;position:relative}.td-door:before{content:"→";color:var(--copper);position:absolute;left:0}.keyword-tags{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.keyword-tag{font-family:var(--font-mono);color:var(--sage);border:1px solid #7a8f6f4d;border-radius:2px;padding:4px 10px;font-size:11px;font-weight:300}.related-list{margin-top:8px}.related-link{border-bottom:1px solid var(--border-faint);font-family:var(--font-heading);letter-spacing:-.01em;justify-content:space-between;align-items:center;min-height:48px;padding:14px 0;font-size:17px;font-weight:400;transition:opacity .2s;display:flex}.related-link:first-child{border-top:1px solid var(--border-faint)}.related-link:active{opacity:.5}.related-link .arrow{color:var(--gold);font-size:18px}.recipe-hero{aspect-ratio:3/2;object-fit:cover;width:calc(100% + 56px);margin-bottom:32px;margin-left:-28px}.recipe-title{font-family:var(--font-heading);letter-spacing:-.03em;margin-bottom:12px;font-size:clamp(1.8rem,5vw,2.8rem);font-weight:400;line-height:1.1}.recipe-meta-row{font-family:var(--font-mono);color:var(--ash);letter-spacing:.02em;margin-bottom:36px;font-size:12px;font-weight:300}.recipe-meta-row span+span:before{content:"·";color:var(--border);margin:0 10px}.scale-btns{border:1px solid var(--border);gap:0;width:fit-content;margin-bottom:36px;display:flex}.scale-btn{font-family:var(--font-mono);color:var(--ash);border-right:1px solid var(--border);background:0 0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px 20px;font-size:12px;font-weight:300;transition:background .2s,color .2s;display:flex}.scale-btn:last-child{border-right:none}.scale-btn.active{background:var(--gold);color:var(--bg)}.ii-ingredient-list{margin-bottom:48px}.ii-ingredient{border-bottom:1px solid var(--border-faint);cursor:default;align-items:baseline;gap:10px;min-height:44px;padding:10px 0;font-size:14px;font-weight:300;line-height:1.6;display:flex}.ii-ingredient.ii-has-match{cursor:pointer}.ii-ingredient:first-child{border-top:1px solid var(--border-faint)}.ii-ing-text{color:var(--cream);flex:1}.ii-reserve-text{border-bottom:1.5px solid var(--gold);padding-bottom:1px}.ii-dot-slot{flex-shrink:0;justify-content:center;align-items:center;width:18px;display:flex}.ii-mono{background:var(--gold);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;display:flex}.ii-mono span{font-family:var(--font-heading);color:var(--bg);font-size:9px;font-weight:500;line-height:1}.ii-leaf{align-items:center;display:flex}.ing-group-header{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ash);margin-top:28px;padding-bottom:8px;font-size:11px;font-weight:300}.ii-panel{opacity:0;background:var(--surface);border-left:2px solid var(--gold);max-height:0;margin:0 0 4px;transition:max-height .2s,opacity .2s;overflow:hidden}.ii-panel.visible{opacity:1;max-height:500px;padding:18px 22px}.ii-product-name{font-family:var(--font-heading);letter-spacing:-.01em;margin-bottom:3px;font-size:16px;font-weight:400}.ii-product-meta{font-family:var(--font-mono);color:var(--ash);margin-bottom:6px;font-size:11px;font-weight:300}.ii-product-desc{color:var(--smoke);margin-bottom:14px;font-size:13px;font-weight:300;line-height:1.6}.ii-supplier-row{border-top:1px solid var(--border-faint);cursor:pointer;align-items:center;gap:10px;min-height:44px;padding:10px 0;font-size:13px;font-weight:300;transition:opacity .2s;display:flex}.ii-supplier-row:active{opacity:.5}.ii-chain-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.ii-chain-dot.origin{background:var(--gold)}.ii-chain-dot.provider{background:var(--sage)}.ii-role-badge{font-family:var(--font-mono);letter-spacing:.04em;margin-left:auto;font-size:10px;font-weight:300}.ii-role-badge.origin{color:var(--gold)}.ii-role-badge.provider{color:var(--sage)}.sheet-backdrop{z-index:500;background:0 0;transition:background .2s;position:fixed;inset:0}.sheet-backdrop.visible{background:#00000080}.sheet-overlay{z-index:501;transition:transform .3s cubic-bezier(.32,.72,0,1);position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.sheet-overlay.open{transform:translateY(0)}.sheet-content{background:var(--surface);-webkit-overflow-scrolling:touch;border-radius:12px 12px 0 0;max-height:85vh;padding:12px 28px 48px;overflow-y:auto}.sheet-handle{background:var(--border);border-radius:2px;width:32px;height:3px;margin:0 auto 24px}.sheet-close{width:32px;height:32px;color:var(--ash);justify-content:center;align-items:center;font-size:20px;display:flex;position:absolute;top:18px;right:22px}.sheet-supplier-name{font-family:var(--font-heading);letter-spacing:-.02em;margin-bottom:4px;font-size:1.5rem;font-weight:400}.sheet-supplier-meta{font-family:var(--font-mono);color:var(--ash);margin-bottom:8px;font-size:12px;font-weight:300}.sheet-supplier-link{color:var(--gold);margin-bottom:24px;font-size:13px;font-weight:400;display:inline-block}.sheet-product-grid{margin-top:16px}.sheet-product{border-bottom:1px solid var(--border-faint);padding:18px 0}.sheet-product:first-child{border-top:1px solid var(--border-faint)}.sheet-product-name{font-family:var(--font-heading);letter-spacing:-.01em;margin-bottom:4px;font-size:15px;font-weight:400}.sheet-product-desc{color:var(--smoke);margin-bottom:8px;font-size:13px;font-weight:300;line-height:1.6}.sheet-product-badges{flex-wrap:wrap;gap:8px;display:flex}.sheet-product-badge{font-family:var(--font-mono);color:var(--ash);font-size:10px;font-weight:300}.sheet-product-badge.tier-reserve{color:var(--gold)}.sheet-product-badge.tier-organic{color:var(--sage)}.method-step{border-bottom:1px solid var(--border-faint);align-items:flex-start;gap:20px;padding:20px 0;display:flex}.step-num{font-family:var(--font-heading);color:var(--gold);opacity:.7;flex-shrink:0;width:32px;font-size:24px;font-weight:400;line-height:1.5}.step-text{color:var(--cream);flex:1;font-size:14px;font-weight:300;line-height:1.8}.step-insight{border-top:1px solid var(--border-faint);color:var(--smoke);margin-top:12px;padding:14px 0 0;font-size:13px;font-style:italic;font-weight:300;line-height:1.7}.back-link{font-family:var(--font-mono);color:var(--gold);letter-spacing:.02em;align-items:center;gap:6px;min-height:44px;padding:14px 0;font-size:12px;font-weight:300;transition:opacity .2s;display:flex}.back-link:active{opacity:.5}.search-page-input{font-family:var(--font-heading);color:var(--cream);letter-spacing:-.02em;border:none;border-bottom:1px solid var(--border);background:0 0;outline:none;width:100%;margin-bottom:40px;padding:8px 0;font-size:clamp(1.5rem,4vw,2rem);font-weight:400}.search-page-input::placeholder{color:#6b696280}.recipe-row{border-bottom:1px solid var(--border-faint);align-items:center;gap:16px;min-height:48px;padding:14px 0;transition:opacity .2s;display:flex}.recipe-row:first-child{border-top:1px solid var(--border-faint)}.recipe-row:active{opacity:.5}.recipe-row-thumb{object-fit:cover;background:var(--surface);border-radius:2px;flex-shrink:0;width:52px;height:52px}.recipe-row-body{flex:1;min-width:0}.recipe-row-body h3{font-family:var(--font-heading);letter-spacing:-.01em;margin-bottom:2px;font-size:16px;font-weight:400;line-height:1.3}.recipe-row-body .meta{font-family:var(--font-mono);color:var(--ash);font-size:11px;font-weight:300}.loading{text-align:center;font-family:var(--font-mono);color:var(--ash);letter-spacing:.04em;padding:56px;font-size:12px;font-weight:300}.empty-state{text-align:center;color:var(--smoke);padding:72px 20px}.empty-state h3{font-family:var(--font-heading);color:var(--cream);margin-bottom:8px;font-size:1.3rem;font-weight:400}.fade-in{animation:.2s fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.spacer-lg{margin-bottom:56px}.cc-banner{z-index:900;background:var(--surface);border-top:1px solid var(--border);justify-content:center;align-items:center;gap:20px;max-width:640px;margin:0 auto;padding:20px 28px;display:flex;position:fixed;bottom:0;left:0;right:0}@media (width<=520px){.cc-banner{flex-direction:column;align-items:stretch;gap:14px}}.cc-text{color:var(--smoke);flex:1;font-size:12px;font-weight:300;line-height:1.6}.cc-actions{flex-shrink:0;gap:10px;display:flex}.cc-btn{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border-radius:2px;min-height:36px;padding:8px 18px;font-size:11px;font-weight:300;transition:opacity .2s}.cc-btn:active{opacity:.6}.cc-accept{background:var(--gold);color:var(--bg)}.cc-decline{color:var(--ash);border:1px solid var(--border);background:0 0}
