@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@500;600;700;800;900&display=swap";:root{--wood-dark:#24150f;--wood:#4a2c1d;--wood-light:#74472c;--parchment:#ead9b6;--parchment-light:#f7ecd3;--parchment-deep:#d7bd8d;--ink:#2b211a;--muted:#6e5d4b;--forest:#344e3d;--forest-light:#4f7058;--wine:#74392f;--gold:#aa8243;--gold-bright:#d2ac67;--line:#412b1c4d;--cream:#fff7e4}*{box-sizing:border-box}html{color:var(--ink);background:var(--wood-dark);scroll-behavior:smooth}body{background-color:var(--wood-dark);background-image:linear-gradient(90deg,#ffffff06,#0000 18%,#00000029 52%,#0000 84%),repeating-linear-gradient(0deg,#0000 0 94px,#0803016b 95px 98px),repeating-linear-gradient(92deg,#3b2116 0 3px,#2b190f 4px 58px,#321c12 60px 112px);min-width:320px;margin:0;font-family:Noto Sans SC,system-ui,sans-serif;font-size:16px}button,input,textarea{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}:is(button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible){outline:3px solid var(--gold-bright);outline-offset:3px}main{border:1px solid var(--gold);background:linear-gradient(#ffffff14, #fff0), repeating-linear-gradient(0deg, #4c311e06 0 1px, transparent 1px 25px), var(--parchment);width:min(1280px,100% - 48px);margin:24px auto;padding:34px 58px 76px;position:relative;overflow:hidden;box-shadow:0 22px 70px #0000008c,inset 0 0 60px #5e391c26}main:before{content:"";z-index:10;pointer-events:none;border:1px solid #74472c80;position:absolute;inset:12px}label{letter-spacing:.11em;text-transform:uppercase;font-size:14px;font-weight:700}.multiline-copy{white-space:pre-line}body.editor-open{overflow:hidden}.owner-login-shell{place-items:center;min-height:calc(100vh - 48px);display:grid}.owner-login-card{z-index:12;width:min(520px,100%);color:var(--ink);border:1px solid var(--gold);background:var(--parchment-light);box-shadow:inset 0 0 0 8px var(--parchment), inset 0 0 0 9px #74472c5c, 0 24px 60px #0000006b;padding:46px 48px 42px;position:relative}.owner-login-card>span{color:var(--wine);letter-spacing:.18em;font-size:11px;font-weight:800}.owner-login-card h1{color:var(--wood-dark);margin:12px 0 14px;font:800 38px/1.25 Noto Serif SC,serif}.owner-login-card>p{color:var(--muted);margin:0 0 28px;line-height:1.8}.owner-login-card label{color:var(--wood);margin-bottom:10px;display:block}.owner-login-card input{background:#fffaf0;border:1px solid #9a7549;width:100%;padding:13px 14px}.owner-login-card form button{width:100%;color:var(--cream);border:1px solid var(--gold);background:var(--forest);cursor:pointer;margin-top:14px;padding:13px 16px;font-weight:800}.owner-login-card form button:disabled{cursor:wait;opacity:.65}.owner-login-card .owner-login-error{color:var(--wine);margin:14px 0 0;font-size:14px;font-weight:700}.owner-login-card>a{color:var(--wood);margin-top:24px;font-size:14px;font-weight:700;display:inline-block}.owner-tools{z-index:12;color:var(--muted);justify-content:flex-end;align-items:center;gap:12px;margin:-6px 0 23px;font-size:12px;display:flex;position:relative}.owner-tools>span{letter-spacing:.03em}.owner-tools>span b{color:var(--wine);letter-spacing:.13em;margin-right:6px;font-size:10px}.owner-tools>button{color:var(--cream);border:1px solid var(--gold);background:var(--wood);box-shadow:inset 0 0 0 1px var(--wood-dark);cursor:pointer;padding:9px 13px;font-size:13px;font-weight:700}.owner-tools>button:hover{filter:brightness(1.14)}.owner-tools>button i{color:var(--gold-bright);margin-right:5px;font-style:normal}.owner-tools>button.owner-logout{color:var(--muted);box-shadow:none;background:0 0;border-color:#4a2c1d59;padding:8px 10px;font-size:12px}.copy-notice{z-index:120;color:var(--cream);border:1px solid var(--gold);background:var(--forest);padding:12px 18px;font-size:14px;font-weight:700;position:fixed;top:28px;left:50%;transform:translate(-50%);box-shadow:0 8px 25px #00000057}.copy-editor-backdrop{z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#170c08c2;place-items:center;padding:34px;display:grid;position:fixed;inset:0}.copy-editor{border:1px solid var(--gold);background:repeating-linear-gradient(0deg, #4c311e06 0 1px, transparent 1px 25px), var(--parchment-light);width:min(900px,100%);max-height:calc(100vh - 68px);box-shadow:0 28px 80px #00000094, inset 0 0 0 8px var(--parchment), inset 0 0 0 9px #74472c5c;overflow:auto}.copy-editor>header{z-index:2;color:var(--cream);border-bottom:1px solid var(--gold);background:linear-gradient(110deg, #5f3924, var(--wood-dark));justify-content:space-between;gap:24px;padding:27px 31px 24px;display:flex;position:sticky;top:0;box-shadow:0 5px 12px #321b0f33}.copy-editor>header span{color:var(--gold-bright);letter-spacing:.16em;font-size:10px;font-weight:700}.copy-editor>header h2{margin:5px 0 4px;font:700 29px/1.3 Noto Serif SC,serif}.copy-editor>header p{color:#dcc9a8;margin:0;font-size:13px}.editor-close{color:var(--gold-bright);cursor:pointer;background:0 0;border:0;align-self:start;padding:0 5px 6px;font:300 31px/1 sans-serif}.copy-editor form{padding:29px 31px 31px}.copy-editor fieldset{border:0;margin:0 0 29px;padding:0}.copy-editor legend{width:100%;color:var(--wine);border-bottom:1px solid var(--line);margin-bottom:15px;padding:0 0 9px;font:700 18px/1.4 Noto Serif SC,serif}.copy-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px;display:grid}.copy-fields label{min-width:0;color:var(--wood);text-transform:none;display:block}.copy-fields label.wide{grid-column:1/-1}.copy-fields label>span{letter-spacing:.04em;margin-bottom:7px;font-size:12px;display:block}.copy-fields input,.copy-fields textarea{width:100%;color:var(--ink);resize:vertical;letter-spacing:0;text-transform:none;background:#fff8e9;border:1px solid #a9875c;border-radius:0;outline:none;padding:11px 12px;font-family:Noto Sans SC,system-ui,sans-serif;font-size:14px;font-weight:500;line-height:1.65}.copy-fields input:focus,.copy-fields textarea:focus{border-color:var(--forest);box-shadow:0 0 0 2px #344e3d1f}.editor-footnote{color:var(--muted);border-left:3px solid var(--gold);background:#aa824317;margin-top:-5px;padding:13px 15px;font-size:12px;line-height:1.7}.editor-actions{justify-content:space-between;align-items:center;gap:18px;margin-top:23px;display:flex}.editor-actions>div{gap:10px;display:flex}.editor-actions button{border:1px solid var(--wood);cursor:pointer;background:0 0;padding:12px 18px;font-size:14px;font-weight:700}.editor-actions button:disabled,.editor-close:disabled{cursor:wait;opacity:.58}.editor-actions .reset-copy{color:var(--wine);border-color:#74392f80}.editor-actions .save-copy{color:var(--cream);border-color:var(--gold);background:var(--forest);box-shadow:2px 3px #1d3024}.hero{border-top:2px solid var(--wood);padding:16px 0 0;position:relative}.eyebrow{color:var(--wood-light);letter-spacing:.16em;font-size:14px;font-weight:700}.hero-grid{display:block}.hero h1{letter-spacing:-.065em;margin:38px 0 30px;font:800 clamp(58px,8.1vw,108px)/1.03 Noto Serif SC,serif}.hero h1 span,.hero h1 em{font-style:normal;display:block}.hero h1 em{color:var(--wine);padding-left:6.5vw;font-weight:800}.lead{color:#4b3a2e;max-width:610px;margin:0 0 42px 10vw;font:600 21px/1.75 Noto Serif SC,serif}.route-line{color:var(--parchment-light);border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);background:linear-gradient(90deg, #ffffff0d, transparent 30%, #0000001f), var(--wood);letter-spacing:.09em;justify-content:space-between;align-items:center;margin:0 -58px;padding:18px 58px;font-size:14px;font-weight:700;display:flex;box-shadow:inset 0 4px 10px #0000002e}.route-line b{color:var(--gold-bright);font-size:10px}.brief-section,.research-section{border-bottom:2px solid var(--wood);grid-template-columns:.8fr 1.2fr;display:grid}.section-index{border-right:1px solid var(--line);padding:58px 52px 62px 0}.section-index.compact{padding-top:48px}.section-index h2,.pantry-head h2,.results-head h2,.favorites-section h2{color:var(--wood-dark);letter-spacing:-.035em;margin:26px 0 24px;font:700 36px/1.48 Noto Serif SC,serif}.section-index p{max-width:410px;color:var(--muted);margin:0;font-size:16px;line-height:1.9}.brief-form{padding:56px 0 62px 52px}.brief-form>label{color:var(--wood);margin-bottom:13px;display:block}.brief-form label small{color:var(--muted);letter-spacing:0;text-transform:none;font-weight:500}.brief-form textarea,.brief-form input{background:var(--parchment-light);border:1px solid #9f8056;border-radius:2px;outline:none;width:100%;transition:border-color .2s,box-shadow .2s;box-shadow:inset 0 2px 8px #4b2d181f}.brief-form textarea:focus,.brief-form input:focus{border-color:var(--forest);box-shadow:inset 0 2px 8px #4b2d181f,0 0 0 2px #344e3d1f}.brief-form textarea{resize:vertical;min-height:230px;padding:21px;font:500 17px/1.95 Noto Serif SC,serif}.brief-form input{margin-bottom:24px;padding:15px 17px;font-size:16px}.form-meta{color:var(--muted);justify-content:space-between;margin:9px 0 28px;font-size:13px;display:flex}.primary-action,.naming-bar button{border:1px solid var(--gold);background:linear-gradient(180deg, #ffffff14, transparent 45%), var(--wood);box-shadow:inset 0 0 0 2px var(--wood-dark), inset 0 0 0 3px #d2ac6780, 0 5px 0 #24140d;position:relative}.primary-action{width:100%;color:var(--cream);cursor:pointer;justify-content:space-between;align-items:center;padding:20px 22px;font-size:16px;font-weight:700;transition:transform .15s,filter .15s;display:flex}.primary-action:hover:not(:disabled),.naming-bar button:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-2px)}.primary-action:active:not(:disabled),.naming-bar button:active:not(:disabled){transform:translateY(2px)}.primary-action:disabled{cursor:wait;opacity:.68}.primary-action b{color:var(--gold-bright);font-size:22px}.message{color:#663229;border-left:3px solid var(--wine);background:#74392f14;margin:18px 0 0;padding:12px 14px;font-size:15px;line-height:1.7}.stale-note{border-left:3px solid var(--wine);background:#74392f12;padding:12px 14px;color:var(--wine)!important;margin-top:20px!important}.source-panel{padding:48px 0 52px 52px}.source-status{color:var(--muted);align-items:center;gap:13px;margin-bottom:22px;font-size:14px;display:flex}.source-status b{color:var(--cream);border:1px solid var(--gold);background:var(--forest);letter-spacing:.12em;padding:6px 9px;font-size:11px}.keyword-row{flex-wrap:wrap;align-items:center;gap:8px;min-height:38px;margin-bottom:22px;display:flex}.keyword-row>span{color:var(--muted);margin-right:6px;font-size:13px}.keyword-row a,.keyword-row .keyword-plain{color:var(--forest);background:#344e3d14;border:1px solid #344e3d40;border-radius:99px;padding:7px 11px;font-size:13px;font-weight:600;text-decoration:none}.keyword-row a:hover{color:var(--cream);border-color:var(--forest);background:var(--forest)}.keyword-row a b{color:var(--gold);margin-left:5px;font-size:11px}.source-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.source-list a,.source-list article{min-height:166px;color:inherit;background:var(--parchment-light);border:1px solid #aa895e;padding:20px;text-decoration:none;transition:transform .18s,border-color .18s;box-shadow:2px 3px #58382226}.source-list a:hover{border-color:var(--forest);transform:translateY(-2px)}.source-list article{opacity:.78}.source-list a>span,.source-list article>span{color:var(--wine);letter-spacing:.12em;font-size:11px;font-weight:700}.source-list a strong,.source-list article strong{margin:11px 0 8px;font:700 20px/1.35 Noto Serif SC,serif;display:block}.source-list a p,.source-list article p{color:var(--muted);margin:0;font-size:13px;line-height:1.75}.pantry-section{border-bottom:2px solid var(--wood);padding:62px 0 0}.pantry-head{grid-template-columns:1fr .86fr;align-items:end;gap:54px;margin-bottom:46px;display:grid}.pantry-head h2{margin-bottom:0}.pantry-head>p{max-width:490px;color:var(--muted);margin:0 0 6px auto;font-size:15px;line-height:1.9}.ingredient-groups{border:1px solid var(--wood)}.ingredient-group{border-bottom:1px solid var(--line);grid-template-columns:220px 1fr;display:grid}.ingredient-group:last-child{border-bottom:0}.ingredient-heading{color:var(--parchment-light);border-right:1px solid var(--gold);background:linear-gradient(100deg, #ffffff0f, transparent 55%), var(--wood);grid-template-columns:36px 1fr;gap:8px;padding:27px 22px;display:grid}.ingredient-heading>span{color:var(--gold-bright);font-size:13px;font-weight:700}.ingredient-heading h3{margin:0 0 7px;font:700 20px/1.35 Noto Serif SC,serif}.ingredient-heading p{color:#d6c19f;margin:0;font-size:12px}.ingredient-grid{background:#fff7e452;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:16px;display:grid}.ingredient{text-align:left;background:var(--parchment-light);cursor:pointer;border:1px solid #a9875c;min-height:168px;padding:18px 14px;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s;position:relative;overflow:hidden;box-shadow:1px 2px #462a1821}.ingredient:hover{border-color:var(--wood);transform:translateY(-2px);box-shadow:2px 4px #462a182e}.ingredient.active{color:var(--cream);border-color:var(--gold-bright);background:linear-gradient(145deg, var(--forest-light), var(--forest));box-shadow:inset 0 0 0 2px #263c2e,inset 0 0 0 3px #d2ac678c}.ingredient .check{color:var(--wine);font-size:18px;font-weight:700;position:absolute;top:10px;right:12px}.ingredient.active .check{color:var(--gold-bright)}.ingredient strong{margin:10px 18px 7px 0;font:700 18px/1.35 Noto Serif SC,serif;display:block}.flavor-tags{flex-wrap:wrap;gap:5px;display:flex}.flavor-tags i{color:var(--wine);background:#b08b5314;border:1px solid #6c492a4d;padding:3px 6px;font-size:10px;font-style:normal;line-height:1}.ingredient.active .flavor-tags i{color:#f1d9aa;background:#ffffff0d;border-color:#f1d9aa57}.ingredient em{color:var(--muted);margin-top:12px;font-size:14px;font-style:normal;line-height:1.65;display:block}.ingredient.active em{color:#fff7e4c2}.naming-bar{background:#fff7e440;justify-content:space-between;align-items:center;gap:30px;margin:0 -58px;padding:28px 58px 34px;display:flex}.naming-bar>div>span{color:var(--forest);font-size:15px;font-weight:700}.naming-bar p{color:var(--muted);margin:6px 0 0;font-size:13px}.naming-bar button{min-width:360px;color:var(--cream);cursor:pointer;justify-content:space-between;padding:19px 22px;font-size:16px;font-weight:700;transition:transform .15s,filter .15s;display:flex}.naming-bar button b{color:var(--gold-bright)}.naming-bar button:disabled{cursor:not-allowed;opacity:.48}.results-section.visible{border-bottom:2px solid var(--wood);padding:64px 0 70px}.results-head{justify-content:space-between;align-items:end;gap:34px;margin-bottom:40px;display:flex}.results-head h2{margin-bottom:0}.results-head input{border:0;border-bottom:2px solid var(--wood);background:0 0;outline:none;width:300px;padding:13px 2px;font-size:15px}.proposal-grid{border-top:1px solid var(--wood);border-left:1px solid var(--wood);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.proposal-card{border-right:1px solid var(--wood);border-bottom:1px solid var(--wood);background:linear-gradient(135deg, #ffffff2e, transparent 45%), var(--parchment-light);min-width:0;padding:29px;position:relative;box-shadow:inset 0 0 24px #6943220f}.proposal-top{justify-content:space-between;align-items:center;display:flex}.number{color:var(--wine);letter-spacing:.1em;font-size:12px;font-weight:700}.proposal-actions{align-items:center;gap:8px;display:flex}.proposal-actions button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:6px 9px;font-size:12px}.proposal-actions .heart{color:var(--wood);padding:0;font-size:27px}.proposal-actions .heart.saved{color:var(--wine)}.proposal-card>h3{letter-spacing:-.05em;align-items:center;gap:11px;margin:20px 0 22px;font:800 clamp(34px,4vw,49px)/1.15 Noto Serif SC,serif;display:flex}.proposal-card>h3 span:last-child{color:var(--forest)}.proposal-card>h3 i{color:var(--gold);font:700 15px/1 sans-serif}.description{color:#4f4034;min-height:126px;margin:0 0 24px;font:500 15px/1.95 Noto Serif SC,serif}.recipe{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0 7px}.recipe>b{color:var(--wine);letter-spacing:.13em;margin-bottom:13px;font-size:11px;display:block}.recipe>div{grid-template-columns:55px 1fr;gap:13px;margin:10px 0;display:grid}.recipe>div>strong{color:var(--muted);padding-top:4px;font-size:12px}.recipe p{flex-wrap:wrap;gap:6px;margin:0;display:flex}.recipe p span{background:#344e3d14;border:1px solid #344e3d24;padding:7px 9px;font-size:12px}.tag-row{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.tag-row span{color:var(--forest);font-size:11px}.tag-row span:not(:last-child):after{content:" ·";color:var(--gold)}.empty{color:var(--muted);padding:38px 0;font-size:15px}.favorites-section{grid-template-columns:.75fr 1.25fr;gap:62px;padding:58px 0 0;display:grid}.favorites-section h2{margin-bottom:12px}.favorites-section>div:first-child>p{color:var(--muted);font-size:13px}.favorite-list{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:10px;display:grid}.favorite-list>p{color:var(--muted);font-size:15px;line-height:1.8}.favorite-list button{text-align:left;color:var(--cream);border:1px solid var(--gold);background:linear-gradient(145deg, #5b3824, var(--wood));box-shadow:2px 3px 0 var(--wood-dark);cursor:pointer;flex-direction:column;gap:7px;padding:17px 38px 17px 17px;display:flex;position:relative}.favorite-list button strong{font:700 20px/1.25 Noto Serif SC,serif}.favorite-list button span{color:#d6c19f;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.favorite-list button i{color:var(--gold-bright);font-size:18px;font-style:normal;position:absolute;top:50%;right:15px;transform:translateY(-50%)}@media (max-width:1020px){main{padding-left:40px;padding-right:40px}.route-line,.naming-bar{margin-left:-40px;margin-right:-40px;padding-left:40px;padding-right:40px}.ingredient-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ingredient-group{grid-template-columns:190px 1fr}.source-list{grid-template-columns:1fr}.source-list a,.source-list article{min-height:0}}@media (max-width:760px){body{background:var(--wood-dark)}main{border-left:0;border-right:0;width:100%;margin:0;padding:22px 18px 54px}main.owner-login-shell{min-height:100vh;padding:18px}.owner-login-card{padding:38px 27px 34px}.owner-login-card h1{font-size:32px}main:before{inset:8px}.hero h1{margin-top:36px;font-size:clamp(46px,14vw,66px);line-height:1.08}.hero h1 em{padding-left:7vw}.lead{margin:0 0 31px;font-size:18px;line-height:1.8}.route-line{letter-spacing:.02em;gap:5px;margin:0 -18px;padding:16px 18px;font-size:12px}.brief-section,.research-section{grid-template-columns:1fr}.section-index{border-right:0;border-bottom:1px solid var(--line);padding:42px 0 32px}.section-index h2,.pantry-head h2,.results-head h2,.favorites-section h2{font-size:30px}.section-index p{font-size:15px}.brief-form,.source-panel{padding:34px 0 42px}.brief-form textarea{min-height:250px;font-size:16px}.pantry-head{grid-template-columns:1fr;gap:20px}.pantry-head>p{margin-left:0}.ingredient-group{grid-template-columns:1fr}.ingredient-heading{border-right:0;border-bottom:1px solid var(--gold);padding:19px}.ingredient-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}.ingredient{min-height:168px}.ingredient strong{font-size:17px}.naming-bar{flex-direction:column;align-items:stretch;margin:0 -18px;padding:26px 18px 32px}.naming-bar button{width:100%;min-width:0}.results-head{flex-direction:column;align-items:stretch}.results-head input{width:100%}.proposal-grid{grid-template-columns:1fr}.proposal-card{padding:24px 19px}.description{min-height:0;font-size:14px}.favorites-section{grid-template-columns:1fr;gap:24px}.owner-tools{flex-wrap:wrap;justify-content:flex-start;margin:0 0 18px}.owner-tools>span{width:100%;max-width:none;line-height:1.45}.copy-editor-backdrop{place-items:stretch stretch;padding:0}.copy-editor{border:0;width:100%;max-height:100vh}.copy-editor>header{padding:22px 20px 19px}.copy-editor>header h2{font-size:25px}.copy-editor form{padding:24px 20px 28px}.copy-fields{grid-template-columns:1fr}.copy-fields label.wide{grid-column:auto}.editor-actions{flex-direction:column-reverse;align-items:stretch}.editor-actions>div{grid-template-columns:1fr 1fr;display:grid}.editor-actions button{width:100%}}@media (max-width:390px){.eyebrow{font-size:12px}.hero h1{font-size:43px}.route-line span{font-size:11px}.ingredient-grid,.favorite-list{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}}
