@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Newsreader:opsz,wght@6..72,400;6..72,500&display=swap');
:root{--ink:#20241f;--muted:#74786e;--line:#dddccf;--paper:#f8f7f1;--cream:#efeee5;--sage:#788071;--white:#fff;--danger:#874941;--serif:"Newsreader",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px}button,input,textarea{font:inherit}button{cursor:pointer}[hidden]{display:none!important}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--line);background:rgba(248,247,241,.92);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-size:22px;text-decoration:none;color:var(--ink)}.brand span{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--ink);border-radius:50%;font-size:18px}.topbar nav{display:flex;align-items:center;gap:24px}.nav-link{border:0;background:none;color:var(--ink)}.add-button,.submit-recipe,.author-link{border:0;background:var(--ink);color:#fff;padding:13px 19px;border-radius:2px;text-decoration:none}.add-button span{font-size:19px;margin-right:7px}.searchbar{position:fixed;z-index:19;top:88px;left:0;right:0;padding:18px 5vw;background:var(--white);display:flex;gap:12px;box-shadow:0 16px 40px #24271f18}.searchbar input{flex:1;border:0;border-bottom:1px solid var(--ink);background:transparent;padding:10px 2px;outline:none}.searchbar button{border:0;background:none}.hero{max-width:860px;text-align:center;margin:105px auto 58px;padding:0 24px}.eyebrow,.section-label{text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:600;color:var(--sage);margin:0 0 18px}.mode-badge{display:inline-flex;background:#e4e5da;color:#596054;border-radius:99px;padding:7px 11px;font-size:11px;margin-bottom:20px}.hero h1{font-family:var(--serif);font-size:clamp(48px,7vw,86px);font-weight:400;line-height:.97;letter-spacing:-.035em;margin:0 auto 28px}.intro{font-family:var(--serif);font-size:22px;line-height:1.55;color:#54584f;max-width:680px;margin:0 auto}.meta{display:flex;gap:14px;align-items:center;justify-content:center;margin-top:26px;color:var(--muted);font-size:13px}.meta i{width:3px;height:3px;background:var(--sage);border-radius:50%}.dish-photo{width:min(1180px,90vw);height:min(68vw,720px);margin:0 auto;overflow:hidden;background:#ddd}.dish-photo img{width:100%;height:100%;object-fit:cover;display:block}.recipe-layout{width:min(1050px,86vw);margin:110px auto 80px;display:grid;grid-template-columns:1fr 1.45fr;gap:13vw}.recipe-layout h2,.comments h2,.modal h2{font-family:var(--serif);font-size:42px;font-weight:400;margin:0 0 30px}.ingredients ul{list-style:none;padding:0;margin:0}.ingredients li{padding:15px 0;border-bottom:1px solid var(--line);line-height:1.45}.method ol{padding:0;margin:0;list-style:none}.method li{display:grid;grid-template-columns:44px 1fr;gap:18px;padding:0 0 27px;margin-bottom:27px;border-bottom:1px solid var(--line)}.method li span{font-family:var(--serif);font-size:18px;color:var(--sage)}.method li p{margin:0;line-height:1.75;color:#4e524b}.source{width:min(1050px,86vw);margin:0 auto 38px;text-align:right}.source a{color:var(--sage)}.recipe-switcher{width:min(1050px,86vw);margin:0 auto 100px;display:flex;justify-content:space-between;align-items:center}.recipe-switcher button{border:0;background:none;padding:12px 0}.recipe-switcher button:disabled{opacity:.25}.recipe-switcher span{font-size:12px;letter-spacing:.12em;color:var(--muted)}.comments{background:var(--cream);padding:100px max(7vw,24px)}.comments-head{width:min(980px,100%);margin:0 auto 50px;display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line)}.comments-head h2 sup{font-family:var(--sans);font-size:12px;color:var(--sage);vertical-align:top;margin-left:6px}.comments-head>p{max-width:330px;color:var(--muted);line-height:1.6;margin-bottom:30px}.comment-list,.comment-form,.public-note{width:min(760px,100%);margin-left:auto;margin-right:auto}.comment{display:grid;grid-template-columns:46px 1fr;gap:18px;padding:24px 0;border-bottom:1px solid var(--line)}.avatar{width:42px;height:42px;border-radius:50%;background:#d5d7c9;display:grid;place-items:center;font-family:var(--serif);font-size:18px}.comment-meta{display:flex;justify-content:space-between}.comment-meta time{font-size:11px;color:var(--muted)}.comment p{margin:8px 0 0;color:#51554e;line-height:1.65}.comment-form{display:grid;grid-template-columns:150px 1fr auto;gap:10px;margin-top:35px}.comment-form input,.comment-form textarea{border:1px solid var(--line);background:var(--paper);padding:14px;outline:none}.comment-form textarea{resize:vertical;min-height:52px}.comment-form button{border:0;background:var(--sage);color:#fff;padding:0 22px}.public-note{text-align:center;color:var(--muted);margin-top:36px}.recipe-actions{margin-top:24px;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.vote-button,.vote-readonly{border:1px solid var(--line);background:#fff;border-radius:99px;padding:8px 13px;color:var(--ink);display:flex;gap:7px;align-items:center}.tag-list{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.tag-list button{border:0;background:#e4e5da;color:#596054;border-radius:99px;padding:8px 11px;font-size:12px}.tag-form{display:flex}.tag-form input{width:112px;border:1px solid var(--line);background:#fff;padding:8px 10px;border-radius:99px 0 0 99px;outline:none}.tag-form button{border:0;background:var(--sage);color:#fff;width:34px;border-radius:0 99px 99px 0}.delete-button{border:0;background:none;color:var(--danger);font-size:12px;padding:8px}footer{height:190px;padding:0 5vw;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center}footer p{text-align:center;color:var(--muted);font-family:var(--serif);font-size:18px}footer small{text-align:right;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:#1c201bd9;z-index:50;display:grid;place-items:center;padding:20px;overflow:auto}.modal{background:var(--paper);width:min(680px,100%);max-height:92vh;overflow:auto;padding:52px;position:relative;box-shadow:0 30px 90px #0004}.modal-close{position:absolute;right:22px;top:18px;border:0;background:none;font-family:var(--serif);font-size:30px}.modal>p:not(.section-label){color:var(--muted);line-height:1.55}.tabs{display:grid;grid-template-columns:1fr 1fr;margin:32px 0 25px;border-bottom:1px solid var(--line)}.tabs button{border:0;background:none;padding:13px;color:var(--muted)}.tabs button.active{color:var(--ink);border-bottom:2px solid var(--ink)}.modal form>label,.form-row label{display:grid;gap:7px;margin-bottom:17px;font-size:12px;font-weight:600}.modal input,.modal textarea{width:100%;padding:13px;border:1px solid var(--line);background:#fff;outline:none;font-weight:400}.modal textarea{min-height:85px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal label small{font-weight:400;color:var(--muted)}.file-label input{display:none}.file-label span{display:flex;align-items:center;height:44px;padding:0 13px;border:1px dashed var(--sage);font-weight:400;color:var(--sage)}.submit-recipe{width:100%;margin-top:8px;padding:15px}.submit-recipe:disabled{opacity:.6}.notice{text-align:center;color:var(--sage);margin:14px 0 0}.contact-modal{width:min(560px,100%)}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:80;background:var(--ink);color:white;padding:13px 18px;box-shadow:0 8px 30px #0003}
@media(max-width:760px){.topbar{height:72px;padding:0 18px}.topbar .brand{font-size:18px}.nav-link{display:none}.author-link,.add-button{padding:10px 12px}.hero{margin:70px auto 38px}.hero h1{font-size:50px}.intro{font-size:19px}.dish-photo{width:100%;height:72vw}.recipe-layout{grid-template-columns:1fr;gap:70px;margin:75px auto}.comments{padding-top:70px}.comments-head{display:block}.comments-head>p{margin-top:-15px}.comment-form{grid-template-columns:1fr}.comment-form button{padding:14px}footer{height:auto;padding:45px 22px;display:flex;flex-direction:column;gap:13px}footer p{margin:0}footer small{text-align:center}.modal{padding:45px 22px 28px}.form-row{grid-template-columns:1fr}.searchbar{top:72px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
