:root{--paper:#edf0e8;--ink:#20251f;--muted:#62685f;--tomato:#b93d2f;--tomato-dark:#842a21;--parsley:#2f684b;--butter:#e4b84e;--line:#d8d2c6;--surface:#fafcf7;--danger:#a12b2b;--focus:#136c9e;--shadow:0 18px 50px #42372a1a;--max:1240px}*{box-sizing:border-box}::selection{color:#fff;background:var(--tomato-dark)}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);margin:0;font-family:Manrope,Avenir Next,sans-serif;font-size:16px;line-height:1.55}body.auth-pending{visibility:hidden}button,input,select,textarea{font:inherit}button,select,input[type=file]{cursor:pointer}button,a,input,select,textarea{touch-action:manipulation;-webkit-tap-highlight-color:#b93d2f2e}input,textarea{caret-color:var(--tomato)}button{color:inherit}img{max-width:100%;display:block}[hidden]{display:none!important}.skip-link{z-index:1000;color:#fff;background:var(--ink);padding:10px 14px;position:fixed;inset:12px auto auto 12px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{min-height:82px;padding:12px max(24px, calc((100vw - var(--max)) / 2));border-bottom:1px solid var(--line);z-index:30;background:#edf0e8f5;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:sticky;top:0}.brand{color:var(--ink);justify-self:start;align-items:center;gap:10px;font-family:Literata,Georgia,serif;font-weight:700;line-height:.88;text-decoration:none;display:inline-flex}.brand svg{width:38px;color:var(--tomato)}.brand span{letter-spacing:-.025em;font-size:1.02rem}.primary-nav{align-items:stretch;gap:28px;height:58px;display:flex}.nav-link{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;padding:0 4px;font-weight:600}.nav-link:hover,.nav-link.is-active{color:var(--ink);border-bottom-color:var(--tomato)}.header-action{justify-self:end}.button{border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:9px;min-height:46px;padding:10px 18px;font-weight:700;transition:background-color .16s,color .16s,transform .16s;display:inline-flex}.button svg,.text-action svg,.search-field svg,.icon-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px}.button:active{transform:translateY(1px)}.button-primary{color:#fff;background:var(--tomato)}.button-primary:hover{background:var(--tomato-dark)}.button-secondary{border-color:var(--line);background:0 0}.button-secondary:hover{background:#eee8dc;border-color:#b8b0a2}.page-shell{width:min(var(--max), calc(100% - 48px));margin-inline:auto}.library-intro{justify-content:space-between;align-items:end;gap:48px;padding-block:64px 36px;display:flex}.date-line{color:var(--tomato-dark);margin:0 0 8px;font-weight:700}h1,h2,h3{text-wrap:balance;margin-top:0;scroll-margin-top:100px;font-family:Literata,Georgia,serif;line-height:1.08}h1{letter-spacing:-.035em;margin-bottom:14px;font-size:clamp(2.7rem,5vw,5.6rem)}.library-intro>div>p:last-child,.editor-title-row>div>p:last-child{max-width:620px;color:var(--muted);margin:0;font-size:1.05rem}.library-stats{border-block:1px solid var(--line);gap:0;margin:0;display:flex}.library-stats div{border-right:1px solid var(--line);min-width:110px;padding:13px 20px}.library-stats div:last-child{border:0}.library-stats dt{color:var(--muted);font-size:.78rem}.library-stats dd{font-variant-numeric:tabular-nums;margin:3px 0 0;font-size:1.35rem;font-weight:700}.library-tools{border-block:1px solid var(--line);align-items:center;gap:20px;padding-block:18px;display:flex}.search-field{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:10px;width:min(340px,100%);min-height:46px;padding:0 14px;display:flex}.search-field:focus-within{outline:3px solid var(--focus);outline-offset:2px}.search-field input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1}.category-filters{flex-wrap:wrap;gap:6px;display:flex}.filter-button{min-height:44px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:99px;padding:7px 12px}.filter-button:hover{color:var(--ink);background:#eee8dc}.filter-button.is-active{border-color:var(--ink);color:var(--ink);background:0 0;font-weight:700}.recipe-feature{background:var(--surface);box-shadow:var(--shadow);grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);margin-block:34px 52px;display:grid;overflow:hidden}.recipe-feature-media{background:#dfe6d8;min-height:420px;position:relative}.recipe-feature-media img{object-fit:cover;width:100%;height:100%}.recipe-feature-content{flex-direction:column;justify-content:center;padding:clamp(28px,5vw,64px);display:flex}.recipe-feature-content .recipe-kicker{color:var(--tomato-dark);font-weight:700}.recipe-feature h2{margin:8px 0 16px;font-size:clamp(2rem,4vw,3.8rem)}.recipe-meta{color:var(--muted);flex-wrap:wrap;gap:18px;display:flex}.recipe-macros{border-block:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin:28px 0;padding-block:18px;display:grid}.recipe-macros span{color:var(--muted);font-size:.78rem;display:block}.recipe-macros strong{font-variant-numeric:tabular-nums}.recipe-index{margin-bottom:70px}.recipe-index-header,.recipe-list-item{grid-template-columns:minmax(0,2fr) 1fr 1fr 1fr auto;align-items:center;gap:18px;display:grid}.recipe-index-header{color:var(--muted);padding:0 14px 10px;font-size:.76rem}.recipe-list-item{border:0;border-top:1px solid var(--line);text-align:left;background:0 0;width:100%;min-height:84px;padding:14px}.recipe-list-item:last-child{border-bottom:1px solid var(--line)}.recipe-list-item:hover{background:#eee8dc}.recipe-list-item strong{font-family:Literata,Georgia,serif;font-size:1.22rem}.recipe-list-item>span{color:var(--muted)}.recipe-list-item svg{fill:none;stroke:currentColor;stroke-width:1.8px;width:22px}.empty-state{border-block:1px solid var(--line);text-align:center;margin-block:48px 80px;padding:64px 24px}.empty-state svg{width:64px;color:var(--tomato);fill:none;stroke:currentColor;stroke-width:1.2px}.empty-state h2{margin:16px 0 8px;font-size:2rem}.empty-state p{color:var(--muted)}.detail-toolbar{justify-content:space-between;align-items:center;gap:20px;min-height:76px;display:flex}.detail-article{border-top:1px solid var(--line)}.detail-hero{grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);align-items:stretch;min-height:520px;padding-block:44px 56px;display:grid}.detail-hero-copy{align-self:center;padding:30px clamp(28px,5vw,72px) 30px 0}.detail-category{color:var(--parsley);border:1px solid #aeb8a8;border-radius:99px;margin-bottom:18px;padding:6px 11px;font-size:.82rem;font-weight:700;display:inline-block}.detail-hero h1{max-width:760px;margin-bottom:28px;font-size:clamp(3rem,6.2vw,6rem)}.detail-photo{background:#dfe6d8;min-width:0;margin:0;overflow:hidden}.detail-photo img{object-fit:cover;width:100%;height:100%}.detail-meta{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.detail-meta div{border-bottom:1px solid var(--line);padding:15px 14px 12px 0}.detail-meta dt{color:var(--muted);font-size:.78rem}.detail-meta dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-weight:700}.detail-body{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:42px;padding-block:64px 90px;display:grid}.detail-ingredients{min-width:0}.detail-section-heading{border-bottom:3px solid var(--ink);justify-content:space-between;align-items:start;gap:28px;min-height:82px;padding-bottom:22px;display:flex}.detail-section-heading h2,.detail-steps h2{margin-bottom:6px;font-size:clamp(2rem,4vw,3.1rem)}.detail-section-heading p{color:var(--parsley);margin:0;font-size:.9rem;font-weight:700}.detail-serving{flex:0 0 150px;width:150px}.detail-serving>span{margin-bottom:7px;font-size:.85rem;font-weight:700;display:block}.detail-serving input{width:100%;min-height:46px;color:var(--ink);background:var(--surface);border:1px solid #aaa397;border-radius:8px;padding:10px 52px 10px 12px}.detail-ingredient-list{margin:0;padding:0;list-style:none}.detail-ingredient-list li{box-shadow:inset 0 -1px var(--line)}.detail-ingredient-list label{cursor:pointer;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:62px;padding:10px 4px;display:grid}.detail-ingredient-list input{opacity:0;pointer-events:none;position:absolute}.custom-check{background:var(--surface);border:1.5px solid #8c9288;border-radius:5px;place-items:center;width:22px;height:22px;display:grid}.detail-ingredient-list input:focus-visible+.custom-check{outline:3px solid var(--focus);outline-offset:3px}.detail-ingredient-list input:checked+.custom-check{border-color:var(--parsley);background:var(--parsley)}.detail-ingredient-list input:checked+.custom-check:after{content:"";border:0 solid #fff;border-width:0 0 2px 2px;width:9px;height:5px;transform:rotate(-45deg)translate(1px,-1px)}.detail-ingredient-list input:checked~span:not(.custom-check){color:var(--muted);text-decoration:line-through;text-decoration-thickness:1.5px}.detail-ingredient-list strong{color:var(--tomato-dark);font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:16px}.detail-receipt{top:106px}.detail-steps{grid-column:1/-1;max-width:850px;padding-top:34px}.detail-steps>h2{border-bottom:3px solid var(--ink);padding-bottom:18px}.detail-steps ol{counter-reset:recipe-step;margin:0;padding:0;list-style:none}.detail-steps li{counter-increment:recipe-step;box-shadow:inset 0 -1px var(--line);grid-template-columns:58px minmax(0,1fr);gap:20px;padding:27px 0;font-size:1.06rem;line-height:1.7;display:grid}.detail-steps li:before{content:counter(recipe-step);color:#fff;background:var(--tomato);border-radius:50%;place-items:center;width:42px;height:42px;font-family:Literata,Georgia,serif;font-weight:700;display:grid}.detail-steps li span{overflow-wrap:anywhere;max-width:68ch;padding-top:6px}.editor-heading{padding-block:38px 28px}.text-action{min-height:44px;color:var(--muted);background:0 0;border:0;align-items:center;gap:7px;padding:0;font-weight:700;display:inline-flex}.text-action:hover{color:var(--tomato-dark)}.editor-title-row{justify-content:space-between;align-items:end;gap:32px;margin-top:28px;display:flex}.editor-title-row h1{font-size:clamp(2.5rem,5vw,4.8rem)}.draft-status{color:var(--muted);white-space:nowrap;margin:0 0 8px;font-size:.82rem}.editor-layout{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:42px;padding-bottom:80px;display:grid}.recipe-workspace{background:var(--surface);border-top:4px solid var(--ink);min-width:0}.form-section{border-bottom:1px solid var(--line);grid-template-columns:58px minmax(0,1fr);padding:34px 34px 42px 0;display:grid}.section-index{color:var(--tomato);text-align:center;font-family:Literata,Georgia,serif;font-size:1.4rem}.section-heading{margin-bottom:24px}.section-heading h2{margin-bottom:5px;font-size:1.7rem}.section-heading p{color:var(--muted);margin:0}.split-heading{justify-content:space-between;align-items:start;gap:20px;display:flex}.photo-and-basics{grid-template-columns:220px minmax(0,1fr);gap:24px;display:grid}.photo-drop{text-align:center;background:#f2ede3;border:1px dashed #a9a193;border-radius:12px;place-items:center;min-height:260px;display:grid;position:relative;overflow:hidden}.photo-drop:hover{border-color:var(--tomato);background:#f7eee8}.photo-drop input{opacity:0;z-index:2;width:100%;height:100%;position:absolute;inset:0}.photo-drop img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.photo-placeholder{justify-items:center;gap:8px;max-width:170px;padding:20px;display:grid}.photo-placeholder svg{fill:none;width:34px;stroke:var(--tomato);stroke-width:1.5px}.photo-placeholder small{color:var(--muted)}.basics-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:18px;display:grid}.field-wide{grid-column:1/-1}.field{min-width:0}.field>label{margin-bottom:7px;font-size:.88rem;font-weight:700;display:block}.field input,.field select,.field textarea{width:100%;min-height:46px;color:var(--ink);background:#fffefb;border:1px solid #bdb5a8;border-radius:8px;padding:10px 12px}.field textarea{resize:vertical;min-height:94px}.field input:hover,.field select:hover,.field textarea:hover{border-color:#81796c}.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.input-suffix{position:relative}.input-suffix input{padding-right:50px}.input-suffix span{color:var(--muted);pointer-events:none;font-size:.85rem;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.field-hint{color:var(--muted);margin:6px 0 0;font-size:.875rem;line-height:1.45}.field-error{min-height:1.2em;color:var(--danger);margin:5px 0 0;font-size:.875rem}.ingredient-labels{color:var(--muted);grid-template-columns:minmax(0,1fr) 150px 44px;gap:12px;padding:0 0 7px;font-size:.75rem;display:grid}.ingredient-row{grid-template-columns:minmax(0,1fr) 150px 44px;align-items:end;gap:12px;padding-block:14px;display:grid;box-shadow:inset 0 1px #dfe4da}.ingredient-row .field>label{display:none}.icon-button{width:44px;height:44px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;display:grid}.icon-button:hover{color:var(--danger);background:#fff3f1;border-color:#debdb9}.steps-list{counter-reset:steps}.step-row{border-top:1px solid #ebe5db;grid-template-columns:38px minmax(0,1fr) 44px;align-items:start;gap:12px;padding-block:14px;display:grid}.step-number{color:#fff;background:var(--ink);border-radius:50%;place-items:center;width:32px;height:32px;font-family:Literata,Georgia,serif;display:grid}.step-row .field>label{margin-bottom:6px}.nutrition-receipt{background:#fffef9;border:1px solid #cec6b8;padding:25px 26px 28px;position:sticky;top:106px;box-shadow:0 18px 38px #42372a1f}.nutrition-receipt:after{content:"";background:linear-gradient(135deg,#0000 5px,#fffef9 0) 0 0/10px 10px repeat-x,linear-gradient(45deg,#0000 5px,#fffef9 0) 0 0/10px 10px repeat-x;height:8px;position:absolute;bottom:-8px;left:0;right:0}.receipt-topline{color:var(--muted);border-bottom:1px dashed #aaa294;justify-content:space-between;gap:10px;padding-bottom:12px;font-size:.8rem;display:flex}.scale-feedback{min-height:0;color:var(--parsley);margin:0;padding:0;font-size:.82rem;font-weight:700}.scale-feedback:not(:empty){background:#eef7ef;border:1px solid #b9d0bf;min-height:42px;margin:-4px 0 18px;padding:9px 10px}.nutrition-receipt h2{margin:24px 0 4px;font-size:1.65rem}.calorie-display{border-bottom:3px solid var(--ink);align-items:baseline;gap:7px;padding-bottom:18px;display:flex}.calorie-display strong{font-variant-numeric:tabular-nums;font-family:Literata,Georgia,serif;font-size:4rem;line-height:1}.calorie-display span{color:var(--muted)}.macro-list{margin:8px 0 0}.macro-list div{border-bottom:1px dashed #c8c0b3;justify-content:space-between;padding:12px 0;display:flex}.macro-list dt{align-items:center;gap:8px;display:flex}.macro-list dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.macro-mark{background:var(--parsley);border-radius:50%;width:8px;height:8px}.macro-mark.carbs{background:var(--butter)}.macro-mark.fat{background:var(--tomato)}.macro-mark.fiber{background:#79654c}.receipt-total{justify-content:space-between;margin-top:18px;font-size:.84rem;display:flex}.nutrition-receipt>p{color:var(--muted);margin:20px 0;font-size:.875rem;line-height:1.5}.save-button{width:100%}.error-summary{border:1px solid #d99d96;border-top:3px solid var(--danger);background:#fff1ef;margin:28px 34px 0;padding:16px 18px}.error-summary h2{margin-bottom:6px;font-family:Manrope,sans-serif;font-size:1rem}.error-summary ul{margin:0;padding-left:20px}.error-summary a{color:var(--danger)}.toast{z-index:100;color:#fff;background:var(--ink);max-width:380px;box-shadow:var(--shadow);opacity:0;pointer-events:none;border-radius:9px;padding:13px 18px;transition:opacity .18s,transform .18s;position:fixed;bottom:22px;right:22px;transform:translateY(18px)}.toast.is-visible{opacity:1;transform:translateY(0)}@media (width<=1023px){.editor-layout{grid-template-columns:1fr}.nutrition-receipt{justify-self:end;width:min(100%,520px);position:static}.library-intro{flex-direction:column;align-items:start}.recipe-feature{grid-template-columns:1fr}.recipe-feature-media{min-height:340px}.detail-hero{grid-template-columns:1fr}.detail-hero-copy{padding-right:0}.detail-photo{min-height:440px}.detail-body{grid-template-columns:minmax(0,1fr) 300px;gap:28px}}@media (width<=719px){.site-header{grid-template-columns:1fr auto;min-height:68px;padding-inline:16px}.brand svg{width:32px}.brand span{font-size:.88rem}.primary-nav{display:none}.header-action{padding-inline:13px}.header-action svg{display:none}.page-shell{width:min(100% - 28px, var(--max))}.library-intro{gap:28px;padding-block:40px 24px}h1{font-size:2.8rem}.library-stats{width:100%}.library-stats div{flex:1;min-width:0;padding-inline:12px}.library-tools{flex-direction:column;align-items:stretch}.search-field{width:100%}.recipe-feature{margin-top:24px}.recipe-feature-media{min-height:250px}.recipe-feature-content{padding:26px 22px 30px}.recipe-index-header{display:none}.recipe-list-item{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.recipe-list-item>span:first-of-type{grid-column:1}.recipe-list-item>span:nth-of-type(2),.recipe-list-item>span:nth-of-type(3){display:none}.recipe-list-item svg{grid-area:1/2/span 2}.detail-toolbar{min-height:68px}.detail-toolbar .button{min-height:42px;padding:8px 11px}.detail-hero{width:100%;min-height:0;padding:0}.detail-hero-copy{width:min(100% - 28px, var(--max));margin-inline:auto;padding:34px 0 28px}.detail-category{margin-bottom:14px}.detail-hero h1{margin-bottom:24px;font-size:clamp(2.8rem,14vw,4.2rem)}.detail-photo{min-height:280px;max-height:420px}.detail-body{grid-template-columns:1fr;padding-block:40px 68px}.detail-section-heading{flex-direction:column}.detail-serving{flex-basis:auto;width:100%}.detail-receipt{grid-row:auto;justify-self:stretch;width:100%}.detail-steps{grid-column:auto;padding-top:18px}.detail-steps li{grid-template-columns:46px minmax(0,1fr);gap:12px}.detail-steps li:before{width:38px;height:38px}.editor-heading{padding-top:24px}.editor-title-row{margin-top:18px;display:block}.draft-status{margin-top:16px}.editor-layout{gap:24px;width:100%}.recipe-workspace{border-top-width:3px}.form-section{grid-template-columns:1fr;padding:26px 18px 32px}.section-index{color:#fff;background:var(--tomato);border-radius:50%;place-items:center;width:32px;height:32px;margin-bottom:12px;font-size:1rem;display:grid}.split-heading{flex-direction:column}.split-heading .button{align-self:stretch}.photo-and-basics{grid-template-columns:1fr}.photo-drop{min-height:230px}.basics-grid{grid-template-columns:1fr 1fr}.field-wide{grid-column:1/-1}.ingredient-labels{display:none}.ingredient-row{grid-template-columns:minmax(0,1fr) 104px 44px;align-items:end}.ingredient-row .field>label{display:block}.nutrition-receipt{width:calc(100% - 28px);margin-inline:auto}.error-summary{margin:18px}}@media (width<=430px){.basics-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.ingredient-row{grid-template-columns:minmax(0,1fr) 44px}.ingredient-row .field:nth-child(2){grid-column:1}.ingredient-row .remove-row{grid-area:1/2/span 2;align-self:center}.step-row{grid-template-columns:34px minmax(0,1fr)}.step-row .remove-step{grid-column:2;justify-self:end}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
