:root{--bg:#fff;--surface:#f5f5f5;--border:#000;--border-soft:#d0d0d0;--text:#000;--text-muted:#555;--text-faint:#999;--font-head:"Space Grotesk", sans-serif;--font-body:"Inter", sans-serif;--ease:cubic-bezier(.4, 0, .2, 1);--dur:.18s}[data-theme=dark]{--bg:#0d0d0d;--surface:#181818;--border:#e0e0e0;--border-soft:#2e2e2e;--text:#efefef;--text-muted:#a0a0a0;--text-faint:#484848}html{transition:background-color .22s var(--ease)}body{transition:background-color .22s var(--ease), color .22s var(--ease)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6}#root{border-inline:1px solid var(--border-soft);flex-direction:column;max-width:1100px;min-height:100svh;margin:0 auto;display:flex}h1,h2,h3{font-family:var(--font-head);letter-spacing:-.025em;color:var(--text);font-weight:600}h2{margin-bottom:20px;font-size:1.5rem}p{color:var(--text-muted)}a{color:var(--text);text-underline-offset:3px;transition:opacity var(--dur) var(--ease);text-decoration:underline}a:hover{opacity:.55}.app-nav{border-bottom:1px solid var(--border);background:var(--bg);z-index:100;align-items:stretch;display:flex;position:sticky;top:0}.nav-links{align-items:stretch;display:flex}.app-nav a{font-family:var(--font-head);letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);border-right:1px solid var(--border-soft);transition:color var(--dur) var(--ease), background var(--dur) var(--ease);align-items:center;padding:14px 22px;font-size:.78rem;font-weight:600;text-decoration:none;display:flex;position:relative}.app-nav a:after{content:"";background:var(--text);width:0;height:2px;transition:width .28s var(--ease);position:absolute;bottom:-1px;left:0}.app-nav a:hover{color:var(--text);opacity:1}.app-nav a:hover:after{width:100%}.app-nav a.active{color:var(--text);background:var(--surface)}.app-nav a.active:after{width:100%}.section-header{border-bottom:2px solid var(--border);justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:6px;padding-bottom:14px;display:flex}.section-header h2{margin-bottom:0}.section-meta{font-family:var(--font-head);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);white-space:nowrap;padding-bottom:3px;font-size:.72rem;font-weight:600}.page-subtitle{color:var(--text-faint);margin-top:8px;margin-bottom:22px;font-size:13px;line-height:1.55}.prompt-chips{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.prompt-chip{font-family:var(--font-head);letter-spacing:.02em;border:1px solid var(--border-soft);background:var(--bg);color:var(--text-muted);cursor:pointer;text-transform:none;transition:background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);padding:5px 12px;font-size:.72rem;font-weight:500}.prompt-chip:hover{background:var(--text);color:var(--bg);border-color:var(--text)}.cart-summary{border:1px solid var(--border-soft);gap:0;margin-bottom:20px;display:flex}.cart-summary-item{border-right:1px solid var(--border-soft);flex-direction:column;flex:1;gap:3px;padding:16px 20px;display:flex}.cart-summary-item:last-child{border-right:none}.cart-summary-label{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);font-size:.68rem;font-weight:700}.cart-summary-value{font-family:var(--font-head);letter-spacing:-.03em;color:var(--text);font-size:1.5rem;font-weight:700;line-height:1}@keyframes pageFadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.page{animation:pageFadeUp .32s var(--ease) both;flex:1;padding:36px 32px}button{font-family:var(--font-head);letter-spacing:.07em;text-transform:uppercase;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;transition:color var(--dur) var(--ease);padding:9px 18px;font-size:.78rem;font-weight:600;position:relative;overflow:hidden}button:before{content:"";background:var(--text);transition:transform .24s var(--ease);z-index:-1;position:absolute;inset:0;transform:translate(-101%)}button{isolation:isolate}button:hover:before{transform:translate(0)}button:hover{color:var(--bg)}button:disabled{opacity:.3;cursor:not-allowed}button:disabled:before{display:none}button:disabled:hover{color:var(--text)}input,textarea,select{font-family:var(--font-body);border:1px solid var(--border-soft);background:var(--bg);color:var(--text);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);outline:none;width:100%;padding:9px 12px;font-size:14px}input:focus,textarea:focus,select:focus{border-color:var(--border);box-shadow:0 0 0 3px #0000000f}select{cursor:pointer}label{font-family:var(--font-head);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;font-size:.72rem;font-weight:600;display:block}.search-bar{border:1px solid var(--border);max-width:360px;margin-bottom:4px;display:flex}.search-bar input{border:none;width:100%}.search-bar input:focus{box-shadow:none}.product-grid{background:var(--border-soft);border:1px solid var(--border-soft);grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1px;margin-top:16px;display:grid}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.product-card{background:var(--bg);animation:cardFadeIn .28s var(--ease) both;transition:background var(--dur) var(--ease);flex-direction:column;gap:3px;padding:16px;display:flex}.product-card:nth-child(2){animation-delay:30ms}.product-card:nth-child(3){animation-delay:60ms}.product-card:nth-child(4){animation-delay:90ms}.product-card:nth-child(5){animation-delay:.12s}.product-card:nth-child(6){animation-delay:.15s}.product-card:nth-child(7){animation-delay:.18s}.product-card:nth-child(8){animation-delay:.21s}.product-card:nth-child(9){animation-delay:.24s}.product-card:nth-child(10){animation-delay:.27s}.product-card:hover{background:var(--surface)}.product-name{font-family:var(--font-head);font-size:.9rem;font-weight:600}.product-category{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem}.product-price{font-family:var(--font-head);margin-top:4px;font-size:1rem;font-weight:500}.product-card button{align-self:flex-start;margin-top:10px;padding:6px 14px;font-size:.72rem}@keyframes rowSlideIn{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.cart-table{border-collapse:collapse;border:1px solid var(--border);width:100%;margin-top:4px}.cart-table th{font-family:var(--font-head);letter-spacing:.08em;text-transform:uppercase;text-align:left;border-bottom:1px solid var(--border);background:var(--surface);padding:12px 16px;font-size:.72rem;font-weight:600}.cart-table td{border-bottom:1px solid var(--border-soft);vertical-align:middle;animation:rowSlideIn .22s var(--ease) both;padding:12px 16px}.cart-table tbody tr:hover td{background:var(--surface);transition:background var(--dur) var(--ease)}.cart-table tfoot td{border-top:1px solid var(--border);font-family:var(--font-head);letter-spacing:-.01em;padding:14px 16px;font-size:.95rem;font-weight:700}.qty-controls{border:1px solid var(--border-soft);align-items:stretch;display:inline-flex}.qty-controls button{border:none;border-right:1px solid var(--border-soft);min-width:32px;padding:4px 10px;font-size:1rem;line-height:1}.qty-controls button:last-child{border-right:none;border-left:1px solid var(--border-soft)}.qty-value{font-family:var(--font-head);align-items:center;padding:4px 14px;font-size:.9rem;font-weight:500;display:flex}.chat-header{flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:16px;display:flex}.chat-header h2{margin-bottom:0}.model-row{align-items:center;gap:10px;display:flex}.model-row label{margin-bottom:0}.model-row select{width:auto;min-width:200px}.message-list{border:1px solid var(--border-soft);background:var(--surface);flex-direction:column;gap:14px;min-height:240px;max-height:440px;margin-bottom:12px;padding:16px;display:flex;overflow-y:auto}@keyframes msgSlide{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.message{animation:msgSlide .22s var(--ease) both}.msg-label{font-family:var(--font-head);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-bottom:3px;font-size:.68rem;font-weight:700}.message.user .msg-label{color:var(--text)}.msg-content{white-space:pre-wrap;color:var(--text);font-size:14px;line-height:1.6}.message-empty{color:var(--text-faint);font-size:14px;font-style:italic}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.thinking{color:var(--text-faint);font-size:13px;font-style:italic;animation:1.4s infinite pulse}.chat-input-row{flex-direction:column;gap:10px;display:flex}.chat-input-row textarea{resize:vertical;min-height:76px}.chat-actions{align-items:center;gap:14px;display:flex}.settings-form{flex-direction:column;gap:20px;max-width:480px;margin-bottom:24px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}@keyframes badgePop{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}.saved-badge{font-family:var(--font-head);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border-soft);background:var(--surface);animation:badgePop .2s var(--ease) both;padding:6px 12px;font-size:.75rem;font-weight:600}.settings-hint{color:var(--text-faint);border-top:1px solid var(--border-soft);max-width:480px;padding-top:16px;font-size:13px}.status-text{color:var(--text-muted);animation:pageFadeUp .2s var(--ease) both;font-size:13px}.empty-state{color:var(--text-faint);text-align:center;padding:56px 0;font-style:italic}.meal-form{border:1px solid var(--border);animation:pageFadeUp .22s var(--ease) both;margin-bottom:28px;padding:20px}.meal-selected-products{background:var(--surface);border:1px solid var(--border-soft);margin:12px 0 0;padding:12px}.meal-selected-label{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.09em;color:var(--text-faint);margin-bottom:8px;font-size:.68rem;font-weight:700}.meal-selected-list{flex-wrap:wrap;gap:6px;display:flex}.meal-selected-item{border:1px solid var(--border-soft);background:var(--bg);align-items:center;gap:6px;padding:4px 6px 4px 10px;font-size:13px;display:flex}.meal-remove-btn{color:var(--text-faint);cursor:pointer;isolation:auto;background:0 0;border:none;padding:0 4px;font-size:1.1rem;line-height:1}.meal-remove-btn:before{display:none}.meal-remove-btn:hover{color:var(--text);background:0 0}.meal-product-picker{background:var(--border-soft);border:1px solid var(--border-soft);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1px;max-height:270px;margin:10px 0 16px;display:grid;overflow-y:auto}.meal-picker-item{background:var(--bg);text-align:left;cursor:pointer;transition:background var(--dur) var(--ease);text-transform:none;letter-spacing:0;border:none;flex-direction:column;gap:3px;padding:10px 12px;display:flex;position:relative}.meal-picker-item:before{display:none}.meal-picker-item:hover{background:var(--surface);color:var(--text)}.meal-picker-item.selected,.meal-picker-item.selected:hover{background:var(--text)}.meal-picker-item.selected .picker-name,.meal-picker-item.selected .picker-price{color:var(--bg)}.picker-name{font-family:var(--font-head);color:var(--text);font-size:.82rem;font-weight:600}.picker-price{color:var(--text-faint);font-size:.75rem}.picker-check{color:var(--bg);font-size:.78rem;font-weight:700;position:absolute;top:8px;right:10px}.meal-form-actions{border-top:1px solid var(--border-soft);gap:8px;padding-top:14px;display:flex}.meal-list{background:var(--border-soft);border:1px solid var(--border-soft);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1px;margin-top:8px;display:grid}.meal-card{background:var(--bg);animation:cardFadeIn .25s var(--ease) both;transition:background var(--dur) var(--ease);flex-direction:column;gap:12px;padding:18px;display:flex}.meal-card:hover{background:var(--surface)}.meal-card-header{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.meal-name{font-family:var(--font-head);letter-spacing:-.01em;font-size:1rem;font-weight:700}.meal-count{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);white-space:nowrap;font-size:.68rem;font-weight:600}.meal-ingredients{flex-wrap:wrap;gap:4px;display:flex}.meal-ingredient-tag{border:1px solid var(--border-soft);color:var(--text-muted);background:var(--surface);padding:3px 8px;font-size:12px}.meal-card-actions{gap:8px;margin-top:auto;padding-top:4px;display:flex}.meal-card-actions button{padding:7px 14px;font-size:.72rem}.nav-actions{align-items:stretch;margin-left:auto;display:flex}.theme-toggle{border:none;border-left:1px solid var(--border-soft);color:var(--text-muted);cursor:pointer;transition:color var(--dur) var(--ease), background var(--dur) var(--ease);background:0 0;justify-content:center;align-items:center;padding:0 18px;display:flex}.theme-toggle:before{display:none}.theme-toggle:hover{color:var(--text);background:var(--surface)}.hamburger{cursor:pointer;border:none;border-left:1px solid var(--border-soft);isolation:isolate;background:0 0;padding:10px 14px;display:none}.hamburger:before{display:none}.hamburger:hover{color:var(--text);background:0 0}.hamburger-icon{flex-direction:column;justify-content:center;gap:5px;width:22px;height:18px;display:flex}.hamburger-icon span{background:var(--text);height:2px;transition:transform .22s var(--ease), opacity .22s var(--ease), width .22s var(--ease);transform-origin:50%;display:block}.hamburger-icon.open span:first-child{transform:translateY(7px)rotate(45deg)}.hamburger-icon.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger-icon.open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.mobile-menu{display:none}@media (width<=640px){#root{border-inline:none}.page{padding:20px 16px}.nav-links{display:none}.hamburger{align-items:center;display:flex}.mobile-menu{background:var(--bg);border-bottom:1px solid var(--border);z-index:200;animation:pageFadeUp .2s var(--ease) both;flex-direction:column;display:flex;position:absolute;top:100%;left:0;right:0}.mobile-menu a{font-family:var(--font-head);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-soft);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);padding:16px 20px;font-size:.85rem;font-weight:600;text-decoration:none}.mobile-menu a:hover,.mobile-menu a.active{background:var(--surface);color:var(--text)}.app-nav{position:relative}h2{font-size:1.25rem}.chat-header{flex-direction:column;align-items:flex-start;gap:10px}.model-row{flex-wrap:wrap}.model-row select{width:100%;min-width:unset}.message-list{min-height:160px;max-height:300px}.search-bar{max-width:100%}.product-grid{grid-template-columns:repeat(2,1fr)}.cart-table-wrapper{-webkit-overflow-scrolling:touch;border:1px solid var(--border);overflow-x:auto}.cart-table{border:none;min-width:520px}.settings-form,.settings-hint{max-width:100%}}.nav-brand{font-family:var(--font-head);letter-spacing:.04em;text-transform:uppercase;color:var(--text);border-right:1px solid var(--border-soft);white-space:nowrap;transition:opacity var(--dur) var(--ease);align-items:center;padding:0 22px;font-size:.85rem;font-weight:700;text-decoration:none;display:flex}.nav-brand:hover{opacity:.55}.animate-in{opacity:0;transition:opacity .55s var(--ease), transform .55s var(--ease);transform:translateY(22px)}.animate-in.in-view{opacity:1;transform:translateY(0)}.home-hero{border-bottom:1px solid var(--border-soft);flex-direction:column;justify-content:center;min-height:calc(100svh - 48px);padding:64px 32px 56px;display:flex;position:relative;overflow:hidden}@keyframes heroEyebrow{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero-eyebrow{font-family:var(--font-head);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);animation:heroEyebrow .5s var(--ease) 50ms both;margin-bottom:22px;font-size:.72rem;font-weight:600}.hero-title{letter-spacing:-.045em;margin:0 0 32px;font-size:clamp(4.5rem,13vw,10.5rem);font-weight:700;line-height:.9}.hero-word-wrap{line-height:1.02;display:block;overflow:hidden}.hero-word-indent{padding-left:.12em}@keyframes slideUpMask{0%{transform:translateY(108%)}to{transform:translateY(0)}}.hero-word{animation:slideUpMask .7s var(--ease) .18s both;display:block}.hero-word-2{animation-delay:.36s}.hero-sub{color:var(--text-muted);max-width:420px;animation:heroEyebrow .5s var(--ease) .62s both;margin-bottom:40px;font-size:clamp(1rem,2.2vw,1.2rem);line-height:1.6}.hero-ctas{animation:heroEyebrow .5s var(--ease) .78s both;flex-wrap:wrap;align-items:center;gap:24px;display:flex}.hero-btn-primary{font-family:var(--font-head);letter-spacing:.07em;text-transform:uppercase;border:1px solid var(--border);background:var(--text);color:var(--bg);isolation:isolate;transition:color .22s var(--ease);align-items:center;padding:12px 28px;font-size:.78rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.hero-btn-primary:before{content:"";background:var(--bg);transition:transform .26s var(--ease);z-index:-1;position:absolute;inset:0;transform:translate(101%)}.hero-btn-primary:hover{color:var(--text);opacity:1}.hero-btn-primary:hover:before{transform:translate(0)}.hero-btn-secondary{font-family:var(--font-head);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);transition:color var(--dur) var(--ease);align-items:center;gap:6px;font-size:.78rem;font-weight:600;text-decoration:none;display:inline-flex}.hero-btn-secondary:hover{color:var(--text);opacity:1}.hero-link-arrow{transition:transform .22s var(--ease);display:inline-block}.hero-btn-secondary:hover .hero-link-arrow{transform:translate(5px)}@keyframes scrollBounce{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(8px)}}.hero-scroll-hint{animation:heroEyebrow .5s var(--ease) 1.1s both;position:absolute;bottom:24px;left:32px}.hero-scroll-line{background:var(--border-soft);width:1px;height:40px;animation:2s ease-in-out 1.5s infinite scrollBounce;display:block}.home-marquee{background:var(--surface);border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);padding:13px 0;overflow:hidden}.marquee-track{width:max-content;animation:24s linear infinite marqueeScroll;display:flex}@keyframes marqueeScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee-item{font-family:var(--font-head);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);white-space:nowrap;align-items:center;gap:20px;padding:0 20px;font-size:.7rem;font-weight:600;display:flex}.marquee-sep{opacity:.25;font-size:1.1rem}.home-features,.home-how{border-bottom:1px solid var(--border-soft);padding:88px 32px}.home-section-header{margin-bottom:48px}.home-eyebrow{font-family:var(--font-head);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:12px;font-size:.7rem;font-weight:600;display:block}.home-section-title{letter-spacing:-.03em;margin-bottom:0;font-size:clamp(1.7rem,4vw,2.6rem);font-weight:700;line-height:1.08}.home-features-grid{background:var(--border-soft);border:1px solid var(--border-soft);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.hfc{background:var(--bg);color:var(--text);transition:background var(--dur) var(--ease);flex-direction:column;gap:10px;padding:28px 26px;text-decoration:none;display:flex;position:relative;overflow:hidden}.hfc:after{content:"";background:var(--text);width:0;height:2px;transition:width .3s var(--ease);position:absolute;top:0;left:0}.hfc:hover{background:var(--surface);opacity:1}.hfc:hover:after{width:100%}.hfc-top{justify-content:space-between;align-items:center;display:flex}.hfc-num{font-family:var(--font-head);letter-spacing:.1em;color:var(--text-faint);font-size:.68rem;font-weight:700}.hfc-icon{color:var(--text-muted);transition:color var(--dur) var(--ease)}.hfc:hover .hfc-icon{color:var(--text)}.hfc-title{font-family:var(--font-head);letter-spacing:-.01em;color:var(--text);margin-top:4px;font-size:1.05rem;font-weight:700}.hfc-desc{color:var(--text-muted);flex:1;font-size:13px;line-height:1.65}.hfc-arrow{color:var(--text-faint);transition:transform .22s var(--ease), color var(--dur) var(--ease);align-self:flex-end;font-size:1.1rem;display:inline-block}.hfc:hover .hfc-arrow{color:var(--text);transform:translate(3px,-3px)}.how-grid{background:var(--border-soft);border:1px solid var(--border-soft);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.how-card{background:var(--bg);transition:background var(--dur) var(--ease);flex-direction:column;gap:10px;padding:28px 26px;display:flex}.how-card:hover{background:var(--surface)}.how-num{font-family:var(--font-head);letter-spacing:-.04em;color:var(--border-soft);transition:color var(--dur) var(--ease);font-size:clamp(2.5rem,5vw,4rem);font-weight:700;line-height:1;display:block}.how-card:hover .how-num{color:var(--border)}.how-title{font-family:var(--font-head);letter-spacing:-.01em;color:var(--text);font-size:1.05rem;font-weight:700}.how-desc{color:var(--text-muted);font-size:13px;line-height:1.65}.home-cta{text-align:center;border-bottom:1px solid var(--border-soft);flex-direction:column;align-items:center;gap:0;padding:110px 32px;display:flex}.home-cta-eyebrow{font-family:var(--font-head);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:14px;font-size:.7rem;font-weight:600}.home-cta-title{letter-spacing:-.04em;margin-bottom:40px;font-size:clamp(2rem,5.5vw,4rem);font-weight:700;line-height:1.06}@media (width<=640px){.nav-brand{padding:0 14px;font-size:.8rem}.home-hero{padding:44px 16px 48px}.home-features,.home-how{padding:56px 16px}.home-cta{padding:72px 16px}.home-features-grid,.how-grid{grid-template-columns:1fr}.hero-ctas{flex-direction:column;align-items:flex-start;gap:16px}.hero-scroll-hint{display:none}}
