[hidden]{display:none!important}.brand{color:var(--ink);text-decoration:none}.mainnav{display:flex;gap:28px;max-width:1240px;margin:auto;padding:0 26px;border-bottom:1px solid var(--line)}.mainnav a{color:var(--muted);text-decoration:none;font-size:13px;font-weight:600;padding:18px 0;border-bottom:3px solid transparent;display:flex;gap:7px;align-items:center}.mainnav a[aria-current]{color:var(--green);border-color:var(--green)}.mainnav a span{font-size:10px;background:#e7eddf;border-radius:10px;padding:2px 6px}.libraryhero{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:8px 0 45px}.libraryhero h1{font-size:52px;line-height:1.08}.libraryhero .intro{margin-bottom:18px;line-height:1.75}.textlink{font-size:13px;color:var(--green);text-underline-offset:5px}.hero-art{position:relative;width:290px;height:265px;flex-shrink:0}.art-circle{position:absolute;width:250px;height:250px;border-radius:50%;background:#ede9dd;left:10px;top:0}.cake-plate{position:absolute;top:203px;left:0;width:275px;height:24px;border-radius:50%;background:#d7c9b5}.cake-body{position:absolute;top:114px;left:30px;width:220px;height:96px;background:#c58b63;border-radius:0 0 45% 45%;box-shadow:inset -20px 0 #b87b55}.cake-layer{position:absolute;left:30px;top:153px;width:220px;height:28px;border-radius:0 0 40% 40%;background:#f4e1c4;box-shadow:0 6px #9e5449}.cake-top{position:absolute;top:79px;left:30px;width:220px;height:83px;border-radius:50%;background:#f8e8d0;border-bottom:12px solid #e4c4a1}.cherry{position:absolute;width:22px;height:22px;background:#b65447;border-radius:50%;top:103px;left:106px;box-shadow:inset -5px -3px #943f3c}.cherry:before{content:'';width:12px;height:23px;border:2px solid #526c46;border-bottom:0;border-left:0;border-radius:0 15px 0 0;position:absolute;top:-17px;left:9px;transform:rotate(-15deg)}.cherry-two{top:113px;left:162px}.cherry-three{top:91px;left:144px}.art-label{position:absolute;bottom:0;left:106px;transform:rotate(-7deg);font:italic 21px Georgia;color:var(--orange)}.library-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:30px}.filters{padding:22px;background:#f1ede4;border-radius:14px;height:fit-content;position:sticky;top:20px}.filters h2{font-size:22px}.filters label{margin-top:23px}.filters input,.filters select{background:#fffdf8;font-size:13px}.quiet{border:0;background:transparent;padding:6px 0;font-size:12px;text-decoration:underline;text-underline-offset:3px}.quiet:hover{background:transparent;color:var(--orange)}.filter-tip{border-top:1px solid #ded5c8;margin-top:26px;padding-top:20px;display:flex;gap:10px;font-size:12px;color:#74695e}.filter-tip span{font-size:26px;color:var(--orange)}.filter-tip p{margin:0}.resultshead{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:46px;margin-bottom:16px}.resultshead p{margin:0;font-size:13px;color:var(--muted)}.sortlabel{display:flex;gap:9px;align-items:center;font-size:11px;margin:0;color:var(--muted)}.sortlabel select{width:auto;font-size:12px;padding:8px;background:transparent}.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.recipe-card{background:#fffdf9;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}.recipe-card:hover{transform:translateY(-3px);box-shadow:0 8px 22px #4935260c}.card-art{position:relative;height:115px;background:var(--tile-bg,#eee4d6);display:flex;align-items:center;justify-content:center;overflow:hidden}.card-art svg{width:128px;height:100px;transform:rotate(-4deg)}.card-art:after{content:'';position:absolute;border:1px solid #ffffff80;border-radius:50%;width:130px;height:130px;right:-40px;top:-50px}.card-no{position:absolute;left:14px;top:12px;font-size:10px;letter-spacing:1px;color:#5e5149}.card-body{padding:17px;display:flex;flex-direction:column;flex:1}.card-type{font-size:9px;font-weight:700;color:var(--orange);letter-spacing:1.1px;text-transform:uppercase}.card-body h3{font:22px/1.17 Georgia;margin:8px 0 11px;letter-spacing:-.4px}.card-meta{font-size:11px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap}.card-tags{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}.chip{font-size:10px;border-radius:5px;padding:4px 7px;background:#f1ede5;color:#716355}.card-body .card-open{margin-top:auto;width:100%;background:transparent;border-color:#dcd6ca;font-size:12px}.card-open:hover{background:#eef2e9}.more{display:block;margin:28px auto;background:transparent;padding:12px 30px}.catalogue-footnote{color:var(--muted);font-size:11px;line-height:1.7}.empty-panel{text-align:center;border:1px dashed #d9d0c2;border-radius:14px;padding:45px 25px;background:#f6f2e9;color:var(--muted)}.empty-panel h2{color:var(--ink)}.empty-panel p{font-size:14px}.empty-icon{font-size:42px;color:var(--orange)}.pantry-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:28px;align-items:start}.pantry-input{position:sticky;top:20px}.inline-input{display:flex;gap:7px}.inline-input button{padding:10px}.chips{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.ingredient-chip{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--green);background:#eaf0e6;border:1px solid #cdd9c7;border-radius:7px;padding:8px 10px}.ingredient-chip button{border:0;background:transparent;padding:0;font-size:16px;color:var(--green)}.pantry-common{border-top:1px solid var(--line);padding-top:18px;margin:18px 0 25px}.pantry-common .eyebrow{font-size:9px;letter-spacing:1px}.pantry-common button{font-size:11px;padding:7px 8px;margin:7px 5px 0 0;font-weight:400}.pantry-common button[aria-pressed=true]{background:#dfe8d9;border-color:#b9cdb3}.pantry-input #pantry-reset{display:block;margin-top:12px}.pantry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.match{font-size:11px;line-height:1.7;margin:10px 0;color:var(--green)}.match.missing{color:#955438}.missing-list{font-size:11px;color:var(--muted);line-height:1.65;margin:0 0 15px}.import-banner{background:#e7eedf;border:1px solid #c6d2bc;border-radius:12px;padding:18px;margin-bottom:25px;line-height:1.7;font-size:13px}.import-banner strong{display:block}dialog{max-width:790px;width:calc(100% - 30px);max-height:90vh;padding:28px;border:1px solid var(--line);border-radius:19px;background:var(--cream);color:var(--ink)}dialog::backdrop{background:#25251f99;backdrop-filter:blur(3px)}.dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.dialog-toolbar button{background:transparent;border:0;font-size:17px;padding:5px 10px}.detail-title{font:36px/1.15 Georgia;letter-spacing:-1px;margin:20px 0 14px}.detail-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--muted)}.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:28px}.detail-columns h3{font:23px Georgia;margin:0 0 16px}.detail-ingredients{list-style:none;padding:0;margin:0}.detail-ingredients li{border-top:1px solid var(--line);padding:10px 0;font-size:13px;line-height:1.6;display:flex;gap:8px}.ingredient-marker{color:var(--green);flex-shrink:0}.ingredient-marker.lacks{color:#aa7958}.detail-steps{padding-left:21px;margin:0}.detail-steps li{font-size:13px;line-height:1.8;padding:0 0 13px 4px}.source-block{border-top:1px solid var(--line);margin-top:22px;padding-top:20px;font-size:12px;color:var(--muted);line-height:1.8}.source-block a{color:var(--green)}.detail-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.detail-notice{font-size:12px;line-height:1.7;color:var(--muted);margin:14px 0}.detail-actions .primary{padding:13px 20px}body:has(dialog[open]){overflow:hidden}.view{animation:appear .2s ease-out}@keyframes appear{from{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}a:focus-visible,button:focus-visible{outline:3px solid #a3bca4;outline-offset:3px}button:disabled{opacity:.5;cursor:default}#recipe-dialog a{overflow-wrap:anywhere}#pantry-feedback{min-height:18px}header .topactions select{max-width:120px}button,a,input,select{-webkit-tap-highlight-color:transparent}@media(min-width:1300px){main{margin-top:36px}}@media(max-width:1100px){.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pantry-layout{grid-template-columns:300px minmax(0,1fr)}.libraryhero h1{font-size:45px}.hero-art{transform:scale(.9)}}@media(max-width:850px){.library-layout{grid-template-columns:190px minmax(0,1fr);gap:20px}.filters{padding:17px}.hero-art{display:none}.libraryhero{padding-bottom:32px}.pantry-layout{grid-template-columns:1fr}.pantry-input{position:static}.pantry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.mainnav{gap:20px;padding:0 16px;overflow:auto}.mainnav a{font-size:12px;white-space:nowrap;padding:15px 0}.mainnav a span{display:none}.libraryhero h1{font-size:38px}.libraryhero .intro br{display:none}.library-layout{display:block}.filters{position:static;display:grid;grid-template-columns:1fr 1fr;gap:0 12px;margin-bottom:22px}.filters .panelhead,.filters>.small{grid-column:1/-1}.filters .panelhead{margin-bottom:6px}.filters .small{display:none}.filters label{grid-column:1/-1;margin-top:12px}.filters input,.filters select{grid-column:1/-1}.filter-tip{display:none}.resultshead{align-items:start}.sortlabel{font-size:0}.sortlabel select{max-width:165px;font-size:11px}.recipe-grid{gap:12px}.card-body{padding:13px}.card-body h3{font-size:21px}.card-art{height:100px}.card-art svg{width:110px}.card-meta{gap:5px;font-size:10px}.card-type{font-size:8px}.card-tags{gap:4px}.chip{font-size:9px;padding:4px 5px}.detail-columns{grid-template-columns:1fr}.detail-title{font-size:30px}dialog{padding:20px}.pantry-input{padding:20px}.libraryhero .textlink{font-size:12px}.pantry-grid{grid-template-columns:1fr}.pantry-grid .card-art{height:90px}.pantry-grid .card-body h3{font-size:24px}h1#pantry-title{font-size:36px}.filters>.panelhead h2{font-size:21px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{.mainnav,.libraryhero,.filters,.resultshead,.more,.catalogue-footnote{display:none}dialog[open]{position:static;max-height:none;width:100%;max-width:none;border:0}.dialog-toolbar,.detail-actions{display:none}body:has(dialog[open]) main,body:has(dialog[open]) header{display:none}body:has(dialog[open]){overflow:visible}.detail-columns{display:block}dialog::backdrop{display:none}}

header .tag{white-space:nowrap}header .topactions select{width:120px;flex-shrink:0}

.mobile-filter-toggle{display:none}@media(max-width:650px){.mobile-filter-toggle{display:block;width:100%;text-align:left;margin-bottom:16px;background:#f1ede4;padding:15px}.filters:not(.filters-open){display:none}.mainnav{gap:15px}.mainnav a{font-size:11px}.card-body h3{font-size:20px}}
