@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=DM+Serif+Display:ital@0;1&display=swap";
:root{--ink:#24332d;--cream:#f7f3eb;--paper:#fffdf8;--sage:#667b67;--line:#ded8ca;--rust:#b9583d}*{box-sizing:border-box}body{color:var(--ink);background:var(--paper);margin:0;font-family:DM Sans,sans-serif}button,input{font:inherit}button{color:inherit}.topbar{border-bottom:1px solid var(--line);z-index:10;background:#fffdf8f0;align-items:center;height:76px;padding:0 5vw;display:flex;position:sticky;top:0}.brand{color:var(--ink);align-items:center;gap:11px;margin-right:6vw;font-family:DM Serif Display;font-size:25px;text-decoration:none;display:flex}.brand span{background:var(--ink);color:#fff;border-radius:50% 50% 44% 56%;place-items:center;width:38px;height:38px;font-style:italic;display:grid}nav{align-self:stretch;gap:25px;display:flex}nav button{color:#7b817d;cursor:pointer;background:0 0;border:0;padding:0 3px}nav .navActive{color:var(--ink);border-bottom:2px solid var(--rust)}.actions{align-items:center;gap:12px;margin-left:auto;display:flex}.search{border:1px solid var(--line);border-radius:20px;gap:7px;padding:9px 12px;display:flex}.search input{background:0 0;border:0;outline:0;width:130px}.unitToggle,.avatar{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:18px;padding:8px 13px}.avatar{color:#fff;background:var(--rust);border:0;border-radius:50%;width:38px;height:38px;padding:0;font-size:12px}.avatar img{object-fit:cover;border-radius:inherit;width:100%;height:100%}.hero{background:var(--cream);border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;padding:64px max(5vw,40px);display:flex}.hero>div{max-width:710px}.eyebrow,.category,.asideTitle{text-transform:uppercase;letter-spacing:.16em;color:var(--rust);font-size:11px;font-weight:600}h1,h2,h3{margin:0;font-family:DM Serif Display,serif;font-weight:400}h1{letter-spacing:-.035em;font-size:clamp(48px,6vw,78px);line-height:.98}h1 em{color:var(--rust)}.hero p:not(.eyebrow){color:#67716c;max-width:620px;margin:22px 0 0;line-height:1.7}.primary{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:5px;padding:15px 22px;box-shadow:0 7px 20px #24332d26}.content{grid-template-columns:220px 1fr;max-width:1440px;min-height:600px;margin:auto;display:grid}aside{border-right:1px solid var(--line);padding:39px 27px}aside button{color:#66706b;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;gap:11px;width:100%;margin:2px 0;padding:11px 12px;display:flex}aside button.selected{color:var(--ink);background:#edf0e8;font-weight:600}aside hr{border:0;border-top:1px solid var(--line);margin:24px 0}aside .newBook{color:var(--rust);margin-top:15px}.library{padding:40px 4vw 70px}.libraryHead{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}.libraryHead h2,.modal h2{font-size:35px}.libraryHead p{color:#858a87;font-size:13px}.share{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:5px;padding:10px 14px}.grid{grid-template-columns:repeat(4,minmax(190px,1fr));gap:24px;display:grid}.card{border:1px solid var(--line);background:#fff;border-radius:8px;transition:all .2s;overflow:hidden}.card:hover{transform:translateY(-4px);box-shadow:0 14px 35px #23332c17}.cardImage{place-items:center;height:190px;display:grid;position:relative;overflow:hidden}.cardImage:after{content:"";border:1px solid #ffffff45;border-radius:50%;position:absolute;inset:15%}.cardImage span{filter:drop-shadow(0 13px 12px #0004);z-index:1;font-size:72px}.cardImage button{z-index:2;cursor:pointer;background:#ffffffe8;border:0;border-radius:50%;width:34px;height:34px;position:absolute;top:12px;right:12px}.tomato{background:linear-gradient(135deg,#d1a077,#7a8a5d)}.apple{background:linear-gradient(135deg,#b9a271,#8b4c35)}.herb{background:linear-gradient(135deg,#8ca878,#315947)}.roast{background:linear-gradient(135deg,#c39467,#663f2e)}.cardBody{padding:18px}.cardBody h3{min-height:48px;font-size:21px;line-height:1.15}.category{color:var(--rust);margin:0 0 8px}.meta{color:#8a8f8c;margin:14px 0 0;font-size:12px}.meta span{margin:0 4px}.overlay{z-index:30;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1e2924aa;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--paper);border-radius:10px;width:min(700px,100%);padding:46px;position:relative;box-shadow:0 30px 90px #0005}.close{cursor:pointer;background:0 0;border:0;font-size:28px;position:absolute;top:14px;right:18px}.captureChoices{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px;display:grid}.captureChoices button{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:7px;padding:22px}.captureChoices button:hover{border-color:var(--rust)}.captureChoices strong,.captureChoices span{display:block}.captureChoices span{color:#78807c;margin-top:9px;font-size:13px;line-height:1.5}.modalNote{color:#818682;margin-top:22px;font-size:12px}@media (max-width:1000px){.grid{grid-template-columns:repeat(2,1fr)}nav{display:none}.hero{align-items:start;gap:30px}.content{grid-template-columns:1fr}aside{display:none}}@media (max-width:640px){.search{display:none}.topbar{padding:0 18px}.hero{padding:44px 22px;display:block}.primary{margin-top:26px}.library{padding:30px 20px}.grid,.captureChoices{grid-template-columns:1fr}.unitToggle{font-size:12px}}button,select,input,textarea{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #b9583d55}button:disabled{opacity:.55;cursor:not-allowed}select,input,textarea{color:var(--ink)}.compact{padding-top:45px;padding-bottom:45px}.buttonRow,.modalActions{align-items:center;gap:10px;display:flex}.secondary{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:5px;padding:10px 14px}.textButton{color:var(--rust);cursor:pointer;background:0 0;border:0;padding:8px 0}.iconButton{cursor:pointer;background:#f1eee7;border:0;border-radius:50%;flex:none;width:35px;height:35px;font-size:20px}.notice{border-radius:6px;padding:12px 14px;font-size:13px;line-height:1.5}.notice.error{color:#842f29;background:#f9e8e4;border:1px solid #ebc8c0}.notice.global{z-index:60;background:#fff8e4;border:1px solid #d7c384;position:fixed;top:90px;right:24px;box-shadow:0 8px 30px #0002}.notice.global button{cursor:pointer;background:0 0;border:0;margin-left:16px}.centerState{color:#6c756f;align-content:center;justify-items:center;min-height:100vh;display:grid}.spinner{border:3px solid var(--line);border-top-color:var(--rust);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.authShell{background:var(--paper);grid-template-columns:minmax(420px,1.1fr) minmax(420px,.9fr);min-height:100vh;display:grid}.authStory{color:#fff;background:linear-gradient(135deg,#263b32dd,#263b32fa),radial-gradient(circle at 75% 20%,#b9583d 0,#0000 45%);flex-direction:column;justify-content:space-between;padding:55px 7vw;display:flex}.authStory .brand{color:#fff}.brand.light span{background:var(--rust)}.authStory>div{max-width:650px;margin:15vh 0}.authStory h1{font-size:clamp(54px,7vw,90px)}.authStory p:not(.eyebrow){color:#d8e0db;max-width:520px;font-size:17px;line-height:1.7}.signInPanel{place-items:center;padding:40px;display:grid}.signInCard{width:min(420px,100%)}.signInCard h2{margin:8px 0;font-size:42px}.signInCard>p:not(.eyebrow):not(.legal):not(.demoNote){color:#76807a;margin-bottom:30px}.provider{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:6px;width:100%;margin:6px 0;padding:14px;font-weight:600;position:relative}.provider span{position:absolute;left:17px}.provider.apple{color:#fff;background:#111;border-color:#111}.legal,.demoNote{color:#8a918d;text-align:center;margin-top:24px;font-size:11px;line-height:1.5}.demoNote{color:var(--sage);background:#edf0e8;border-radius:5px;padding:10px}aside button small{color:#939995;margin-top:3px;font-size:10px;font-weight:400;display:block}.grid{grid-template-columns:repeat(3,minmax(220px,1fr))}.card{width:100%;color:inherit;text-align:left;cursor:pointer;padding:0;display:block}.cardBody>p:not(.category):not(.meta){color:#737b77;min-height:38px;font-size:13px;line-height:1.45}.cardImage{background:linear-gradient(145deg,#d4c8af,#738476)}.cardImage.source-url{background:linear-gradient(145deg,#d49b77,#765849)}.cardImage.source-photo{background:linear-gradient(145deg,#b5bd94,#4c705c)}.cardImage.source-manual{background:linear-gradient(145deg,#d2bd91,#887450)}.cardImage small{color:#fff;z-index:2;background:#1d2d27bb;border-radius:12px;padding:5px 8px;position:absolute;bottom:12px;left:12px}.chips{flex-wrap:wrap;gap:5px;margin-top:12px;display:flex}.chips span,.role,.readOnly{text-transform:uppercase;letter-spacing:.07em;color:#536555;background:#edf0e8;border-radius:12px;padding:5px 8px;font-size:10px}.empty{text-align:center;border:1px dashed var(--line);color:#7d8580;border-radius:8px;padding:90px 20px}.empty>span{color:var(--rust);font-size:30px}.empty h3{color:var(--ink);margin-top:12px;font-size:25px}.modal{max-height:calc(100vh - 40px);overflow:auto}.modalHead{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:25px;display:flex}.modalHead .eyebrow{margin-top:0}.editor{width:min(820px,100%)}.formGrid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.formGrid .full{grid-column:1/-1}label{color:#606a64;font-size:12px;font-weight:600;display:block}label input,label textarea,label select,.invite select{border:1px solid var(--line);background:#fff;border-radius:5px;width:100%;margin-top:7px;padding:10px 11px;display:block}textarea{resize:vertical;min-height:72px}fieldset{border:0;margin:25px 0;padding:0}legend,.recipeDetail h3,.review h3{margin-bottom:12px;font-family:DM Serif Display;font-size:22px}.rowFields{grid-template-columns:130px 1fr 35px;align-items:center;gap:8px;margin:7px 0;display:grid}.rowFields input,.rowFields textarea{border:1px solid var(--line);border-radius:5px;width:100%;padding:10px}.stepField{grid-template-columns:25px 1fr 35px}.stepField textarea{min-height:55px}.modalActions{border-top:1px solid var(--line);justify-content:flex-end;margin-top:28px;padding-top:20px}.detailOverlay{place-items:start center;overflow:auto}.recipeDetail{width:min(900px,100%);margin:20px 0}.lede{color:#6c756f;font-size:16px;line-height:1.6}.recipeMeta{border-block:1px solid var(--line);color:#69716d;gap:25px;margin:22px 0;padding:15px 0;font-size:13px;display:flex}.recipeColumns{grid-template-columns:.8fr 1.2fr;gap:45px;display:grid}.ingredients{padding:0;list-style:none}.ingredients li{border-bottom:1px solid #eee9df;padding:10px 0}.ingredients strong{color:var(--rust)}.recipeColumns ol{padding-left:26px}.recipeColumns ol li{padding:0 0 18px 8px;line-height:1.55}.recipeColumns ol small{color:var(--rust);margin-top:4px;display:block}.provenance{background:#f1f2ec;border-radius:5px;flex-direction:column;padding:14px;font-size:12px;display:flex}.provenance span{color:#727a75;margin-top:4px}.sidePanel{width:min(650px,100%)}.muted{color:#78807b;font-size:13px}.invite{background:var(--cream);border-radius:7px;grid-template-columns:1fr 130px auto;align-items:end;gap:9px;padding:18px;display:grid}.memberList,.timeline{margin:25px 0 0;padding:0;list-style:none}.memberList li{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:13px 0;display:flex}.memberList li>div{flex:1}.memberList small,.memberList strong{display:block}.memberList small{color:#858c88;margin-top:3px}.memberList select{border:1px solid var(--line);border-radius:4px;padding:7px}.memberAvatar{background:var(--sage);color:#fff;border-radius:50%;place-items:center;width:38px;height:38px;font-size:11px;display:grid}.profileCard{background:var(--cream);border-radius:7px;align-items:center;gap:14px;padding:18px;display:flex}.profileCard>img,.profileCard>.memberAvatar{object-fit:cover;border-radius:50%;width:48px;height:48px}.profileCard strong,.profileCard small,.authMethods small{display:block}.profileCard small,.authMethods p,.authMethods small{color:#7d8580;margin-top:4px;font-size:12px}.authMethods{margin:26px 0}.authMethods h3{margin:0;font-family:DM Serif Display;font-size:22px}.authMethods>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:13px 0;display:flex}.dataExport{border:1px solid var(--line);border-radius:7px;justify-content:space-between;align-items:center;gap:18px;padding:16px;display:flex}.dataExport h3,.dataExport p{margin:0}.dataExport p{color:#7d8580;margin-top:4px;font-size:12px}.dataExport button{flex:none}.accountActions{border-top:1px solid var(--line);justify-content:space-between;gap:10px;margin-top:26px;padding-top:20px;display:flex}.dangerButton{color:#8c3028;cursor:pointer;background:#fff;border:1px solid #dfb7b0;border-radius:5px;padding:10px 14px}.timeline{border-left:2px solid var(--line);margin-left:9px}.timeline li{justify-content:space-between;align-items:center;padding:0 0 25px 25px;display:flex;position:relative}.timeline li:before{content:"";background:var(--rust);border:3px solid var(--paper);border-radius:50%;width:12px;height:12px;position:absolute;top:4px;left:-7px}.timeline span,.timeline small{color:#858c88;margin-top:4px;font-size:11px;display:block}.importForm{align-items:end;gap:10px;margin-top:25px;display:flex}.importForm label{flex:1}.dropzone{border:2px dashed var(--line);text-align:center;cursor:pointer;border-radius:8px;padding:35px}.dropzone input{border:0;width:auto;margin:0 auto 10px}.jobStatus{background:var(--cream);border-radius:6px;padding:16px}.jobStatus span{color:#737b77;margin-top:4px;font-size:12px;display:block}.jobStatus progress{width:100%;accent-color:var(--rust);margin-top:14px}.review{margin-top:25px}.review>p{color:#747d78;font-size:13px}.review label{border-top:1px solid var(--line);grid-template-columns:1fr 180px;align-items:center;gap:15px;padding:13px 0;display:grid}.review label small{color:#919792;margin-top:4px;font-weight:400;display:block}.sharedPage{background:var(--cream);min-height:100vh}.sharedPage>header{background:var(--paper);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:20px 5vw;display:flex}.shareHero{text-align:center;padding:70px 20px 55px}.shareHero h1{margin:8px 0 18px}.shareHero>p:last-child{color:#767e79}.shareGrid{grid-template-columns:repeat(3,1fr);gap:24px;width:min(1100px,90vw);margin:auto;padding-bottom:80px;display:grid}.sharedPage footer{border-top:1px solid var(--line);text-align:center;color:#7d8580;padding:28px;font-size:12px}.shareError{text-align:center;max-width:700px;margin:20vh auto;padding:20px}.appFooter{border-top:1px solid var(--line);color:#747d78;justify-content:center;gap:18px;padding:18px;font-size:12px;display:flex}.appFooter a,.policyDocument a{color:var(--rust)}.policyShell{background:var(--cream);min-height:100vh;padding:50px 20px}.policyDocument{background:var(--paper);border:1px solid var(--line);border-radius:10px;width:min(780px,100%);margin:auto;padding:48px;box-shadow:0 12px 40px #3b32261a}.policyDocument h1{margin:8px 0 24px}.policyDocument h2{margin:30px 0 8px;font-family:DM Serif Display;font-size:23px}.policyDocument p,.policyDocument li{color:#505954;line-height:1.7}.policyDocument footer{border-top:1px solid var(--line);flex-wrap:wrap;gap:18px;margin-top:42px;padding-top:22px;font-size:13px;display:flex}.policyBack{margin-bottom:28px;text-decoration:none;display:inline-block}@media (max-width:900px){.authShell{grid-template-columns:1fr}.authStory{min-height:420px}.authStory>div{margin:60px 0 20px}.grid,.shareGrid{grid-template-columns:repeat(2,1fr)}.recipeColumns{grid-template-columns:1fr;gap:15px}}@media (max-width:640px){.authStory{min-height:360px;padding:30px}.signInPanel{padding:45px 25px}.signInCard h2{font-size:34px}.grid,.shareGrid{grid-template-columns:1fr}.modal{padding:28px 20px}.formGrid{grid-template-columns:1fr 1fr}.rowFields{grid-template-columns:95px 1fr 35px}.invite,.review label{grid-template-columns:1fr}.recipeMeta{flex-wrap:wrap}.actions .unitToggle{max-width:90px}.compact{padding:40px 22px}.policyDocument{padding:30px 22px}}
