:root{--bg:#edf2f9;--bg-strong:#e4ebf7;--card:rgba(255,255,255,0.9);--card-solid:#ffffff;--card-alt:rgba(248,250,255,0.86);--text:#0b1220;--text-soft:#334155;--text-muted:#64748b;--border:rgba(148,163,184,0.24);--border-strong:rgba(148,163,184,0.34);--primary:#2563eb;--primary-strong:#1d4ed8;--accent:#2563eb;--glow-border:rgba(255,255,255,0.92);--glow-soft:rgba(255,255,255,0.95)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;color:var(--text);font-family:SF Pro Display,SF Pro Text,Avenir Next,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(150% 90% at 50% -30%,#f5f8ff 0,#eaf1fc 46%,#e2eaf8 100%),linear-gradient(180deg,#eef3fc,#e5ecf8)}a{color:inherit;text-decoration:none}input,select,textarea{border:1px solid var(--glow-border);box-shadow:0 0 10px color-mix(in srgb,var(--glow-soft) 40%,transparent)}.page{min-height:100dvh}.container{width:min(100%,620px);margin:0 auto;padding:20px 14px 114px}.recipe-page{background:transparent}.recipe-shell{width:min(100%,620px);margin:0 auto;padding:0 0 112px}.hero{position:relative;width:100%;min-height:390px;background-size:cover;background-position:50%;border-bottom-left-radius:28px;border-bottom-right-radius:28px;overflow:hidden;box-shadow:0 26px 56px rgba(15,23,42,.2)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,23,42,.1),rgba(15,23,42,.56) 72%,rgba(15,23,42,.74))}.hero-sheen{position:absolute;inset:0;background:radial-gradient(140% 120% at 8% 100%,rgba(255,255,255,.24) 0,transparent 42%),radial-gradient(120% 100% at 100% 0,rgba(255,255,255,.18) 0,transparent 44%)}.hero-content{position:absolute;left:18px;right:18px;bottom:34px;z-index:2}.hero-category{display:inline-flex;align-items:center;border-radius:999px;padding:6px 12px;color:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.9px;margin-bottom:12px;border:1px solid rgba(255,255,255,.55);box-shadow:0 10px 24px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.22);text-shadow:0 1px 3px rgba(0,0,0,.55);backdrop-filter:blur(8px) saturate(1.15);-webkit-backdrop-filter:blur(8px) saturate(1.15)}.hero-title{margin:0;color:#fff;font-size:31px;line-height:1.1;letter-spacing:-.48px;text-shadow:0 4px 14px rgba(0,0,0,.36)}.hero-description{margin:10px 0 0;color:rgba(255,255,255,.9);font-size:14px;line-height:1.42;text-wrap:balance;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.stats-strip{margin:-30px 14px 0;background:color-mix(in srgb,var(--card-solid) 86%,transparent);border:1px solid var(--glow-border);border-radius:20px;padding:12px 10px;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;box-shadow:0 0 12px color-mix(in srgb,var(--glow-soft) 34%,transparent),0 16px 38px rgba(15,23,42,.12);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;z-index:3}.stat-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px}.stat-icon-wrap{width:32px;height:32px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,white 86%);border:1px solid color-mix(in srgb,var(--accent) 26%,white 74%);display:inline-flex;align-items:center;justify-content:center;margin-bottom:2px}.stat-icon{width:16px;height:16px}.stat-value{font-size:14px;color:var(--text);letter-spacing:-.1px}.stat-label,.stat-value{margin:0;font-weight:600}.stat-label{font-size:11px;color:var(--text-muted)}.content-stack{padding:22px 12px 0}.section-card{background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(250,252,255,.92));border:1px solid var(--glow-border);border-radius:18px;padding:14px 13px;margin-bottom:12px;box-shadow:0 0 10px color-mix(in srgb,var(--glow-soft) 34%,transparent),0 10px 28px rgba(15,23,42,.07)}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-head-main{gap:8px}.section-head-main,.section-icon{display:inline-flex;align-items:center}.section-icon{width:24px;height:24px;border-radius:999px;justify-content:center;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,white 88%);border:1px solid color-mix(in srgb,var(--accent) 24%,white 76%)}.line-icon{display:block}.section-glyph{width:14px;height:14px}.section-head h2{margin:0;font-size:13px;letter-spacing:.56px;text-transform:uppercase}.section-count,.section-head h2{color:var(--text-soft);font-weight:600}.section-count{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:25px;border-radius:999px;font-size:11px;border:1px solid var(--border);background:var(--card-alt);padding:0 8px}.ingredient-list{margin:0;padding:0;list-style:none;display:grid;grid-gap:13px;gap:13px}.ingredient-list li{display:flex;gap:9px;align-items:flex-start;line-height:1.56;color:var(--text-soft)}.ingredient-dot{width:8px;height:8px;border-radius:999px;background:var(--accent);margin-top:7px;flex:0 0 auto;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,white 84%)}.step-list{margin:0;padding:0;list-style:none;display:grid;grid-gap:10px;gap:10px}.step-list li{display:flex;align-items:flex-start;gap:10px}.step-index{width:25px;height:25px;border-radius:999px;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex:0 0 auto;margin-top:1px;box-shadow:0 10px 20px color-mix(in srgb,var(--accent) 36%,transparent)}.step-text{background:var(--card-alt);border:1px solid var(--border);border-radius:13px;padding:8px 10px;line-height:1.45;width:100%;color:var(--text-soft)}.top-label{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.72px;text-transform:uppercase;color:var(--text-muted);margin:2px 0 12px;font-weight:600}.recipe-card{background:var(--card-solid);border:1px solid var(--glow-border);border-radius:18px;padding:18px;box-shadow:0 0 10px color-mix(in srgb,var(--glow-soft) 32%,transparent),0 10px 26px rgba(15,23,42,.06)}.title{font-size:28px;line-height:1.15;margin:0;letter-spacing:-.4px}.meta-row{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px}.meta-pill{display:inline-flex;align-items:center;border:1px solid var(--border);background:var(--card-alt);color:var(--text-muted);border-radius:999px;font-size:12px;font-weight:600;padding:6px 10px}.section{margin-top:18px}.section h2{margin:0 0 8px;font-size:14px;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted)}.ingredients,.steps{margin:0;padding-left:20px}.ingredients li,.steps li{margin:0 0 8px;line-height:1.45}.notes{margin:0;line-height:1.5;color:var(--text-soft);white-space:pre-wrap}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{font-size:12px;font-weight:600;color:color-mix(in srgb,var(--accent) 72%,#1e3a8a 28%);background:color-mix(in srgb,var(--accent) 11%,white 89%);border:1px solid color-mix(in srgb,var(--accent) 22%,#dbeafe 78%);padding:5px 10px;border-radius:999px}.action-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.btn{justify-content:center;border-radius:13px;min-height:45px;font-size:14px;font-weight:600;padding:0 12px;border:1px solid transparent}.btn,.btn-content{display:inline-flex;align-items:center}.btn-content{gap:8px}.btn-icon{width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:inherit;background:rgba(255,255,255,.18)}.btn-glyph{width:13px;height:13px}.btn-primary{background:linear-gradient(135deg,var(--primary) 0,var(--primary-strong) 100%);color:#fff;box-shadow:0 14px 28px rgba(37,99,235,.28)}.btn-secondary{background:color-mix(in srgb,var(--card-solid) 84%,transparent);border-color:var(--glow-border);color:var(--text);box-shadow:0 0 10px color-mix(in srgb,var(--glow-soft) 30%,transparent)}.state-card{background:color-mix(in srgb,var(--card-solid) 90%,transparent);border:1px solid var(--glow-border);border-radius:18px;padding:18px;box-shadow:0 0 12px color-mix(in srgb,var(--glow-soft) 34%,transparent),0 14px 34px rgba(15,23,42,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.state-title{margin:0 0 6px;font-size:21px;letter-spacing:-.24px}.state-text{margin:0;color:var(--text-muted);line-height:1.46}.retry-btn{margin-top:14px;display:inline-flex;min-height:40px;padding:0 14px;border-radius:11px;border:1px solid var(--glow-border);background:var(--card-alt);font-weight:600;color:var(--text);box-shadow:0 0 10px color-mix(in srgb,var(--glow-soft) 30%,transparent)}.skeleton{animation:pulse 1.25s ease-in-out infinite;background:linear-gradient(90deg,rgba(148,163,184,.14),rgba(148,163,184,.24),rgba(148,163,184,.14));border-radius:10px}.s-title{height:30px;width:70%}.s-line{height:14px;width:100%;margin-top:10px}.s-short{width:65%}.home-wrap{max-width:620px;margin:40px auto;padding:0 14px}.home-card{background:color-mix(in srgb,var(--card-solid) 90%,transparent);border:1px solid var(--glow-border);border-radius:18px;padding:20px;box-shadow:0 0 12px color-mix(in srgb,var(--glow-soft) 34%,transparent),0 14px 34px rgba(15,23,42,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.landing-page{padding:28px 0 84px}.landing-hero{position:relative;overflow:hidden;padding:8px 0 12px}.landing-shell{width:min(100%,1040px);margin:0 auto;padding:0 16px}.landing-hero .landing-shell{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.85fr);grid-gap:16px;gap:16px;align-items:stretch}.landing-panel{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(248,250,255,.9));border:1px solid var(--glow-border);border-radius:28px;box-shadow:0 0 12px color-mix(in srgb,var(--glow-soft) 34%,transparent),0 24px 54px rgba(15,23,42,.11);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.landing-intro{padding:28px 26px 26px}.landing-sidecard{padding:24px 22px;display:grid;grid-gap:16px;gap:16px}.landing-intro .top-label{margin:0}.landing-pill{display:inline-flex;align-items:center;border-radius:999px;padding:7px 12px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;box-shadow:0 14px 28px rgba(37,99,235,.22);margin-left:12px}.landing-title{margin:14px 0 0;max-width:13ch;font-size:clamp(38px,7vw,64px);line-height:.98;letter-spacing:-1.4px;color:var(--text)}.landing-copy{max-width:58ch;margin:18px 0 0;color:var(--text-soft);line-height:1.62;font-size:15px}.landing-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.landing-chip{display:inline-flex;align-items:center;min-height:34px;border-radius:999px;padding:0 12px;background:linear-gradient(135deg,rgba(59,130,246,.14),rgba(96,165,250,.08));border:1px solid rgba(59,130,246,.2);color:#1d4ed8;font-size:12px;font-weight:700;box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}.store-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:20px}.store-row-side{margin-top:2px}.store-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-height:152px;border-radius:22px;padding:18px 16px 16px;border:1px solid transparent;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.store-card:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 100% at 100% 0,rgba(255,255,255,.22) 0,transparent 44%),radial-gradient(140% 110% at 0 100%,rgba(255,255,255,.18) 0,transparent 48%);pointer-events:none}.store-card-top{width:100%;display:flex;align-items:center;justify-content:flex-end;margin-bottom:6px}.store-platform{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:24px;border-radius:999px;padding:0 8px;font-size:9px;font-weight:700;letter-spacing:.32px;text-transform:uppercase;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.9);color:var(--text-soft);flex:0 0 auto}.store-platform-ios{background:color-mix(in srgb,#111827 8%,white 92%);border-color:color-mix(in srgb,#111827 12%,white 88%);color:#111827}.store-platform-android{background:color-mix(in srgb,#22c55e 10%,white 90%);border-color:color-mix(in srgb,#22c55e 16%,white 84%);color:#166534}.store-card strong{position:relative;font-size:15px;line-height:1.18;margin-top:8px;z-index:1}.store-card-ios{background:radial-gradient(circle at 100% 0,rgba(59,130,246,.22) 0,transparent 38%),linear-gradient(145deg,rgba(15,23,42,.98),rgba(30,41,59,.96));color:#f8fafc;border-color:rgba(148,163,184,.22)}.store-card-ios .store-platform{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.24);color:rgba(255,255,255,.96)}.store-card-ios strong{color:#ffffff}.store-card-ios .store-badge{background:rgba(245,158,11,.18);border-color:rgba(245,158,11,.34);color:#fcd34d}.store-card-ios .store-arrow{color:rgba(255,255,255,.92);background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.24);box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}.store-card-android{background:radial-gradient(circle at 100% 0,rgba(59,130,246,.18) 0,transparent 36%),linear-gradient(145deg,rgba(6,95,70,.98),rgba(22,101,52,.96));color:#f0fdf4;border-color:rgba(110,231,183,.2)}.store-card-android .store-platform{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18);color:#ecfdf5}.store-card-android .store-arrow{color:rgba(236,253,245,.96);background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}.store-card-android strong{color:#ffffff}.store-card-android .store-badge{background:rgba(245,158,11,.18);border-color:rgba(245,158,11,.34);color:#fde68a}.store-card-disabled{cursor:not-allowed;color:var(--text);border-color:color-mix(in srgb,#cbd5e1 72%,white 28%);box-shadow:0 0 0 1px rgba(255,255,255,.6),0 18px 34px rgba(15,23,42,.08),0 28px 48px rgba(148,163,184,.12);opacity:.98}.store-badge{display:inline-flex;align-items:center;align-self:flex-start;min-height:22px;border-radius:999px;padding:0 8px;background:color-mix(in srgb,#f59e0b 16%,white 84%);border:1px solid color-mix(in srgb,#f59e0b 30%,white 70%);color:#b45309;font-size:9px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;flex:0 0 auto}.store-card strong,.store-card-footer,.store-card-top{position:relative;z-index:1}.store-card-footer{width:100%;margin-top:auto;display:flex;align-items:center;justify-content:flex-start;gap:8px;padding-top:12px;flex-wrap:wrap}.store-arrow{width:28px;height:28px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:rgba(15,23,42,.82);background:rgba(255,255,255,.56);border:1px solid rgba(255,255,255,.78);box-shadow:inset 0 1px 0 rgba(255,255,255,.72)}.landing-sidecard-block{display:grid;grid-gap:6px;gap:6px}.landing-preview-label,.landing-side-label{margin:0;font-size:11px;font-weight:700;letter-spacing:.62px;color:var(--text-muted);text-transform:uppercase}.landing-side-title{margin:-2px 0 0;font-size:22px;line-height:1.16;letter-spacing:-.36px;color:var(--text)}.landing-preview-note,.landing-side-text{margin:0;color:var(--text-soft);line-height:1.55}.landing-preview-card{border-radius:18px;padding:16px;background:rgba(255,255,255,.72);border:1px solid var(--border);display:grid;grid-gap:8px;gap:8px}.landing-sidecard-block{padding-top:14px;border-top:1px solid color-mix(in srgb,var(--border) 72%,transparent)}.landing-hero-glow{position:absolute;width:420px;height:420px;border-radius:999px;filter:blur(42px);opacity:.44;pointer-events:none}.landing-hero-glow-left{top:-150px;left:-140px;background:radial-gradient(circle,rgba(59,130,246,.22) 0,rgba(59,130,246,0) 72%)}.landing-hero-glow-right{right:-120px;bottom:-180px;background:radial-gradient(circle,rgba(34,197,94,.18) 0,rgba(34,197,94,0) 70%)}@media (max-width:920px){.landing-hero .landing-shell{grid-template-columns:1fr}.landing-title{max-width:14ch}}@media (max-width:680px){.landing-page{padding-top:18px}.landing-shell{padding:0 14px}.landing-panel{border-radius:24px}.landing-intro{padding:24px 18px 20px}.landing-sidecard{padding:18px 16px}.landing-title{font-size:40px;letter-spacing:-1px}.landing-side-title{font-size:21px}.store-row{grid-template-columns:1fr}}@keyframes pulse{0%{opacity:.55}50%{opacity:1}to{opacity:.55}}.shopping-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:0;margin:0 0 2px;cursor:pointer;-webkit-tap-highlight-color:transparent}.shopping-toggle-right{display:flex;align-items:center;gap:6px}.shopping-chevron{width:18px;height:18px;color:var(--text-muted);transition:transform .2s ease}.shopping-icon{color:#10b981;background:color-mix(in srgb,#10b981 12%,white 88%);border-color:color-mix(in srgb,#10b981 24%,white 76%)}.shopping-preview .aisle-groups{display:grid;grid-gap:0;gap:0}.aisle-group{border-top:1px solid var(--border)}.aisle-group:first-child{border-top:none}.aisle-header{display:flex;align-items:center;gap:6px;padding:8px 4px;background:color-mix(in srgb,var(--aisle-color,#6b7280) 5%,white 95%)}.aisle-dot{width:6px;height:6px;border-radius:999px;flex:0 0 auto}.aisle-name{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--aisle-color,#6b7280)}.aisle-count{margin-left:auto;font-size:10px;font-weight:600;color:var(--text-muted)}.aisle-items{margin:0;padding:0;list-style:none}.aisle-items li{display:flex;align-items:center;gap:10px;padding:7px 6px 7px 10px;border-top:1px solid color-mix(in srgb,var(--border) 50%,transparent)}.aisle-items li:first-child{border-top:none}.shop-circle{width:18px;height:18px;border-radius:999px;border:1.5px solid;flex:0 0 auto}.shop-name{flex:1 1;font-size:13.5px;font-weight:500;color:var(--text-soft);text-transform:capitalize;line-height:1.3}.shop-qty{font-size:11px;font-weight:600;padding:2px 7px;border-radius:6px;flex:0 0 auto;white-space:nowrap}@media (max-width:420px){.container{padding:16px 12px 102px}.recipe-shell{padding-bottom:104px}.hero{min-height:350px;border-bottom-left-radius:24px;border-bottom-right-radius:24px}.hero-title{font-size:27px}.hero-content{bottom:36px}.stats-strip{margin-inline:10px;padding:10px 8px}.content-stack{padding:18px 10px 0}}