:root{--background:#f7f5ef;--surface:#fffefa;--ink:#303c32;--muted:#626c60;--green:#4e6b53;--teal:#496e66;--coral:#a95648;--line:#e3e4d8;--soft-green:#e9eee2;--soft-peach:#f4e7d6;--shadow:0 15px 60px #203b2425;--font-body:"Segoe UI", Arial, sans-serif;--font-display:Georgia, "Times New Roman", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--background);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.65}[hidden]{display:none!important}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:0 0;border:0;transition:background .15s,color .15s}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--teal);outline-offset:4px}a{color:inherit}svg{flex-shrink:0}input,select{min-width:0}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--font-display);font-weight:400;line-height:1.2}h1{letter-spacing:-1px;font-size:40px}h2{font-size:26px}h3{font-size:18px}.eyebrow{letter-spacing:1.7px;color:var(--teal);margin-bottom:12px;font-size:10px;font-weight:600}.site-header{padding-top:max(env(safe-area-inset-top), var(--vk-top,0px));border-bottom:1px solid var(--line)}.header-inner{justify-content:space-between;align-items:center;gap:24px;max-width:1152px;margin:auto;padding:10px 36px;display:flex}.brand{aspect-ratio:1;flex-shrink:0;width:122px}.brand-logo{object-fit:contain;width:100%;height:100%;display:block}.home-logo{display:inline-flex}.header-caption{font-family:var(--font-display);font-size:25px;line-height:1.5}.header-caption small{font-family:var(--font-body);color:var(--muted);font-size:12px;display:block}.header-favorite{align-items:center;gap:9px;min-height:44px;font-size:13px;display:flex}.header-favorite svg{color:var(--coral)}.local-banner{text-align:center;color:#466143;background:#e5eddf;padding:5px 18px;font-size:10px}.shell{outline:none;max-width:1152px;margin:auto;padding:0 36px}.library-tabs{border-bottom:1px solid var(--line);gap:26px;padding-top:10px;display:flex}.library-tabs button{min-height:62px;color:var(--muted);border-bottom:2px solid #0000;align-items:center;gap:9px;padding:0 3px;font-size:13px;display:flex}.library-tabs button.active{color:var(--green);border-bottom-color:var(--green);font-weight:600}.browse{padding-top:22px}.search-bar{top:max(env(safe-area-inset-top), var(--vk-top,0px));z-index:5;background:var(--background);gap:12px;padding:10px 0 16px;display:flex;position:sticky}.search-input{background:var(--surface);border:1px solid var(--line);min-width:0;color:var(--muted);border-radius:10px;flex:1;align-items:center;gap:13px;padding:0 17px;display:flex}.search-input input{min-width:0;color:var(--ink);background:0 0;border:0;outline:none;flex:1;padding:14px 0;font-size:16px}.search-input input:focus-visible{outline:0}.search-input:focus-within{box-shadow:0 0 0 2px var(--teal)}.search-input input::-webkit-search-cancel-button{display:none}.filter-button{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:9px;min-height:52px;padding:0 20px;font-size:13px;display:flex}.filter-button.has-filters{border-color:var(--green);background:var(--soft-green)}.filter-button b{background:var(--green);color:#fff;text-align:center;border-radius:50%;width:19px;height:19px;font-size:11px;font-weight:500;line-height:19px}.icon-button{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.icon-button:hover{background:var(--soft-green)}.browse-heading{justify-content:space-between;align-items:center;gap:25px;margin:24px 0 25px;display:flex}.browse-heading h1{margin:0 0 12px}.browse-caption{color:var(--muted);margin:0;font-size:13px}.sort-label select{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:8px;min-height:44px;padding:10px;font-size:12px}.applied{color:var(--muted);background:var(--soft-green);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;padding:5px 15px;font-size:12px;display:flex}.applied button{white-space:nowrap;min-height:44px;color:var(--green);align-items:center;gap:8px;display:flex}.category-directory{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:0 25px;margin:0;padding:0;list-style:none;display:grid}.category-directory li{border-bottom:1px solid var(--line);min-width:0}.category-link{border-radius:7px;align-items:center;gap:14px;height:100%;min-height:95px;padding:19px 9px;text-decoration:none;display:flex}.category-link:hover{background:var(--soft-green)}.category-dot{border-radius:50%;flex-shrink:0;width:11px;height:11px;display:inline-block}.category-name{flex:1;font-size:15px;line-height:1.5}.category-name small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.chevron{color:var(--muted);font-size:24px;font-family:var(--font-body);margin-left:auto}.breadcrumbs{color:var(--muted);flex-wrap:wrap;align-items:center;gap:5px 9px;margin:20px 0;font-size:12px;display:flex}.breadcrumbs a{align-items:center;gap:7px;min-height:36px;text-decoration:none;display:inline-flex}.breadcrumbs a:hover{color:var(--green);text-decoration:underline}.breadcrumbs [aria-current=page]{color:var(--ink)}.breadcrumbs .category-dot{width:8px;height:8px}.category-list-heading{align-items:center;gap:12px;margin:30px 0 10px;display:flex}.category-list-heading h2{margin:0;font-size:24px}.category-list-heading>span:last-child{color:var(--muted);margin-left:auto;font-size:12px}.recipe-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.recipe-row{border-bottom:1px solid var(--line);align-items:center;gap:18px;min-height:77px;padding:0 5px;display:flex}.recipe-row:hover{background:#edeee638}.recipe-link{text-align:left;flex-direction:column;flex:1;gap:4px;min-width:0;min-height:77px;padding:17px 0;display:flex}.recipe-name{overflow-wrap:anywhere;font-size:16px;font-weight:500;line-height:1.5}.nutrition{color:var(--muted);flex-wrap:wrap;align-items:center;gap:5px 15px;font-size:12px;line-height:1.6;display:flex}.nutrition span{align-items:center;gap:4px;display:inline-flex}.nutrition strong{color:inherit;font-weight:500}.row-tags{color:var(--teal);font-size:11px}.heart{color:#748474}.heart.selected{color:var(--coral)}.heart.selected svg{fill:#f5dfd8}.heart:disabled{opacity:.45}.tree-group{margin:0 0 28px}.tree-group h2{font-family:var(--font-body);margin:0;font-size:18px;font-weight:600}.group-toggle{text-align:left;border-bottom:1px solid var(--line);align-items:center;gap:12px;width:100%;min-height:60px;padding:17px 8px;display:flex}.group-toggle>span:nth-child(2){flex:1}.group-toggle small{color:var(--muted);font-size:12px;font-weight:400}.group-chevron{color:var(--muted);text-align:center;width:20px;font-size:25px;line-height:1;transform:rotate(0)}.group-chevron.expanded{transform:rotate(90deg)}.tree-branch{border-left:1px solid #d3d9ce;margin-left:13px;padding-left:22px}.tree-branch .recipe-list{border-top:0}.tree-branch .recipe-row:last-child{border-bottom:0}.group-more{min-height:44px;color:var(--green);text-align:left;padding:10px 0;font-size:12px}.load-more{border:1px solid var(--line);background:var(--surface);border-radius:9px;min-height:46px;margin:26px auto;padding:12px 25px;font-size:13px;display:block}.browse-bottom{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;margin-top:30px;padding-top:25px;display:flex}.random-button{min-height:48px;color:var(--green);background:var(--soft-green);border-radius:9px;align-items:center;gap:11px;padding:12px 18px;font-size:13px;display:flex}.text-button{min-height:44px;color:var(--green);align-items:center;gap:8px;padding:8px 0;font-size:12px;display:inline-flex}.text-button:hover{text-decoration:underline}.inline-error{color:#94412d;font-size:13px}.inline-error button{min-height:44px;margin-left:10px;text-decoration:underline}.loading-lines{color:var(--muted);padding:25px 0}.loading-lines>span{background:#e8ebe1;border-radius:8px;width:100%;height:52px;margin:15px 0;animation:1.2s infinite alternate pulse;display:block}.loading-lines>span:nth-child(2n){width:73%}.category-info{background:#edf1e7;border:1px solid #dce4d4;border-radius:12px;margin:25px 0 30px;padding:24px 27px}.category-info h2{margin:0 0 15px;font-size:24px}.category-info .eyebrow{letter-spacing:1.2px;font-size:9px}.category-info p{white-space:pre-line;margin-bottom:12px;font-size:14px;line-height:1.8}.category-info details summary{color:var(--green);cursor:pointer;min-height:44px;padding:10px 0;font-size:13px}.category-info details>div{padding-top:12px}.category-info details p:last-child{margin-bottom:0}.detail{padding-top:25px}.back-button{color:var(--green);align-items:center;gap:10px;min-height:44px;padding:0;font-size:13px;display:flex}.detail .breadcrumbs{margin:15px 0 28px}.detail-title{justify-content:space-between;align-items:flex-start;gap:28px;margin-bottom:20px;display:flex}.detail-title h1{overflow-wrap:anywhere;outline:none;max-width:760px;margin:0;font-size:43px;line-height:1.2}.save-button{border:1px solid var(--line);background:var(--surface);white-space:nowrap;min-height:46px;color:var(--green);border-radius:9px;justify-content:center;align-items:center;gap:9px;padding:12px 17px;font-size:12px;display:inline-flex}.save-button.saved{color:var(--coral);background:#f9eee8;border-color:#dcbcb0}.detail>.nutrition{gap:20px;margin-bottom:30px;font-size:14px}.description,.nutrition-note{white-space:pre-line;color:var(--muted);font-size:14px;line-height:1.8}.recipe-body{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:50px;margin:36px 0 45px;display:grid}.ingredients-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:25px}.ingredients-panel h2{margin-bottom:10px;font-size:27px}.ingredient-hint{color:var(--muted);margin-bottom:18px;font-size:12px}.ingredients{margin:0;padding:0;list-style:none}.ingredients li{border-top:1px solid var(--line)}.ingredients label{cursor:pointer;overflow-wrap:anywhere;align-items:baseline;gap:11px;padding:12px 0;font-size:14px;line-height:1.7;display:flex}.ingredients input{width:16px;height:16px;accent-color:var(--green);flex-shrink:0;position:relative;top:3px}.ingredients input:checked+span{color:var(--muted);text-decoration:line-through}.steps-panel h2{font-size:28px}.steps-panel ol{margin:25px 0 0;padding:0;list-style:none}.steps-panel li{gap:20px;margin-bottom:25px;display:flex}.step-number{font-size:23px;font-family:var(--font-display);color:var(--green);flex-shrink:0;width:28px}.steps-panel p{white-space:pre-line;overflow-wrap:anywhere;margin:0;font-size:15px;line-height:1.9}.recipe-note{background:var(--soft-peach);border-radius:10px;padding:23px}.similar{border-top:1px solid var(--line);padding-top:28px}.similar h2{margin-bottom:20px;font-size:27px}.footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:15px;margin-top:50px;padding:25px 0 30px;font-size:12px;display:flex}.footer .brand{width:80px}.mobile-nav{display:none}.toast{z-index:50;background:var(--ink);color:#fff;width:max-content;max-width:min(90vw,500px);box-shadow:var(--shadow);text-align:center;border-radius:11px;padding:14px 23px;font-size:13px;position:fixed;bottom:25px;left:50%;transform:translate(-50%)}.state-message{text-align:center;max-width:600px;margin:auto;padding:55px 20px}.state-symbol{background:var(--soft-green);width:65px;height:65px;color:var(--green);border-radius:50%;place-items:center;margin:0 auto 23px;display:grid}.state-message h2{margin-bottom:15px;font-size:28px}.state-message p{color:var(--muted);font-size:14px;line-height:1.8}.primary{color:#fff;background:var(--green);border-radius:9px;min-height:48px;padding:12px 22px;font-size:13px}.primary:hover{background:#374f41}.gate{flex-direction:column;justify-content:center;align-items:center;max-width:640px;min-height:100svh;margin:auto;padding:40px 24px;display:flex}.gate>.brand{width:200px}.filter-dialog{color:var(--ink);width:520px;max-width:calc(100vw - 30px);max-height:90svh;box-shadow:var(--shadow);background:0 0;border:0;border-radius:20px;padding:0}.filter-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#27372a66}.filter-dialog form{background:var(--background);flex-direction:column;max-height:90svh;display:flex}.dialog-heading{justify-content:space-between;align-items:center;padding:28px 28px 16px;display:flex}.dialog-heading h2{margin:0;font-size:32px}.dialog-heading .eyebrow{margin:0 0 4px}.dialog-content{padding:5px 28px 20px;overflow:auto}.dialog-content label{flex-direction:column;gap:7px;margin:17px 0;font-size:13px;font-weight:500;display:flex}.dialog-content input,.dialog-content select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:9px;width:100%;min-height:48px;padding:12px;font-size:16px}.dialog-content fieldset{border:0;border-top:1px solid var(--line);margin:22px 0 0;padding:18px 0 0}.dialog-content legend{padding-right:12px;font-size:13px}.range-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.range-fields label{margin-top:0}.preset-row{flex-wrap:wrap;gap:8px;display:flex}.preset-row button{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:44px;padding:8px 12px;font-size:12px}.preset-row button.active{background:var(--green);color:#fff}.filter-help{color:var(--muted);margin:6px 0 22px;font-size:12px}.dialog-actions{border-top:1px solid var(--line);background:var(--background);justify-content:space-between;align-items:center;padding:18px 28px;display:flex}.dialog-actions .text-button{padding:10px}.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}.skip-link{z-index:100;background:#fff;padding:15px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:15px}@keyframes pulse{to{opacity:.4}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (max-width:900px){.category-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}.recipe-body{grid-template-columns:290px minmax(0,1fr);gap:27px}.detail-title{flex-wrap:wrap}.header-caption{font-size:22px}.header-inner,.shell{padding-left:26px;padding-right:26px}.detail-title h1{font-size:38px}}@media (max-width:600px){.header-inner{gap:15px;padding:8px 20px}.brand{width:103px}.header-caption{flex:1;font-size:18px;line-height:1.4}.header-caption small{max-width:125px;margin-top:6px;font-size:10px}.header-favorite{justify-content:center;width:44px}.header-favorite span{display:none}.shell{padding:0 20px}.local-banner{font-size:9px}.library-tabs{display:none}.browse{padding-top:17px}.search-bar{gap:9px;padding:7px 0 13px}.search-input{gap:9px;padding:0 12px}.search-input input{width:100%;padding:13px 0;font-size:16px}.filter-button{gap:5px;min-height:52px;padding:0 13px}.filter-button>span{display:none}.browse-heading{margin:18px 0 21px;display:block}.browse-heading h1{letter-spacing:-.8px;margin-bottom:12px;font-size:33px}.eyebrow{letter-spacing:1.5px;font-size:9px}.browse-caption{max-width:320px;font-size:12px;line-height:1.8}.sort-label{margin-top:14px;display:block}.sort-label select{max-width:100%;font-size:12px}.category-directory{grid-template-columns:1fr;gap:0}.category-link{gap:13px;min-height:75px;padding:15px 6px}.category-name{font-size:15px}.category-name small{margin-top:2px;font-size:11px}.category-dot{width:10px;height:10px}.chevron{font-size:22px}.recipe-row{gap:9px;min-height:72px;padding:0 2px}.recipe-link{min-height:72px;padding:14px 0}.recipe-name{font-size:15px}.nutrition{gap:4px 10px;font-size:11px}.tree-group{margin-bottom:22px}.tree-group h2{font-size:16px}.group-toggle{gap:10px;min-height:58px;padding:14px 2px;line-height:1.5}.group-toggle small{font-size:11px}.tree-branch{margin-left:7px;padding-left:15px}.group-more{font-size:12px}.applied{gap:8px;padding:5px 12px;font-size:11px}.breadcrumbs{gap:3px 7px;margin:14px 0;font-size:11px}.breadcrumbs a{min-height:32px}.category-info{margin:20px 0 26px;padding:20px 19px}.category-info h2{font-size:23px}.category-info p{font-size:13px}.category-info .eyebrow{font-size:8px}.category-info details summary{font-size:12px}.category-list-heading{margin-top:25px}.detail{padding-top:17px}.back-button{font-size:12px}.detail .breadcrumbs{margin:12px 0 23px}.detail-title{margin-bottom:19px;display:block}.detail-title h1{letter-spacing:-.6px;margin:0 0 21px;font-size:34px;line-height:1.2}.save-button{font-size:12px}.detail>.nutrition{gap:12px;margin-bottom:24px;font-size:13px}.recipe-body{margin:26px 0 35px;display:block}.ingredients-panel{margin-bottom:32px;padding:22px}.ingredients-panel h2{font-size:26px}.ingredients label{font-size:14px}.steps-panel h2{font-size:28px}.steps-panel li{gap:14px;margin-bottom:22px}.steps-panel p{font-size:15px}.similar h2{font-size:26px}.browse-bottom{margin-top:25px;padding-top:23px}.random-button{justify-content:center;width:100%;font-size:12px}.footer{padding-bottom:calc(100px + env(safe-area-inset-bottom));margin-top:32px;font-size:11px}.footer .brand{width:75px}.mobile-nav{z-index:20;border-top:1px solid var(--line);padding:8px 10px max(9px, env(safe-area-inset-bottom), var(--vk-bottom,0px));-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#faf9f3f5;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav button{min-width:85px;color:var(--muted);flex-direction:column;align-items:center;gap:3px;min-height:51px;padding:5px 12px;font-size:10px;display:flex}.mobile-nav button.active{background:var(--soft-green);color:var(--green);border-radius:10px}.toast{bottom:calc(88px + env(safe-area-inset-bottom));font-size:12px}.filter-dialog{border-radius:23px 23px 0 0;width:100%;max-width:none;max-height:92svh;margin:auto 0 0}.filter-dialog form{max-height:92svh}.dialog-heading{padding:25px 24px 12px}.dialog-content{padding:5px 24px 15px}.dialog-actions{padding:16px 24px max(20px, env(safe-area-inset-bottom))}.state-message{padding:40px 10px}.state-message h2{font-size:26px}}
