@import url(https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Source+Serif+4:opsz,wght@8..60,400;500;600&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg:#f5efe4;--bg-soft:#fbf7f0;--paper:#fffcf7d6;--card:#fffdf9;--ink:#21160f;--muted:#66584c;--line:#4f352324;--accent:#b44f2f;--shadow:0 20px 50px #4a301e1f;--font-display:"Cormorant Garamond",Georgia,serif;--font-body:"Source Serif 4",Georgia,serif;--nav-surface:#fffbf5c7;--surface-soft:#ffffffd6;--surface-softer:#ffffffc7;--surface-accent:#b44f2f14;--toast-bg:#21160feb;--surface-strong:#111;--surface-strong-text:#fffdf9;--text-strong:#222;--image-fallback:#ddd;--overlay-bg:#000000d1;--accent-border:#b44f2f33;--accent-border-strong:#b44f2f3d;--on-accent:#fffdf9;--skeleton-base:#7b5f481f;--skeleton-shimmer:#ffffff8c;--favorite-surface:#fffdf9eb;--favorite-shadow:0 8px 18px #21160f24;--image-fallback-gradient:linear-gradient(135deg,#b44f2f1f,#67724724);--elevated-shadow:0 18px 38px #5a341b29;--toast-shadow:0 18px 38px #21160f33}:root[data-theme=dark]{--bg:#181818;--bg-soft:#222;--paper:#262626e6;--card:#2f2f2f;--ink:#f2ede6;--muted:#b8afa4;--line:#e4dcd21f;--accent:#d4c4b2;--shadow:0 24px 56px #00000052;--nav-surface:#1a1a1aeb;--surface-soft:#323232f0;--surface-softer:#383838f0;--surface-accent:#d4c4b224;--toast-bg:#101010f5;--surface-strong:#101010;--surface-strong-text:#f5efe8;--text-strong:#efe7de;--image-fallback:#454545;--overlay-bg:#000000e0;--accent-border:#d4c4b238;--accent-border-strong:#d4c4b24d;--on-accent:#191919;--skeleton-base:#ffffff14;--skeleton-shimmer:#ffffff14;--favorite-surface:#2a2a2af0;--favorite-shadow:0 8px 18px #00000047;--image-fallback-gradient:linear-gradient(135deg,#d4c4b21f,#9292921f);--elevated-shadow:0 18px 38px #0000003d;--toast-shadow:0 18px 38px #00000052}body{background:radial-gradient(circle at top left,#b44f2f14,#0000 34%),linear-gradient(180deg,#fbf7f0,#f5efe4);background:radial-gradient(circle at top left,var(--surface-accent),#0000 34%),linear-gradient(180deg,var(--bg-soft) 0,var(--bg) 100%);color:#21160f;color:var(--ink);font-family:"Source Serif 4",Georgia,serif;font-family:var(--font-body);margin:0}.App{padding-bottom:40px}.auth-gate-loading,.navbar{display:flex;justify-content:center}.navbar{align-items:stretch;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffbf5c7;background:var(--nav-surface);box-shadow:0 10px 30px #422c1d0f;flex-direction:column;gap:14px;padding:24px 32px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.nav-topline{align-items:center;display:flex;justify-content:space-between}.nav-actions,.nav-utility-row{align-items:center;display:flex;gap:12px}.nav-utility-row{justify-content:space-between}.nav-links{display:flex;gap:20px}.nav-links a{color:#66584c;color:var(--muted);text-decoration:none}.theme-toggle{align-items:center;background:#ffffffc7;background:var(--surface-softer);border:1px solid #b44f2f3d;border:1px solid var(--accent-border-strong);border-radius:999px;color:#21160f;color:var(--ink);cursor:pointer;display:inline-flex;font:inherit;gap:8px;padding:10px 14px}.theme-toggle-icon{font-size:.95rem;line-height:1}.nav-toggle{align-items:center;background:#ffffffd6;background:var(--surface-soft);border:1px solid #b44f2f33;border:1px solid var(--accent-border);border-radius:999px;cursor:pointer;display:none;flex-direction:column;gap:4px;height:46px;justify-content:center;width:46px}.nav-toggle span{background:#21160f;background:var(--ink);border-radius:999px;height:2px;transition:transform .18s ease,opacity .18s ease;width:18px}.nav-toggle.active span:first-child{transform:translateY(6px) rotate(45deg)}.nav-toggle.active span:nth-child(2){opacity:0}.nav-toggle.active span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.hero-shell{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1.1fr 1fr;padding:32px}.hero-copy,.meta-section,.recipe-card,.recipe-panel,.search-panel,.stat-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffcf7d6;background:var(--paper);border:1px solid #4f352324;border:1px solid var(--line);box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow)}.hero-copy{border-radius:32px;padding:40px}.eyebrow{color:#b44f2f;color:var(--accent);font-family:"Source Serif 4",Georgia,serif;font-family:var(--font-body);font-size:12px;letter-spacing:.14em;margin:0 0 12px;text-transform:uppercase}.hero-copy h2{font-family:Cormorant Garamond,Georgia,serif;font-family:var(--font-display);font-size:clamp(2.8rem,5vw,4.8rem);font-weight:600;line-height:.96;margin:0}.hero-text{color:#66584c;color:var(--muted);font-size:1.1rem;line-height:1.7;max-width:36rem}.search-panel{border-radius:32px;padding:28px}.search-page-header{padding:18px 32px 8px}.search-page-header h1{font-size:clamp(2.8rem,5.2vw,4.8rem);line-height:.96;margin:0}.search-page-intro{color:#66584c;color:var(--muted);font-size:1.05rem;line-height:1.7;margin:16px 0 0;max-width:46rem}.search-workspace-shell{padding:16px 32px 8px}.search-workspace{display:flex;flex-direction:column;gap:16px}.search-filter-grid{grid-gap:14px 20px;display:grid;gap:14px 20px;grid-template-columns:repeat(2,minmax(0,1fr))}.search-filter-group{display:flex;flex-direction:column}.search-filter-title{color:#66584c;color:var(--muted);font-size:.88rem;font-weight:700;letter-spacing:.02em;margin:0 0 8px}.search-label{display:block;font-weight:700;margin-bottom:12px}.search-input{background:#ffffffd6;background:var(--surface-soft);border:1px solid #4f352324;border:1px solid var(--line);border-radius:18px;box-sizing:border-box;color:#21160f;color:var(--ink);font-size:16px;padding:16px 18px;width:100%}.search-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.book-collection-toolbar{margin-bottom:18px}.search-toolbar-actions{margin-top:0}.search-toolbar-meta{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.search-sort-label{color:#66584c;color:var(--muted);font-size:.95rem;font-weight:700}.search-sort-select{background:#ffffffd6;background:var(--surface-soft);border:1px solid #4f352324;border:1px solid var(--line);border-radius:999px;color:#21160f;color:var(--ink);font-size:.95rem;padding:8px 12px}.filter-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:0}.filter-chip,.ghost-button,.serving-chip{background:#ffffffc7;background:var(--surface-softer);border:1px solid #b44f2f33;border:1px solid var(--accent-border);border-radius:999px;color:#21160f;color:var(--ink);cursor:pointer;padding:8px 12px}.filter-chip.active,.serving-chip.active{background:#b44f2f;background:var(--accent);border-color:#b44f2f;border-color:var(--accent);color:#fffdf9;color:var(--on-accent)}.search-status{background:#b44f2f14;background:var(--surface-accent);border-radius:999px;color:#b44f2f;color:var(--accent);font-weight:700;padding:10px 14px;width:-webkit-fit-content;width:fit-content}.search-status-inline{margin-top:0}.search-active-filters-shell{padding:0 32px 20px}.search-active-filters{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.search-active-label{color:#66584c;color:var(--muted);font-size:.92rem;font-weight:700}.active-filter-chip{background:#ffffffd6;background:var(--surface-soft);border:1px solid #4f352324;border:1px solid var(--line);border-radius:999px;color:#21160f;color:var(--ink);cursor:pointer;padding:8px 12px}.search-results-footer{display:flex;justify-content:center;margin-top:26px}.account-form,.account-panel{display:flex;flex-direction:column}.account-form .filter-strip{margin-bottom:28px;margin-top:0}.account-form .search-label{margin-bottom:10px}.account-form .search-input{margin-bottom:22px}.account-actions{align-items:center;display:flex;gap:12px;margin-top:6px}.discovery-actions{display:flex;flex-direction:column;gap:12px;margin-top:22px}.discovery-helper{color:#66584c;color:var(--muted);font-size:.96rem;line-height:1.5;margin:0}.primary-action{background:#b44f2f;background:var(--accent);border-color:#b44f2f;border-color:var(--accent);color:#fffdf9;color:var(--on-accent);font-weight:700;padding-inline:18px}.back-to-top{background:#fffcf7d6;background:var(--paper);border:1px solid #b44f2f33;border:1px solid var(--accent-border);border-radius:999px;bottom:24px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);color:#21160f;color:var(--ink);cursor:pointer;font-weight:700;opacity:0;padding:10px 14px;pointer-events:none;position:fixed;right:24px;transform:translateY(14px);transition:opacity .18s ease,transform .18s ease;z-index:50}.back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.remy-launcher{align-items:center;background:#fffcf7d6;background:var(--paper);border:1px solid #b44f2f33;border:1px solid var(--accent-border);border-radius:999px;bottom:82px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);color:#21160f;color:var(--ink);cursor:pointer;display:inline-flex;gap:10px;padding:10px 14px 10px 10px;position:fixed;right:24px;z-index:51}.remy-launcher.open{border-color:#b44f2f3d;border-color:var(--accent-border-strong)}.remy-launcher-image,.remy-panel-image{border:1px solid #4f352324;border:1px solid var(--line);border-radius:999px;height:34px;object-fit:cover;width:34px}.remy-launcher-label{font-weight:700}.remy-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffcf7d6;background:var(--paper);border:1px solid #4f352324;border:1px solid var(--line);border-radius:24px;bottom:136px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;max-height:min(70vh,720px);padding:18px;position:fixed;right:24px;width:min(520px,calc(100vw - 32px));z-index:51}.remy-form-actions,.remy-identity,.remy-panel-header{align-items:center;display:flex}.remy-panel-header{gap:16px;justify-content:space-between}.remy-identity{gap:12px}.remy-helper-copy,.remy-identity p,.remy-message-role,.remy-result-card span,.remy-results-title,.remy-status{color:#66584c;color:var(--muted);margin:0}.remy-helper-copy{font-size:.96rem;line-height:1.55}.remy-conversation{gap:12px;overflow-y:auto;padding-right:6px}.remy-conversation,.remy-message{display:flex;flex-direction:column}.remy-message{background:#ffffffd6;background:var(--surface-soft);border:1px solid #4f352324;border:1px solid var(--line);border-radius:18px;gap:8px;padding:14px 16px}.remy-message-user{background:#b44f2f14;background:var(--surface-accent)}.remy-message-role{font-size:.84rem;letter-spacing:.08em;text-transform:uppercase}.remy-message-copy{line-height:1.6;white-space:pre-wrap}.remy-results{display:flex;flex-direction:column;gap:10px}.remy-results-title{font-size:.88rem}.remy-results-list{display:flex;flex-direction:column;gap:10px}.remy-result-card{background:color-mix(in srgb,#fffdf9 82%,#fbf7f0 18%);background:color-mix(in srgb,var(--card) 82%,var(--bg-soft) 18%);border:1px solid #4f352324;border:1px solid var(--line);border-radius:16px;color:#21160f;color:var(--ink);display:flex;flex-direction:column;gap:4px;padding:12px 14px;text-decoration:none}.remy-result-card strong{font-size:1rem}.remy-result-card span{font-size:.92rem;line-height:1.45}.remy-form{display:flex;flex-direction:column;gap:10px}.remy-input{min-height:88px;resize:vertical}.remy-form-actions{justify-content:flex-end}.remy-status{font-size:.92rem}.remy-status-error{color:#b44f2f;color:var(--accent)}.account-panel{gap:18px}.account-panel h3{font-size:1.6rem;line-height:1.2;margin:0}.panel-helper{color:#66584c;color:var(--muted);font-size:1rem;line-height:1.7;margin:0}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));padding:0 32px 32px}.stat-card{border-radius:14px;padding:20px;text-align:center}.stat-card h3{font-size:32px;margin:0}.row-section{margin-bottom:36px;padding:0 32px}.home-panel-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 32px 32px}.discover-jump-row{display:flex;flex-wrap:wrap;gap:10px;padding:0 32px 28px}.discover-spotlight{grid-gap:24px;align-items:center;background:#fffcf7d6;background:var(--paper);border:1px solid #4f352324;border:1px solid var(--line);border-radius:24px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);color:inherit;display:grid;gap:24px;grid-template-columns:220px minmax(0,1fr);padding:24px;text-decoration:none}.discover-spotlight-cover{aspect-ratio:4/5;border-radius:18px;object-fit:cover;width:100%}.discover-spotlight-copy h3{font-size:clamp(2rem,4vw,3rem);line-height:.98;margin:0 0 10px}.discover-spotlight-copy p{color:#66584c;color:var(--muted);margin:0 0 12px}.home-activity-shell{padding:0 32px 32px}.home-panel{background:#fffcf7d6;background:var(--paper);border:1px solid #4f352324;border:1px solid var(--line);border-radius:24px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);padding:24px}.home-action-list{display:flex;flex-wrap:wrap;gap:10px}.activity-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.activity-card{background:#ffffffd6;background:var(--surface-soft);border:1px solid #4f352324;border:1px solid var(--line);border-radius:18px;display:flex;flex-direction:column;gap:6px;padding:16px}.activity-card strong{font-size:1.5rem;line-height:1}.activity-card span{color:#66584c;color:var(--muted);font-size:.92rem}.section-heading{align-items:end;display:flex;justify-content:space-between;margin-bottom:18px}.row-section h2,.section-heading h2{font-size:2rem;margin-bottom:6px}.section-heading p{color:#66584c;color:var(--muted);margin:0}.recipe-row{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px}.recipe-card{border-radius:16px;flex-shrink:0;max-width:280px;min-width:280px;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.recipe-card:hover{box-shadow:0 18px 38px #5a341b29;box-shadow:var(--elevated-shadow);transform:translateY(-4px)}.recipe-image{background:#ddd;background:var(--image-fallback);height:220px;position:relative}.ai-image-badge{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1c1814d1;border-radius:999px;box-shadow:0 8px 20px #0003;color:#fff7f0;font-size:11px;font-weight:700;left:12px;letter-spacing:.08em;padding:6px 10px;position:absolute;text-transform:uppercase;top:12px;z-index:2}.ai-image-badge.hero{font-size:12px;left:18px;padding:7px 12px;top:18px}.favorite-button{background:#fffdf9eb;background:var(--favorite-surface);border:none;border-radius:999px;box-shadow:0 8px 18px #21160f24;box-shadow:var(--favorite-shadow);color:#b44f2f;color:var(--accent);cursor:pointer;font-size:18px;height:38px;position:absolute;right:12px;top:12px;width:38px;z-index:2}.favorite-button.active{background:#b44f2f;background:var(--accent);color:#fffdf9;color:var(--on-accent)}.recipe-image img{height:100%;object-fit:cover;width:100%}.placeholder-image{height:100%}.image-fallback,.placeholder-image{align-items:center;color:#66584c;color:var(--muted);display:flex;justify-content:center}.image-fallback{background:linear-gradient(135deg,#b44f2f1f,#67724724);background:var(--image-fallback-gradient);box-sizing:border-box;padding:16px;text-align:center}.recipe-content{padding:16px}.recipe-title{font-size:22px;line-height:1.25;margin:0 0 6px}.recipe-original-title{color:#66584c;color:var(--muted);font-size:13px;font-style:italic;margin-bottom:10px}.recipe-line{color:#66584c;color:var(--muted);font-size:14px;margin-bottom:6px}.recipe-admin-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px}.recipe-book{color:#66584c;color:var(--muted);font-size:13px;margin-top:12px}.loading{padding:40px}.skeleton,.skeleton-panel{overflow:hidden;position:relative}.skeleton{background:#7b5f481f;background:var(--skeleton-base)}.skeleton:after{animation:skeleton-shimmer 1.5s infinite;background:linear-gradient(90deg,#0000,#ffffff8c,#0000);background:linear-gradient(90deg,#0000,var(--skeleton-shimmer),#0000);content:"";inset:0;position:absolute;transform:translateX(-100%)}.skeleton-title{border-radius:999px;height:28px;width:220px}.skeleton-nav{border-radius:999px;height:16px;width:72px}.skeleton-eyebrow{border-radius:999px;height:12px;margin-bottom:16px;width:110px}.skeleton-heading{border-radius:20px;height:56px;margin-bottom:14px;width:min(560px,100%)}.skeleton-heading.short{width:min(360px,72%)}.skeleton-paragraph{border-radius:999px;height:18px;margin-bottom:12px;width:100%}.skeleton-paragraph.short{width:72%}.skeleton-label{border-radius:999px;height:14px;margin-bottom:14px;width:120px}.skeleton-input{border-radius:18px;height:56px;width:100%}.skeleton-chip{border-radius:999px;height:38px;width:92px}.skeleton-chip.wide{width:140px}.skeleton-stat-number{border-radius:16px;height:34px;margin:0 auto 12px;width:56px}.skeleton-stat-label{border-radius:999px;height:14px;margin:0 auto;width:72px}.skeleton-section-title{border-radius:16px;height:34px;margin-bottom:18px;width:220px}.skeleton-card-title{border-radius:14px;height:28px;margin-bottom:12px;width:85%}.skeleton-card-line{border-radius:999px;height:14px;margin-bottom:10px;width:100%}.skeleton-card-line.short{width:70%}.skeleton-back{border-radius:999px;height:18px;width:80px}.skeleton-card{pointer-events:none}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}.book-card-link,.recipe-link{color:inherit;text-decoration:none}.book-link{color:#b44f2f;color:var(--accent);text-decoration:none}.book-page,.books-page,.recipe-page{margin:0 auto;max-width:1400px;padding-bottom:60px}.back-link{color:#21160f;color:var(--ink);font-weight:700;text-decoration:none}.recipe-hero{grid-gap:48px;gap:48px;grid-template-columns:520px 1fr;padding:40px 32px}.book-hero,.recipe-hero{align-items:start;display:grid}.book-hero{grid-gap:40px;gap:40px;grid-template-columns:320px 1fr;padding:40px 32px 24px}.books-hero{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1.1fr 1fr;padding:32px}.recipe-hero-image{border-radius:24px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);max-height:700px;object-fit:cover;width:100%}.recipe-hero-media{position:relative}.book-cover-image{aspect-ratio:3/4;background:#ddd;background:var(--image-fallback);border-radius:24px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);object-fit:cover;width:100%}.recipe-hero-content h1{font-size:54px;line-height:1.08;margin-bottom:12px;margin-top:0}.book-hero-content h1{font-size:54px;line-height:1.08;margin:0 0 12px}.recipe-description{font-size:22px;line-height:1.7;padding:0 32px 36px}.recipe-columns{grid-gap:32px;align-items:start;display:grid;gap:32px;grid-template-columns:1fr 2fr;padding:0 32px}.recipe-panel{border-radius:24px;padding:32px}.recipe-panel h2{font-size:36px;margin-bottom:24px;margin-top:0}.recipe-gallery{display:flex;gap:20px;margin-top:24px;overflow-x:auto;padding:12px 32px 60px}.gallery-image{border-radius:18px;box-shadow:0 3px 12px #0000001f;flex-shrink:0;height:320px;object-fit:cover;width:auto}.instructions-list{display:flex;flex-direction:column;gap:20px}.instruction-step{align-items:flex-start;border-bottom:1px solid #4f352324;border-bottom:1px solid var(--line);display:flex;gap:18px;padding-bottom:20px}.step-number{align-items:center;background:#111;background:var(--surface-strong);border-radius:50%;color:#fffdf9;color:var(--surface-strong-text);display:flex;font-size:16px;font-weight:700;height:38px;justify-content:center;min-width:38px}.step-text{color:#222;color:var(--text-strong);font-size:18px;line-height:1.8;word-break:break-word}.serving-toolbar{align-items:center;color:#66584c;color:var(--muted);display:flex;gap:10px;margin-bottom:24px}.ingredients-list{display:flex;flex-direction:column;gap:14px}.ingredient-item{align-items:flex-start;background:#0000;border:none;cursor:pointer;display:flex;gap:14px;padding:0;text-align:left;width:100%}.ingredient-dot{background:#111;background:var(--surface-strong);border-radius:50%;height:10px;margin-top:10px;min-width:10px;width:10px}.ingredient-text{color:#222;color:var(--text-strong);font-size:18px;line-height:1.6}.ingredient-item.checked .ingredient-text{opacity:.6;text-decoration:line-through}.recipe-extra-meta{display:flex;flex-direction:column;gap:28px;margin-bottom:40px;padding:40px 32px 12px}.recipe-extra-meta h2{font-size:42px;margin:0 0 24px}.meta-grid{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.meta-section{border-radius:22px;padding:22px}.meta-section h3{font-size:18px;margin-bottom:16px;margin-top:0}.meta-tags{display:flex;flex-wrap:wrap;gap:10px}.meta-chip{background:color-mix(in srgb,#fffdf9 78%,#fbf7f0 22%);background:color-mix(in srgb,var(--card) 78%,var(--bg-soft) 22%);border-radius:999px;font-size:15px;line-height:1.2;padding:8px 14px}.note-card p{font-size:18px;line-height:1.8;margin:0}.linked-recipes-copy{color:#66584c;color:var(--muted);margin-bottom:16px!important}.linked-recipes-list{display:flex;flex-wrap:wrap;gap:12px}.linked-recipe-link{align-items:center;background:color-mix(in srgb,#fffdf9 78%,#fbf7f0 22%);background:color-mix(in srgb,var(--card) 78%,var(--bg-soft) 22%);border:1px solid #4f352324;border:1px solid var(--line);border-radius:999px;color:#21160f;color:var(--ink);display:inline-flex;font-size:16px;gap:10px;line-height:1.25;padding:10px 14px;text-decoration:none}.linked-recipe-id{color:#66584c;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92rem}.recipe-note-input{background:#ffffffd6;background:var(--surface-soft);border:1px solid #4f352324;border:1px solid var(--line);border-radius:18px;box-sizing:border-box;color:#21160f;color:var(--ink);font:inherit;min-height:140px;padding:16px 18px;resize:vertical;width:100%}.variations-block{display:flex;flex-direction:column;gap:18px}.variations-toolbar{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between}.variations-toolbar-empty{justify-content:flex-start}.variations-selector-wrap{display:flex;flex-direction:column;gap:8px}.variation-help-example,.variation-summary-copy{color:#66584c;color:var(--muted);line-height:1.7;margin:0}.variation-help{background:#ffffffd6;background:var(--surface-soft);border:1px solid #4f352324;border:1px solid var(--line);border-radius:18px;padding:18px 20px}.variation-change-section h3,.variation-help h3{margin:0}.variation-help-list{color:#66584c;color:var(--muted);line-height:1.7;margin:12px 0;padding-left:20px}.variation-editor{display:flex;flex-direction:column;gap:16px}.variation-editor-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.variation-change-section{display:flex;flex-direction:column;gap:14px}.variation-change-card{background:#ffffffd6;background:var(--surface-soft);border:1px solid #4f352324;border:1px solid var(--line);border-radius:18px;display:flex;flex-direction:column;gap:10px;padding:16px}.variation-input{box-sizing:border-box;width:100%}.variation-textarea{min-height:96px;padding:14px 16px}.variation-select-full{box-sizing:border-box;width:100%}.variation-change-card .search-sort-select:disabled,.variation-select-full:disabled{cursor:not-allowed;opacity:.7}.variation-position-input{max-width:120px}.variation-position-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.variation-field-help{color:#66584c;color:var(--muted);font-size:.92rem;line-height:1.5;margin:-2px 0 0}.variation-inline-badge{background:#ffffffc7;background:var(--surface-softer);border-radius:999px;color:#66584c;color:var(--muted);display:inline-flex;font-size:.8rem;line-height:1.2;margin-left:10px;padding:3px 9px;vertical-align:middle}.ingredient-item.variation-added,.instruction-step.variation-added{border-color:#2f704c40}.ingredient-item.variation-added .ingredient-text,.instruction-step.variation-added .step-text{color:#2f704c;font-weight:600}.ingredient-item.variation-edited .ingredient-text,.instruction-step.variation-edited .step-text{color:#21160f;color:var(--ink);font-weight:600}.ingredient-item.variation-removed .ingredient-text,.instruction-step.variation-removed .step-text{color:#66584c;color:var(--muted);opacity:.75;text-decoration:line-through}.comments-block{display:flex;flex-direction:column;gap:20px}.comments-composer-header,.comments-feed-header{display:flex;flex-direction:column;gap:6px}.comments-composer-header h3,.comments-feed-header h3{font-size:1.2rem;margin:0}.comments-composer-header p,.comments-feed-header p{color:#66584c;color:var(--muted);font-size:.98rem;line-height:1.6;margin:0}.comments-list{display:flex;flex-direction:column;gap:16px}.comment-item{border-top:1px solid #4f352324;border-top:1px solid var(--line);padding-top:16px}.comment-item:first-child{border-top:none;padding-top:0}.comment-meta{align-items:baseline;display:flex;flex-wrap:wrap;margin-bottom:8px}.comment-author{color:#21160f;color:var(--ink);font-family:Cormorant Garamond,Georgia,serif;font-family:var(--font-display);font-weight:700;line-height:1.4}.comment-timestamp{color:#66584c;color:var(--muted);font-family:"Source Serif 4",Georgia,serif;font-family:var(--font-body);font-size:.95rem;font-weight:400;letter-spacing:.01em}.image-modal{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000d1;background:var(--overlay-bg);display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:9999}.modal-content{max-height:95vh;max-width:95vw;position:relative}.modal-image{border-radius:18px;box-shadow:0 10px 40px #0006;max-height:92vh;max-width:95vw}.modal-close{background:#fffdf9;background:var(--card);border:none;border-radius:999px;box-shadow:0 4px 14px #00000040;color:#21160f;color:var(--ink);cursor:pointer;font-size:28px;height:42px;position:absolute;right:-14px;top:-14px;width:42px}.related-section{padding:24px 32px 0}.related-section h2{font-size:42px;margin-bottom:20px}.related-link-row{margin:-8px 0 20px}.explore-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.explore-grid .recipe-card{max-width:none}.book-results-grid .recipe-card{min-height:100%}.books-row{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px}.book-shelf-card{background:#fffcf7d6;background:var(--paper);border:1px solid #4f352324;border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);max-width:220px;min-width:220px;overflow:hidden}.book-shelf-cover{aspect-ratio:3/4;background:#ddd;background:var(--image-fallback);display:block;object-fit:cover;width:100%}.book-shelf-content{padding:16px}.book-shelf-content h3{font-size:20px;line-height:1.2;margin:0 0 8px}.book-shelf-content p{color:#66584c;color:var(--muted);margin:0 0 8px}.book-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.books-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.book-grid-card{max-width:none}.books-grid-card{max-width:none;min-width:0}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.cook-mode-button.active{background:#b44f2f;background:var(--accent);border-color:#b44f2f;border-color:var(--accent);color:#fffdf9;color:var(--on-accent)}.cook-view-button.active{background:#111;background:var(--surface-strong);border-color:#111;border-color:var(--surface-strong);color:#fffdf9;color:var(--surface-strong-text)}.recipe-rating-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.rating-stars{display:inline-flex;gap:4px}.rating-star{background:#0000;border:none;color:color-mix(in srgb,#b44f2f 34%,#0000);color:color-mix(in srgb,var(--accent) 34%,#0000);cursor:pointer;font-size:24px;line-height:1;padding:0}.rating-star.active{color:#b44f2f;color:var(--accent)}.rating-clear-button{margin-left:auto}.recipe-page.cook-view .recipe-description,.recipe-page.cook-view .recipe-extra-meta,.recipe-page.cook-view .recipe-gallery,.recipe-page.cook-view .related-section{display:none}.recipe-page.cook-view .recipe-hero{gap:0;grid-template-columns:1fr;padding-bottom:18px}.recipe-page.cook-view .recipe-hero-media{display:none}.recipe-page.cook-view .recipe-hero-content{padding:20px 32px 8px}.recipe-page.cook-view .recipe-hero-content h1{font-size:42px;margin-bottom:10px}.recipe-page.cook-view .hero-actions{margin-top:18px}.recipe-page.cook-view .recipe-columns{gap:24px;padding-top:8px}.recipe-page.cook-view .recipe-panel{background:#fffcf7d6;background:var(--paper);border:1px solid #4f352324;border:1px solid var(--line);box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow)}.recipe-page.cook-view .recipe-panel h2{align-items:center;display:flex;justify-content:space-between}.recipe-page.cook-view .ingredients-panel:after{color:#66584c;color:var(--muted);content:"Tap ingredients to cross them off";display:block;font-size:.92rem;margin-top:14px}.recipe-page.cook-view .instruction-step{padding-bottom:24px}.recipe-page.cook-view .step-number{font-size:18px;height:46px;min-width:46px}.recipe-page.cook-view .step-text{font-size:20px;line-height:1.9}.recipe-page.cook-view .ingredient-text{font-size:19px;line-height:1.7}.recipe-rating-chip{background:#b44f2f14;background:var(--surface-accent);border-radius:999px;color:#b44f2f;color:var(--accent);display:inline-flex;font-size:13px;font-weight:700;margin-top:10px;padding:6px 10px;width:-webkit-fit-content;width:fit-content}.empty-card{background:#fffcf7d6;background:var(--paper);border:1px solid #4f352324;border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);color:#66584c;color:var(--muted);padding:24px}.empty-card-wide{align-items:center;display:flex;min-height:120px}.empty-card-wide h3{margin:0 0 10px}.empty-card-wide p{color:#66584c;color:var(--muted);line-height:1.6;margin:0}.shelf-link{white-space:nowrap}.toast-banner{background:#21160feb;background:var(--toast-bg);border-radius:16px;bottom:24px;box-shadow:0 18px 38px #21160f33;box-shadow:var(--toast-shadow);color:#fffdf9;color:var(--on-accent);padding:14px 18px;position:fixed;right:24px;z-index:50}.shopping-list{display:flex;flex-direction:column;gap:14px}.shopping-item{align-items:center;background:#fffcf7d6;background:var(--paper);border:1px solid #4f352324;border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);display:flex;gap:16px;justify-content:space-between;padding:18px 20px}.shopping-item-text{font-size:18px;font-weight:600}.admin-section{display:flex;flex-direction:column;gap:18px}.admin-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.admin-card{background:#fffcf7d6;background:var(--paper);border:1px solid #4f352324;border:1px solid var(--line);border-radius:24px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;padding:22px}.admin-card-header{align-items:start;display:flex;gap:12px;justify-content:space-between}.admin-card-header h3,.admin-panel-title{font-size:1.45rem;line-height:1.2;margin:0}.admin-badge{align-items:center;background:#24150f14;border-radius:999px;color:#21160f;color:var(--ink);display:inline-flex;font-size:.82rem;font-weight:700;padding:6px 10px;white-space:nowrap}.admin-badge.active{background:color-mix(in srgb,#b44f2f 18%,#0000);background:color-mix(in srgb,var(--accent) 18%,#0000);color:#b44f2f;color:var(--accent)}.admin-meta{color:#66584c;color:var(--muted);font-size:.95rem;margin:0}.admin-detail-list,.admin-stats{color:#21160f;color:var(--ink);display:flex;flex-direction:column;gap:8px}.social-feed{gap:16px}.social-card,.social-feed{display:flex;flex-direction:column}.social-card{background:#fffcf7d6;background:var(--paper);border:1px solid #4f352324;border:1px solid var(--line);border-radius:22px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);gap:10px;padding:20px 22px}.social-card-header{align-items:baseline;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.social-timestamp{color:#66584c;color:var(--muted);font-size:.95rem}.social-line{font-size:1.08rem;line-height:1.6;margin:0}.social-rating{color:#b44f2f;color:var(--accent);font-weight:700}.social-comment-preview{color:#66584c;color:var(--muted);font-size:1rem;line-height:1.7}.social-variation-name{font-weight:700}@media (max-width:1200px) and (min-width:851px){.explore-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:850px){.book-hero,.books-hero,.hero-shell,.recipe-columns,.recipe-hero{grid-template-columns:1fr}.book-hero-content h1,.recipe-hero-content h1{font-size:40px}.navbar{padding:20px}.nav-toggle{display:inline-flex}.nav-links{background:#fffbf5c7;background:var(--nav-surface);border:1px solid #4f352324;border:1px solid var(--line);border-radius:22px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);box-sizing:border-box;display:none;flex-direction:column;gap:10px;padding:16px;width:100%}.nav-links.mobile-open{display:flex}.nav-links a{display:block;white-space:nowrap}.discover-jump-row,.hero-shell,.home-activity-shell,.home-panel-grid,.recipe-columns,.recipe-description,.recipe-extra-meta,.recipe-gallery,.related-section,.row-section,.search-active-filters-shell,.search-page-header,.search-workspace-shell,.stats-grid{padding-left:20px;padding-right:20px}.toast-banner{bottom:20px;left:20px;right:20px}.shopping-item{align-items:start;flex-direction:column}.nav-actions{gap:10px}.theme-toggle{padding:9px 12px}.hero-copy{padding:30px 24px}.search-panel{padding:24px 20px}.search-page-header{padding-bottom:6px;padding-top:12px}.search-toolbar{background:color-mix(in srgb,#fffcf7d6 92%,#0000);background:color-mix(in srgb,var(--paper) 92%,#0000);border:1px solid #4f352324;border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 50px #4a301e1f;box-shadow:var(--shadow);margin:0 -4px;padding:12px;position:-webkit-sticky;position:sticky;top:12px;z-index:8}.search-toolbar,.search-toolbar-meta{align-items:flex-start;flex-direction:column}.search-filter-grid{gap:16px}.activity-grid,.discover-spotlight,.home-panel-grid,.search-filter-grid,.variation-editor-grid{grid-template-columns:1fr}.discover-spotlight{gap:18px}.explore-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.back-to-top{bottom:16px;padding:9px 12px;right:16px}.remy-launcher{bottom:72px;padding-right:12px;right:16px}.remy-panel{bottom:126px;left:16px;max-height:66vh;right:16px;width:auto}.recipe-extra-meta h2{font-size:34px;margin-bottom:18px}.meta-section{padding:20px 18px}.recipe-note-input{min-height:120px;padding:14px 16px}.comment-author{font-size:1.05rem}.recipe-page.cook-view .recipe-columns{gap:18px}.recipe-page.cook-view .recipe-hero-content{padding:12px 20px 0}.recipe-page.cook-view .recipe-hero-content h1{font-size:34px}.recipe-page.cook-view .ingredients-panel{position:-webkit-sticky;position:sticky;top:12px;z-index:6}.recipe-page.cook-view .recipe-panel{padding:24px 20px}.recipe-page.cook-view .recipe-panel h2{font-size:30px}.recipe-page.cook-view .ingredient-text,.recipe-page.cook-view .step-text{font-size:19px}}@media (max-width:560px){.explore-grid{grid-template-columns:1fr}}@media (min-width:900px) and (orientation:landscape){.recipe-page.cook-view .recipe-columns{align-items:stretch;grid-template-columns:minmax(300px,.95fr) minmax(0,1.25fr);min-height:calc(100vh - 120px)}.recipe-page.cook-view .recipe-panel{max-height:calc(100vh - 36px);overflow-y:auto;position:-webkit-sticky;position:sticky;top:18px}.recipe-page.cook-view .recipe-hero-content{padding-bottom:0}.recipe-page.cook-view .ingredients-panel{padding-right:22px}.recipe-page.cook-view .instructions-panel{padding-right:24px}}
/*# sourceMappingURL=main.1fcb241a.css.map*/