@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/savori/fonts/Inter-Medium.ttf) format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/savori/fonts/Inter-SemiBold.ttf) format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/savori/fonts/Inter-Bold.ttf) format("truetype")}@font-face{font-family:SwearDisplay-BoldCilati;font-display:swap;src:url(/savori/fonts/SwearDisplay-BoldCilati.otf) format("opentype")}@font-face{font-family:SwearText-Medium;font-display:swap;src:url(/savori/fonts/SwearText-Medium.otf) format("opentype")}.savori-brand{--savori-primary: #300d25;--savori-primary-dark: #2e1226;--savori-primary-medium: #451839;--savori-primary-light: #4f2431;--savori-primary-lighter: #a48f95;--savori-purple: #491f87;--savori-lavender: #a18cbf;--savori-pink: #fadeeb;--savori-green: #4da659;--savori-red: #db6659;--savori-beige: #f7f2ed;--savori-dark-beige: #e8ded6;--savori-darker-beige: #dfd2c8;--savori-light: #fafafa;--bg: var(--savori-beige);--surface: #fff;--ink: var(--savori-primary-light);--muted: var(--savori-primary-lighter);--accent: var(--savori-purple);--accent-soft: var(--savori-pink);--border: var(--savori-dark-beige);--error: var(--savori-red);--radius: 12px;--radius-lg: 40px;font-family:SwearText-Medium,Georgia,serif;color:var(--ink);background:var(--bg)}.savori-brand body,.savori-brand .app{font-family:inherit;color:var(--ink)}.savori-brand .panel h2,.savori-brand .direction-header h4,.savori-brand .savori-paywall h2{font-family:SwearText-Medium,Georgia,serif;font-size:1.5rem;line-height:1.3;font-weight:400;color:var(--savori-primary-light)}.savori-brand .substitute-panel h3,.savori-brand .directions h3,.savori-brand .panel h3{font-family:Inter,system-ui,sans-serif;font-size:.875rem;font-weight:600;color:var(--savori-primary-light)}.savori-brand .hint,.savori-brand .tagline,.savori-brand .meta,.savori-brand .ingredient-summary,.savori-brand .field,.savori-brand .option-label,.savori-brand .cuisine-lock label{font-family:Inter,system-ui,sans-serif;font-size:.875rem;font-weight:500}.savori-brand .steps,.savori-brand .savori-steps{font-family:Inter,system-ui,sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--savori-primary-lighter)}.savori-brand .steps .active,.savori-brand .savori-steps .active{color:var(--savori-purple)}.savori-header{margin-bottom:.25rem}.savori-header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.savori-brand-lockup{display:flex;align-items:baseline;gap:.4rem;color:var(--savori-primary-light)}.savori-logo{height:3rem;width:auto;display:block}.savori-ai-mark{font-family:SwearDisplay-BoldCilati,Georgia,serif;font-size:1.1rem;line-height:1;color:var(--savori-purple)}.savori-tagline{font-family:SwearText-Medium,Georgia,serif;font-size:1rem;color:var(--savori-primary-lighter);margin:.35rem 0 .75rem}.savori-brand .panel{background:var(--surface);border:2px solid #fff;border-radius:var(--radius);box-shadow:0 2px 5px #2e12261f}.savori-brand .direction-card{background:#fff;border:2px solid #fff;border-radius:var(--radius);box-shadow:0 2px 5px #2e122614}.savori-brand .direction-header h4{color:var(--savori-purple)}.savori-brand .direction-accept{font-family:SwearText-Medium,Georgia,serif;background:var(--savori-primary-dark);color:#fff;border:none;border-radius:var(--radius)}.savori-brand .direction-chip{font-family:Inter,system-ui,sans-serif;font-weight:500;background:var(--savori-dark-beige);color:var(--savori-primary-light);border-color:var(--savori-dark-beige)}.savori-brand .direction-chip:hover{border-color:var(--savori-green)}.savori-brand .chip{font-family:Inter,system-ui,sans-serif;font-weight:500;background:var(--savori-green);color:#fff}.savori-brand .option-pill{font-family:Inter,system-ui,sans-serif;font-weight:500;background:var(--savori-dark-beige);border-color:var(--savori-dark-beige);color:var(--savori-primary-light)}.savori-brand .option-pill:hover{border-color:var(--savori-primary-lighter)}.savori-brand .option-pill.selected{background:var(--savori-dark-beige);border-color:var(--savori-green);color:var(--savori-primary-light);font-weight:600}.savori-brand .search input,.savori-brand .cuisine-lock select,.savori-brand .field input,.savori-brand .field textarea{font-family:Inter,system-ui,sans-serif;font-weight:500;background:#fff;border-color:var(--savori-dark-beige);color:var(--savori-primary-light);border-radius:var(--radius)}.savori-brand .search input::placeholder,.savori-brand .field textarea::placeholder{color:var(--savori-primary-lighter)}.savori-brand .dropdown{border-color:var(--savori-dark-beige);border-radius:var(--radius)}.savori-brand .dropdown button{font-family:Inter,system-ui,sans-serif;font-weight:500}.savori-brand .dropdown button:hover{background:var(--savori-pink)}.savori-brand .meal-option{border:2px solid #fff;border-radius:var(--radius);box-shadow:0 2px 5px #2e122614}.savori-brand .meal-option.selected{border-color:var(--savori-green)}.savori-brand .meal-option strong{font-family:SwearText-Medium,Georgia,serif;font-weight:400;color:var(--savori-primary-light)}.savori-brand .meal-option span{color:var(--savori-purple);font-family:Inter,system-ui,sans-serif;font-weight:600}.savori-brand .primary{font-family:SwearText-Medium,Georgia,serif;font-size:1.05rem;background:var(--savori-primary-dark);color:#fff;border:none;border-radius:var(--radius);box-shadow:0 2px 5px #2e122633}.savori-brand .primary:hover:not(:disabled){background:var(--savori-primary-medium)}.savori-brand .primary:disabled{opacity:.5}.savori-brand .ghost{font-family:Inter,system-ui,sans-serif;font-weight:600;color:var(--savori-primary-light);border-color:var(--savori-primary-light);border-radius:var(--radius)}.savori-brand .recipe-sub-list button,.savori-brand .substitute-btn{color:var(--savori-purple)}.savori-roll-badge{font-family:Inter,system-ui,sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--savori-purple);background:var(--savori-pink);border-radius:999px;padding:.35rem .75rem;white-space:nowrap;border:none}.savori-roll-badge--clickable{cursor:pointer}.savori-roll-badge--clickable:hover{filter:brightness(.95)}.savori-roll-badge--unlimited{background:#4da65926;color:var(--savori-green)}.savori-paywall-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#4f243173;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100}.savori-paywall{position:relative;width:min(100%,520px);max-height:90vh;overflow-y:auto;background:var(--surface);border-radius:var(--radius-lg);padding:1.75rem;border:2px solid #fff;box-shadow:0 20px 50px #2e12262e}.savori-paywall-close{position:absolute;top:.75rem;right:.75rem;border:none;background:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--savori-primary-lighter)}.savori-paywall-eyebrow{margin:0 0 .25rem;font-family:Inter,system-ui,sans-serif;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--savori-primary-lighter)}.savori-paywall-lead{margin:0 0 1.25rem;font-family:Inter,system-ui,sans-serif;font-weight:500;color:var(--savori-primary-lighter);font-size:.95rem}.savori-paywall-options{display:flex;flex-direction:column;gap:.75rem}.savori-paywall-card{border:2px solid var(--savori-dark-beige);border-radius:var(--radius);padding:1rem;background:#fff}.savori-paywall-card--featured{border-color:var(--savori-purple);background:linear-gradient(180deg,#fff 0%,var(--savori-pink) 100%)}.savori-paywall-badge{display:inline-block;font-family:Inter,system-ui,sans-serif;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--savori-purple);margin-bottom:.35rem}.savori-paywall-card h3{margin:0 0 .35rem;font-family:SwearText-Medium,Georgia,serif;font-size:1.1rem;font-weight:400;color:var(--savori-primary-light)}.savori-paywall-card p{margin:0 0 .75rem;font-family:Inter,system-ui,sans-serif;font-weight:500;font-size:.875rem;color:var(--savori-primary-lighter)}.savori-paywall-price{font-family:SwearDisplay-BoldCilati,Georgia,serif!important;font-size:1.75rem!important;font-weight:400!important;color:var(--savori-primary-light)!important;margin-bottom:.35rem!important}.savori-paywall-price span{font-family:Inter,system-ui,sans-serif;font-size:.875rem;font-weight:500;color:var(--savori-primary-lighter)}.savori-paywall-cta{width:100%}.savori-paywall-note{margin:1rem 0 0;font-family:Inter,system-ui,sans-serif;font-size:.75rem;font-weight:500;color:var(--savori-primary-lighter);text-align:center}.savori-paywall-error{margin-bottom:1rem}.savori-brand .error{background:#db66591f;color:var(--savori-red);border-radius:var(--radius);font-family:Inter,system-ui,sans-serif;font-weight:500}.savori-checkout-status{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);z-index:90;font-family:Inter,system-ui,sans-serif;font-weight:600;background:var(--savori-primary-dark);color:#fff;padding:.65rem 1rem;border-radius:999px;font-size:.85rem;box-shadow:0 8px 24px #2e122640}:root{--bg: #f6f1e8;--surface: #fffdf8;--ink: #1a1612;--muted: #6b6358;--accent: #2d6a4f;--accent-soft: #d8f3dc;--border: #e8dfd0;--error: #9b2226;font-family:DM Sans,system-ui,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}.app{max-width:640px;margin:0 auto;padding:2rem 1.25rem 4rem}.header h1{font-family:Fraunces,Georgia,serif;font-size:2.5rem;font-weight:600;margin:0;color:var(--accent)}.tagline{color:var(--muted);margin:.25rem 0 1rem}.steps{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.8rem;color:var(--muted);margin-top:1rem}.steps .active{color:var(--accent);font-weight:600}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;margin-top:1.5rem}.panel h2{font-family:Fraunces,Georgia,serif;margin:0 0 .5rem;font-size:1.35rem}.hint{color:var(--muted);font-size:.9rem;margin:0 0 1rem}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--accent-soft);color:var(--accent);padding:.35rem .6rem;border-radius:999px;font-size:.9rem}.chip button{border:none;background:transparent;cursor:pointer;color:inherit;padding:0 .15rem;font-size:1rem;line-height:1}.search{position:relative;margin-bottom:1rem}.search input{width:100%;padding:.65rem .85rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;background:#fff}.dropdown{position:absolute;z-index:10;top:100%;left:0;right:0;margin:.25rem 0 0;padding:0;list-style:none;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #00000014;max-height:240px;overflow-y:auto}.dropdown button{width:100%;text-align:left;padding:.55rem .85rem;border:none;background:none;cursor:pointer;font-size:.95rem}.dropdown button:hover{background:var(--accent-soft)}.foundation-options{display:flex;flex-direction:column;gap:1rem;margin:1rem 0}.cuisine-lock label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}.cuisine-lock select{padding:.5rem;border-radius:8px;border:1px solid var(--border)}.option-group{display:flex;flex-direction:column;gap:.4rem}.option-label{font-size:.85rem;color:var(--muted)}.option-pills{display:flex;flex-wrap:wrap;gap:.4rem}.option-pill{border:1px solid var(--border);background:#fff;border-radius:999px;padding:.35rem .85rem;font-size:.85rem;cursor:pointer;color:var(--ink)}.option-pill:hover{border-color:var(--accent)}.option-pill.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.cuisine-tags{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0}.cuisine-tags .label{font-size:.8rem;color:var(--muted)}.tag{border:1px solid var(--border);background:#fff;border-radius:999px;padding:.3rem .65rem;cursor:pointer;font-size:.85rem}.tag small{color:var(--muted)}.substitute-panel h3,.directions h3{font-size:.95rem;margin:1rem 0 .5rem}.directions{margin-top:1.25rem}.direction-grid{display:flex;flex-direction:column;gap:.75rem}.direction-card{border:1px solid var(--border);border-radius:10px;padding:1rem;background:#fff}.direction-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.65rem}.direction-header h4{margin:0;font-family:Fraunces,Georgia,serif;font-size:1.05rem;color:var(--accent)}.direction-ingredients{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.direction-chip{border:1px dashed var(--accent);background:var(--accent-soft);color:var(--accent);padding:.3rem .55rem;border-radius:999px;cursor:pointer;font-size:.85rem}.direction-accept{width:100%;border:1px solid var(--accent);background:transparent;color:var(--accent);padding:.5rem;border-radius:8px;cursor:pointer;font-weight:600;font-size:.85rem}.direction-accept:hover{background:var(--accent-soft)}.meal-options{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.meal-option{text-align:left;border:1px solid var(--border);border-radius:10px;padding:.85rem 1rem;background:#fff;cursor:pointer}.meal-option.selected{border-color:var(--accent);background:var(--accent-soft)}.meal-option strong{display:block;font-family:Fraunces,Georgia,serif;color:var(--accent)}.meal-option span{font-size:.8rem;color:var(--muted)}.meal-option p{margin:.35rem 0 0;font-size:.85rem;color:var(--ink)}.recipe-ingredient-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.substitute-btn{border:1px solid var(--border);background:#fff;border-radius:6px;padding:.15rem .45rem;cursor:pointer;flex-shrink:0}.recipe-sub-list{list-style:none;padding:.25rem 0 0 1rem;margin:.25rem 0 .5rem}.recipe-sub-list button{border:none;background:none;cursor:pointer;padding:.2rem 0;color:var(--accent)}.substitute-panel ul{list-style:none;padding:0;margin:0}.substitute-panel li button{width:100%;text-align:left;padding:.45rem 0;border:none;background:none;cursor:pointer}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;justify-content:flex-end;align-items:center}.action-hint{flex:1 1 100%;margin:0;text-align:right}.primary{background:var(--accent);color:#fff;border:none;padding:.65rem 1.25rem;border-radius:8px;font-weight:600;cursor:pointer}.primary:disabled{opacity:.5;cursor:not-allowed}.ghost{background:transparent;border:1px solid var(--border);padding:.65rem 1rem;border-radius:8px;cursor:pointer}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;font-size:.85rem;color:var(--muted)}.field input,.field textarea{padding:.6rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;color:var(--ink);font-family:inherit;resize:vertical}.ingredient-summary{font-size:.9rem;color:var(--muted)}.meta{color:var(--muted);font-size:.9rem}.amounts,.steps-list{padding-left:1.25rem}.error{background:#fde8e8;color:var(--error);padding:.75rem 1rem;border-radius:8px;margin-top:1rem;font-size:.9rem}.recipe-image{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;margin-bottom:1.5rem;display:block}.recipe-image-placeholder{width:100%;aspect-ratio:1;border-radius:12px;background:var(--border);margin-bottom:1.5rem;display:flex;align-items:center;justify-content:center}@keyframes recipe-image-spin{to{transform:rotate(360deg)}}.recipe-image-spinner{width:2rem;height:2rem;border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:recipe-image-spin .9s linear infinite;display:block}
