@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/b886574ba42c3409-s.1f4af8e6.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/c41ca59f1c34ba31-s.p.e20f337c.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora Fallback;src:local(Arial);ascent-override:85.29%;descent-override:25.5%;line-gap-override:0.0%;size-adjust:113.73%}.sora_7cb1d726-module__R77x-a__className{font-family:Sora,Sora Fallback;font-style:normal}.sora_7cb1d726-module__R77x-a__variable{--font-sans:"Sora","Sora Fallback"}
@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1e219c03c996efbd-s.ba7d7329.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0c27b1b4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/03bda585a99c6450-s.p.ad37b9d9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_7531671f-module__TMP4yG__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_7531671f-module__TMP4yG__variable{--font-display:"Fraunces","Fraunces Fallback"}
:root{--bg:#f5f7fb;--bg-2:#eef1f7;--panel:#ffffffdb;--panel-strong:#fff;--ink:#0b0f1a;--muted:#56606e;--accent:#00c48c;--accent-2:#ff6b4a;--accent-3:#2f6bff;--accent-soft:#00c48c24;--stroke:#0a101c1f;--shadow:0 24px 60px #0c121c1f;--shadow-soft:0 14px 40px #0c121c14;--radius:20px;--radius-lg:28px}*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{font-family:var(--font-sans),"Segoe UI",sans-serif;color:var(--ink);background:radial-gradient(1200px 500px at 10% -10%,#00c48c2e,transparent 60%),radial-gradient(1000px 500px at 90% 0%,#2f6bff29,transparent 60%),radial-gradient(800px 600px at 50% 100%,#ff6b4a29,transparent 70%),var(--bg)}.app-shell{min-height:100vh}a{color:inherit;text-decoration:none}main{max-width:1200px;margin:0 auto;padding:48px 24px 120px}.nav{z-index:50;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--stroke);background:#f5f7fbbf;position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1200px;margin:0 auto;padding:16px 24px;display:flex}.nav-left{align-items:center;gap:14px;display:flex}.brand{letter-spacing:.02em;align-items:center;gap:10px;font-weight:700;display:inline-flex}.brand-mark{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-3));border-radius:12px;justify-content:center;align-items:center;width:34px;height:34px;font-size:12px;font-weight:700;display:inline-flex;box-shadow:0 10px 24px #00c48c59}.nav-pill{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--stroke);background:#ffffffb3;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;display:inline-flex}.nav-links{flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;display:flex}.menu-toggle{border:1px solid var(--stroke);font:inherit;cursor:pointer;background:#ffffffdb;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;display:none}.nav-links a,.nav-links .link-button{border-radius:999px;padding:6px 12px;transition:background .2s,color .2s}.nav-links a:hover,.nav-links .link-button:hover{background:#0a101c14}.link-button{font:inherit;cursor:pointer;color:var(--accent-3);background:0 0;border:none;font-weight:600}.hero{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:stretch;gap:24px;display:grid}.home{flex-direction:column;gap:40px;display:flex}.section{margin-top:40px}.page{flex-direction:column;gap:24px;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px;display:flex}.eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--muted);font-size:12px}.hero-title{font-family:var(--font-display),"Times New Roman",serif;margin:12px 0;font-size:44px;line-height:1.05}.hero-subtitle{color:var(--muted);margin:0;font-size:16px;line-height:1.6}.page-title{font-family:var(--font-display),"Times New Roman",serif;margin:0;font-size:32px}.page-subtitle{color:var(--muted);max-width:560px;margin:6px 0 0}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.hero-metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:22px;display:grid}.badge{background:var(--accent-soft);letter-spacing:.04em;text-transform:uppercase;border:1px solid #00c48c66;border-radius:999px;align-items:center;padding:4px 12px;font-size:12px;font-weight:600;display:inline-flex}.hero-card,.card,.panel{background:var(--panel);border:1px solid var(--stroke);border-radius:var(--radius-lg);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:24px;position:relative;overflow:hidden}.hero-main:after{inset:-60% 60% auto auto}.hero-side{gap:14px;display:grid}.metric-card{box-shadow:var(--shadow-soft);padding:14px 16px}.metric-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px}.metric-value{margin-top:6px;font-size:14px;font-weight:600}.pill{letter-spacing:.12em;text-transform:uppercase;color:#1b3f8f;background:#2f6bff1f;border:1px solid #2f6bff4d;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.preview-card{border:1px solid var(--stroke);box-shadow:var(--shadow-soft);background:#ffffffe6;border-radius:20px;padding:16px}.preview-card h3{font-size:18px;font-family:var(--font-display),"Times New Roman",serif;margin:10px 0 6px}.preview-header{flex-wrap:wrap;gap:8px;display:flex}.preview-macros{color:var(--muted);gap:6px;margin-top:10px;font-size:12px;display:grid}.bento-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.feature-card{min-height:160px}.feature-card h3{margin:0 0 8px;font-size:18px}.hero-card:after,.card:after,.panel:after{content:"";opacity:.6;pointer-events:none;z-index:0;background:radial-gradient(circle,#00c48c40,#0000 70%);width:220px;height:220px;position:absolute;inset:-40% 40% auto auto}.hero-card>*,.card>*,.panel>*{z-index:1;position:relative}.grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.stack{flex-direction:column;gap:12px;display:flex}.cluster{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.section-title{font-size:20px;font-family:var(--font-display),"Times New Roman",serif;margin:0 0 10px}.notice{color:var(--muted);font-size:13px;line-height:1.6}code{background:#0a101c14;border-radius:6px;padding:2px 6px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.divider{background:var(--stroke);height:1px;margin:16px 0}.form{gap:12px;display:grid}.input,.select{border:1px solid var(--stroke);width:100%;color:var(--ink);background:#ffffffeb;border-radius:14px;padding:11px 14px;font-size:14px;transition:border .2s,box-shadow .2s}.input:focus,.select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #00c48c33}.label{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.button{background:linear-gradient(135deg,var(--accent),var(--accent-3));color:#fff;letter-spacing:.02em;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;padding:12px 18px;font-weight:600;transition:transform .2s,box-shadow .2s,filter .2s;display:inline-flex;box-shadow:0 12px 28px #00c48c47}.button:hover{filter:brightness(1.02);transform:translateY(-1px)}.button.secondary{color:var(--ink);border:1px solid var(--stroke);box-shadow:none;background:0 0}.button.secondary:hover{color:var(--accent);border-color:#00c48c99}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}.layout-two{grid-template-columns:minmax(0,360px) minmax(0,1fr);align-items:start;gap:24px;display:grid}.filters-panel{align-self:start;position:sticky;top:96px}.results-panel{padding:24px}.results-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.foods-list{gap:16px;margin-top:12px;display:grid}.food-card{background:var(--panel-strong);box-shadow:var(--shadow-soft);cursor:pointer;border:1px solid #00c48c2e;border-radius:22px;grid-template-columns:1fr;gap:16px;padding:18px 20px;transition:transform .2s,box-shadow .2s,border .2s;display:grid}.food-card:hover{border-color:#00c48c59;transform:translateY(-2px);box-shadow:0 20px 40px #0c121c29}.food-main{flex-direction:column;gap:8px;display:flex}.food-heading{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.food-name{font-size:18px;font-family:var(--font-display),"Times New Roman",serif;margin:0}.food-meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.food-brand{color:var(--ink);font-size:15px;font-weight:700}.food-source{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:11px}.food-tags{flex-wrap:wrap;gap:6px;display:flex}.tag{color:#0b5a43;text-transform:uppercase;letter-spacing:.04em;background:#00c48c1f;border:1px solid #00c48c40;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;display:inline-flex}.tag-warning{color:#7a3b10;background:#bf5c1a1f;border-color:#bf5c1a59}.tag-fodmap-low{color:#0b5a3f;background:#1a8c581f;border-color:#1a8c5859}.tag-fodmap-high{color:#7a1f1f;background:#b028281f;border-color:#b0282859}.allergen-warning{margin-top:6px}.source-pill{text-transform:uppercase;letter-spacing:.08em;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.source-openfoodfacts{color:#0b5a43;background:#00c48c2e;border:1px solid #00c48c4d}.source-ciqual{color:#1b3f8f;background:#2f6bff29;border:1px solid #2f6bff4d}.source-manual{color:#8c3b24;background:#ff6b4a29;border:1px solid #ff6b4a4d}.macro-stack{flex-wrap:wrap;justify-content:flex-start;gap:8px;display:flex}.macro-stack.compact{gap:6px}.macro-chip{color:#fff;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-items:center;padding:4px 10px;font-size:10px;font-weight:600;display:inline-flex;box-shadow:0 6px 16px #1414141f}.macro-kcal{background:linear-gradient(135deg,#00c48c,#0c8f6b)}.macro-protein{background:linear-gradient(135deg,#2f6bff,#2247ad)}.macro-carbs{background:linear-gradient(135deg,#ff8a3d,#c75d1b)}.macro-fat{background:linear-gradient(135deg,#ff4f81,#b63259)}.modal-overlay{z-index:100;background:#0b101899;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:#fff;border:1px solid #00c48c40;border-radius:26px;flex-direction:column;width:min(960px,100%);max-height:min(90vh,900px);display:flex;overflow:hidden;box-shadow:0 40px 90px #0b101873}.modal-header{border-bottom:1px solid var(--stroke);justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.modal-title{font-family:var(--font-display),"Times New Roman",serif;margin:0;font-size:22px}.modal-subtitle{color:var(--muted);font-size:14px;font-weight:600}.modal-close{border:1px solid var(--stroke);cursor:pointer;background:#fff;border-radius:999px;padding:8px 14px;font-weight:600}.modal-body{padding:20px 24px 28px;overflow:auto}.modal-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;display:grid}.modal-section{background:#f5f7fbcc;border:1px solid #00c48c1f;border-radius:16px;padding:14px 16px}.modal-section.full-width{grid-column:1/-1}.detail{justify-content:space-between;gap:12px;padding:4px 0;font-size:13px;display:flex}.detail-column{gap:6px;padding-top:6px;font-size:13px;display:grid}.detail-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.detail-value{color:var(--ink);word-break:break-word;font-weight:600}.raw-json{color:#d7e6f2;background:#0f1722;border-radius:14px;max-height:240px;padding:16px;font-size:12px;overflow:auto}.scan-layout{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:20px;margin-top:20px;display:grid}.scan-video-wrap{background:#0f1722;border:1px solid #00c48c40;border-radius:20px;min-height:260px;position:relative;overflow:hidden}.scan-video{object-fit:cover;width:100%;height:100%;display:block}.scan-overlay{pointer-events:none;border:2px dashed #fff9;border-radius:16px;position:absolute;inset:12%;box-shadow:inset 0 0 0 9999px #0003}.scan-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.scan-status{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.scan-pill{text-transform:uppercase;letter-spacing:.08em;background:#00c48c24;border:1px solid #00c48c40;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.scan-pill.scan-idle{color:#1b3f8f;background:#2f6bff1f;border-color:#2f6bff59}.scan-pill.scan-scanning{color:#a95620;background:#ff8a3d1f;border-color:#ff8a3d66}.scan-pill.scan-loading{color:#3b2f8f;background:#6356ff1f;border-color:#6356ff59}.scan-pill.scan-found{color:#0b5a43;background:#00c48c2e;border-color:#00c48c59}.scan-pill.scan-not-found{color:#8c3b24;background:#ff6b4a29;border-color:#ff6b4a59}.scan-pill.scan-error{color:#7a1f1f;background:#b0282824;border-color:#b028284d}.scan-error{color:#8c2a2a;margin-top:10px;font-size:13px}.scan-empty{color:var(--muted);font-size:13px}.card.clickable{cursor:pointer}.footer{border-top:1px solid var(--stroke);background:#f5f7fb99;padding:24px 0 40px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:1200px;margin:0 auto;padding:0 24px;display:flex}.footer-brand{align-items:center;gap:10px;font-weight:600;display:inline-flex}.auth-layout{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;display:grid}.stagger>*{animation:.5s both fadeUp}.stagger>:nth-child(2){animation-delay:50ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.15s}.stagger>:nth-child(5){animation-delay:.2s}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:960px){.hero,.layout-two{grid-template-columns:1fr}.filters-panel{position:static}}@media (max-width:900px){.nav-inner{flex-wrap:wrap;row-gap:10px;padding:12px 16px}.nav-left{width:calc(100% - 90px)}.menu-toggle{justify-content:center;align-items:center;margin-left:auto;display:inline-flex}.nav-links{gap:8px;width:100%;padding-top:8px;display:none}.nav-links.open{display:flex}.nav-links a,.nav-links .link-button{text-align:center;border:1px solid var(--stroke);background:#fffc;justify-content:center;width:100%;padding:10px 12px}}@media (max-width:640px){main{padding:24px 14px 78px}.brand{font-size:15px}.hero,.scan-layout,.auth-layout,.layout-two,.modal-grid,.grid{gap:12px}.hero-card,.card,.panel{border-radius:18px;padding:16px}.hero-title{font-size:30px}.page-title{font-size:27px}.section-title{font-size:18px}.cluster,.cluster .button,.cluster .button.secondary{width:100%}.button,.button.secondary{min-height:44px}.scan-video-wrap{min-height:220px}.results-panel{padding:16px}.modal-overlay{align-items:flex-end;padding:0}.modal{border-bottom:none;border-left:none;border-right:none;border-radius:20px 20px 0 0;width:100%;max-height:92vh}.modal-header{padding:14px 16px}.modal-body{padding:14px 16px 22px}.modal-title{font-size:20px}.food-card{border-radius:16px;grid-template-columns:1fr;padding:14px}.macro-stack{justify-content:flex-start}}
