:root{--ink:#182420;--muted:#69736f;--cream:#f4f0e7;--paper:#fffdf8;--green:#173f35;--lime:#c7e36d;--line:#dcd9cf;--shadow:0 20px 50px rgba(24,36,32,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input{font:inherit}button{cursor:pointer}.login-screen{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--green)}.login-art{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:10vw;color:var(--lime);background:radial-gradient(circle at 20% 30%,#39695a 0 2px,transparent 3px),linear-gradient(140deg,#214f43,#102f28);background-size:28px 28px,auto}.login-art:after{content:"";position:absolute;width:55vw;height:55vw;border:1px solid #51766c;border-radius:50%;left:-15vw;bottom:-25vw}.login-art span{font:800 clamp(6rem,18vw,15rem)/.72 Georgia,serif;letter-spacing:-.08em}.login-art b{font-size:clamp(1.5rem,4vw,4rem);letter-spacing:.38em;margin-left:.6rem}.login-card{background:var(--paper);padding:clamp(2rem,7vw,8rem);display:flex;flex-direction:column;justify-content:center}.brand{display:flex;align-items:center;gap:.7rem;color:inherit;text-decoration:none;font-weight:750}.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:var(--green);color:var(--lime);border-radius:50%;font-family:Georgia,serif}.eyebrow{font-size:.71rem;letter-spacing:.18em;font-weight:800;color:#517066;margin:2rem 0 .7rem}.login-card h1,.hero h1{font:500 clamp(2.7rem,5vw,5rem)/.95 Georgia,serif;letter-spacing:-.045em;margin:0}.login-card .muted{max-width:32rem;color:var(--muted);line-height:1.65}.login-card label{font-size:.78rem;font-weight:800;margin:1.5rem 0 .5rem}.password-row{display:flex;border:1px solid var(--line);background:white}.password-row input{border:0;outline:0;padding:1rem;flex:1;min-width:0;background:transparent;font-size:1.2rem}.password-row button{border:0;background:transparent;padding:0 1rem;color:var(--muted)}.primary{border:0;background:var(--green);color:white;padding:1rem 1.2rem;font-weight:750;display:flex;justify-content:space-between;align-items:center;margin-top:1rem}.primary:hover{background:#205648}.login-card small{margin-top:2rem;color:#89908d}.error{color:#a43d32;min-height:1.2rem;margin:.5rem 0 0;font-size:.85rem}.app header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1rem,5vw,5rem);background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.app nav{display:flex;gap:1.2rem}.app nav button,.ghost{border:0;background:transparent;color:var(--muted);padding:.7rem;font-weight:700}.app nav .nav-active{color:var(--ink);border-bottom:2px solid var(--green)}#favCount{background:var(--lime);color:var(--green);border-radius:20px;padding:.08rem .42rem;margin-left:.2rem}main{max-width:1320px;margin:auto;padding:0 clamp(1rem,5vw,4.5rem) 5rem}.hero{min-height:480px;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:4rem;border-bottom:1px solid var(--line)}.hero h1 em{color:#517066;font-weight:400}.hero>div>p:not(.eyebrow){max-width:570px;color:var(--muted);line-height:1.7;font-size:1.05rem}.hero-meta{display:flex;gap:2.5rem;margin-top:2rem}.hero-meta span{display:flex;flex-direction:column;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.hero-meta b{font:600 1.8rem Georgia,serif;color:var(--ink);letter-spacing:0}.book-cover{justify-self:end;width:min(310px,80%);aspect-ratio:.72;background:linear-gradient(150deg,#d8ed91,#a9cb50);box-shadow:-14px 14px 0 #143c33, var(--shadow);padding:2rem;display:flex;flex-direction:column;justify-content:flex-end;color:var(--green);transform:rotate(2deg)}.book-cover span{font:700 2.7rem/.82 Georgia,serif}.book-cover strong{font-size:.8rem;letter-spacing:.35em;margin-top:1rem}.book-cover small{margin-top:auto;letter-spacing:.15em}.tools{padding:2rem 0;border-bottom:1px solid var(--line)}.search{display:flex;align-items:center;background:var(--paper);border:1px solid var(--line);padding:0 .9rem}.search span{font-size:1.5rem}.search input{flex:1;border:0;background:transparent;padding:1rem;outline:0;min-width:0}.search kbd{font-size:.7rem;border:1px solid var(--line);padding:.25rem .4rem;color:var(--muted)}.filters{display:flex;gap:.55rem;margin-top:1rem;overflow:auto;padding-bottom:.25rem}.filter{white-space:nowrap;border:1px solid var(--line);background:transparent;padding:.65rem 1rem;border-radius:99px;color:var(--muted)}.filter.active{background:var(--green);border-color:var(--green);color:white}.section-head{display:flex;align-items:end;justify-content:space-between;margin:3rem 0 1.3rem}.section-head .eyebrow{margin:0 0 .5rem}.section-head h2{font:500 2rem Georgia,serif;margin:0}.section-head>span{color:var(--muted);font-size:.85rem}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}.recipe-card{background:var(--paper);border:1px solid var(--line);transition:.25s;min-width:0}.recipe-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.card-visual,.dialog-visual{aspect-ratio:1.35;display:flex;align-items:flex-end;padding:1.2rem;background:linear-gradient(140deg,var(--c1),var(--c2));position:relative;overflow:hidden}.card-visual:before,.dialog-visual:before{content:"";position:absolute;border:1px solid rgba(255,255,255,.45);border-radius:50%;width:70%;aspect-ratio:1;right:-18%;top:-25%}.card-visual span,.dialog-visual span{font:italic 4.2rem Georgia,serif;color:rgba(255,255,255,.65)}.card-body{padding:1.2rem}.card-top{display:flex;justify-content:space-between;gap:1rem}.card-body h3{font:500 1.35rem/1.15 Georgia,serif;margin:.35rem 0;min-height:3.1rem}.card-body p{margin:.5rem 0;color:var(--muted);font-size:.8rem}.fav{border:0;background:transparent;font-size:1.3rem;color:#78817e}.fav.on{color:#b14343}.open-card{width:100%;border:0;border-top:1px solid var(--line);background:transparent;padding:1rem;text-align:left;font-weight:750;color:var(--green)}.empty{text-align:center;padding:5rem;color:var(--muted)}.empty span{font-size:3rem}footer{display:flex;justify-content:space-between;padding:2rem clamp(1rem,5vw,5rem);background:var(--green);color:#b6c9c1;font-size:.8rem}dialog{width:min(900px,92vw);padding:0;border:0;background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(10,25,21,.75);backdrop-filter:blur(4px)}dialog[open]{display:grid;grid-template-columns:.8fr 1.2fr}.dialog-visual{aspect-ratio:auto;min-height:520px}.dialog-visual span{font-size:7rem}.dialog-close{position:absolute;right:.8rem;top:.8rem;z-index:2;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.9);font-size:1.5rem}dialog article{padding:clamp(2rem,5vw,4rem)}dialog h2{font:500 2.7rem/1 Georgia,serif;margin:.5rem 0 1.2rem}.dialog-meta{display:flex;gap:1rem;color:var(--muted);font-size:.85rem}.notice{background:var(--cream);padding:1.2rem;margin:2rem 0;line-height:1.55}.notice p{color:var(--muted);margin:.4rem 0}.hidden{display:none!important}@media(max-width:820px){.login-screen{grid-template-columns:1fr}.login-art{min-height:28vh;padding:2rem}.login-art span{font-size:5rem}.login-art b{font-size:1.2rem}.login-card{min-height:72vh;padding:2rem}.app header{height:66px}.app nav{display:none}.hero{grid-template-columns:1fr;min-height:auto;padding:3rem 0}.book-cover{display:none}.recipe-grid{grid-template-columns:repeat(2,1fr)}dialog[open]{grid-template-columns:1fr}.dialog-visual{min-height:230px}.dialog-visual span{font-size:5rem}dialog article{padding:1.6rem}}@media(max-width:540px){.recipe-grid{grid-template-columns:1fr}.search kbd{display:none}.hero h1{font-size:3.6rem}.hero-meta{gap:1.3rem}.app header .ghost{font-size:0}.app header .ghost:after{content:"↗";font-size:1rem}.section-head h2{font-size:1.65rem}footer{flex-direction:column;gap:.5rem}.card-body h3{min-height:auto}}
