:root{--bg-primary: #0a0a0a;--bg-secondary: #121212;--bg-tertiary: #1a1a1a;--bg-card: #161616;--bg-card-hover: #1c1c1c;--bg-elevated: #222222;--text-primary: #ffffff;--text-secondary: #a8a8a8;--text-tertiary: #6b6b6b;--text-inverse: #0a0a0a;--text-muted: #505050;--accent-primary: #1db954;--accent-primary-hover: #1ed760;--accent-primary-soft: rgba(29, 185, 84, .12);--accent-secondary: #ff6b35;--accent-warning: #ffb84d;--accent-gold: #d4af37;--accent-gold-soft: rgba(212, 175, 55, .08);--border-subtle: #252525;--border-default: #303030;--border-emphasis: #404040;--border-focus: #1db954;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 8px rgba(0, 0, 0, .5), 0 2px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .6), 0 4px 32px rgba(0, 0, 0, .4);--shadow-xl: 0 16px 32px rgba(0, 0, 0, .7), 0 8px 64px rgba(0, 0, 0, .5);--shadow-glow-green: 0 0 20px rgba(29, 185, 84, .15), 0 0 40px rgba(29, 185, 84, .08);--shadow-glow-gold: 0 0 24px rgba(212, 175, 55, .2), 0 0 48px rgba(212, 175, 55, .1);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", monospace;--text-xs: .7rem;--text-sm: .8125rem;--text-base: .9375rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--text-4xl: 3rem;--font-light: 300;--font-regular: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--line-tight: 1.1;--line-snug: 1.375;--line-normal: 1.5;--line-relaxed: 1.625;--z-sticky-header-height: 64px;--header-height: 64px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .4s cubic-bezier(.34, 1.56, .64, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;overscroll-behavior-y:none}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-regular);line-height:var(--line-normal);color:var(--text-primary);background-color:var(--bg-primary);min-height:100vh;min-height:100svh;overflow-x:hidden;overscroll-behavior-y:none;-webkit-text-size-adjust:100%;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit;background:none;border:none;cursor:pointer}img{display:block;max-width:100%;height:auto}h1,h2,h3,h4,h5,h6{font-weight:var(--font-bold);line-height:1.15;color:var(--text-primary);letter-spacing:-.02em}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.container{width:100%;max-width:640px;margin:0 auto;padding:0 var(--space-md)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-slide-up{animation:slideUp var(--transition-base) ease-out}.animate-scale-in{animation:scaleIn var(--transition-fast) ease-out}.header{position:sticky;top:0;z-index:100;height:var(--header-height);box-sizing:content-box;background:#0a0a0aeb;-webkit-backdrop-filter:saturate(180%) blur(24px);backdrop-filter:saturate(180%) blur(24px);border-bottom:1px solid var(--border-subtle);box-shadow:0 1px #ffffff08;display:flex;align-items:center;justify-content:space-between;padding:env(safe-area-inset-top) var(--space-md) 0}.header__brand{display:flex;align-items:center;gap:var(--space-sm)}.header__logo{width:32px;height:32px;border-radius:var(--radius-sm);object-fit:cover}.header__title{font-size:var(--text-xl);font-weight:var(--font-extrabold);letter-spacing:-.03em;background:linear-gradient(135deg,#fff,#b8b8b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 0 20px rgba(255,255,255,.1)}.header__actions{display:flex;align-items:center;gap:var(--space-xs)}.header__icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-secondary);transition:color var(--transition-fast),background var(--transition-fast)}.header__icon-btn:hover{color:var(--text-primary);background:var(--bg-tertiary)}.header__icon-btn svg{width:22px;height:22px}.main{padding-bottom:var(--space-2xl)}.section{padding:0 var(--space-md)}.section__header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:var(--space-lg);padding-top:var(--space-lg)}.section__header:first-of-type{padding-top:var(--space-md)}.section__title{font-size:var(--text-2xl);font-weight:var(--font-extrabold);letter-spacing:-.04em;line-height:1.1}.section__subtitle{font-size:var(--text-sm);color:var(--text-tertiary);font-weight:var(--font-medium);margin-top:var(--space-xs)}.section__see-all{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-secondary);transition:color var(--transition-fast)}.section__see-all:hover{color:var(--text-primary)}.card-grid{display:flex;flex-direction:column;align-items:center;gap:var(--space-xl)}.card-grid>*{width:100%;max-width:480px}.card-grid .recipe-card__image-wrapper{aspect-ratio:4 / 5}.trend-categories{display:flex;gap:var(--space-sm);overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:var(--space-sm);margin-bottom:var(--space-lg);-webkit-overflow-scrolling:touch;scrollbar-width:none}.trend-categories::-webkit-scrollbar{display:none}.trend-chip{flex-shrink:0;padding:6px var(--space-md);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-tertiary);background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-full);white-space:nowrap;cursor:pointer;transition:all .15s ease;transition:all var(--transition-base);box-shadow:0 1px 2px #0003}.trend-chip:hover{color:var(--text-primary);border-color:var(--border-default);background:var(--bg-tertiary)}.trend-chip--active{color:var(--text-primary);background:var(--bg-elevated);border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary) inset}.trend-empty{font-size:var(--text-sm);color:var(--text-tertiary);text-align:center;padding:var(--space-2xl) 0}.store-prefs{margin-top:var(--space-md);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.store-prefs__label{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}.store-prefs__chips{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.store-prefs__chips .trend-chip{font-size:var(--text-xs)}.import{margin:0 auto var(--space-lg);max-width:480px}.import__toggle{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md);text-align:left;color:var(--text-secondary);background:linear-gradient(135deg,var(--bg-card) 0%,rgba(22,22,22,.8) 100%);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.import__toggle:hover{color:var(--text-primary);background:linear-gradient(135deg,var(--bg-card-hover) 0%,rgba(28,28,28,.9) 100%);border-color:var(--border-default);transform:translateY(-2px);box-shadow:var(--shadow-md)}.import__toggle:active{transform:translateY(-1px) scale(.99);box-shadow:var(--shadow-sm)}.import__toggle-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:linear-gradient(135deg,#1db95426,#1db95414);color:var(--accent-primary);box-shadow:0 2px 8px #1db95433}.import__toggle-icon svg{width:20px;height:20px}.import__toggle-text{display:flex;flex-direction:column;gap:2px;min-width:0}.import__toggle-title{font-size:var(--text-base);font-weight:var(--font-bold);color:var(--text-primary)}.import__toggle-sub{font-size:var(--text-xs);color:var(--text-tertiary)}.import__toggle-arrow{flex-shrink:0;margin-left:auto;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-tertiary);transition:color var(--transition-fast),background var(--transition-fast)}.import__toggle:hover .import__toggle-arrow{color:var(--accent-primary);background:#1db9541a}.import__toggle-arrow svg{width:18px;height:18px}.import__form{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-md);padding:var(--space-lg);background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.import__close{position:absolute;top:var(--space-sm);right:var(--space-sm);width:32px;height:32px;border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-base);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.import__close:hover{color:var(--text-primary);background:var(--bg-elevated)}.import__tabs{display:flex;flex-basis:100%;gap:var(--space-xs);padding:var(--space-xs);background:var(--bg-tertiary);border-radius:var(--radius-full)}.import__tab{flex:1;padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.import__tab:hover{color:var(--text-primary)}.import__tab--active{color:var(--text-inverse);background:var(--accent-primary);border-color:var(--accent-primary);box-shadow:none}.import__input{flex:1 1 200px;padding:var(--space-sm) var(--space-md);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm)}.import__input:focus{outline:none;border-color:var(--border-focus)}.import__desc{flex-basis:100%;resize:vertical;min-height:64px;line-height:1.5}.import__submit{flex:1 1 100%}.import__error{flex-basis:100%;font-size:var(--text-sm);color:var(--accent-warning)}.card-grid .recipe-card__name{font-size:var(--text-lg);-webkit-line-clamp:2}.recipe-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;transition:transform .24s cubic-bezier(.4,0,.2,1),box-shadow .24s cubic-bezier(.4,0,.2,1),border-color .24s ease;display:flex;flex-direction:column;box-shadow:0 2px 8px #0000004d,inset 0 1px #ffffff06;will-change:transform}.recipe-card:hover{transform:translateY(-4px);border-color:#ffffff14;box-shadow:0 12px 32px #00000073,inset 0 1px #ffffff0a}.recipe-card:active{transform:translateY(-2px) scale(.99);box-shadow:0 4px 12px #0000004d}.recipe-card__image-wrapper{position:relative;aspect-ratio:4 / 3;overflow:hidden;background:var(--bg-tertiary)}.recipe-card__image{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.4,0,.2,1)}.recipe-card__image--placeholder{align-items:center;justify-content:center;background:var(--bg-tertiary)}.recipe-card:hover .recipe-card__image{transform:scale(1.05)}.recipe-card__badge{position:absolute;top:var(--space-sm);left:var(--space-sm);background:#000000d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--accent-warning);font-size:var(--text-xs);font-weight:var(--font-bold);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);border:1px solid rgba(255,184,77,.2);display:flex;align-items:center;gap:var(--space-xs);z-index:10;box-shadow:0 2px 8px #0006,0 0 12px #ffb84d26}.recipe-card__badge svg{width:10px;height:10px}.recipe-card__relevance{position:absolute;top:var(--space-sm);right:var(--space-sm);display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs);z-index:10;pointer-events:none}.recipe-card__relevance span{background:#000000d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.1);box-shadow:0 2px 8px #0006}.recipe-card__video{position:absolute;bottom:var(--space-sm);left:var(--space-sm);display:inline-flex;align-items:center;gap:var(--space-xs);background:#000000d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.1);z-index:10;transition:all var(--transition-base);box-shadow:0 2px 8px #0006}.recipe-card__video:hover{background:#000000f2;border-color:#1db9544d;transform:scale(1.05);box-shadow:0 4px 12px #00000080,0 0 16px #1db95433}.recipe-card__video-play{width:10px;height:10px;color:var(--accent-primary)}.recipe-card__content{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs);flex:1;width:100%;text-align:left;cursor:pointer}.recipe-card__name{font-size:var(--text-base);font-weight:var(--font-bold);line-height:1.25;letter-spacing:-.015em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card__vibe{font-size:var(--text-sm);color:var(--text-tertiary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.recipe-card__meta{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid rgba(255,255,255,.04)}.recipe-card__score{display:flex;align-items:center;gap:3px;font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--accent-warning)}.recipe-card__score svg{width:11px;height:11px}.recipe-card__source{font-size:.68rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.07em;margin-left:auto}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton-block,.skeleton-line{background:linear-gradient(90deg,var(--bg-tertiary) 0%,rgba(40,40,40,.8) 25%,var(--bg-elevated) 50%,rgba(40,40,40,.8) 75%,var(--bg-tertiary) 100%);background-size:1000px 100%;animation:shimmer 1.8s infinite ease-in-out;border-radius:var(--radius-sm);box-shadow:inset 0 1px 2px #0003}.recipe-card--skeleton .recipe-card__image-wrapper{aspect-ratio:4 / 5}.skeleton-block{width:100%;height:100%;border-radius:0}.skeleton-line{height:14px;margin-bottom:var(--space-xs)}.skeleton-line--title{width:80%;height:16px}.skeleton-line--sub{width:55%}.recipe-card__image--placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--bg-elevated)}.recipe-detail{padding:var(--space-md)}.recipe-detail__hero{position:relative;margin:calc(-1 * var(--space-md)) calc(-1 * var(--space-md)) var(--space-lg);border-radius:var(--radius-xl);overflow:hidden;aspect-ratio:16 / 10;background:var(--bg-tertiary)}.recipe-detail__hero-image{width:100%;height:100%;object-fit:cover}.recipe-detail__hero-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 30%,rgba(29,185,84,.15),transparent 60%),var(--bg-tertiary)}.recipe-detail__hero-placeholder span{font-size:4rem}.recipe-detail__hero-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(13,13,13,0) 0%,rgba(13,13,13,.3) 50%,var(--bg-primary) 100%);pointer-events:none}.recipe-detail__header{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.recipe-detail__ai-badge{align-self:flex-start;font-size:var(--text-xs);font-weight:var(--font-semibold);color:#8a6d1f;background:#fff4d6;border:1px solid #f0d878;padding:4px 10px;border-radius:999px;letter-spacing:.02em;margin-top:-2px}.recipe-detail__video{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-subtle);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);transition:color var(--transition-fast),border-color var(--transition-fast)}.recipe-detail__video:hover{color:var(--text-primary);border-color:var(--border-default)}.recipe-detail__video svg{width:14px;height:14px;color:var(--accent-primary)}.recipe-detail__back{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-secondary);padding:var(--space-xs) 0;transition:color var(--transition-fast)}.recipe-detail__back:hover{color:var(--text-primary)}.recipe-detail__back svg{width:20px;height:20px}.recipe-detail__title-row{display:flex;align-items:center;gap:var(--space-md)}.recipe-detail__emoji{font-size:4rem;line-height:1;filter:drop-shadow(0 4px 16px rgba(0,0,0,.4))}.recipe-detail__titles{flex:1}.recipe-detail__name{font-size:var(--text-3xl);font-weight:var(--font-extrabold);letter-spacing:-.02em;line-height:var(--line-tight)}.recipe-detail__vibe{font-size:var(--text-base);color:var(--text-secondary);font-weight:var(--font-medium)}.recipe-detail__section{margin-bottom:var(--space-xl)}.recipe-detail__recipe,.recipe-detail__deals,.recipe-detail__planner{padding-top:var(--space-md);border-top:1px solid var(--border-subtle);margin-top:var(--space-lg)}.recipe-detail__recipe{border-top:none;margin-top:0;padding-top:0}.recipe-detail__recipe .recipe-detail__section:last-child{margin-bottom:0}.recipe-detail__deals .deals-section,.recipe-detail__planner .planner-section{margin-bottom:0}.recipe-detail__section-title{font-size:var(--text-lg);font-weight:var(--font-bold);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.recipe-detail__section-title svg{width:22px;height:22px;color:var(--accent-primary)}.recipe-detail__ingredients{list-style:none;display:flex;flex-direction:column;gap:var(--space-sm)}.recipe-detail__ingredient{display:flex;align-items:center;gap:var(--space-md);padding:10px var(--space-md);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);transition:background .15s ease,border-color .15s ease}.recipe-detail__ingredient:hover{background:var(--bg-card);border-color:var(--border-subtle)}.recipe-detail__ingredient-checkbox{position:relative;width:22px;height:22px;border:1.5px solid var(--border-default);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;background:transparent;cursor:pointer}.recipe-detail__ingredient-checkbox:hover{border-color:var(--accent-primary);box-shadow:0 0 0 3px #1db9541f}.recipe-detail__ingredient-checkbox:has(input:checked){background:var(--accent-primary);border-color:var(--accent-primary)}.recipe-detail__ingredient-checkbox input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.recipe-detail__ingredient-checkbox:has(input:focus-visible){outline:2px solid var(--accent-primary);outline-offset:2px}.recipe-detail__ingredient-checkbox svg{width:14px;height:14px;color:var(--text-inverse);opacity:0;transform:scale(.5);transition:all var(--transition-fast)}.recipe-detail__ingredient-checkbox:has(input:checked) svg{opacity:1;transform:scale(1)}.recipe-detail__ingredient--checked .recipe-detail__ingredient-info{opacity:.55}.recipe-detail__ingredient--checked .recipe-detail__ingredient-name{text-decoration:line-through;text-decoration-thickness:1.5px}.recipe-detail__ingredient-info{flex:1;min-width:0}.recipe-detail__ingredient-name{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);line-height:1.3}.recipe-detail__ingredient-amount{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium)}.recipe-detail__instructions{display:flex;flex-direction:column;gap:var(--space-md)}.recipe-detail__step{display:flex;gap:var(--space-md)}.recipe-detail__step-number{flex-shrink:0;width:28px;height:28px;border-radius:var(--radius-full);background:var(--bg-elevated);border:1.5px solid var(--border-default);color:var(--accent-primary);font-size:var(--text-xs);font-weight:var(--font-bold);display:flex;align-items:center;justify-content:center;margin-top:var(--space-xs)}.recipe-detail__step-content{flex:1}.recipe-detail__step-text{font-size:var(--text-base);line-height:var(--line-relaxed);color:var(--text-primary)}.recipe-detail__tip{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:#1db9540f;border-left:3px solid var(--accent-primary);border-radius:0 var(--radius-md) var(--radius-md) 0}.recipe-detail__tip-icon{flex-shrink:0;width:18px;height:18px;color:var(--accent-primary);margin-top:3px;opacity:.8}.recipe-detail__tip-text{font-size:var(--text-sm);line-height:var(--line-relaxed);color:var(--text-secondary)}.recipe-detail__tip-text strong{color:var(--text-primary);font-weight:var(--font-semibold)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl) var(--space-md);gap:var(--space-sm);color:var(--text-tertiary)}.loading-state__spinner{width:40px;height:40px;border:2px solid var(--border-subtle);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:var(--space-xs)}.loading-state__text{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--text-secondary)}.loading-state__hint{font-size:var(--text-sm);color:var(--text-tertiary)}.deals-section{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--border-subtle)}.deals-section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.deals-section__title{font-size:var(--text-xl);font-weight:var(--font-extrabold);letter-spacing:-.02em}.deals-section__subtitle{font-size:var(--text-sm);color:var(--text-tertiary)}.deals-list{display:flex;flex-direction:column;gap:var(--space-sm)}.deals-summary{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-secondary)}.deals-summary strong{color:var(--text-primary);font-weight:var(--font-bold)}.deals-summary__sep{color:var(--text-tertiary)}.postal-input{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs);font-size:var(--text-sm)}.deals-section__header .postal-input,.planner-section__header+.postal-input{margin-top:var(--space-sm)}.postal-input__label{color:var(--text-tertiary);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em}.postal-input__field{width:6.5ch;padding:var(--space-xs) var(--space-sm);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em}.postal-input__field:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px #1db95440}.postal-input__field[aria-invalid=true]{border-color:var(--accent-warning)}.postal-input__apply{padding:var(--space-xs) var(--space-sm);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--font-bold);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.postal-input__apply:hover{color:var(--text-primary);border-color:var(--text-secondary)}.postal-input__locate{padding:var(--space-xs) var(--space-sm);background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--font-semibold);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.postal-input__locate:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-secondary)}.postal-input__locate:disabled{opacity:.6;cursor:default}.postal-input__error{flex-basis:100%;color:var(--accent-warning);font-size:var(--text-xs)}.deal-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-sm);margin-top:var(--space-md)}.deals-skeleton{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm);margin-top:var(--space-md)}.deal-card--skeleton{height:120px;background:linear-gradient(90deg,var(--bg-tertiary) 0%,var(--bg-elevated) 50%,var(--bg-tertiary) 100%);background-size:600px 100%;animation:shimmer 1.6s infinite ease-in-out;border-radius:var(--radius-md)}.deal-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:0 1px 3px #00000040,inset 0 1px #ffffff06;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;cursor:default}.deal-card:hover{transform:translateY(-2px);border-color:var(--border-default);box-shadow:0 6px 20px #00000059}.deal-card__top{display:flex;align-items:center;justify-content:space-between}.deal-card__store{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);font-weight:var(--font-bold)}.deal-card__badge-pill{font-size:1rem;line-height:1}.deal-card__ingredient{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);line-height:1.25;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.deal-card__price-row{display:flex;align-items:baseline;gap:4px;margin-top:auto;padding-top:var(--space-xs)}.deal-card__price{font-size:var(--text-2xl);font-weight:var(--font-extrabold);color:var(--text-primary);letter-spacing:-.035em;line-height:1}.deal-card__unit{font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.2}.deal-card__footer{display:flex;justify-content:space-between;align-items:center;gap:var(--space-xs);margin-top:2px;padding-top:var(--space-xs);border-top:1px solid rgba(255,255,255,.04);font-size:.7rem}.deal-card__savings{color:var(--accent-primary);font-weight:var(--font-semibold);letter-spacing:.01em}.deal-card__savings--muted{color:var(--text-tertiary);font-weight:var(--font-regular)}.deal-card__expiry{color:var(--text-tertiary)}.deal-card--good{border-color:#1db95459;background:linear-gradient(160deg,rgba(29,185,84,.07) 0%,var(--bg-card) 55%);box-shadow:0 1px 3px #00000040,0 0 12px #1db95414}.deal-card--good .deal-card__price{color:var(--accent-primary)}.deal-card--gold{border:1px solid var(--accent-gold);background:linear-gradient(160deg,var(--accent-gold-soft) 0%,var(--bg-card) 50%);box-shadow:0 2px 12px #d4af3733}.deal-card--gold:hover{box-shadow:0 6px 24px #d4af3747}.deal-card--gold .deal-card__price{color:var(--accent-gold)}.deal-card--on-sale:not(.deal-card--gold):not(.deal-card--good){border-color:#ffc84c4d}.deals-coverage{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.deals-coverage__bar{flex:1;height:4px;background:var(--bg-elevated);border-radius:var(--radius-full);overflow:hidden}.deals-coverage__fill{height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-primary-hover));border-radius:var(--radius-full);transition:width .6s cubic-bezier(.4,0,.2,1)}.deals-coverage__label{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap}.deals-coverage__sale{color:var(--accent-primary)}.deals-empty{padding:var(--space-xl) 0;text-align:center}.deals-empty__icon{font-size:2rem;margin-bottom:var(--space-sm);opacity:.6}.deals-empty__title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-secondary);margin-bottom:var(--space-xs)}.deals-empty__text{font-size:var(--text-sm);color:var(--text-tertiary);line-height:var(--line-relaxed)}.empty-state{text-align:center;padding:var(--space-2xl) var(--space-md);color:var(--text-tertiary)}.empty-state__icon{font-size:4rem;margin-bottom:var(--space-md);opacity:.5}.empty-state__title{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--text-secondary);margin-bottom:var(--space-sm)}.empty-state__text{font-size:var(--text-base);max-width:300px;margin:0 auto;line-height:var(--line-relaxed)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.planner-section{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--border-subtle)}.planner-section__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-sm)}.planner-section__title{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-xl);font-weight:var(--font-extrabold);letter-spacing:-.02em}.planner-section__title svg{width:20px;height:20px;color:var(--accent-primary)}.planner-section__period{flex-shrink:0;font-size:var(--text-xs);font-weight:var(--font-bold);color:var(--text-tertiary);white-space:nowrap}.planner-section__summary{margin-bottom:var(--space-lg);font-size:var(--text-sm);line-height:1.5;color:var(--text-secondary)}.planner-verdicts{display:flex;flex-direction:column;gap:var(--space-sm)}.planner-verdict{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-left:3px solid var(--border-subtle);border-radius:var(--radius-md)}.planner-verdict--buy-now{border-left-color:var(--accent-primary)}.planner-verdict--wait{border-left-color:var(--accent-warning)}.planner-verdict__main{display:flex;flex-direction:column;gap:2px;min-width:0}.planner-verdict__ingredient{font-size:var(--text-sm);font-weight:var(--font-bold);text-transform:capitalize}.planner-verdict__reason{font-size:var(--text-xs);color:var(--text-tertiary)}.planner-verdict__history{display:block;font-size:var(--text-xs);font-weight:var(--font-semibold);margin-top:var(--space-xs)}.planner-verdict__history--good{color:var(--accent-primary)}.planner-verdict__history--average{color:var(--accent-warning)}.planner-verdict__history--wait{color:var(--accent-secondary)}.planner-summary{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-secondary)}.planner-summary strong{color:var(--text-primary);font-weight:var(--font-bold)}.planner-summary__sep{color:var(--text-tertiary)}.plan-stores{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-md)}.plan-store{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-card)}.plan-store__name{padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--accent-gold);background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle)}.plan-store .planner-verdict{border-radius:0;border-left:none;border-right:none;border-top:none}.plan-store .planner-verdict:last-child{border-bottom:none}.planner-verdict__actions{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs);flex-shrink:0}.plan-store__offer{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--accent-primary);white-space:nowrap}.plan-store__offer:hover{text-decoration:underline}.progate{display:flex;align-items:center;gap:var(--space-md);margin-top:var(--space-lg);padding:var(--space-md);background:var(--bg-tertiary);border:1px dashed var(--accent-gold);border-radius:var(--radius-md)}.progate__icon{font-size:1.5rem;flex-shrink:0}.progate__text{flex:1}.progate__title{font-weight:var(--font-bold);color:var(--text-primary)}.progate__blurb{font-size:var(--text-sm);color:var(--text-tertiary);margin-top:2px}.progate .header__pro-btn{flex-shrink:0}.basket{margin-top:var(--space-lg);padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.basket__title{font-size:var(--text-lg);font-weight:var(--font-bold);margin-bottom:var(--space-sm)}.basket__best{font-size:var(--text-base);color:var(--text-primary)}.basket__split{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-xs)}.basket__savings{color:var(--accent-primary);font-weight:var(--font-bold)}.basket__muted{font-size:var(--text-sm);color:var(--text-tertiary)}.mealplan{margin-top:var(--space-lg);padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.mealplan__title{font-size:var(--text-lg);font-weight:var(--font-bold);margin-bottom:var(--space-sm)}.mealplan__list{list-style:none;margin:0 0 var(--space-sm)}.mealplan__row{display:flex;align-items:baseline;gap:var(--space-md);padding:var(--space-xs) 0;border-bottom:1px solid var(--border-subtle)}.mealplan__row:last-child{border-bottom:none}.mealplan__day{flex-shrink:0;width:5em;font-size:var(--text-xs);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--accent-gold)}.mealplan__recipe{font-size:var(--text-base);color:var(--text-primary)}.mealplan__muted{font-size:var(--text-sm);color:var(--text-tertiary)}.recipe-ai-options{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.recipe-ai-options__row{display:flex;align-items:center;gap:var(--space-md);font-size:var(--text-sm);color:var(--text-secondary)}.recipe-ai-options__stepper{display:inline-flex;align-items:center;gap:var(--space-sm)}.recipe-ai-options__stepper button{width:30px;height:30px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-primary);font-size:var(--text-base);font-weight:var(--font-bold);cursor:pointer}.recipe-ai-options__stepper span{min-width:2ch;text-align:center;font-weight:var(--font-bold);color:var(--text-primary)}.recipe-ai-options__input{width:100%;padding:var(--space-sm);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm)}.recipe-ai-options__input:focus{outline:none;border-color:var(--border-focus)}.deals-alerts{margin-top:var(--space-lg);padding:var(--space-md);background:var(--accent-gold-soft);border:1px solid rgba(212,175,55,.35);border-radius:var(--radius-md)}.deals-alerts__title{font-weight:var(--font-bold);color:var(--accent-gold);margin-bottom:var(--space-xs)}.deals-alerts__item{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--line-normal)}.deals-alerts__item+.deals-alerts__item{margin-top:var(--space-xs)}.planner-verdict__label{flex-shrink:0;padding:4px 10px;font-size:var(--text-xs);font-weight:var(--font-bold);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);white-space:nowrap}.planner-verdict--buy-now .planner-verdict__label{background:var(--accent-primary);color:#0a0a0a}.planner-verdict--wait .planner-verdict__label{background:var(--accent-warning);color:#0a0a0a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:14px var(--space-lg);font-size:var(--text-base);font-weight:var(--font-bold);border-radius:var(--radius-full);border:1px solid transparent;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.btn:active{transform:scale(.98)}.trend-chip:active,.header__week-btn:active,.header__pro-btn:active,.postal-input__apply:active,.postal-input__locate:active,.recipe-ai-options__stepper button:active,.recipe-card__video:active{transform:scale(.97)}@media(max-width:420px){.header{padding-left:var(--space-sm);padding-right:var(--space-sm)}.header__title{font-size:var(--text-lg)}.header__logo{width:28px;height:28px}.header__week-btn,.header__pro-btn{padding:6px 10px;font-size:var(--text-xs)}.header__actions{gap:var(--space-xs)}}.btn--block{display:flex;width:100%;margin-top:var(--space-lg)}.btn--inline{margin-top:var(--space-lg)}.btn--primary{background:var(--accent-primary);color:var(--text-inverse)}.btn--primary:hover{background:var(--accent-primary-hover)}.btn--ghost{background:var(--bg-card);border-color:var(--border-default);color:var(--text-secondary)}.btn--ghost:hover{color:var(--text-primary);border-color:var(--accent-primary)}.btn:disabled{cursor:default;opacity:.9;transform:none}.header__week-btn{padding:8px var(--space-md);font-size:var(--text-sm);font-weight:var(--font-bold);border-radius:var(--radius-full);color:var(--text-secondary);border:1px solid var(--border-default);transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast);white-space:nowrap}.header__week-btn:hover{color:var(--text-primary);border-color:var(--accent-primary)}.header__week-btn--active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.header__pro-btn{padding:8px var(--space-md);font-size:var(--text-xs);font-weight:var(--font-bold);border-radius:var(--radius-full);color:var(--accent-gold);border:1px solid var(--border-default);background:var(--bg-elevated);white-space:nowrap;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.header__pro-btn:hover:not(:disabled){color:var(--accent-gold);border-color:var(--accent-gold);background:var(--bg-tertiary)}.header__pro-btn:disabled{opacity:.6;cursor:default}.pro-badge{font-size:var(--text-xs);font-weight:var(--font-bold);color:var(--accent-gold);background:var(--accent-gold-soft);border:1px solid rgba(212,175,55,.35);border-radius:var(--radius-full);padding:var(--space-xs) var(--space-sm);white-space:nowrap}.week-recipes{display:flex;flex-direction:column;gap:var(--space-sm)}.week-chip{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.week-chip__emoji{font-size:1.75rem;line-height:1;flex-shrink:0}.week-chip__info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.week-chip__name{font-size:var(--text-base);font-weight:var(--font-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-chip__count{font-size:var(--text-xs);color:var(--text-tertiary)}.week-chip__remove{flex-shrink:0;width:32px;height:32px;border-radius:var(--radius-full);color:var(--text-tertiary);font-size:var(--text-base);transition:color var(--transition-fast),background var(--transition-fast)}.week-chip__remove:hover{color:var(--text-primary);background:var(--bg-tertiary)}.week-price{font-weight:var(--font-regular);color:var(--text-tertiary);text-transform:none}@media(hover:none){.recipe-card:hover{transform:none;border-color:var(--border-subtle);box-shadow:none}.recipe-card:hover .recipe-card__image{transform:none}.recipe-card:active{transform:scale(.98);border-color:var(--border-default)}.header__icon-btn:hover,.week-chip__remove:hover,.header__week-btn:hover,.section__see-all:hover{color:inherit;background:none}}@media(pointer:coarse){.header__icon-btn,.week-chip__remove{position:relative}.header__icon-btn:after,.week-chip__remove:after,.section__see-all:after{content:"";position:absolute;inset:50% auto auto 50%;width:44px;height:44px;transform:translate(-50%,-50%)}.section__see-all{position:relative;display:inline-flex;align-items:center;min-height:44px}.header__week-btn{min-height:44px}.btn{min-height:48px}.recipe-detail__ingredient-checkbox input{min-width:24px;min-height:24px}}@media(max-width:480px){.section,.header{padding-left:max(var(--space-md),env(safe-area-inset-left));padding-right:max(var(--space-md),env(safe-area-inset-right))}.section__header{align-items:flex-start;flex-wrap:wrap;gap:var(--space-sm)}.section__title{font-size:var(--text-xl)}.header__title{font-size:var(--text-lg)}.main{padding-bottom:calc(var(--space-2xl) + env(safe-area-inset-bottom))}}.feedback-btn{position:fixed;bottom:var(--space-lg);right:var(--space-lg);width:56px;height:56px;border-radius:var(--radius-full);background:var(--accent-primary);color:var(--text-inverse);font-size:1.5rem;box-shadow:var(--shadow-lg);z-index:1000;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.feedback-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-xl)}.feedback-btn:active{transform:scale(.95)}.feedback-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);animation:fadeIn var(--transition-base) ease-out}.feedback-modal__content{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:100%;max-width:480px;padding:var(--space-xl);animation:scaleIn var(--transition-base) ease-out}.feedback-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.feedback-modal__header h3{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--text-primary)}.feedback-modal__close{width:32px;height:32px;border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-lg);transition:color var(--transition-fast),background var(--transition-fast)}.feedback-modal__close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.feedback-modal__textarea{width:100%;padding:var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--line-normal);resize:vertical;margin-bottom:var(--space-lg);transition:border-color var(--transition-fast)}.feedback-modal__textarea:focus{outline:none;border-color:var(--border-focus)}.feedback-modal__textarea::placeholder{color:var(--text-tertiary)}.feedback-modal__actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.feedback-modal__sent p{color:var(--text-secondary);line-height:var(--line-relaxed);margin-bottom:var(--space-lg)}.feedback-modal__sent strong{color:var(--text-primary);word-break:break-all}@media(max-width:480px){.feedback-btn{bottom:calc(var(--space-lg) + env(safe-area-inset-bottom));right:var(--space-md)}.feedback-modal__content{padding:var(--space-lg)}.feedback-modal__actions{flex-direction:column-reverse}.feedback-modal__actions .btn{width:100%}}.landing{min-height:100vh;min-height:100svh;padding-bottom:var(--space-2xl)}.landing-hero{display:grid;grid-template-columns:1fr;gap:var(--space-2xl);padding:var(--space-2xl) var(--space-lg);max-width:1200px;margin:0 auto;min-height:calc(100vh - var(--header-height));min-height:calc(100svh - var(--header-height));align-items:center}.landing-hero__content{text-align:center}.landing-hero__badge{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.15em;color:var(--accent-gold);background:var(--accent-gold-soft);border:1px solid rgba(212,175,55,.35);border-radius:var(--radius-full);padding:var(--space-xs) var(--space-sm);margin-bottom:var(--space-md)}.quebec-flag{width:1.5em;height:1em;border-radius:2px;display:inline-block}.landing-feature__icon .quebec-flag{width:3.75rem;height:2.5rem}.landing-hero__title{font-size:var(--text-4xl);font-weight:var(--font-extrabold);line-height:var(--line-tight);margin-bottom:var(--space-lg);background:linear-gradient(135deg,var(--text-primary) 0%,var(--accent-primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-hero__subtitle{font-size:var(--text-xl);color:var(--text-secondary);line-height:var(--line-relaxed);margin-bottom:var(--space-xl);max-width:600px;margin-left:auto;margin-right:auto}.btn--large{font-size:var(--text-lg);padding:18px var(--space-xl);min-height:56px}.landing-hero__note{margin-top:var(--space-md);font-size:var(--text-sm);color:var(--text-tertiary)}.landing-hero__visual{display:flex;align-items:center;justify-content:center}.phone-frame,.phone-bare{margin:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.phone-frame__body{position:relative;width:260px;padding:10px;border-radius:44px;background:linear-gradient(160deg,#3a3a3c,#1c1c1e 45%,#2c2c2e);box-shadow:var(--shadow-xl),0 0 0 1px #ffffff14 inset,0 40px 80px -20px #000000e6;transform:perspective(1400px) rotateY(-6deg) rotateX(2deg);transition:transform .4s cubic-bezier(.22,1,.36,1)}.phone-frame:hover .phone-frame__body{transform:perspective(1400px) rotateY(0) rotateX(0) translateY(-6px)}.phone-frame__notch{position:absolute;top:18px;left:50%;transform:translate(-50%);width:84px;height:22px;border-radius:var(--radius-full);background:#0a0a0a;z-index:2}.phone-frame__screen{position:relative;border-radius:34px;overflow:hidden;background:var(--bg-primary);aspect-ratio:9 / 16}.phone-frame__img,.phone-bare__img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}.phone-bare__img{max-width:320px;height:auto;object-fit:contain;filter:drop-shadow(0 30px 60px rgba(0,0,0,.7))}.phone-frame__caption{font-size:var(--text-sm);color:var(--text-tertiary);text-align:center;max-width:260px}.landing-showcase{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2xl)}.landing-demo{max-width:640px;margin:0 auto}.landing-demo__caption{font-size:var(--text-sm);color:var(--text-tertiary);text-align:center;padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.phone-showcase{position:relative;margin:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.phone-showcase__glow{position:absolute;top:50%;left:50%;width:480px;height:480px;transform:translate(-50%,-50%);background:radial-gradient(circle at 30% 30%,rgba(29,185,84,.35),transparent 60%),radial-gradient(circle at 70% 70%,rgba(255,107,53,.18),transparent 55%);filter:blur(60px);z-index:0;pointer-events:none;animation:phone-showcase__glow 7s ease-in-out infinite alternate}.phone-showcase__body{position:relative;width:min(300px,74vw);padding:12px;border-radius:52px;background:linear-gradient(160deg,#3a3a3c,#1c1c1e 45%,#2c2c2e);box-shadow:var(--shadow-xl),0 0 0 1px #ffffff14 inset,0 40px 80px -20px #000000e6;transform:perspective(1400px) rotateY(-4deg) rotateX(2deg);transition:transform .4s cubic-bezier(.22,1,.36,1);animation:phone-showcase__float 6s ease-in-out infinite;z-index:1}.phone-showcase:hover .phone-showcase__body{transform:perspective(1400px) rotateY(0) rotateX(0) translateY(-6px);animation-play-state:paused}.phone-showcase__notch{position:absolute;top:20px;left:50%;transform:translate(-50%);width:96px;height:24px;border-radius:var(--radius-full);background:#0a0a0a;z-index:2}.phone-showcase__screen{position:relative;border-radius:40px;overflow:hidden;background:var(--bg-primary);aspect-ratio:9 / 16}.phone-showcase__video{display:block;width:100%;height:100%;object-fit:cover;background:#000}.phone-showcase__reflection{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,rgba(255,255,255,.09) 0%,transparent 30%,transparent 70%,rgba(255,255,255,.04) 100%);pointer-events:none;border-radius:inherit}.phone-showcase__caption{font-size:var(--text-sm);color:var(--text-tertiary);text-align:center;max-width:300px}@keyframes phone-showcase__float{0%,to{transform:perspective(1400px) rotateY(-4deg) rotateX(2deg) translateY(0)}50%{transform:perspective(1400px) rotateY(-4deg) rotateX(2deg) translateY(-10px)}}@keyframes phone-showcase__glow{0%{opacity:.7}to{opacity:1}}@media(prefers-reduced-motion:reduce){.phone-showcase__body,.phone-showcase:hover .phone-showcase__body{animation:none;transition:none;transform:none}.phone-showcase__glow{animation:none}.phone-frame__body,.phone-frame:hover .phone-frame__body{transform:none;transition:none}}.landing-section{padding:var(--space-2xl) var(--space-lg);max-width:1200px;margin:0 auto}.landing-section--dark{background:var(--bg-secondary);border-radius:var(--radius-xl);margin:var(--space-2xl) var(--space-lg)}.landing-section__title{font-size:var(--text-3xl);font-weight:var(--font-extrabold);text-align:center;margin-bottom:var(--space-2xl)}.landing-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-xl)}.landing-step{text-align:center}.landing-step__number{width:56px;height:56px;border-radius:var(--radius-full);background:var(--accent-primary);color:var(--text-inverse);font-size:var(--text-2xl);font-weight:var(--font-bold);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-lg)}.landing-step__title{font-size:var(--text-xl);font-weight:var(--font-bold);margin-bottom:var(--space-sm)}.landing-step__text{color:var(--text-secondary);line-height:var(--line-relaxed)}.landing-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-xl)}.landing-feature{text-align:center}.landing-feature__icon{font-size:3rem;margin-bottom:var(--space-md)}.landing-feature__title{font-size:var(--text-lg);font-weight:var(--font-bold);margin-bottom:var(--space-sm)}.landing-feature__text{color:var(--text-secondary);line-height:var(--line-relaxed);font-size:var(--text-sm)}.landing-pro{max-width:900px;margin:var(--space-2xl) auto;padding:var(--space-2xl) var(--space-lg);text-align:center}.landing-pro__badge{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-lg)}.landing-pro__overline{font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary)}.pro-badge--lg{font-size:var(--text-sm);padding:var(--space-sm) var(--space-lg)}.landing-pro__title{font-size:var(--text-3xl);font-weight:var(--font-extrabold);letter-spacing:-.02em;margin-bottom:var(--space-md)}.landing-pro__text{font-size:var(--text-lg);color:var(--text-secondary);line-height:var(--line-relaxed);max-width:60ch;margin:0 auto var(--space-2xl)}.landing-pro__compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-lg);text-align:left}.pro-compare{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-lg) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md)}.pro-compare--pro{background:#1db9540f;border-color:var(--accent-primary);box-shadow:0 0 0 1px #1db95440 inset}.pro-compare__name{font-size:var(--text-2xl);font-weight:var(--font-extrabold)}.pro-compare--pro .pro-compare__name{color:var(--accent-primary-hover)}.pro-compare__tag{font-size:var(--text-sm);color:var(--text-tertiary);margin-bottom:var(--space-sm)}.pro-compare__list{list-style:none;display:flex;flex-direction:column;gap:var(--space-sm)}.pro-compare__item{display:flex;align-items:flex-start;gap:var(--space-sm);font-size:var(--text-base);color:var(--text-secondary);line-height:var(--line-snug)}.pro-compare__item svg{flex-shrink:0;width:18px;height:18px;margin-top:2px;color:var(--text-tertiary)}.pro-compare__item--on svg{color:var(--accent-primary)}.landing-cta{text-align:center;padding:var(--space-2xl) var(--space-lg);max-width:800px;margin:var(--space-2xl) auto}.landing-cta__title{font-size:var(--text-3xl);font-weight:var(--font-extrabold);margin-bottom:var(--space-md)}.landing-cta__text{font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:var(--space-xl)}@media(min-width:768px){.landing-hero{grid-template-columns:1fr 1fr;text-align:left}.landing-hero__content{text-align:left}.landing-hero__subtitle{margin-left:0}.landing-hero__title{font-size:clamp(var(--text-3xl),5vw,4.5rem)}}@media(max-width:480px){.landing-hero__title{font-size:var(--text-2xl)}.landing-hero__subtitle{font-size:var(--text-base)}.phone-frame__body{width:210px;padding:8px;border-radius:36px;transform:none}.phone-frame__screen{border-radius:28px}.phone-showcase__body{padding:8px;border-radius:40px}.phone-showcase__screen{border-radius:32px}.phone-showcase__glow{width:320px;height:320px}.landing-showcase{gap:var(--space-xl)}.landing-section__title,.landing-pro__title{font-size:var(--text-2xl)}.landing-pro__compare{grid-template-columns:1fr}}
