@import "https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,400;1,6..72,500&family=Hanken+Grotesk:wght@400;500;600;700&display=swap";@property --mode{syntax:"<color>";inherits:true;initial-value:#23201a}@property --mode-deep{syntax:"<color>";inherits:true;initial-value:#23201a}@property --mode-soft{syntax:"<color>";inherits:true;initial-value:#fbf8f3}@property --mode-ink{syntax:"<color>";inherits:true;initial-value:#23201a}@property --mode-tint-top{syntax:"<color>";inherits:true;initial-value:#f4efe7}@property --mode-tint-bot{syntax:"<color>";inherits:true;initial-value:#f4efe7}:root{--paper:#f4efe7;--surface:#fbf8f3;--surface-2:#f1ece2;--ink:#23201a;--ink-soft:#3a352c;--muted:#6e6559;--faint:#766c5c;--decor:#9c9284;--hairline:#e7dfd1;--hairline-strong:#d8cdbb;--sage:#5c7563;--sage-deep:#3f5748;--sage-ink:#26302a;--sage-soft:#e8eee7;--sage-tint-top:#edf2eb;--sage-tint-bot:#e6eee5;--clay:#b65b3c;--clay-deep:#7c3a22;--clay-ink:#3a2317;--clay-soft:#f3e4db;--clay-tint-top:#f5e7de;--clay-tint-bot:#f1dfd3;--amber:#b4862f;--amber-soft:#fbf6ec;--amber-line:#e8dcc4;--danger:#b0503c;--danger-soft:#f3e1db;--accent:var(--ink);--accent-text:var(--paper);--mode:var(--ink);--mode-deep:var(--ink);--mode-soft:var(--surface);--mode-ink:var(--ink);--mode-tint-top:var(--paper);--mode-tint-bot:var(--paper);--sans:"Hanken Grotesk", system-ui, "Segoe UI", sans-serif;--serif:"Newsreader", Georgia, "Times New Roman", serif;--mono:ui-monospace, Consolas, monospace;--radius-card:18px;--radius-btn:13px;--shadow-card:0 8px 22px #3c322814;--shadow-cta:0 8px 20px #23201a29;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:16px/1.5 var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.theme-shopping{--mode:var(--sage);--mode-deep:var(--sage-deep);--mode-ink:var(--sage-ink);--mode-soft:var(--sage-soft);--mode-tint-top:var(--sage-tint-top);--mode-tint-bot:var(--sage-tint-bot)}.theme-cooking{--mode:var(--clay);--mode-deep:var(--clay-deep);--mode-ink:var(--clay-ink);--mode-soft:var(--clay-soft);--mode-tint-top:var(--clay-tint-top);--mode-tint-bot:var(--clay-tint-bot)}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2,h3{font-family:var(--serif);color:var(--ink);margin:0;font-weight:500}a{color:var(--sage);text-decoration:none}a:hover{color:var(--sage-deep);text-decoration:underline}button{font:inherit;cursor:pointer}@keyframes remy-pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes remy-bar{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes remy-ring{0%{opacity:.5;transform:scale(.8)}to{opacity:0;transform:scale(1.7)}}@keyframes remy-shimmer{0%{background-position:-260px 0}to{background-position:260px 0}}.app-screen{background:var(--paper);flex-direction:column;flex:1;min-height:100dvh;padding:20px;display:flex}@property --tint-glow{syntax:"<color>";inherits:true;initial-value:#f4efe7}@property --tint-top{syntax:"<color>";inherits:true;initial-value:#f4efe7}@property --tint-bot{syntax:"<color>";inherits:true;initial-value:#f4efe7}.app-screen.theme-shopping,.app-screen.theme-cooking{background:radial-gradient(125% 60% at 50% -10%, var(--tint-glow) 0%, transparent 58%), linear-gradient(180deg, var(--tint-top) 0%, var(--tint-bot) 100%);background-attachment:fixed;transition:--tint-glow .45s,--tint-top .45s,--tint-bot .45s,--mode .45s,--mode-deep .45s,--mode-soft .45s,--mode-ink .45s,--mode-tint-top .45s,--mode-tint-bot .45s}.theme-shopping{--tint-glow:#f2f6f0;--tint-top:#e9efe7;--tint-bot:#dfe9dd}.theme-cooking{--tint-glow:#f9ede5;--tint-top:#f4e3d8;--tint-bot:#edd6c7}.topbar{align-items:center;gap:12px;margin-bottom:22px;display:flex}.topbar__title{font-family:var(--serif);color:var(--mode-ink,var(--ink));white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:18px;overflow:hidden}.iconbtn{border:1px solid var(--hairline);background:var(--surface);width:38px;height:38px;color:var(--mode-ink,var(--ink));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:19px;line-height:1;display:flex}.eyebrow{font:600 11px/1 var(--sans);letter-spacing:1.6px;text-transform:uppercase;color:var(--faint)}.wordmark{font-family:var(--serif);color:var(--ink);font-size:26px;font-weight:400}.landing{background:var(--paper);flex-direction:column;flex:1;min-height:100dvh;padding:32px 24px;display:flex}.landing__brand{justify-content:space-between;align-items:center;margin-bottom:48px;display:flex}.landing__brand-lockup{cursor:pointer;background:0 0;border:none;align-items:center;gap:9px;padding:0;display:flex}.landing__brand-lockup img{width:auto;height:36px}.landing__brand-lockup.is-pulsing img{animation:.5s markWiggle}.landing__brand-lockup .wordmark{margin-top:3px}@keyframes markWiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}60%{transform:rotate(6deg)}85%{transform:rotate(-2deg)}}.landing__saved-link{border:1px solid var(--hairline);background:var(--surface);color:var(--ink-soft);font:600 13px/1 var(--sans);border-radius:999px;align-items:center;gap:7px;padding:8px 14px;display:flex}@keyframes landingFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.landing.is-entering .landing__brand,.landing.is-entering h1{animation:.5s both landingFadeIn}.landing.is-entering .recipe-input{animation:.5s .28s both landingFadeIn}.landing__saved-link span{background:var(--sage);color:#fff;min-width:19px;height:19px;font:700 11px/1 var(--sans);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.landing h1{font-family:var(--serif);letter-spacing:-.4px;margin:12px 0 30px;font-size:clamp(30px,8vw,36px);font-weight:400;line-height:1.18}.landing__tagline{color:var(--muted);margin:0 0 24px}.recipe-input{flex-direction:column;flex:1;gap:12px;display:flex}.recipe-input__field,.recipe-search__form input{border:1px solid var(--hairline-strong);border-radius:var(--radius-btn);background:var(--surface);color:var(--ink);font:15px var(--sans);padding:16px 18px}.recipe-input__field:focus,.recipe-search__form input:focus{border-color:var(--sage);outline:none;box-shadow:0 0 0 3px #5c756324}.recipe-input__submit{border-radius:var(--radius-btn);background:var(--accent);color:var(--accent-text);font:600 16px/1 var(--sans);border:none;padding:16px}.recipe-input__submit:disabled{opacity:.55}.recipe-input__divider{color:var(--faint);font:600 11px/1 var(--sans);letter-spacing:1.5px;align-items:center;gap:14px;margin:2px 0;display:flex}.recipe-input__divider:before,.recipe-input__divider:after{content:"";background:var(--hairline-strong);flex:1;height:1px}.recipe-input__photo-actions{gap:12px;display:flex}.recipe-input__photo{border:1px solid var(--hairline-strong);border-radius:var(--radius-btn);background:var(--surface);color:var(--ink);font:600 14px/1 var(--sans);flex-direction:column;flex:1;align-items:center;gap:8px;padding:18px 12px;display:flex}.recipe-input__photo:disabled{opacity:.55}.recipe-input__search-row{border:1px solid var(--hairline-strong);border-radius:var(--radius-btn);background:var(--surface);color:var(--ink);font:500 15px/1 var(--sans);text-align:left;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.recipe-input__search-row span{color:var(--hairline-strong);font-size:18px}.recipe-input__spacer{flex:1;min-height:24px}.recipe-input__sample,.landing__library-link{color:var(--muted);font:14px var(--sans);text-underline-offset:3px;background:0 0;border:none;align-self:center;padding:8px;text-decoration:underline}.recipe-input__error,.voice-session__error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-btn);padding:12px 16px;font-size:14.5px}.recipe-input__file{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.recipe-input__thumbs{flex-wrap:wrap;gap:8px;display:flex}.recipe-input__thumb{border:1px solid var(--hairline);border-radius:10px;width:64px;height:64px;position:relative;overflow:hidden}.recipe-input__thumb img{object-fit:cover;width:100%;height:100%;display:block}.recipe-input__thumb-remove{color:#fff;background:#23201a99;border:none;border-radius:50%;width:20px;height:20px;padding:0;font-size:14px;line-height:1;position:absolute;top:3px;right:3px}.loading{z-index:100;padding:32px 24px calc(28px + env(safe-area-inset-bottom));background:var(--paper);text-align:center;flex-direction:column;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.loading__wordmark{align-self:flex-start;margin-bottom:56px}.loading__spinner{width:70px;height:70px;margin-bottom:26px;position:relative}.loading__spinner span.ring{border:1.5px solid var(--hairline-strong);border-radius:50%;animation:1.8s ease-out infinite remy-ring;position:absolute;inset:0}.loading__spinner span.ring:nth-child(2){animation-delay:.6s}.loading__spinner span.dot{background:var(--sage);border-radius:50%;position:absolute;inset:22px}.loading h2{margin-bottom:6px;font-size:23px}.loading p{color:var(--muted);max-width:260px;font-size:14.5px}.skeleton{background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface) 50%, var(--surface-2) 100%);background-size:260px 100%;border-radius:6px;height:12px;animation:1.4s ease-in-out infinite remy-shimmer;display:block}.loading__card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);flex-direction:column;gap:20px;width:100%;padding:22px;display:flex}.loading__card-label{font:600 11px/1 var(--sans);letter-spacing:1.4px;text-transform:uppercase;color:var(--faint);margin-bottom:12px}.loading__card-rows{flex-direction:column;gap:9px;display:flex}.loading__cancel{color:var(--faint);font:14px var(--sans);text-underline-offset:3px;background:0 0;border:none;align-self:center;margin-top:auto;padding:8px;text-decoration:underline}.recipe-search{z-index:100;background:var(--paper);flex-direction:column;gap:12px;padding:32px 24px;display:flex;position:fixed;inset:0;overflow-y:auto}.recipe-search__form{gap:10px;display:flex}.recipe-search__form input{flex:1}.recipe-search__results{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.recipe-search__result{border:1px solid var(--hairline);background:var(--surface);width:100%;color:var(--ink);text-align:left;border-radius:14px;align-items:center;gap:14px;padding:12px;display:flex}.recipe-search__result:disabled{opacity:.55}.recipe-search__thumb{object-fit:cover;background:var(--surface-2);border-radius:10px;flex-shrink:0;width:56px;height:56px}.recipe-search__result-info{flex-direction:column;flex:1;min-width:0;display:flex}.recipe-search__result-title{font:600 15.5px/1.3 var(--sans)}.recipe-search__result-meta{color:var(--faint);margin-top:3px;font-size:13px}.recipe-search__empty{color:var(--muted);text-align:center}.mode-toggle{background:color-mix(in srgb, var(--mode) 10%, transparent);border-radius:14px;margin-bottom:30px;padding:4px;display:flex}.mode-toggle__option{color:color-mix(in srgb, var(--mode-ink) 65%, transparent);font:600 15px/1 var(--sans);background:0 0;border:none;border-radius:11px;flex:1;padding:12px;transition:background .2s,color .2s}.mode-toggle__option.is-active{background:var(--mode);color:#fff;box-shadow:0 4px 12px color-mix(in srgb, var(--mode-deep) 30%, transparent)}.confirm__head{text-align:center;margin-bottom:26px}.confirm__head .eyebrow{color:color-mix(in srgb, var(--mode) 70%, var(--ink));margin-bottom:12px}.confirm__title{font-family:var(--serif);letter-spacing:-.4px;color:var(--mode-ink);margin-bottom:8px;font-size:30px;font-weight:500;line-height:1.14}.confirm__meta{color:color-mix(in srgb, var(--mode-ink) 55%, transparent);font-size:15px}.confirm__pitch{border-left:3px solid var(--mode);margin:2px 0 20px;padding:2px 0 2px 18px}.confirm__pitch-quote{font-family:var(--serif);color:var(--mode-ink);margin-bottom:8px;font-size:22px;line-height:1.32}.confirm__pitch-note{color:color-mix(in srgb, var(--mode-ink) 60%, transparent);font-size:14px;line-height:1.55}.confirm__first{border:1px solid color-mix(in srgb, var(--mode-deep) 12%, transparent);border-radius:var(--radius-btn);color:color-mix(in srgb, var(--mode-ink) 70%, transparent);background:#ffffff8c;padding:16px 18px;font-size:14px;line-height:1.5}.confirm__first strong{color:var(--mode-ink);font-weight:600}.btn-mode{background:var(--mode-deep);color:#fff;width:100%;font:600 17px/1 var(--sans);box-shadow:0 8px 20px color-mix(in srgb, var(--mode-deep) 26%, transparent);border:none;border-radius:14px;margin-bottom:12px;padding:17px}.btn-mode-outline{border:1px solid color-mix(in srgb, var(--mode-deep) 25%, transparent);width:100%;color:var(--mode-deep);font:600 15px/1 var(--sans);background:0 0;border-radius:14px;padding:15px}.confirm__foot{justify-content:center;align-items:center;gap:20px;padding-top:6px;display:flex}.confirm__foot button{color:color-mix(in srgb, var(--mode-ink) 55%, transparent);font:14px var(--sans);background:0 0;border:none;padding:8px 4px}.confirm__foot button:first-child{font-weight:600}.confirm__foot .sep{background:color-mix(in srgb, var(--mode-deep) 20%, transparent);width:1px;height:14px}.resume__card{background:color-mix(in srgb, #fff 45%, var(--mode-soft));border:1px solid color-mix(in srgb, var(--mode-deep) 14%, transparent);border-radius:var(--radius-card);box-shadow:0 10px 26px color-mix(in srgb, var(--mode-deep) 12%, transparent);padding:24px}.resume__tag{font:600 12px/1 var(--sans);letter-spacing:.4px;color:var(--mode);align-items:center;gap:8px;margin-bottom:16px;display:flex}.resume__tag .dot{background:var(--mode);border-radius:50%;width:8px;height:8px}.resume__headline{font-family:var(--serif);color:var(--mode-ink);margin-bottom:6px;font-size:22px;line-height:1.3}.resume__excerpt{color:color-mix(in srgb, var(--mode-ink) 65%, transparent);margin-bottom:20px;font-size:14.5px;line-height:1.55}.resume__progress{gap:6px;display:flex}.confirm__live-progress{font:600 12.5px/1 var(--sans);color:var(--mode-deep);align-items:center;gap:8px;margin:4px 0 18px;display:flex}.confirm__live-progress .dot{background:var(--mode);border-radius:50%;flex-shrink:0;width:7px;height:7px}.resume__progress span{background:color-mix(in srgb, var(--mode-deep) 18%, transparent);border-radius:3px;flex:1;height:6px}.resume__progress span.done{background:var(--mode)}.voice-session{flex-direction:column;flex:1;gap:0;min-height:100dvh;padding:20px;display:flex}.voice-session__save{border:1px solid color-mix(in srgb, var(--mode-deep) 20%, transparent);color:color-mix(in srgb, var(--mode-ink) 55%, transparent);font:600 12px/1 var(--sans);background:0 0;border-radius:999px;flex-shrink:0;padding:7px 12px}.voice-session__save:disabled{opacity:.6}.step-hero{background:color-mix(in srgb, #fff 55%, var(--mode-soft));border:1px solid color-mix(in srgb, var(--mode-deep) 12%, transparent);box-shadow:var(--shadow-card);border-radius:20px;margin-bottom:18px;padding:22px}.step-hero__meta{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.step-hero__label{font:600 11px/1 var(--sans);letter-spacing:1.4px;color:var(--mode)}.step-hero__dots{gap:4px;display:flex}.step-hero__dots span{background:color-mix(in srgb, var(--mode-deep) 18%, transparent);border-radius:3px;width:16px;height:5px}.step-hero__dots span.done{background:var(--mode)}.step-hero__text{font-family:var(--serif);color:var(--mode-ink);font-size:25px;line-height:1.32}.shop-progress{background:color-mix(in srgb, #fff 55%, var(--mode-soft));border:1px solid color-mix(in srgb, var(--mode-deep) 10%, transparent);box-shadow:var(--shadow-card);border-radius:20px;margin-bottom:16px;padding:20px 22px}.shop-progress__row{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.shop-progress__count{font-family:var(--serif);color:var(--mode-ink);font-size:26px}.shop-progress__count small{color:color-mix(in srgb, var(--mode-ink) 55%, transparent);font-size:17px}.shop-progress__togo{font:600 12px/1 var(--sans);color:var(--mode)}.shop-progress__bar{background:color-mix(in srgb, var(--mode-deep) 15%, transparent);border-radius:4px;height:8px;overflow:hidden}.shop-progress__bar span{background:var(--mode);border-radius:4px;height:100%;display:block}.check-list{flex-direction:column;flex:1;gap:8px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.check-row{border:1px solid color-mix(in srgb, var(--mode-deep) 8%, transparent);background:#fff6;border-radius:13px;align-items:center;gap:12px;padding:12px 14px;display:flex}.check-row__mark{border:2px solid #b8c2b5;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:23px;height:23px;font-size:12px;display:flex}.check-row__name{min-width:0;color:color-mix(in srgb, var(--ink) 80%, transparent);flex:1;font-size:15px}.check-row__qty{color:var(--faint);font-size:13px}.check-row__sub{margin-top:2px;font-size:12.5px;display:block}.check-row.is-have{background:color-mix(in srgb, #fff 55%, var(--sage-soft))}.check-row.is-have .check-row__mark{background:var(--sage);border-color:var(--sage);color:#fff}.check-row.is-have .check-row__name{color:var(--sage-ink)}.check-row.is-swap{background:#eef2ec;border-color:#d7e1d4}.check-row.is-swap .check-row__mark{background:var(--sage);border-color:var(--sage);color:#fff}.check-row.is-swap .old{color:#9aa398;text-decoration:line-through}.check-row.is-swap .new{color:var(--sage-ink);font-weight:700}.check-row.is-swap .check-row__sub{color:var(--sage)}.check-row.is-partial{background:var(--amber-soft);border-color:var(--amber-line)}.check-row.is-partial .check-row__mark{color:var(--amber);border-color:#c9a24b;font-weight:700}.check-row.is-partial .check-row__sub{color:var(--amber)}.check-row.is-skip{opacity:1}.check-row.is-skip .check-row__mark{color:#a89a88;border-color:#cdbfb0}.check-row.is-skip .check-row__name{color:var(--faint);text-decoration:line-through}.check-row.is-skip .check-row__sub{color:#a89a88}.check-row__action{color:var(--sage);font:600 13px/1 var(--sans);background:0 0;border:none;flex-shrink:0}.check-row__skip{color:#7c9080;font:600 12px/1 var(--sans);background:0 0;border:1px solid #c9d0c6;border-radius:999px;flex-shrink:0;padding:5px 12px}.live-bar{background:var(--mode-deep);color:#fff;box-shadow:0 10px 24px color-mix(in srgb, var(--mode-deep) 26%, transparent);border-radius:16px;align-items:center;gap:14px;margin-top:16px;padding:14px 18px;display:flex}.live-bar__label{font:600 14px/1 var(--sans);flex:1}.live-bar__wrap-up{color:#fff;font:600 13px/1 var(--sans);background:0 0;border:1px solid #ffffff59;border-radius:999px;padding:8px 14px}.live-bar .pulse{flex-shrink:0;width:12px;height:12px;position:relative}.live-bar .pulse:before{content:"";background:#ffffffbf;border-radius:50%;animation:1.4s ease-in-out infinite remy-pulse;position:absolute;inset:0}.live-bar .bars{align-items:flex-end;gap:3px;height:22px;display:flex}.live-bar .bars span{transform-origin:bottom;background:#fff;border-radius:2px;width:3.5px;height:22px;animation:.9s ease-in-out infinite remy-bar}.live-bar .bars span:nth-child(2){animation-delay:.15s}.live-bar .bars span:nth-child(3){animation-delay:.3s}.live-bar .bars span:nth-child(4){animation-delay:.45s}.log{flex-direction:column;flex:1;gap:9px;display:flex;overflow-y:auto}.log__label{font:600 11px/1 var(--sans);letter-spacing:1.4px;text-transform:uppercase;color:color-mix(in srgb, var(--mode) 60%, var(--muted))}.log-entry{max-width:88%;padding:11px 14px;font-size:14.5px;line-height:1.4}.log-entry--agent{background:color-mix(in srgb, #fff 55%, var(--mode-soft));color:var(--mode-ink);border-radius:14px 14px 14px 4px;align-self:flex-start}.log-entry--user{background:var(--mode);color:#fff;border-radius:14px 14px 4px;align-self:flex-end}.log-entry--tool{background:color-mix(in srgb, var(--mode-deep) 8%, transparent);font:italic 500 12.5px/1.3 var(--sans);color:color-mix(in srgb, var(--mode-deep) 70%, var(--muted));border-radius:999px;align-self:flex-start;align-items:center;gap:7px;padding:6px 12px;display:inline-flex}.log-entry--tool .dot{background:var(--mode);border-radius:50%;width:5px;height:5px}.connecting{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding-bottom:60px;display:flex}.connecting__orb{width:90px;height:90px;margin-bottom:30px;position:relative}.connecting__orb .ring{border:1.5px solid color-mix(in srgb, var(--mode) 45%, transparent);border-radius:50%;animation:1.8s ease-out infinite remy-ring;position:absolute;inset:0}.connecting__orb .ring:nth-child(2){animation-delay:.6s}.connecting__orb .core{background:var(--mode);border-radius:50%;justify-content:center;align-items:center;gap:3px;display:flex;position:absolute;inset:30px}.connecting__orb .core span{background:#fff;border-radius:2px;width:3px;animation:.9s ease-in-out infinite remy-bar}.connecting h2{color:var(--mode-ink);margin-bottom:8px;font-size:24px}.connecting p{color:color-mix(in srgb, var(--mode-ink) 60%, transparent);max-width:250px;font-size:14.5px;line-height:1.55}.recovery{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding-bottom:40px;display:flex}.recovery__icon{background:var(--danger-soft);width:64px;height:64px;color:var(--danger);border-radius:50%;justify-content:center;align-items:center;margin-bottom:24px;font-size:26px;display:flex}.voice-session__retry{background:var(--clay);color:#fff;width:100%;font:600 16px/1 var(--sans);box-shadow:var(--shadow-cta);border:none;border-radius:14px;margin-bottom:11px;padding:17px}.voice-session__back{border:1px solid var(--hairline-strong);background:var(--surface);width:100%;color:var(--ink);font:600 15px/1 var(--sans);border-radius:14px;padding:15px}.wrap-up__scrim{z-index:40;background:#23201a47;position:fixed;inset:0}.wrap-up{z-index:50;background:color-mix(in srgb, #fff 70%, var(--paper));padding:14px 24px calc(28px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 34px #3a231733}.wrap-up__handle{background:var(--hairline-strong);border-radius:3px;width:40px;height:5px;margin:0 auto 20px}.wrap-up__title{font-family:var(--serif);color:var(--ink);margin-bottom:4px;font-size:24px}.wrap-up__sub{color:var(--muted);margin-bottom:22px;font-size:14px}.wrap-up__opt{border:1px solid var(--hairline);background:var(--surface);text-align:left;border-radius:15px;align-items:center;gap:14px;width:100%;margin-bottom:11px;padding:16px 18px;display:flex}.wrap-up__opt--primary{border:1.5px solid var(--mode);background:color-mix(in srgb, var(--mode-soft) 60%, #fff)}.wrap-up__opt-icon{background:var(--surface-2);width:40px;height:40px;color:var(--ink);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.wrap-up__opt-icon--save{color:var(--sage)}.wrap-up__opt--primary .wrap-up__opt-icon{background:var(--mode);color:#fff}.wrap-up__opt-icon .pause-bars{gap:3px;display:inline-flex}.wrap-up__opt-icon .pause-bars span{background:currentColor;border-radius:1.5px;width:3px;height:13px}.wrap-up__opt-title{font:600 15.5px/1.2 var(--sans);color:var(--ink);display:block}.wrap-up__opt--primary .wrap-up__opt-title{font-weight:700}.wrap-up__opt-note{color:var(--faint);margin-top:2px;font-size:13px;display:block}.wrap-up__keep{width:100%;color:color-mix(in srgb, var(--mode-deep) 70%, var(--muted));font:600 14px/1 var(--sans);background:0 0;border:none;padding:6px}.auth{background:var(--paper);flex-direction:column;flex:1;min-height:100dvh;padding:40px 26px;display:flex}.auth__brand{text-align:center;flex-direction:column;align-items:center;margin-bottom:26px;display:flex}.auth__brand img{width:auto;height:64px;margin-bottom:12px}.auth h1{font-family:var(--serif);text-align:center;margin-bottom:4px;font-size:26px;font-weight:500}.auth__sub{text-align:center;color:var(--muted);margin:0 0 24px;font-size:14px}.auth__methods{flex-direction:column;gap:10px;display:flex}.btn-oauth{border-radius:var(--radius-btn);font:600 15px/1 var(--sans);justify-content:center;align-items:center;gap:10px;padding:15px;display:flex}.btn-oauth--apple{background:var(--ink);color:var(--paper);border:none}.btn-oauth--google{border:1px solid var(--hairline-strong);background:var(--surface);color:var(--ink)}.btn-primary{border-radius:var(--radius-btn);background:var(--accent);color:var(--accent-text);font:600 16px/1 var(--sans);border:none;padding:16px}.auth__magic{color:var(--sage);font:600 14px/1 var(--sans);background:0 0;border:none;padding:8px}.auth__foot{text-align:center;color:var(--muted);border-top:1px solid var(--hairline);padding-top:18px;font-size:14px}.auth__foot a{font-weight:600}.auth__legal{text-align:center;color:var(--faint);margin:16px 0 0;font-size:12px;line-height:1.5}.camera-capture{z-index:1000;background:#141210;position:fixed;inset:0}.camera-capture__video{object-fit:cover;background:#141210;width:100%;height:100%;position:absolute;inset:0}.camera-capture__scrim-top{background:linear-gradient(#0000008c,#0000);height:150px;position:absolute;top:0;left:0;right:0}.camera-capture__topbar{top:calc(16px + env(safe-area-inset-top));z-index:2;justify-content:space-between;align-items:center;padding:0 22px;display:flex;position:absolute;left:0;right:0}.camera-capture__close{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background:#ffffff29;border:none;border-radius:50%;width:40px;height:40px;font-size:19px}.camera-capture__hint{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font:600 13px/1 var(--sans);background:#0006;border-radius:999px;padding:8px 16px}.camera-capture__guides{pointer-events:none;position:absolute;inset:150px 40px 250px}.camera-capture__guides span{width:26px;height:26px;position:absolute}.camera-capture__guides span:first-child{border-top:2px solid #ffffffb3;border-left:2px solid #ffffffb3;border-radius:8px 0 0;top:0;left:0}.camera-capture__guides span:nth-child(2){border-top:2px solid #ffffffb3;border-right:2px solid #ffffffb3;border-radius:0 8px 0 0;top:0;right:0}.camera-capture__guides span:nth-child(3){border-bottom:2px solid #ffffffb3;border-left:2px solid #ffffffb3;border-radius:0 0 0 8px;bottom:0;left:0}.camera-capture__guides span:nth-child(4){border-bottom:2px solid #ffffffb3;border-right:2px solid #ffffffb3;border-radius:0 0 8px;bottom:0;right:0}.camera-capture__dock{z-index:2;padding:0 22px calc(24px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#000000b3);position:absolute;bottom:0;left:0;right:0}.camera-capture__thumbs{gap:9px;padding:20px 0;display:flex;overflow-x:auto}.camera-capture__thumb{border:2px solid #fff;border-radius:10px;flex-shrink:0;width:54px;height:54px;position:relative;overflow:hidden}.camera-capture__thumb img{object-fit:cover;width:100%;height:100%;display:block}.camera-capture__thumb-remove{color:#fff;background:#000000b3;border:none;border-radius:50%;width:18px;height:18px;padding:0;font-size:12px;line-height:1;position:absolute;top:2px;right:2px}.camera-capture__controls{justify-content:space-between;align-items:center;display:flex}.camera-capture__counter{color:#ffffffb3;width:64px;font:600 13px/1 var(--sans)}.camera-capture__shutter{background:0 0;border:4px solid #fff;border-radius:50%;width:72px;height:72px;padding:4px}.camera-capture__shutter:after{content:"";background:#fff;border-radius:50%;width:100%;height:100%;display:block}.camera-capture__shutter:disabled{opacity:.4}.camera-capture__done{background:var(--clay);color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;font-size:22px;display:flex;box-shadow:0 6px 16px #7c3a2266}.camera-capture__error-screen{color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:absolute;inset:0}.recipe-library{background:var(--paper);flex:1;min-height:100dvh;padding:32px 24px}.recipe-library__head{align-items:center;gap:14px;display:flex}.recipe-library__head h1{font-family:var(--serif);font-size:26px;font-weight:500}.recipe-library__count{font:600 11px/1 var(--sans);letter-spacing:1.4px;text-transform:uppercase;color:var(--faint);margin:14px 0 14px 52px}.recipe-library__list{flex-direction:column;gap:11px;margin:0;padding:0;list-style:none;display:flex}.recipe-library__item{border:1px solid var(--hairline);background:var(--surface);border-radius:16px;align-items:center;gap:14px;min-height:84px;padding:16px;display:flex}.recipe-library__thumb{object-fit:cover;background:var(--surface-2);border-radius:11px;flex-shrink:0;width:52px;height:52px}.recipe-search__thumb--empty{background:var(--surface-2);border:1px solid var(--hairline);font-family:var(--serif);color:var(--decor);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:23px;font-weight:500;line-height:1;display:flex}.recipe-library__item-button{text-align:left;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:5px;min-width:0;padding:0;display:flex}.recipe-library__item-title{font-family:var(--serif);color:var(--ink);font-size:19px;line-height:1.24}.recipe-library__item-meta{color:var(--faint);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.recipe-library__paused{font:600 11px/1 var(--sans);border-radius:999px;align-items:center;gap:5px;padding:3px 9px;display:inline-flex}.recipe-library__paused .pause-bars{gap:2px;display:inline-flex}.recipe-library__paused .pause-bars span{border-radius:1px;width:2px;height:8px}.recipe-library__paused.is-cooking{background:var(--danger-soft);color:var(--danger)}.recipe-library__paused.is-cooking .pause-bars span{background:var(--clay)}.recipe-library__paused.is-shopping{background:var(--sage-soft);color:var(--sage-deep)}.recipe-library__paused.is-shopping .pause-bars span{background:var(--sage)}.recipe-library__item-remove{width:30px;height:30px;color:var(--faint);background:0 0;border:none;flex-shrink:0;font-size:20px}.recipe-library__empty{color:var(--muted);text-align:center;margin-top:40px}.recipe-library__account{border:1px solid var(--hairline);border-radius:var(--radius-btn);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;margin:14px 0 4px;padding:12px 14px;display:flex}.recipe-library__account-who{color:var(--muted);text-overflow:ellipsis;min-width:0;font-size:13px;overflow:hidden}.recipe-library__account-who strong{color:var(--ink-soft);font-weight:600}.recipe-library__account-action{color:var(--sage-deep);font:600 13px/1 var(--sans);text-underline-offset:3px;background:0 0;border:none;flex-shrink:0;padding:4px;text-decoration:underline}@media (width>=768px){.landing,.auth,.recipe-library,.app-screen,.voice-session{padding-left:max(24px,50vw - 280px);padding-right:max(24px,50vw - 280px)}.landing__brand,.recipe-input,.recipe-search,.recipe-library__list,.confirm__head,.mode-toggle,.step-hero,.shop-progress,.check-list,.log,.auth__brand,.auth__methods,.auth__foot{width:100%;max-width:560px;margin-left:auto;margin-right:auto}.landing h1{font-size:44px}.wrap-up{border-radius:22px;width:440px;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 30px 70px #3a231747}}@media (width>=1100px){.voice-session.is-cooking .session-panes{grid-template-columns:1fr 1fr;align-items:start;gap:22px;display:grid}}.welcome{background:var(--paper);flex-direction:column;flex:1;min-height:100dvh;padding:32px 26px;display:flex}.welcome__top{justify-content:space-between;align-items:center;display:flex}.welcome__top-slot{align-items:center;min-height:38px;display:flex}.welcome__skip{color:var(--faint);font:600 14px/1 var(--sans);background:0 0;border:none;padding:6px}.welcome__body{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.welcome__diagram{margin-bottom:36px}.welcome__eyebrow{font:600 11px/1 var(--sans);letter-spacing:1.8px;text-transform:uppercase;color:var(--faint);margin-bottom:14px}.welcome__title{font-family:var(--serif);letter-spacing:-.4px;color:var(--ink);text-wrap:balance;max-width:300px;margin:0 0 12px;font-size:29px;font-weight:500;line-height:1.16}.welcome__text{color:var(--muted);text-wrap:balance;max-width:296px;margin:0;font-size:15px;line-height:1.55}.welcome__foot{justify-content:space-between;align-items:center;display:flex}.welcome__dots{gap:6px;display:flex}.welcome__dots span{background:var(--hairline-strong);border-radius:4px;width:7px;height:7px}.welcome__dots span.active{background:var(--ink);width:22px}.welcome__next{background:var(--ink);color:var(--paper);font:600 15px/1 var(--sans);border:none;border-radius:12px;padding:13px 28px}.welcome__next--sage{background:var(--sage);color:#f7faf6;box-shadow:0 8px 18px #5c756347}.welcome__brand{justify-content:center;align-items:center;height:196px;display:flex}.welcome__brand--close{height:120px}.welcome__brand--close .welcome__mark{height:76px}.welcome__mark{width:auto;height:104px}.welcome__sources{align-items:center;gap:18px;display:flex}.welcome__source-stack{flex-direction:column;gap:9px;display:flex}.welcome__source-icon{background:var(--surface);border:1px solid var(--hairline-strong);border-radius:13px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.welcome__mark-link{background:var(--decor);border-radius:2px;width:20px;height:3px;transform:rotate(-40deg)}.welcome__mark-photo{background:repeating-linear-gradient(135deg, var(--hairline-strong) 0 5px, var(--surface-2) 5px 10px);border-radius:4px;width:22px;height:17px}.welcome__mark-search{border:2px solid var(--decor);border-radius:50%;width:15px;height:15px}.welcome__arrow{color:var(--hairline-strong);font-size:24px}.welcome__recipe-card{background:var(--surface);border:1px solid var(--hairline-strong);border-radius:15px;flex-direction:column;gap:7px;width:124px;padding:13px;display:flex;overflow:hidden}.welcome__recipe-card-image{background:var(--surface-2);height:46px;margin:-13px -13px 0}.welcome__recipe-card-line{background:var(--hairline-strong);border-radius:3px;width:70%;height:6px}.welcome__recipe-card-line--title{background:var(--decor);width:82%;height:9px}.welcome__modes{gap:14px;display:flex}.welcome__mode-card{border-radius:17px;flex-direction:column;gap:12px;width:122px;padding:16px;display:flex}.welcome__mode-card-label{font:700 10px/1 var(--sans);letter-spacing:1.2px}.welcome__mode-card-row{border-radius:3px;height:6px}.welcome__mode-card--shopping{background:var(--sage-soft);border:1px solid var(--hairline)}.welcome__mode-card--shopping .welcome__mode-card-label{color:var(--sage-deep)}.welcome__mode-card--shopping .welcome__mode-card-row{background:color-mix(in srgb, var(--sage) 35%, transparent)}.welcome__mode-card--cooking{background:var(--clay-soft);border:1px solid var(--hairline)}.welcome__mode-card--cooking .welcome__mode-card-label{color:var(--clay-deep)}.welcome__mode-card--cooking .welcome__mode-card-row{background:color-mix(in srgb, var(--clay) 35%, transparent)}.welcome__chat{flex-direction:column;gap:12px;width:250px;display:flex}.welcome__chat-bubble{align-items:flex-end;gap:5px;padding:15px 18px;display:flex}.welcome__chat-bubble--agent{background:var(--sage-soft);border:1px solid var(--hairline);border-radius:16px 16px 16px 5px;align-self:flex-start}.welcome__chat-bubble--agent span{background:var(--sage);border-radius:2px;width:4px;height:20px}.welcome__chat-bubble--agent span:first-child{height:11px}.welcome__chat-bubble--agent span:nth-child(3){height:14px}.welcome__chat-bubble--agent span:nth-child(4){height:23px}.welcome__chat-bubble--user{background:var(--clay-soft);border:1px solid var(--hairline);border-radius:16px 16px 5px;flex-direction:column;align-self:flex-end;align-items:flex-end}.welcome__chat-line{background:color-mix(in srgb, var(--clay) 35%, transparent);border-radius:3px;width:106px;height:7px}.welcome__pause{flex-direction:column;align-items:center;gap:22px;width:230px;display:flex}.welcome__pause-bars{align-items:center;gap:4px;height:44px;display:flex}.welcome__pause-bars span{background:var(--sage);border-radius:3px;width:5px}.welcome__pause-bars span.is-cooking{background:var(--clay)}.welcome__pause-progress{background:var(--clay-soft);border-radius:4px;width:100%;height:8px;overflow:hidden}.welcome__pause-progress span{background:var(--clay);border-radius:4px;height:100%;display:block}.welcome__pause-note{font:600 12px/1 var(--sans);color:var(--clay)}.app-menu__scrim{opacity:0;pointer-events:none;z-index:200;background:#23201a52;border:none;padding:0;transition:opacity .25s;position:fixed;inset:0}.app-menu__scrim.is-open{opacity:1;pointer-events:auto}.app-menu{z-index:201;background:var(--paper);flex-direction:column;width:min(85vw,340px);transition:transform .3s cubic-bezier(.32,.72,0,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:12px 0 32px #23201a2e}.app-menu.is-open{transform:translate(0)}.app-menu__head{border-bottom:1px solid var(--hairline);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 16px;display:flex}.app-menu__brand{flex-direction:column;gap:3px;display:flex}.app-menu__brand-name{font-family:var(--serif);color:var(--ink);font-size:19px;font-weight:400}.app-menu__brand-tag{font:600 10px/1 var(--sans);letter-spacing:1.4px;text-transform:uppercase;color:var(--faint)}.app-menu__close{width:38px;height:38px;color:var(--ink);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;line-height:1;display:flex}.app-menu__list{flex-direction:column;padding:8px 0;display:flex}.app-menu__row{text-align:left;border:none;border-bottom:1px solid var(--hairline);width:100%;font:500 15px/1 var(--sans);color:var(--ink-soft);background:0 0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.app-menu__row span{color:var(--decor)}.app-menu__row--support{color:var(--sage-deep);font-weight:600}.app-menu__row--support span{color:var(--sage-deep)}.app-menu__row--account{color:var(--sage-deep);gap:10px;font-weight:600}.app-menu__row--account .app-menu__row-main{color:var(--sage-deep);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.app-menu__row-main strong{font-weight:700}.app-menu__page{color:var(--muted);padding:8px 20px 28px;font-size:14px;line-height:1.6}.app-menu__page p{margin:0 0 16px}.app-menu__contact-link{color:var(--sage-deep);text-underline-offset:3px;font-weight:600;text-decoration:underline}.app-menu__faq-item{border-bottom:1px solid var(--hairline);padding:16px 0}.app-menu__faq-item:first-child{padding-top:0}.app-menu__faq-q{color:var(--ink-soft);margin:0 0 6px;font-weight:600}.app-menu__faq-a{color:var(--muted);margin:0}
