:root{--ink:#1c1e18;--muted:#70736a;--paper:#f5f3eb;--lime:#d5f760;--orange:#f06d38;--line:#d9d7ce}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif}.app-shell{max-width:1180px;margin:auto;padding:0 34px 56px}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);font-weight:800;letter-spacing:-1px;font-size:20px}.brand-mark{display:grid;place-items:center;width:29px;height:29px;background:var(--ink);color:var(--lime);border-radius:50%;font-size:16px;font-style:italic}.nav-meta{font:11px 'DM Mono',monospace;letter-spacing:.1em;color:var(--muted);display:flex;align-items:center;gap:8px}.live-dot{width:7px;height:7px;background:var(--orange);border-radius:50%}.icon-button{border:0;background:transparent;font:24px Manrope;color:var(--ink);cursor:pointer;position:relative;padding:8px}.icon-button span{font:10px 'DM Mono';position:absolute;right:1px;top:2px;background:var(--ink);color:var(--paper);width:16px;height:16px;display:grid;place-items:center;border-radius:50%}.hero{padding:82px 2px 74px;display:flex;justify-content:space-between;align-items:end}.eyebrow{font:11px 'DM Mono',monospace;letter-spacing:.12em;color:var(--muted);margin:0 0 15px}.hero h1{font-size:clamp(52px,8vw,102px);line-height:.93;letter-spacing:-.075em;margin:0;font-weight:800}.hero h1 em{font-family:Georgia,serif;font-weight:400;color:var(--orange)}.hero-copy{font-size:15px;line-height:1.6;max-width:335px;color:var(--muted);margin:24px 0 0}.hero-orb{height:200px;width:200px;border-radius:50%;background:var(--lime);position:relative;display:grid;place-items:center;overflow:hidden;transform:rotate(-10deg)}.hero-orb:before{content:"";border:1px solid var(--ink);border-radius:50%;width:154px;height:154px;position:absolute}.hero-orb span{position:absolute;top:28px;left:39px;font:11px 'DM Mono';z-index:1}.hero-orb b{font-size:21px;line-height:.9;letter-spacing:-.08em;z-index:1}.hero-orb i{position:absolute;width:205px;height:1px;background:var(--ink);transform:rotate(-45deg)}.generator{border-top:2px solid var(--ink);padding:29px 0 38px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:26px}.section-heading .eyebrow{margin:0}.section-heading h2{font-size:25px;letter-spacing:-.05em;margin:0}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.mode{border:1px solid var(--line);background:#faf9f5;padding:20px;display:flex;gap:15px;text-align:left;cursor:pointer;font-family:inherit;transition:.2s}.mode:hover{border-color:var(--ink)}.mode.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.mode-icon{display:grid;place-items:center;flex:0 0 35px;height:35px;border-radius:50%;background:var(--lime);color:var(--ink);font-size:19px}.mode strong,.mode small{display:block}.mode strong{font-size:14px;letter-spacing:-.03em}.mode small{font-size:12px;opacity:.65;margin-top:3px}.choices-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.field{display:block;border:1px solid var(--line);background:#faf9f5;padding:12px 14px}.field>span{display:block;font:10px 'DM Mono';letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.field select,.field input{border:0;width:100%;background:transparent;color:var(--ink);font:600 15px Manrope;outline:0;padding:0;appearance:auto}.pantry-entry{margin-top:10px}.pantry-field small{display:block;font-size:11px;color:var(--muted);margin-top:7px}.pantry-save-row{display:flex;align-items:center;justify-content:space-between;margin-top:9px}.pantry-save-row p{font-size:11px;color:var(--muted);margin:0}.small-button,.clear-pantry{font:600 11px Manrope;border:1px solid var(--ink);background:transparent;padding:7px 10px;cursor:pointer}.saved-pantry{border:1px solid var(--line);background:#f0eee5;padding:12px 14px;margin-top:10px;position:relative}.saved-pantry-label{display:block;font:9px 'DM Mono';letter-spacing:.09em;color:var(--muted);margin-bottom:8px}.pantry-chips{display:flex;flex-wrap:wrap;gap:5px;padding-right:65px}.pantry-chips span{font-size:11px;background:var(--lime);padding:4px 7px}.clear-pantry{position:absolute;right:10px;top:9px;border-color:var(--line);font-size:10px}.is-hidden{display:none!important}.generate-button{width:100%;border:0;background:var(--orange);color:#fff;padding:19px 21px;margin-top:18px;display:flex;justify-content:space-between;font:700 15px Manrope;cursor:pointer;transition:transform .15s,background .15s}.generate-button:hover{background:#dd5a29;transform:translateY(-2px)}.button-arrow{font-size:20px;line-height:14px}.result-area{border-top:1px solid var(--line);min-height:250px}.empty-state{text-align:center;padding:77px 20px;color:var(--muted)}.empty-spark{width:40px;height:40px;margin:auto auto 16px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--orange)}.empty-state p{color:var(--ink);font-weight:700;margin:0 0 6px}.empty-state span{font-size:13px}.recipe-card{display:grid;grid-template-columns:34% 66%;margin-top:35px;border:1px solid var(--ink);background:#fbfaf6}.recipe-visual{background:var(--lime);min-height:440px;position:relative;overflow:hidden;padding:22px}.visual-grain{position:absolute;inset:0;opacity:.14;background-image:radial-gradient(var(--ink) .7px,transparent .7px);background-size:5px 5px}.recipe-number,.recipe-visual p{position:relative;font:11px 'DM Mono';letter-spacing:.12em}.recipe-visual p{position:absolute;bottom:20px;left:22px;margin:0}.meal-art{position:absolute;font-size:150px;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-12deg);filter:drop-shadow(10px 14px 0 rgba(28,30,24,.16));z-index:1}.recipe-content{padding:31px 35px 23px}.recipe-topline{display:flex;justify-content:space-between;align-items:center}.tag{font:10px 'DM Mono';letter-spacing:.1em;background:var(--orange);color:white;padding:6px 8px}.save-recipe{border:0;background:transparent;font-size:27px;cursor:pointer;line-height:20px}.save-recipe.saved{color:var(--orange)}.recipe-content h2{font-size:clamp(29px,4vw,47px);line-height:1;letter-spacing:-.065em;margin:18px 0 12px}.recipe-description{font-size:14px;line-height:1.6;color:var(--muted);max-width:620px;margin:0}.macros{display:flex;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0;padding:12px 0}.macro{flex:1;border-right:1px solid var(--line);padding-left:13px}.macro:first-child{padding-left:0}.macro:last-child{border:0}.macro b,.macro span{display:block}.macro b{font-size:18px;letter-spacing:-.05em}.macro span{font:9px 'DM Mono';color:var(--muted);letter-spacing:.08em;margin-top:3px}.recipe-columns{display:grid;grid-template-columns:1fr 1.15fr;gap:30px}.recipe-columns h3{font:11px 'DM Mono';letter-spacing:.09em;text-transform:uppercase;margin:0 0 12px}.recipe-columns ul,.recipe-columns ol{padding:0;margin:0;list-style:none;counter-reset:steps}.recipe-columns li{font-size:12px;line-height:1.5;padding:7px 0;border-top:1px solid #e6e4dc}.recipe-columns ol li{padding-left:22px;position:relative;counter-increment:steps}.recipe-columns ol li:before{content:counter(steps,decimal-leading-zero);font:9px 'DM Mono';color:var(--orange);position:absolute;left:0;top:9px}.recipe-footer{display:flex;align-items:center;gap:7px;border-top:1px solid var(--line);padding-top:18px;margin-top:23px;font:10px 'DM Mono';color:var(--muted)}.text-button{margin-left:auto;border:0;background:none;color:var(--ink);font:700 12px Manrope;cursor:pointer}.text-button span{color:var(--orange);font-size:16px}.saved-drawer{position:fixed;z-index:4;right:0;top:0;width:min(390px,100vw);height:100vh;padding:27px;background:#fbfaf6;transform:translateX(102%);transition:transform .25s}.saved-drawer.open{transform:none}.drawer-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:17px}.drawer-head h2{font-size:25px;letter-spacing:-.06em;margin:0}.drawer-empty{color:var(--muted);font-size:14px;line-height:1.6;padding:20px 0}.saved-item{display:flex;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.saved-item-art{font-size:30px}.saved-item strong,.saved-item span{display:block}.saved-item strong{font-size:13px}.saved-item span{font:10px 'DM Mono';color:var(--muted);margin-top:4px}.backdrop{position:fixed;inset:0;background:rgba(28,30,24,.27);opacity:0;pointer-events:none;transition:.25s}.backdrop.open{opacity:1;pointer-events:auto}@media(max-width:650px){.app-shell{padding:0 18px 36px}.topbar{height:66px}.nav-meta{display:none}.hero{padding:55px 0 52px}.hero-orb{height:100px;width:100px;flex:0 0 100px}.hero-orb:before{width:76px;height:76px}.hero-orb span{font-size:7px;top:15px;left:20px}.hero-orb b{font-size:11px}.mode-switch,.choices-grid,.recipe-card,.recipe-columns{grid-template-columns:1fr}.hero h1{font-size:55px}.hero-copy{font-size:13px;max-width:230px}.mode{padding:14px}.mode small{display:none}.recipe-visual{min-height:220px}.recipe-content{padding:25px 20px}.meal-art{font-size:100px}.recipe-columns{gap:24px}.recipe-footer{flex-wrap:wrap}.text-button{margin-left:0;width:100%;text-align:left;margin-top:8px}.section-heading{display:block}.section-heading .eyebrow{margin-bottom:8px}.pantry-save-row{align-items:start;gap:10px}.pantry-save-row p{max-width:155px}}

.skip-link{position:absolute;left:1rem;top:-4rem;background:var(--ink);color:var(--paper);padding:.7rem 1rem;z-index:10}.skip-link:focus{top:1rem}.form-status{min-height:1.3em;color:var(--muted);font-size:12px;margin:12px 0 0}.generate-button:disabled,.text-button:disabled,.save-recipe:disabled{cursor:wait;opacity:.65}.icon-button:focus-visible,.mode:focus-visible,.generate-button:focus-visible,.text-button:focus-visible,.small-button:focus-visible,.clear-pantry:focus-visible,.pantry-chip:focus-visible,.save-recipe:focus-visible,.field:focus-within{outline:3px solid var(--orange);outline-offset:3px}.saved-drawer{overflow-y:auto;box-shadow:-12px 0 30px rgba(28,30,24,.08)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
