:root{--color-bg-primary: #FFFBF5;--color-bg-secondary: #FFF5EB;--color-bg-card: #FFFFFF;--color-bg-card-hover: #FFFAF5;--color-bg-elevated: #FFFFFF;--color-bg-code: #FDF5ED;--color-text-primary: #1A1410;--color-text-secondary: #6B5E52;--color-text-tertiary: #9B8E82;--color-text-inverse: #FFFFFF;--color-text-link: #D14528;--color-accent: #E8573A;--color-accent-hover: #D14528;--color-accent-light: #FFF0EB;--color-accent-glow: rgba(232, 87, 58, .2);--color-secondary: #F5A623;--color-secondary-light: #FFF8E8;--color-success: #27AE60;--color-success-light: #EAFAF1;--color-warning: #F39C12;--color-warning-light: #FEF9E7;--color-info: #3498DB;--color-info-light: #EBF5FB;--color-danger: #E74C3C;--color-danger-light: #FDEDEC;--color-buy: #3498DB;--color-buy-light: #EBF5FB;--color-buy-bg: linear-gradient(135deg, #3498DB 0%, #2980B9 100%);--color-diy: #27AE60;--color-diy-light: #EAFAF1;--color-diy-bg: linear-gradient(135deg, #27AE60 0%, #229954 100%);--color-border: #F0E6D8;--color-border-light: #F8F2EA;--color-divider: #F5EDE3;--shadow-color: 26, 20, 16;--gradient-body: linear-gradient(180deg, #FFFBF5 0%, #FFF8F0 40%, #FFF5EB 100%);--gradient-section-line: linear-gradient(90deg, transparent, var(--color-border), transparent);--gradient-card-shine: linear-gradient(135deg, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, 0) 60%);--glass-bg: rgba(255, 251, 245, .6);--glass-border: rgba(240, 230, 216, .5);--glow-accent: 0 0 20px rgba(232, 87, 58, .12);--glow-card: 0 2px 16px rgba(26, 20, 16, .06);--glow-card-hover: 0 8px 32px rgba(232, 87, 58, .1), 0 4px 12px rgba(26, 20, 16, .08);--font-family: "Noto Sans TC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-md: 1.125rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-3xl: 2.5rem;--font-size-4xl: 3.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 700;--font-weight-black: 900;--line-height-tight: 1.25;--line-height-normal: 1.6;--line-height-relaxed: 1.8;--space-2xs: .125rem;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--radius-sm: .375rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 50%;--radius-pill: 9999px;--shadow-xs: 0 1px 2px rgba(var(--shadow-color), .05);--shadow-sm: 0 1px 3px rgba(var(--shadow-color), .08), 0 1px 2px rgba(var(--shadow-color), .04);--shadow-md: 0 4px 12px rgba(var(--shadow-color), .08), 0 2px 4px rgba(var(--shadow-color), .04);--shadow-lg: 0 8px 24px rgba(var(--shadow-color), .1), 0 4px 8px rgba(var(--shadow-color), .05);--shadow-xl: 0 16px 48px rgba(var(--shadow-color), .12), 0 8px 16px rgba(var(--shadow-color), .06);--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--transition-theme: .4s ease;--transition-bounce: .5s cubic-bezier(.34, 1.56, .64, 1);--container-max: 1200px;--container-padding: var(--space-lg);--header-height: 72px}:lang(en){--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}:lang(ja){--font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif}:lang(ko){--font-family: "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif}[data-theme=dark]{--color-bg-primary: #0F0D0B;--color-bg-secondary: #1A1612;--color-bg-card: #221E18;--color-bg-card-hover: #2D2820;--color-bg-elevated: #2A2520;--color-bg-code: #1E1A16;--color-text-primary: #F5F0EB;--color-text-secondary: #B8A898;--color-text-tertiary: #8B7D6E;--color-text-inverse: #0F0D0B;--color-text-link: #FF9070;--color-accent: #FF7654;--color-accent-hover: #FF9070;--color-accent-light: #3A2018;--color-accent-glow: rgba(255, 118, 84, .15);--color-secondary: #FFB84D;--color-secondary-light: #3A2D15;--color-success: #2ECC71;--color-success-light: #1A3028;--color-warning: #F5B041;--color-warning-light: #3A2D15;--color-info: #5DADE2;--color-info-light: #1A2530;--color-danger: #E74C3C;--color-danger-light: #3A1A18;--color-buy: #5DADE2;--color-buy-light: #1A2530;--color-buy-bg: linear-gradient(135deg, #5DADE2 0%, #3498DB 100%);--color-diy: #2ECC71;--color-diy-light: #1A3028;--color-diy-bg: linear-gradient(135deg, #2ECC71 0%, #27AE60 100%);--color-border: #3D342A;--color-border-light: #2A2420;--color-divider: #332A22;--shadow-color: 0, 0, 0;--gradient-body: linear-gradient(180deg, #0F0D0B 0%, #13110E 40%, #1A1612 100%);--gradient-section-line: linear-gradient(90deg, transparent, var(--color-border), transparent);--gradient-card-shine: linear-gradient(135deg, rgba(255, 255, 255, .04) 0%, rgba(255, 255, 255, 0) 60%);--glass-bg: rgba(15, 13, 11, .6);--glass-border: rgba(61, 52, 42, .5);--glow-accent: 0 0 20px rgba(255, 118, 84, .08);--glow-card: 0 2px 16px rgba(0, 0, 0, .15);--glow-card-hover: 0 8px 32px rgba(255, 118, 84, .08), 0 4px 12px rgba(0, 0, 0, .2)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px;overflow-x:hidden}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background:radial-gradient(ellipse 800px 800px at 10% 15%,rgba(232,87,58,.06),transparent 70%),radial-gradient(ellipse 600px 600px at 90% 50%,rgba(245,166,35,.05),transparent 70%),radial-gradient(ellipse 500px 500px at 50% 85%,rgba(232,87,58,.04),transparent 70%),var(--gradient-body);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition-theme),color var(--transition-theme);overflow-x:hidden;position:relative}[data-theme=dark] body{background:radial-gradient(ellipse 800px 800px at 10% 15%,rgba(255,118,84,.035),transparent 70%),radial-gradient(ellipse 600px 600px at 90% 50%,rgba(255,184,77,.025),transparent 70%),radial-gradient(ellipse 500px 500px at 50% 85%,rgba(255,118,84,.02),transparent 70%),var(--gradient-body);background-attachment:fixed}body:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9998;background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.15) 100%)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}p{line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}a{color:var(--color-text-link);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}ul,ol{list-style:none}img{max-width:100%;height:auto;display:block}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}::selection{background-color:var(--color-accent);color:var(--color-text-inverse)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background:var(--glass-bg);backdrop-filter:blur(24px) saturate(1.2);-webkit-backdrop-filter:blur(24px) saturate(1.2);border-bottom:1px solid var(--glass-border);box-shadow:0 1px 8px rgba(var(--shadow-color),.04);z-index:100;transition:background var(--transition-theme),border-color var(--transition-theme),box-shadow var(--transition-theme)}[data-theme=dark] .site-header{background:var(--glass-bg)}.header-inner{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding);height:100%;display:flex;align-items:center;justify-content:space-between}.header-logo{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-lg);font-weight:var(--font-weight-black);color:var(--color-text-primary);text-decoration:none;cursor:pointer}.header-logo:hover{color:var(--color-accent)}.header-logo-icon{width:40px;height:40px;color:var(--color-accent);flex-shrink:0;transition:transform var(--transition-normal),color var(--transition-theme)}.header-logo:hover .header-logo-icon{transform:rotate(-15deg) scale(1.1)}.header-nav{display:flex;align-items:center;gap:var(--space-lg)}.header-nav-link{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:color var(--transition-fast);text-decoration:none}.header-nav-link:hover{color:var(--color-accent)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);background:var(--color-bg-secondary);border:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast);font-size:1.2rem}.theme-toggle:hover{background:var(--color-accent-light);border-color:var(--color-accent);transform:scale(1.05)}.theme-toggle:active{transform:scale(.95)}.lang-dropdown{position:relative}.lang-dropdown-trigger{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;line-height:1}.lang-dropdown-trigger:hover{border-color:var(--color-accent);background:var(--color-bg-card)}.lang-dropdown.open .lang-dropdown-trigger{border-color:var(--color-accent);box-shadow:0 0 0 2px #e8573a26}.lang-dropdown-flag{font-size:1rem;line-height:1}.lang-dropdown-label{font-size:.75rem;font-weight:var(--font-weight-bold);letter-spacing:.03em}.lang-dropdown-arrow{font-size:.65rem;opacity:.5;transition:transform var(--transition-fast)}.lang-dropdown.open .lang-dropdown-arrow{transform:rotate(180deg)}.lang-dropdown-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;padding:4px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 8px 24px #00000026,0 2px 8px #00000014;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.96);transition:all .2s cubic-bezier(.16,1,.3,1);z-index:1000}.lang-dropdown.open .lang-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.lang-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);text-align:left}.lang-dropdown-item:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.lang-dropdown-item.active{color:var(--color-accent);font-weight:var(--font-weight-bold)}.lang-dropdown-item-flag{font-size:1.1rem;line-height:1}.lang-dropdown-item-name{flex:1}.lang-dropdown-check{color:var(--color-accent);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm)}.hero{position:relative;min-height:400px;display:flex;align-items:center;justify-content:center;text-align:center;margin-top:var(--header-height);padding:var(--space-4xl) var(--space-lg);background:url(/images/hero-bg.webp) center/cover no-repeat;overflow:hidden}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#00000073,#0000008c,#000000b3)}.hero:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:80px;background:linear-gradient(to bottom,transparent,var(--color-bg-primary));z-index:2;pointer-events:none}.hero-content{position:relative;z-index:2;max-width:700px}.hero-emoji{font-size:4rem;margin-bottom:var(--space-lg);display:inline-block;animation:heroEmojiBounce 3s ease-in-out infinite}@keyframes heroEmojiBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.hero h1{font-size:var(--font-size-4xl);font-weight:var(--font-weight-black);color:#fff;margin-bottom:var(--space-md);text-shadow:0 2px 8px rgba(0,0,0,.15);letter-spacing:.05em}.hero-subtitle{font-size:var(--font-size-xl);color:#fffffff2!important;font-weight:var(--font-weight-medium);margin-bottom:var(--space-sm)}.hero-desc{font-size:var(--font-size-md);color:#fffc!important;margin-bottom:var(--space-2xl);line-height:var(--line-height-relaxed)}.hero-cta{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff!important;font-weight:var(--font-weight-bold);font-size:var(--font-size-md);border-radius:var(--radius-pill);border:2px solid rgba(255,255,255,.3);transition:all var(--transition-normal);text-decoration:none;cursor:pointer}.hero-cta:hover{background:#ffffff59;border-color:#ffffff80;transform:translateY(-2px);color:#fff!important}.hero-decorations{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.hero-decorations:before{content:"";position:absolute;width:600px;height:600px;top:-15%;right:-10%;border-radius:50%;background:radial-gradient(circle,rgba(232,87,58,.35) 0%,rgba(245,166,35,.18) 40%,transparent 70%);filter:blur(60px);animation:orbFloat 12s ease-in-out infinite;will-change:transform}.hero-decorations:after{content:"";position:absolute;width:500px;height:500px;bottom:-20%;left:-8%;border-radius:50%;background:radial-gradient(circle,rgba(245,166,35,.3) 0%,rgba(232,87,58,.12) 45%,transparent 70%);filter:blur(70px);animation:orbFloat 15s ease-in-out infinite reverse;will-change:transform}@keyframes orbFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(20px,-15px) scale(1.05)}66%{transform:translate(-15px,10px) scale(.95)}}.hero-decorations span{position:absolute;font-size:2.5rem;opacity:.2;animation:floatEmoji 8s ease-in-out infinite}.hero-decorations span:nth-child(1){top:15%;left:8%;animation-delay:0s}.hero-decorations span:nth-child(2){top:70%;left:12%;animation-delay:1.5s}.hero-decorations span:nth-child(3){top:20%;right:10%;animation-delay:3s}.hero-decorations span:nth-child(4){top:65%;right:8%;animation-delay:4.5s}.hero-decorations span:nth-child(5){top:40%;left:5%;animation-delay:2s}.hero-decorations span:nth-child(6){bottom:15%;right:15%;animation-delay:5.5s}@keyframes floatEmoji{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-15px) rotate(5deg)}75%{transform:translateY(10px) rotate(-5deg)}}.section{padding:var(--space-3xl) 0;position:relative}.section+.section:before{content:"";position:absolute;top:0;left:15%;right:15%;height:1px;background:var(--gradient-section-line)}.section-header{text-align:center;margin-bottom:var(--space-2xl)}.section-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-sm)}.section-desc{font-size:var(--font-size-md);color:var(--color-text-secondary);max-width:600px;margin:0 auto}.hero-tagline{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:var(--space-xl);padding:.6rem 1.5rem;background:#ffffff1f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.15);flex-wrap:wrap}.hero-tagline-item{font-size:var(--font-size-sm);color:#ffffffeb;font-weight:var(--font-weight-medium);white-space:nowrap;letter-spacing:.02em}.hero-tagline-divider{color:#ffffff59;font-size:var(--font-size-sm);-webkit-user-select:none;user-select:none}.search-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);margin-bottom:var(--space-2xl);max-width:100%;overflow:hidden}.search-bar{position:relative;width:100%;max-width:480px}.filter-group{justify-content:center}.search-bar input{width:100%;padding:var(--space-md) var(--space-lg);padding-left:3rem;background:var(--color-bg-card);border:2px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-size-base);color:var(--color-text-primary);transition:all var(--transition-fast);outline:none}.search-bar input:focus{border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-glow)}.search-bar input::placeholder{color:var(--color-text-tertiary)}.search-bar-icon{position:absolute;left:var(--space-lg);top:50%;transform:translateY(-50%);font-size:1.1rem;color:var(--color-text-tertiary);pointer-events:none}.filter-group{display:flex;flex-wrap:wrap;gap:var(--space-sm);max-width:100%}.filter-btn{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);background:var(--color-bg-card);color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast)}.filter-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.filter-btn.active{background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.sort-group{display:flex;gap:var(--space-sm);margin-top:var(--space-md);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:var(--space-xs);width:100%;max-width:100%}.sort-group::-webkit-scrollbar{display:none}.sort-btn{white-space:nowrap;padding:6px 14px;border-radius:20px;border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all .2s;flex-shrink:0}.sort-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.sort-btn.active{background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.nutrition-tag-group{display:flex;gap:var(--space-sm);align-items:center;justify-content:center;flex-wrap:wrap;max-width:100%}.nutrition-tag-label{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium);white-space:nowrap}.nutrition-tag-btn{white-space:nowrap;padding:6px 14px;border-radius:20px;border:1.5px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .25s ease;flex-shrink:0;position:relative;overflow:hidden}.nutrition-tag-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.nutrition-tag-btn[data-tag=highProtein]{border-color:#e74c3c40;color:#c0392b}.nutrition-tag-btn[data-tag=highProtein]:hover{border-color:#e74c3c80;background:#e74c3c0f}.nutrition-tag-btn[data-tag=highProtein].active{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;border-color:#e74c3c;box-shadow:0 2px 12px #e74c3c59}.nutrition-tag-btn[data-tag=lowCarb]{border-color:#27ae6040;color:#27ae60}.nutrition-tag-btn[data-tag=lowCarb]:hover{border-color:#27ae6080;background:#27ae600f}.nutrition-tag-btn[data-tag=lowCarb].active{background:linear-gradient(135deg,#27ae60,#1e8449);color:#fff;border-color:#27ae60;box-shadow:0 2px 12px #27ae6059}.nutrition-tag-btn[data-tag=lowFat]{border-color:#3498db40;color:#2980b9}.nutrition-tag-btn[data-tag=lowFat]:hover{border-color:#3498db80;background:#3498db0f}.nutrition-tag-btn[data-tag=lowFat].active{background:linear-gradient(135deg,#3498db,#2471a3);color:#fff;border-color:#3498db;box-shadow:0 2px 12px #3498db59}[data-theme=dark] .nutrition-tag-btn[data-tag=highProtein]{color:#e57373;border-color:#e74c3c4d}[data-theme=dark] .nutrition-tag-btn[data-tag=lowCarb]{color:#81c784;border-color:#27ae604d}[data-theme=dark] .nutrition-tag-btn[data-tag=lowFat]{color:#64b5f6;border-color:#3498db4d}.nutrition-tag-criteria{width:100%;font-size:.7rem;color:var(--color-text-quaternary);text-align:center;margin-top:2px}.food-card-badge{position:absolute;top:var(--space-sm);right:var(--space-sm);padding:3px 10px;border-radius:12px;font-size:.7rem;font-weight:700;letter-spacing:.02em;z-index:2;animation:badgePop .3s ease}.food-card-badge--save{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.food-card-badge--time{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.food-card-badge--easy{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.food-card-badge--value{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}@keyframes badgePop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.food-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-lg)}.food-card{background:var(--color-bg-card);border-radius:var(--radius-xl);border:1px solid var(--color-border);overflow:hidden;cursor:pointer;transition:all var(--transition-normal);position:relative;box-shadow:var(--glow-card)}.food-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-xl);background:var(--gradient-card-shine);pointer-events:none;opacity:1;transition:opacity var(--transition-normal)}.food-card:hover{transform:translateY(-6px);box-shadow:var(--glow-card-hover),0 0 40px #e8573a14;border-color:var(--color-accent)}.food-card:hover:after{opacity:0}.food-card-image{height:200px;display:flex;align-items:center;justify-content:center;font-size:5rem;position:relative;overflow:hidden}.food-card-image img{transition:transform .4s ease}.food-card:hover .food-card-image img{transform:scale(1.06)}.food-card-image:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.12}.food-card-image-overlay{position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(to top,rgba(0,0,0,.45) 0%,transparent 100%);pointer-events:none;z-index:1}.food-card-savings{position:absolute;top:var(--space-sm);right:var(--space-sm);padding:4px 10px;border-radius:16px;font-size:.7rem;font-weight:700;background:linear-gradient(135deg,#34d399,#10b981);color:#fff;z-index:2;letter-spacing:.02em;box-shadow:0 2px 8px #10b98159;animation:badge-pop .3s ease-out}@keyframes badge-pop{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}.food-card-body{padding:var(--space-lg)}.food-card-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-sm)}.food-card-name{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-xs);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}.food-card-subtitle{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-md);display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.food-card-comparison{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-bottom:var(--space-md)}.food-card-price{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);text-align:center;font-size:var(--font-size-sm)}.food-card-price.buy{background:var(--color-buy-light);color:var(--color-buy)}.food-card-price.diy{background:var(--color-diy-light);color:var(--color-diy)}.food-card-price strong{display:block;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.food-card-meta{display:flex;align-items:center;gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.meta-item{font-size:.72rem;color:var(--color-text-tertiary);display:flex;align-items:center;gap:2px;white-space:nowrap}.meta-time{color:var(--color-text-secondary);font-weight:600}.meta-diff{letter-spacing:-1px;font-size:.55rem}.meta-diff .diff-dot{color:var(--color-text-quaternary)}.meta-diff .diff-dot.filled{color:var(--color-accent)}.food-card-meta .verdict-badge{margin-left:auto;font-size:.68rem}.tag{display:inline-flex;align-items:center;padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid transparent;transition:border-color var(--transition-fast)}.tag-accent{background:var(--color-accent-light);color:var(--color-accent);border-color:#e8573a1a}.tag-success{background:var(--color-success-light);color:var(--color-success);border-color:#27ae601a}.tag-warning{background:var(--color-warning-light);color:var(--color-warning);border-color:#f39c121a}.tag-info{background:var(--color-info-light);color:var(--color-info);border-color:#3498db1a}.verdict-badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.verdict-badge.verdict-diy{background:var(--color-diy-light);color:var(--color-diy)}.verdict-badge.verdict-buy{background:var(--color-buy-light);color:var(--color-buy)}.verdict-badge.verdict-depends{background:var(--color-warning-light);color:var(--color-warning)}.detail-page{margin-top:var(--header-height);padding:var(--space-2xl) 0 var(--space-4xl)}.detail-hero{text-align:center;padding:var(--space-3xl) var(--space-lg);border-radius:var(--radius-xl);margin-bottom:var(--space-2xl);position:relative;overflow:hidden}.detail-hero-emoji{font-size:5rem;display:inline-block;margin-bottom:var(--space-md);filter:drop-shadow(0 4px 12px rgba(0,0,0,.15))}.detail-hero h1{font-size:var(--font-size-3xl);color:#fff;margin-bottom:var(--space-sm);text-shadow:0 2px 8px rgba(0,0,0,.2)}.detail-hero-subtitle{color:#ffffffe6!important;font-size:var(--font-size-md)}.detail-hero-tags{display:flex;justify-content:center;gap:var(--space-sm);margin-top:var(--space-md)}.detail-hero-tags .tag{background:#fff3;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.back-btn{display:inline-flex;align-items:center;gap:6px;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-pill);background:transparent;border:1.5px solid var(--color-accent);color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);cursor:pointer;transition:all var(--transition-fast);margin-bottom:var(--space-xl);text-decoration:none}.back-btn:before{content:"←";font-size:1.1em}.back-btn:hover{background:var(--color-accent);color:#fff}.detail-section{background:var(--color-bg-card);border-radius:var(--radius-xl);border:1px solid var(--color-border);padding:var(--space-2xl);margin-bottom:var(--space-xl);box-shadow:var(--glow-card);position:relative;overflow:hidden;transition:background-color var(--transition-theme),border-color var(--transition-theme),box-shadow var(--transition-theme)}.detail-section:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--color-accent-light),transparent);opacity:.6}.detail-section-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-lg);display:flex;align-items:center;gap:var(--space-sm);background:linear-gradient(135deg,var(--color-text-primary) 0%,var(--color-text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.detail-section-title .icon{font-size:1.3rem}.store-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-md)}.store-card{padding:var(--space-lg);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-secondary);transition:all var(--transition-fast);position:relative;overflow:hidden}.store-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-lg);background:var(--gradient-card-shine);pointer-events:none}.store-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.store-card-name{font-weight:var(--font-weight-bold);font-size:var(--font-size-md);margin-bottom:var(--space-xs)}.store-card-address{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-sm)}.store-card-price{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-buy)}.store-card-night-market{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-secondary);margin-bottom:var(--space-sm)}.store-card-maps-link{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-pill);background:var(--color-accent-light);color:var(--color-accent)!important;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-decoration:none;transition:all var(--transition-fast);border:1px solid transparent}.store-card-maps-link:hover{background:var(--color-accent);color:var(--color-text-inverse)!important;transform:translateY(-1px);box-shadow:var(--glow-accent);border-color:var(--color-accent)}.comparison-panel{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);margin-bottom:var(--space-xl)}.comparison-side{padding:var(--space-xl);border-radius:var(--radius-lg);text-align:center}.comparison-side.buy-side{background:var(--color-buy-light);border:2px solid var(--color-buy)}.comparison-side.diy-side{background:var(--color-diy-light);border:2px solid var(--color-diy)}.comparison-side-icon{font-size:2.5rem;margin-bottom:var(--space-sm)}.comparison-side-title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);margin-bottom:var(--space-md)}.comparison-stats{display:flex;flex-direction:column;gap:var(--space-md)}.comparison-stat{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--color-divider)}.comparison-stat:last-child{border-bottom:none}.comparison-stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.comparison-stat-value{font-weight:var(--font-weight-bold);font-size:var(--font-size-md)}.cost-comparison{margin:var(--space-xl) 0}.cost-bar-group{margin-bottom:var(--space-md)}.cost-bar-label{display:flex;justify-content:space-between;margin-bottom:var(--space-xs);font-size:var(--font-size-sm)}.cost-bar-track{height:32px;background:var(--color-bg-secondary);border-radius:var(--radius-pill);overflow:hidden;position:relative}.cost-bar-fill{height:100%;border-radius:var(--radius-pill);display:flex;align-items:center;padding:0 var(--space-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:#fff;transition:width 1s ease-out}.cost-bar-fill.buy-bar{background:var(--color-buy-bg)}.cost-bar-fill.diy-bar{background:var(--color-diy-bg)}.cost-savings{text-align:center;padding:var(--space-md);background:var(--color-success-light);border-radius:var(--radius-md);margin-top:var(--space-md)}.cost-savings strong{color:var(--color-success);font-size:var(--font-size-lg)}.verdict-box{padding:var(--space-xl);border-radius:var(--radius-lg);background:var(--color-accent-light);border-left:4px solid var(--color-accent);box-shadow:var(--glow-card);position:relative;overflow:hidden}.verdict-box:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gradient-card-shine);pointer-events:none}.verdict-box.verdict-diy{background:var(--color-diy-light);border-left-color:var(--color-diy)}.verdict-box.verdict-buy{background:var(--color-buy-light);border-left-color:var(--color-buy)}.verdict-box.verdict-depends{background:var(--color-warning-light);border-left-color:var(--color-warning)}.verdict-box-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-black);margin-bottom:var(--space-sm);display:flex;align-items:center;gap:var(--space-sm);letter-spacing:.01em}.verdict-box p{font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}.recipe-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-xl);background:var(--color-bg-secondary);padding:var(--space-xs);border-radius:var(--radius-pill)}.recipe-tab{flex:1;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-pill);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);text-align:center;background:transparent;color:var(--color-text-secondary)}.recipe-tab:hover{color:var(--color-text-primary)}.recipe-tab.active{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-md)}.recipe-content{display:none}.recipe-content.active{display:block;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.recipe-info-bar{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-xl);padding:var(--space-lg);background:linear-gradient(135deg,var(--color-bg-secondary),var(--color-bg-card));border-radius:var(--radius-lg);border:1px solid var(--color-border-light)}.recipe-info-item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm)}.recipe-info-item .icon{font-size:1.2rem}.recipe-info-item strong{font-weight:var(--font-weight-bold)}.ingredients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-sm);margin-bottom:var(--space-xl)}.ingredient-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.ingredient-check{width:20px;height:20px;border-radius:var(--radius-sm);border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.7rem;color:transparent;transition:all var(--transition-fast);cursor:pointer}.ingredient-check.checked{background:var(--color-success);border-color:var(--color-success);color:#fff}.recipe-steps{counter-reset:step}.recipe-step{display:flex;gap:var(--space-lg);padding:var(--space-lg) 0;border-bottom:1px solid var(--color-divider)}.recipe-step:last-child{border-bottom:none}.recipe-step-number{counter-increment:step;width:40px;height:40px;border-radius:var(--radius-full);background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);flex-shrink:0}.recipe-step-text{flex:1;padding-top:var(--space-sm);line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.recipe-step-tip{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-secondary-light);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-secondary)}.appliance-section{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--color-divider)}.appliance-section-title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);margin-bottom:var(--space-lg);display:flex;align-items:center;gap:var(--space-sm);color:var(--color-text-secondary)}.appliance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-md)}.appliance-card{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-secondary);cursor:pointer;transition:all var(--transition-fast);position:relative;overflow:hidden;display:flex;align-items:flex-start;gap:var(--space-md)}.appliance-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-lg);background:var(--gradient-card-shine);pointer-events:none}.appliance-card:hover{border-color:var(--color-accent);box-shadow:var(--glow-card);transform:translateY(-2px)}.appliance-card.active{border-color:var(--color-accent);background:var(--color-accent-light)}.appliance-card-icon{font-size:1.6rem;flex-shrink:0;line-height:1;padding-top:2px}.appliance-card-body{flex:1;min-width:0}.appliance-card-name{font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);margin-bottom:2px}.appliance-card-desc{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.appliance-card-time{font-size:var(--font-size-xs);color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--space-xs)}.appliance-card-toggle{margin-top:4px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-accent)}.appliance-detail{display:none;margin-top:var(--space-lg);padding:var(--space-xl);background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border-light)}.appliance-detail.active{display:block;animation:fadeIn .3s ease}.appliance-detail .recipe-info-bar,.appliance-detail .ingredients-grid{margin-bottom:var(--space-lg)}.appliance-benefits-bar{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md);margin-bottom:var(--space-sm)}.appliance-benefit-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-pill);background:linear-gradient(135deg,var(--color-success-light),rgba(72,187,120,.08));border:1px solid rgba(72,187,120,.2);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-success);white-space:nowrap;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.appliance-benefit-chip:hover{transform:scale(1.05);box-shadow:0 2px 8px #48bb7833}.appliance-benefit-chip .benefit-icon{font-size:.85rem}.appliance-benefit-chip .benefit-value{font-weight:var(--font-weight-black);color:var(--color-text-primary)}.appliance-ideal-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm);margin-bottom:var(--space-sm)}.appliance-ideal-tag{display:inline-flex;align-items:center;gap:2px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);font-size:.7rem;color:var(--color-text-secondary)}.appliance-comparison{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:linear-gradient(135deg,#6366f10d,#6366f105);border-left:3px solid var(--color-accent);font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.5}.appliance-comparison:before{content:"📊 "}.appliance-benefit-chip[data-detail]:after{content:attr(data-detail);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:4px 10px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.65rem;font-weight:400;color:var(--color-text-secondary);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:10;box-shadow:var(--shadow-md)}.appliance-benefit-chip[data-detail]{position:relative}.appliance-benefit-chip[data-detail]:hover:after{opacity:1}@media(max-width:480px){.appliance-benefits-bar{gap:var(--space-xs)}.appliance-benefit-chip{padding:3px 8px;font-size:.65rem}.appliance-benefit-chip[data-detail]:after{display:none}}.method-made-this-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);margin-top:var(--space-sm);padding:6px 12px;border:1.5px solid var(--color-accent);border-radius:var(--radius-lg);background:transparent;color:var(--color-accent);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:all .2s;width:100%}.method-made-this-btn:hover:not(:disabled){background:var(--color-accent);color:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #6366f14d}.method-made-this-btn--done{border-color:var(--color-success, #22c55e);color:var(--color-success, #22c55e);background:#22c55e0d;cursor:default}.method-made-this-btn:disabled{opacity:.7;cursor:default}.method-progress{font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-secondary);margin-left:var(--space-sm);vertical-align:middle}.method-dots{letter-spacing:2px;color:var(--color-accent);font-size:.7rem}.method-progress--complete .method-progress-all{color:var(--color-accent);font-weight:600;animation:method-celebrate .6s ease}@keyframes method-celebrate{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.try-other-hint{margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:linear-gradient(135deg,#6366f10f,#6366f105);border-left:3px solid var(--color-accent);opacity:0;transform:translateY(8px);transition:all .4s ease}.try-other-hint--visible{opacity:1;transform:translateY(0)}.try-other-text{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);margin-bottom:2px}.try-other-detail{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.source-list{display:flex;flex-direction:column;gap:var(--space-sm)}.source-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--color-bg-secondary);border-radius:var(--radius-lg);gap:var(--space-md)}.source-item-name{font-weight:var(--font-weight-bold);min-width:80px}.source-item-where{flex:1;display:flex;flex-wrap:wrap;gap:var(--space-xs)}.source-item-where .tag{font-size:var(--font-size-xs)}.source-item-ease{display:flex;gap:2px;flex-shrink:0}.ease-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--color-border)}.ease-dot.filled{background:var(--color-success)}.score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-lg)}.score-item{text-align:center;padding:var(--space-lg);background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border-light);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.score-item:hover{box-shadow:var(--glow-card);transform:translateY(-2px)}.score-item-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.score-stars{font-size:1.4rem;letter-spacing:2px}.star-filled{color:var(--color-secondary)}.star-empty{color:var(--color-border)}.score-value{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-top:var(--space-xs)}.legal-page{margin-top:calc(var(--header-height) + var(--space-2xl));padding-bottom:var(--space-4xl)}.legal-content{max-width:720px;margin:var(--space-xl) auto 0;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-2xl) var(--space-2xl);box-shadow:var(--glow-card)}.legal-hero{text-align:center;padding:var(--space-2xl) var(--space-lg);margin:calc(-1 * var(--space-2xl)) calc(-1 * var(--space-2xl)) var(--space-xl);border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-bg-card) 100%);border-bottom:1px solid var(--color-border);position:relative;overflow:hidden}.legal-hero:before{content:"";position:absolute;top:-40%;right:-20%;width:200px;height:200px;border-radius:50%;background:var(--color-accent);opacity:.04;filter:blur(60px)}.legal-hero-icon{font-size:3.5rem;display:block;margin-bottom:var(--space-md);filter:drop-shadow(0 2px 8px rgba(0,0,0,.1))}.legal-hero h1{font-size:var(--font-size-2xl);margin-bottom:var(--space-xs);background:linear-gradient(135deg,var(--color-text-primary) 0%,var(--color-accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-hero-desc{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:0;line-height:1.5}.legal-content h1{font-size:var(--font-size-2xl);margin-bottom:var(--space-sm);background:linear-gradient(135deg,var(--color-text-primary) 0%,var(--color-accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-updated{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-xl);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border);display:inline-flex;align-items:center;gap:var(--space-xs)}.legal-updated:before{content:"🕐";font-size:.85em}.legal-section{padding:var(--space-lg) var(--space-xl);margin-bottom:var(--space-md);border-radius:var(--radius-lg);background:var(--color-bg-secondary);border-left:3px solid var(--color-accent);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.legal-section:hover{transform:translate(2px);box-shadow:0 2px 12px #0000000f}.legal-section:last-child{margin-bottom:0}.legal-content h2{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);margin-top:0;margin-bottom:var(--space-sm);color:var(--color-text-primary);padding-bottom:0;border-bottom:none}.legal-content>h2{margin-top:var(--space-xl);margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border)}.legal-content p{margin-bottom:var(--space-md);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.legal-content p:last-child{margin-bottom:0}.legal-content ul{margin-bottom:var(--space-sm);padding-left:0;list-style:none}.legal-content ul li{position:relative;padding-left:var(--space-lg);margin-bottom:var(--space-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.legal-content ul li:before{content:"";position:absolute;left:4px;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--color-accent);opacity:.7}.legal-content ul li:last-child{margin-bottom:0}.legal-content a{color:var(--color-accent);text-decoration:none;border-bottom:1px dashed var(--color-accent);padding-bottom:1px;transition:border-color var(--transition-fast),opacity var(--transition-fast)}.legal-content a:hover{color:var(--color-accent-hover);border-bottom-style:solid}.about-hero{text-align:center;padding:var(--space-2xl) var(--space-lg);margin:calc(-1 * var(--space-2xl)) calc(-1 * var(--space-2xl)) var(--space-lg);border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-bg-card) 100%);border-bottom:1px solid var(--color-border);position:relative;overflow:hidden}.about-hero:before{content:"";position:absolute;top:-40%;left:-20%;width:200px;height:200px;border-radius:50%;background:var(--color-accent);opacity:.04;filter:blur(60px)}.about-emoji{font-size:4rem;display:block;margin-bottom:var(--space-md);filter:drop-shadow(0 2px 8px rgba(0,0,0,.1))}.about-hero h2{border:none;border-left:none;margin-top:0;padding-bottom:0;font-size:var(--font-size-2xl);background:linear-gradient(135deg,var(--color-text-primary) 0%,var(--color-accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.about-tagline{font-size:var(--font-size-md);color:var(--color-text-tertiary);font-style:italic}@media(max-width:480px){.legal-content{padding:var(--space-lg) var(--space-md)}.legal-hero,.about-hero{margin:calc(-1 * var(--space-lg)) calc(-1 * var(--space-md)) var(--space-lg);padding:var(--space-xl) var(--space-md);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.legal-hero-icon,.about-emoji{font-size:2.5rem}.legal-section{padding:var(--space-md) var(--space-lg)}}.site-footer{padding:var(--space-3xl) 0 var(--space-xl);background:var(--color-bg-secondary);border-top:none;text-align:center;position:relative;transition:background-color var(--transition-theme),border-color var(--transition-theme)}.site-footer:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--gradient-section-line)}.footer-logo{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-sm)}.footer-desc{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-lg)}.footer-links{display:flex;justify-content:center;gap:var(--space-lg);margin-bottom:var(--space-xl)}.footer-links a{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.footer-copyright{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.empty-state{text-align:center;padding:var(--space-4xl) var(--space-xl)}.empty-state-emoji{font-size:4rem;margin-bottom:var(--space-lg)}.empty-state h3{margin-bottom:var(--space-sm)}.empty-state p{color:var(--color-text-tertiary)}.price-date-info{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-lg)}.price-date-info a{color:var(--color-accent);text-decoration:underline}.price-live-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-success);margin-left:var(--space-sm)}.price-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.price-card{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--color-border-light);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.price-card:hover{box-shadow:var(--glow-card);transform:translateY(-2px)}.price-card-live{border-color:#27ae6033}.price-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.price-card-name{font-weight:var(--font-weight-bold);font-size:var(--font-size-md)}.price-card-source{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-pill)}.source-live{background:var(--color-success-light);color:var(--color-success)}.source-estimate{background:var(--color-warning-light);color:var(--color-warning)}.price-card-wholesale{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-divider)}.price-card-wholesale strong{font-size:var(--font-size-lg);color:var(--color-text-primary)}.price-unit{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.price-card-channels{display:flex;flex-direction:column;gap:var(--space-sm)}.price-channel-row{display:flex;align-items:center;gap:var(--space-sm)}.price-channel-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);min-width:88px;flex-shrink:0}.price-channel-bar-track{flex:1;height:8px;background:var(--color-bg-card);border-radius:var(--radius-pill);overflow:hidden}.price-channel-bar-fill{height:100%;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--color-accent),var(--color-secondary));transition:width .8s ease-out}.price-channel-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-primary);min-width:50px;text-align:right}.price-methodology{border-radius:var(--radius-lg);border:1px solid var(--color-border-light);overflow:hidden}.price-methodology-toggle{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-md) var(--space-lg);background:var(--color-bg-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast)}.price-methodology-toggle:hover{background:var(--color-bg-card-hover)}.price-methodology-arrow{margin-left:auto;font-size:var(--font-size-xs);color:var(--color-text-tertiary);transition:transform var(--transition-fast)}.price-methodology-content{max-height:0;overflow:hidden;transition:max-height var(--transition-normal),padding var(--transition-normal);padding:0 var(--space-lg)}.price-methodology-content.open{max-height:500px;padding:var(--space-lg)}.price-methodology-content p{font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.price-methodology-channels{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.price-method-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-card);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.price-method-item strong{display:block;font-size:var(--font-size-sm)}.price-method-mult{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.price-summary-table{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border-light);margin-bottom:var(--space-md)}.price-summary-header,.price-summary-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);align-items:center}.price-summary-header{background:var(--color-bg-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-light)}.price-summary-row{font-size:var(--font-size-sm);border-bottom:1px solid var(--color-divider)}.price-summary-row:last-child{border-bottom:none}.price-summary-row:nth-child(2n){background:var(--color-bg-card)}.price-summary-col-name{font-weight:var(--font-weight-medium)}.price-summary-col{text-align:center}.price-per-unit{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-weight:400}.price-disclaimer{padding:var(--space-md);background:var(--color-warning-light);border-radius:var(--radius-md);font-size:var(--font-size-xs);color:var(--color-warning);line-height:var(--line-height-relaxed);border-left:3px solid var(--color-warning)}.nutrition-card{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-xl);border:1px solid var(--color-border-light)}.nutrition-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-divider)}.nutrition-calories{display:flex;align-items:baseline;gap:var(--space-xs)}.nutrition-cal-number{font-size:2.5rem;font-weight:var(--font-weight-black);color:var(--color-accent);line-height:1}.nutrition-cal-unit{font-size:var(--font-size-md);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.nutrition-serving{text-align:right}.nutrition-serving-label{display:block;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.nutrition-serving-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.nutrition-donut-row{display:flex;align-items:center;gap:var(--space-xl);margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-divider)}.nutrition-donut{width:110px;height:110px;flex-shrink:0}.nutrition-donut-svg{width:100%;height:100%}.nutrition-donut-text{font-size:5.5px;font-weight:700;fill:var(--color-text-primary)}.nutrition-donut-subtext{font-size:3px;fill:var(--color-text-tertiary)}.nutrition-donut-legend{display:flex;flex-direction:column;gap:var(--space-sm)}.nutrition-legend-item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.nutrition-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.nutrition-dv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:var(--space-sm);margin-bottom:var(--space-lg)}.nutrition-dv-circle{display:flex;flex-direction:column;align-items:center;gap:2px}.nutrition-dv-svg{width:56px;height:56px}.nutrition-dv-pct{font-size:9px;font-weight:700;fill:var(--color-text-primary)}.nutrition-dv-unit{font-size:5px;fill:var(--color-text-tertiary)}.nutrition-dv-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-align:center}.nutrition-dv-amount{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.comp-card{border-radius:var(--radius-lg);border:1px solid var(--color-border-light);overflow:hidden;background:var(--color-bg-card)}.comp-columns{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.comp-col{padding:var(--space-lg);text-align:center}.comp-col--buy{background:color-mix(in srgb,var(--color-buy) 6%,var(--color-bg-card))}.comp-col--diy{background:color-mix(in srgb,var(--color-diy) 6%,var(--color-bg-card))}.comp-col-header{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);margin-bottom:var(--space-sm)}.comp-col-icon{font-size:1.3rem}.comp-col-label{font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:.02em}.comp-col-price{font-size:2rem;font-weight:var(--font-weight-black);line-height:1.1;margin-bottom:var(--space-sm)}.comp-col-details{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.comp-vs{padding:0 var(--space-md);font-weight:var(--font-weight-black);font-size:var(--font-size-lg);color:var(--color-text-quaternary);text-align:center;background:var(--color-bg-card)}.comp-bars-section{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-border-light)}.comp-bar-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.comp-bar-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs)}.comp-bar-label{font-size:var(--font-size-xs);font-weight:600;min-width:10em;text-align:right;flex-shrink:0;white-space:nowrap}.comp-bar-track{flex:1;height:28px;border-radius:14px;background:var(--color-bg-secondary);overflow:hidden;position:relative}.comp-bar-fill{height:100%;border-radius:14px;display:flex;align-items:center;justify-content:flex-end;padding:0 var(--space-sm);font-size:var(--font-size-xs);font-weight:700;color:#fff;min-width:50px;transition:width .8s cubic-bezier(.22,1,.36,1)}.comp-bar-fill--buy{background:linear-gradient(90deg,var(--color-buy),color-mix(in srgb,var(--color-buy) 80%,#000))}.comp-bar-fill--diy{background:linear-gradient(90deg,var(--color-diy),color-mix(in srgb,var(--color-diy) 80%,#000))}.comp-bar-savings{text-align:center;font-size:var(--font-size-sm);font-weight:700;color:var(--color-diy);margin-top:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:color-mix(in srgb,var(--color-diy) 8%,transparent);border-radius:var(--radius-sm)}.comp-bar-note{font-size:.72rem;color:var(--color-text-quaternary);margin-top:var(--space-xs);text-align:center;font-style:italic}@media(max-width:600px){.comp-columns{grid-template-columns:1fr}.comp-vs{padding:var(--space-xs);font-size:var(--font-size-md)}.comp-col-price{font-size:1.6rem}}.nutrition-micro-section{border-radius:var(--radius-md);border:1px solid var(--color-border-light);overflow:hidden;margin-bottom:var(--space-md)}.nutrition-micro-toggle{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:var(--color-bg-card);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast)}.nutrition-micro-toggle:hover{background:var(--color-bg-card-hover)}.nutrition-micro-arrow{margin-left:auto;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.nutrition-micro-content{max-height:0;overflow:hidden;transition:max-height var(--transition-normal)}.nutrition-micro-content.open{max-height:400px}.nutrition-micro-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1px;background:var(--color-divider);padding:1px}.nutrition-micro-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);font-size:var(--font-size-sm);transition:background var(--transition-fast)}.nutrition-micro-item:hover{background:var(--color-bg-card-hover)}.nutrition-micro-label{color:var(--color-text-secondary)}.nutrition-micro-value{font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.nutrition-micro-dv{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-left:var(--space-xs)}.nutrition-source{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center;padding-top:var(--space-sm)}.eeat-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-lg)}.eeat-tips-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.eeat-tip-card{background:var(--color-bg-secondary);border:1px solid #d4a944;border-radius:var(--radius-lg);padding:var(--space-lg);transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.eeat-tip-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#d4a944,#f0c75e,#d4a944)}.eeat-tip-card:after{content:"";position:absolute;top:0;left:-100%;width:60%;height:3px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);animation:eeatShimmer 4s ease-in-out infinite}@keyframes eeatShimmer{0%{left:-60%}50%{left:100%}to{left:100%}}.eeat-tip-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #d4a94426}.eeat-tip-icon{font-size:2rem;margin-bottom:var(--space-sm)}.eeat-tip-title{font-weight:var(--font-weight-bold);color:#d4a944;margin-bottom:var(--space-sm);font-size:var(--font-size-md)}.eeat-tip-detail{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.7}.eeat-section-heading{font-weight:var(--font-weight-bold);font-size:var(--font-size-md);color:var(--color-text-primary);margin-bottom:var(--space-md)}.eeat-mistakes{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl)}.eeat-mistake-card{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border-light)}.eeat-mistake-problem{background:#e74c3c14;padding:var(--space-md) var(--space-lg);display:flex;align-items:flex-start;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.eeat-mistake-x{color:#e74c3c;font-weight:var(--font-weight-black);font-size:var(--font-size-lg);flex-shrink:0}.eeat-mistake-solution{background:#27ae6014;padding:var(--space-md) var(--space-lg);display:flex;align-items:flex-start;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.7}.eeat-mistake-check{color:#27ae60;font-weight:var(--font-weight-black);font-size:var(--font-size-lg);flex-shrink:0}.eeat-author-note{background:var(--color-bg-secondary);border-left:4px solid #3498db;border-radius:var(--radius-md);padding:var(--space-lg)}.eeat-author-note-header{font-weight:var(--font-weight-bold);color:#3498db;margin-bottom:var(--space-sm);display:flex;align-items:center;gap:var(--space-sm)}.eeat-author-note p{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.8;margin:0}.ingredient-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl)}@media(max-width:768px){.ingredient-info-grid{grid-template-columns:1fr}}.ingredient-info-col{min-width:0}.ingredient-info-heading{font-weight:var(--font-weight-bold);font-size:var(--font-size-md);color:var(--color-text-primary);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:2px solid var(--color-border-light)}.source-list-compact .source-item{padding:var(--space-sm) var(--space-sm);border-bottom:1px solid var(--color-border-light);display:flex;align-items:baseline;gap:var(--space-md)}.source-list-compact .source-item .source-item-name{font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);flex-shrink:0}.source-list-compact .source-item .source-item-where{display:flex;flex-wrap:wrap;gap:4px;margin-left:auto}.source-list-compact .source-item:last-child{border-bottom:none}.gallery-img{margin:var(--space-md) 0;border-radius:var(--radius-lg);overflow:hidden;text-align:center}.gallery-img img{width:100%;max-width:600px;height:auto;border-radius:var(--radius-lg);box-shadow:0 4px 16px #0000001a;transition:transform .3s}.gallery-img img:hover{transform:scale(1.02)}.cost-vertical-chart{display:flex;flex-direction:column;align-items:center;padding:var(--space-md) var(--space-sm);min-width:100px}.cost-vertical-bars{display:flex;gap:var(--space-md);align-items:flex-end;height:140px;width:100%;justify-content:center}.cost-vertical-col{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);flex:0 0 40px}.cost-vertical-price{font-weight:var(--font-weight-black);font-size:var(--font-size-md)}.cost-vertical-bar-track{width:36px;height:100px;background:var(--color-bg-secondary);border-radius:var(--radius-md) var(--radius-md) 0 0;position:relative;overflow:hidden;display:flex;align-items:flex-end}.cost-vertical-bar-fill{width:100%;border-radius:var(--radius-md) var(--radius-md) 0 0;transition:height .8s ease-out}.cost-vertical-bar-fill.buy-bar{background:linear-gradient(to top,var(--color-buy),#ff8a65)}.cost-vertical-bar-fill.diy-bar{background:linear-gradient(to top,var(--color-diy),#66bb6a)}.cost-vertical-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);white-space:nowrap}.cost-vertical-savings{margin-top:var(--space-md);font-size:var(--font-size-sm);color:var(--color-diy);font-weight:var(--font-weight-black);text-align:center;background:var(--color-diy-light);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-pill);letter-spacing:.02em}.nutrition-dv-explain{font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);margin-top:var(--space-md);line-height:1.6}.nutrition-disclaimer{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center;padding-top:var(--space-xs);font-style:italic}.detail-toc{position:fixed;right:var(--space-lg);top:calc(var(--header-height) + var(--space-xl));width:160px;background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-md);border:1px solid var(--color-border-light);z-index:50;max-height:calc(100vh - var(--header-height) - var(--space-4xl));overflow-y:auto}.detail-toc-title{font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:var(--color-text-primary);margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border-light)}.detail-toc-link{display:block;font-size:var(--font-size-sm);color:var(--color-text-secondary);text-decoration:none;padding:5px 0;border-left:2px solid transparent;padding-left:var(--space-sm);transition:all .2s}.detail-toc-link:hover{color:var(--color-accent)}.detail-toc-link.active{color:var(--color-accent);border-left-color:var(--color-accent);font-weight:var(--font-weight-bold)}@media(max-width:1200px){.detail-toc{display:none}}.back-to-top{position:fixed;bottom:var(--space-xl);right:var(--space-xl);width:44px;height:44px;border-radius:50%;background:var(--color-accent);color:#fff;border:none;font-size:var(--font-size-lg);cursor:pointer;box-shadow:0 4px 12px #0003;opacity:0;transform:translateY(20px);transition:opacity .3s,transform .3s;z-index:100;pointer-events:none}.back-to-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}.floating-back-btn{position:fixed;bottom:var(--space-xl);left:var(--space-xl);display:flex;align-items:center;gap:var(--space-xs);padding:10px 18px;border-radius:var(--radius-pill);background:#ffffffe6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);cursor:pointer;box-shadow:0 4px 20px #0000001a;opacity:0;transform:translateY(20px);transition:opacity .3s,transform .3s,background .2s;z-index:100;pointer-events:none}[data-theme=dark] .floating-back-btn{background:#1e1e2ed9;box-shadow:0 4px 20px #0000004d;border-color:var(--color-border-light)}.floating-back-btn.visible{opacity:1;transform:translateY(0);pointer-events:auto}.floating-back-btn:hover{background:#fffffffa;transform:translateY(-2px);box-shadow:0 6px 24px #00000026}[data-theme=dark] .floating-back-btn:hover{background:#1e1e2ef2;box-shadow:0 6px 24px #0006}.floating-back-icon{font-size:1.1em}.floating-back-text{white-space:nowrap}@media(max-width:600px){.floating-back-btn{left:var(--space-md);bottom:var(--space-lg);padding:8px 14px;font-size:var(--font-size-xs)}}.detail-bottom-nav{text-align:center;padding:var(--space-xl) 0;margin-top:var(--space-lg);border-top:1px solid var(--color-border-light)}.back-btn-bottom{font-size:var(--font-size-md);padding:var(--space-sm) var(--space-xl)}.translation-notice{text-align:center;padding:var(--space-sm) var(--space-lg);margin-bottom:var(--space-lg);background:#ffffff0a;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-tertiary);letter-spacing:.01em}.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;padding:var(--space-md) var(--space-lg);background:#ffffffeb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--color-border);box-shadow:0 -4px 24px #0000001a;transform:translateY(100%);opacity:0;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .4s ease}[data-theme=dark] .cookie-banner{background:#1e1e2eeb;box-shadow:0 -4px 24px #0000004d}.cookie-banner-visible{transform:translateY(0);opacity:1}.cookie-banner-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.cookie-banner-icon{font-size:1.6rem;flex-shrink:0}.cookie-banner-text{flex:1;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);min-width:200px}.cookie-banner-actions{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0}.cookie-banner-link{font-size:var(--font-size-sm);color:var(--color-accent);text-decoration:underline;text-underline-offset:2px;white-space:nowrap}.cookie-banner-link:hover{color:var(--color-accent-hover)}.cookie-banner-accept{padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-pill);background:var(--color-accent);color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);border:none;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);white-space:nowrap}.cookie-banner-accept:hover{background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--color-accent-rgb, 99, 102, 241),.3)}.cookie-banner-accept:active{transform:translateY(0)}@media(max-width:600px){.cookie-banner-inner{flex-direction:column;text-align:center}.cookie-banner-icon{display:none}.cookie-banner-actions{width:100%;justify-content:center}}.random-picker-fab{position:fixed;bottom:28px;right:28px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent),var(--color-primary));color:#fff;font-size:1.6rem;border:none;cursor:pointer;box-shadow:0 4px 20px #00000040,0 0 rgba(var(--color-accent-rgb, 99,102,241),.4);z-index:999;transition:transform .2s,box-shadow .2s;animation:fab-pulse 3s ease-in-out infinite}.random-picker-fab:hover{transform:scale(1.12);box-shadow:0 6px 28px #00000059}@keyframes fab-pulse{0%,to{box-shadow:0 4px 20px #00000040,0 0 #6366f14d}50%{box-shadow:0 4px 20px #00000040,0 0 0 8px #6366f100}}.random-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}.random-overlay.active{opacity:1}.random-modal{background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-xl) var(--space-lg);text-align:center;max-width:380px;width:90%;position:relative;box-shadow:0 24px 80px #00000059;animation:modal-in .3s ease-out}@keyframes modal-in{0%{transform:scale(.85) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.random-modal-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-black);margin-bottom:var(--space-lg);color:var(--color-text-primary)}.random-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:1.4rem;color:var(--color-text-tertiary);cursor:pointer}.random-spinner{min-height:120px;display:flex;align-items:center;justify-content:center}.random-food-emoji{font-size:3rem;line-height:1}.random-food-emoji--big{font-size:4rem;animation:emoji-pop .4s ease-out}.random-food-name{font-size:var(--font-size-lg);font-weight:700;margin-top:var(--space-xs)}.random-food-name--big{font-size:var(--font-size-xl)}@keyframes emoji-pop{0%{transform:scale(.5)}60%{transform:scale(1.2)}to{transform:scale(1)}}.random-bounce{animation:bounce-fast .12s ease-out}@keyframes bounce-fast{0%{transform:scale(.9)}to{transform:scale(1)}}.random-result{margin-top:var(--space-md)}.random-result-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.random-result-stats{display:flex;gap:var(--space-lg);justify-content:center;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-tertiary)}.random-actions{display:flex;gap:var(--space-sm);justify-content:center;margin-top:var(--space-lg)}.random-btn{padding:10px 24px;border-radius:var(--radius-md);border:none;cursor:pointer;font-weight:700;font-size:var(--font-size-sm);transition:transform .15s}.random-btn:hover{transform:scale(1.05)}.random-btn--go{background:linear-gradient(135deg,var(--color-accent),var(--color-primary));color:#fff}.random-btn--retry{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.daily-quest-bar{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-md)}.daily-quest-label{font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-tertiary);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.daily-quest-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-accent) 12%,var(--color-bg-card)),var(--color-bg-card));border:1px solid color-mix(in srgb,var(--color-accent) 25%,var(--color-border-light));cursor:pointer;transition:all .2s ease;text-decoration:none;color:inherit;box-shadow:0 0 8px color-mix(in srgb,var(--color-accent) 10%,transparent)}.daily-quest-pill:hover{transform:translateY(-1px) scale(1.03);border-color:var(--color-accent);box-shadow:0 0 16px color-mix(in srgb,var(--color-accent) 25%,transparent)}.daily-quest-pill-emoji{font-size:1.1rem;line-height:1}.daily-quest-pill-name{font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-primary);white-space:nowrap}.daily-quest-pill-stat{font-size:.65rem;font-weight:600;color:var(--color-success);background:color-mix(in srgb,var(--color-success) 12%,transparent);padding:1px 6px;border-radius:999px;white-space:nowrap}.daily-quest-pill-go{font-size:.6rem;color:var(--color-accent);opacity:0;transition:opacity .2s}.daily-quest-pill:hover .daily-quest-pill-go{opacity:1}.shopping-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}.shopping-overlay.active{opacity:1}.shopping-modal{background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-lg);max-width:440px;width:90%;max-height:80vh;overflow-y:auto;position:relative;box-shadow:0 24px 80px #0000004d;animation:modal-in .3s ease-out}.shopping-modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-black);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.shopping-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:1.3rem;color:var(--color-text-tertiary);cursor:pointer}.shopping-items{list-style:none;padding:0;margin:0}.shopping-item{display:flex;align-items:center;gap:var(--space-sm);padding:10px 0;border-bottom:1px solid var(--color-border-light);font-size:var(--font-size-sm);transition:opacity .2s}.shopping-item.checked{opacity:.45;text-decoration:line-through}.shopping-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-diy);cursor:pointer;flex-shrink:0}.shopping-item label{cursor:pointer;flex:1}.shopping-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.shopping-btn{flex:1;padding:10px;border-radius:var(--radius-md);border:none;cursor:pointer;font-weight:700;font-size:var(--font-size-sm);transition:transform .15s}.shopping-btn:hover{transform:scale(1.03)}.shopping-btn--copy{background:linear-gradient(135deg,var(--color-diy),color-mix(in srgb,var(--color-diy) 80%,#000));color:#fff}.shopping-btn--close{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.shopping-copied{text-align:center;font-size:var(--font-size-sm);color:var(--color-diy);font-weight:700;margin-top:var(--space-sm);animation:fade-in .3s}.shopping-list-btn{padding:10px 28px;border-radius:var(--radius-md);border:1px dashed var(--color-diy);background:color-mix(in srgb,var(--color-diy) 8%,transparent);color:var(--color-diy);font-weight:700;font-size:var(--font-size-sm);cursor:pointer;transition:all .2s}.shopping-list-btn:hover{background:color-mix(in srgb,var(--color-diy) 16%,transparent);transform:translateY(-1px)}@keyframes fade-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.festival-banner{border-radius:var(--radius-xl);padding:var(--space-lg) var(--space-xl);margin-bottom:var(--space-lg);color:#fff;position:relative;overflow:hidden;animation:festival-in .6s ease-out}.festival-banner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#00000026;border-radius:inherit;pointer-events:none}@keyframes festival-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.festival-banner-header{display:flex;gap:var(--space-lg);align-items:flex-start;position:relative;z-index:1}.festival-banner-emoji{font-size:3.5rem;flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.festival-banner-text{flex:1}.festival-greeting{font-size:var(--font-size-xl);font-weight:var(--font-weight-black);line-height:1.3;margin:0 0 var(--space-xs);text-shadow:0 1px 3px rgba(0,0,0,.15)}.festival-pitch{font-size:var(--font-size-sm);line-height:1.6;margin:0;opacity:.92}.festival-foods{display:flex;gap:var(--space-sm);margin-top:var(--space-md);overflow-x:auto;padding-bottom:var(--space-xs);position:relative;z-index:1}.festival-food-card{display:flex;align-items:center;gap:var(--space-sm);background:#ffffff2e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);cursor:pointer;transition:transform .2s,background .2s;flex-shrink:0;text-decoration:none;color:inherit}.festival-food-card:hover{transform:translateY(-2px);background:#ffffff47}.festival-food-emoji{font-size:1.6rem}.festival-food-info{display:flex;flex-direction:column;gap:2px}.festival-food-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);white-space:nowrap}.festival-food-savings{font-size:var(--font-size-xs);opacity:.85}.festival-checklist-details{margin-top:var(--space-md);position:relative;z-index:1}.festival-checklist-toggle{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);cursor:pointer;padding:var(--space-sm) var(--space-md);background:#ffffff1f;border-radius:var(--radius-md);display:inline-flex;align-items:center;gap:var(--space-xs);transition:background .2s;list-style:none}.festival-checklist-toggle::-webkit-details-marker{display:none}.festival-checklist-toggle:before{content:"▸";transition:transform .2s;display:inline-block}.festival-checklist-details[open] .festival-checklist-toggle:before{transform:rotate(90deg)}.festival-checklist-toggle:hover{background:#fff3}.festival-checklist{margin-top:var(--space-sm);padding:var(--space-md);background:#ffffff1a;border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-xs)}.festival-tool-item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);cursor:pointer;padding:4px 0}.festival-tool-item.optional{opacity:.9}.festival-tool-item input[type=checkbox]{width:18px;height:18px;accent-color:#fff;cursor:pointer;flex-shrink:0}.festival-tool-name{font-weight:var(--font-weight-bold)}.festival-tool-alt{font-size:var(--font-size-xs);opacity:.75;font-style:italic;margin-left:var(--space-xs)}.festival-culture{margin-top:var(--space-md);padding:var(--space-md);background:#ffffff1a;border-radius:var(--radius-md);display:flex;gap:var(--space-sm);align-items:flex-start;position:relative;z-index:1}.festival-culture-icon{font-size:1.2rem;flex-shrink:0;margin-top:2px}.festival-culture p{margin:0;font-size:var(--font-size-sm);line-height:1.7;opacity:.9}@media(max-width:600px){.festival-banner{padding:var(--space-md)}.festival-banner-header{flex-direction:column;align-items:center;text-align:center}.festival-foods{justify-content:center;flex-wrap:wrap}.festival-culture{flex-direction:column;align-items:center;text-align:center}}.quest-panel{background:var(--color-bg-card);border-radius:var(--radius-lg);border:2px solid var(--color-accent);overflow:hidden;margin-top:var(--space-md);box-shadow:0 4px 20px #00000014}.quest-panel-header{background:linear-gradient(135deg,var(--color-accent),#c4522a);color:#fff;padding:var(--space-sm) var(--space-md);display:flex;align-items:center;gap:var(--space-sm);font-weight:700;font-size:1rem}.quest-panel-icon{font-size:1.3rem}.quest-panel-body{padding:var(--space-md)}.quest-challenge-text{font-size:1.05rem;margin-bottom:var(--space-md);line-height:1.6;color:var(--color-text-primary)}.quest-accept-btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none;border-radius:var(--radius-md);font-weight:700;font-size:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 8px #16a34a4d}.quest-accept-btn:hover{transform:translateY(-2px);box-shadow:0 4px 16px #16a34a66}.quest-accept-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.quest-progress{margin-bottom:var(--space-md)}.quest-progress-steps{display:flex;align-items:center;gap:var(--space-xs);font-size:.9rem;flex-wrap:wrap}.quest-step{padding:var(--space-xs) var(--space-sm);background:var(--bg-muted, #f0f0f0);border-radius:var(--radius-sm);opacity:.6}.quest-step.active{background:var(--accent);color:#fff;opacity:1;font-weight:600}.quest-step-arrow{color:var(--text-muted)}.quest-upload-area{border:2px dashed var(--border-color, #ddd);border-radius:var(--radius-md);padding:var(--space-lg);text-align:center;cursor:pointer;transition:border-color .2s,background .2s}.quest-upload-area:hover{border-color:var(--accent);background:rgba(var(--accent-rgb, 0,0,0),.03)}.quest-upload-label{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);cursor:pointer;color:var(--text-muted);font-size:.95rem}.quest-upload-icon{font-size:2.5rem}.quest-uploading{display:flex;align-items:center;gap:var(--space-sm);justify-content:center;padding:var(--space-md);color:var(--text-muted)}.quest-spinner{width:24px;height:24px;border:3px solid var(--border-color, #ddd);border-top-color:var(--accent);border-radius:50%;animation:quest-spin .8s linear infinite}@keyframes quest-spin{to{transform:rotate(360deg)}}.quest-result{text-align:center;padding:var(--space-md);border-radius:var(--radius-md)}.quest-result-success{background:linear-gradient(135deg,#2ecc711a,#2ecc710d);border:1px solid rgba(46,204,113,.3)}.quest-result-rejected{background:#e74c3c14;border:1px solid rgba(231,76,60,.2)}.quest-result-pending{background:#f1c40f14;border:1px solid rgba(241,196,15,.2)}.quest-result-icon{font-size:2rem}.quest-result-bounce{display:inline-block;animation:quest-bounce .6s ease}@keyframes quest-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.quest-complete-header{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.quest-complete-text{font-size:1.2rem;font-weight:700;color:#2ecc71}.quest-photo-preview{width:120px;height:120px;object-fit:cover;border-radius:var(--radius-md);margin:var(--space-sm) auto;display:block;box-shadow:0 4px 12px #00000026}.quest-xp-earned{margin-top:var(--space-sm)}.quest-xp-badge{display:inline-block;padding:var(--space-xs) var(--space-md);background:linear-gradient(135deg,#f1c40f,#e67e22);color:#fff;border-radius:20px;font-weight:700;font-size:1.1rem;animation:quest-xp-pop .5s ease}@keyframes quest-xp-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.quest-appeal-btn{margin-top:var(--space-sm);padding:var(--space-xs) var(--space-md);background:transparent;border:2px solid #e74c3c;color:#e74c3c;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:background .2s}.quest-appeal-btn:hover{background:#e74c3c1a}.quest-error{color:#e74c3c}.quest-stats-bar{border-top:1px solid var(--border-color, #eee)}.quest-stats{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);flex-wrap:wrap}.quest-stat-item{display:flex;align-items:center;gap:4px;font-size:.85rem}.quest-stat-emoji{font-size:1.1rem}.quest-stat-value{font-weight:700;font-size:1rem}.quest-stat-label{color:var(--text-muted);font-size:.8rem}.quest-stat-xp{flex:1;min-width:120px}.quest-xp-bar-container{width:100%;height:8px;background:var(--bg-muted, #e0e0e0);border-radius:4px;overflow:hidden;margin-bottom:2px}.quest-xp-bar{height:100%;background:linear-gradient(90deg,#f1c40f,#e67e22);border-radius:4px;transition:width .8s ease}.quest-xp-text{font-size:.75rem;color:var(--text-muted)}@media(max-width:600px){.quest-stats{gap:var(--space-sm)}.quest-stat-xp{min-width:80px}}#app{min-height:100vh;display:flex;flex-direction:column}#main-content{flex:1}.page-enter{animation:pageEnter .4s ease}@keyframes pageEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){:root{--font-size-4xl: 2.5rem;--font-size-3xl: 2rem;--font-size-2xl: 1.5rem;--container-padding: var(--space-md);--header-height: 60px}.hero{min-height:320px;padding:var(--space-2xl) var(--space-md)}.hero-decorations span{font-size:1.8rem}.food-grid{grid-template-columns:1fr;gap:var(--space-xl)}.comparison-panel{grid-template-columns:1fr}.header-nav{gap:var(--space-md)}.header-nav-link{display:none}.detail-section{padding:var(--space-lg)}.recipe-tabs{flex-direction:column}.store-grid{grid-template-columns:1fr}.source-item{flex-direction:column;align-items:flex-start}.score-grid{grid-template-columns:repeat(2,1fr)}.search-section{gap:var(--space-sm)}.search-bar{max-width:none}}@media(max-width:480px){:root{--font-size-4xl: 2rem;--font-size-3xl: 1.5rem;--font-size-2xl: 1.25rem}.hero{min-height:360px}.hero-emoji{font-size:3rem}.filter-group{justify-content:center}.food-card-comparison,.ingredients-grid,.score-grid{grid-template-columns:1fr}.recipe-info-bar{flex-direction:column}}@media(hover:hover){.food-card:hover{transform:translateY(-6px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}@media print{.site-header,.site-footer,.theme-toggle,.back-btn,.hero-decorations{display:none!important}.detail-page{margin-top:0}.detail-section{break-inside:avoid;border:1px solid #ccc}}.auth-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease;padding:var(--space-md)}.auth-modal-overlay.closing{animation:fadeOut .2s ease forwards}.auth-modal{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl, 16px);padding:var(--space-2xl, 32px);width:100%;max-width:400px;position:relative;box-shadow:0 24px 48px #0000004d;animation:slideUp .3s ease}.auth-modal-close{position:absolute;top:var(--space-md, 12px);right:var(--space-md, 12px);background:none;border:none;font-size:1.2rem;color:var(--color-text-tertiary);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.auth-modal-close:hover{background:var(--color-bg-secondary)}.auth-modal-header{text-align:center;margin-bottom:var(--space-xl, 24px)}.auth-modal-emoji{font-size:3rem;margin-bottom:var(--space-sm, 8px)}.auth-modal-header h2{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin:0 0 var(--space-xs, 4px)}.auth-modal-desc{font-size:.9rem;color:var(--color-text-secondary);margin:0}.auth-google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-sm, 8px);padding:12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);font-size:.95rem;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:all .2s}.auth-google-btn:hover{background:var(--color-bg-card);border-color:var(--color-text-tertiary);transform:translateY(-1px)}.auth-modal-note{text-align:center;font-size:.75rem;color:var(--color-text-tertiary);margin-top:var(--space-md, 12px);opacity:.8}.auth-divider{display:flex;align-items:center;margin:var(--space-lg, 16px) 0;color:var(--color-text-tertiary);font-size:.8rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.auth-divider span{padding:0 var(--space-md, 12px)}.auth-form{display:flex;flex-direction:column;gap:var(--space-sm, 8px)}.auth-form-group input{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg-card);color:var(--color-text-primary);font-size:.95rem;transition:border-color .2s;box-sizing:border-box}.auth-form-group input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}.auth-form-group input::placeholder{color:var(--color-text-tertiary)}.auth-error{color:#ef4444;font-size:.85rem;padding:var(--space-xs, 4px) 0}.auth-submit-btn{width:100%;padding:12px;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));color:#fff;font-weight:600;font-size:1rem;border:none;border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .2s;margin-top:var(--space-xs, 4px)}.auth-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px var(--color-accent-glow)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-toggle{text-align:center;margin-top:var(--space-lg, 16px);font-size:.85rem;color:var(--color-text-secondary)}.auth-toggle-btn{background:none;border:none;color:var(--color-accent);font-weight:600;cursor:pointer;font-size:.85rem;text-decoration:underline;padding:0}.auth-toggle-btn:hover{color:var(--color-accent-hover)}.header-auth{display:flex;align-items:center;gap:var(--space-sm, 8px)}.header-checkin-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:4px;border-radius:50%;transition:transform .2s,background .2s;line-height:1}.header-checkin-btn:hover{transform:scale(1.15);background:var(--color-bg-secondary)}.header-login-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);color:var(--color-text-secondary);font-size:.85rem;cursor:pointer;transition:all .2s;white-space:nowrap}.header-login-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:#f59e0b0d}.header-user-menu{position:relative}.header-avatar-btn{background:none;border:2px solid transparent;border-radius:50%;cursor:pointer;padding:2px;transition:border-color .2s;display:flex}.header-avatar-btn:hover{border-color:var(--color-accent)}.header-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center;font-size:.9rem}.header-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);box-shadow:0 8px 24px #00000026;min-width:180px;z-index:9999;animation:slideDown .15s ease;overflow:hidden}.header-dropdown-item{display:flex;align-items:center;gap:8px;padding:10px 16px;color:var(--color-text-primary);text-decoration:none;font-size:.9rem;transition:background .15s;cursor:pointer;border:none;background:none;width:100%;text-align:left}.header-dropdown-item:hover{background:var(--color-bg-secondary)}.header-dropdown-divider{height:1px;background:var(--color-border);margin:4px 0}.header-dropdown-item.logout{color:#ef4444}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:600}.badge-bronze{background:linear-gradient(135deg,#cd7f32,sienna);color:#fff}.badge-silver{background:linear-gradient(135deg,silver,#a8a8a8);color:#333}.badge-gold{background:linear-gradient(135deg,gold,#daa520);color:#333}.auth-confirm-sent{text-align:center;padding:var(--space-xl) 0;animation:fadeIn .3s ease}.auth-confirm-icon{font-size:3.5rem;margin-bottom:var(--space-md);filter:drop-shadow(0 2px 6px rgba(0,0,0,.15))}.auth-confirm-sent h3{font-size:var(--font-size-xl);color:var(--color-text-primary);margin-bottom:var(--space-sm)}.auth-confirm-sent p{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-xl);max-width:320px;margin-left:auto;margin-right:auto}.login-prompt-banner{margin-top:var(--space-xl);padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-lg);background:var(--color-bg-secondary);border:1px dashed var(--color-border);transition:background var(--transition-theme),border-color var(--transition-theme)}.login-prompt-content{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}.login-prompt-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:2px}.login-prompt-desc{font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:1.4}.login-prompt-btn{flex-shrink:0;padding:8px 20px;border-radius:var(--radius-pill);background:transparent;border:1px solid var(--color-accent);color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.login-prompt-btn:hover{background:var(--color-accent);color:#fff;transform:translateY(-1px)}@media(max-width:480px){.auth-modal{padding:var(--space-xl, 24px) var(--space-lg, 16px);border-radius:var(--radius-lg, 12px)}.auth-modal-emoji{font-size:2.5rem}.auth-modal-header h2{font-size:1.25rem}.login-prompt-content{flex-direction:column;text-align:center}}.checkin-modal{max-width:380px;text-align:center}.checkin-success{padding:var(--space-md) 0}.checkin-emoji{font-size:3.5rem;animation:bounceIn .5s cubic-bezier(.34,1.56,.64,1)}.checkin-success h2{font-size:var(--font-size-xl);margin:var(--space-sm) 0;color:var(--color-text-primary)}.checkin-streak{display:flex;align-items:baseline;justify-content:center;gap:var(--space-xs);margin:var(--space-md) 0}.checkin-streak-number{font-size:3rem;font-weight:var(--font-weight-black);background:linear-gradient(135deg,var(--color-accent),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.checkin-streak-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.checkin-xp-gain{display:inline-block;padding:4px 16px;border-radius:var(--radius-pill);background:var(--color-success-light);color:var(--color-success);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.checkin-level-bar{margin:var(--space-md) 0}.checkin-level-label{display:flex;justify-content:space-between;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.checkin-level-progress{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.checkin-fun-fact{margin-top:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);text-align:left}.checkin-fun-fact-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-secondary);margin-bottom:var(--space-xs)}.checkin-fun-fact p{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6;margin:0}.checkin-new-achievements{margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:linear-gradient(135deg,#ffd7001a,#ffd7000d);border:1px solid rgba(255,215,0,.3)}.checkin-new-badge-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-secondary);margin-bottom:var(--space-xs)}.checkin-badge-item{font-size:var(--font-size-sm);padding:4px 0}.checkin-badge-xp{color:var(--color-success);font-weight:600;font-size:var(--font-size-xs)}.checkin-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(20px);background:var(--color-bg-elevated);color:var(--color-text-primary);padding:12px 24px;border-radius:var(--radius-pill);box-shadow:var(--shadow-lg);font-size:var(--font-size-sm);opacity:0;transition:all .3s ease;z-index:10001;border:1px solid var(--color-border)}.checkin-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.level-progress-track{height:8px;border-radius:4px;background:var(--color-bg-secondary);overflow:hidden;border:1px solid var(--color-border-light)}.level-progress-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--color-accent),var(--color-secondary));transition:width .6s cubic-bezier(.34,1.56,.64,1);min-width:2px}.level-progress-fill--green{background:linear-gradient(90deg,var(--color-success),#2ECC71)}.comment-section{margin-top:var(--space-2xl)}.comment-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-xs)}.comment-section-desc{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:0 0 var(--space-md)}.comment-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-md);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.comment-tabs::-webkit-scrollbar{display:none}.comment-tab{padding:6px 14px;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.comment-tab:hover{border-color:var(--color-accent);color:var(--color-accent)}.comment-tab.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.comment-input-area{margin-bottom:var(--space-lg);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-card);overflow:hidden}.comment-input-type-row{padding:var(--space-sm) var(--space-sm) 0}.comment-type-select{padding:4px 8px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.comment-input-area textarea{width:100%;padding:var(--space-sm) var(--space-md);border:none;background:transparent;color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:var(--font-family);resize:vertical;min-height:60px;line-height:1.6;box-sizing:border-box}.comment-input-area textarea:focus{outline:none}.comment-input-area textarea::placeholder{color:var(--color-text-tertiary)}.comment-input-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--color-border-light)}.comment-char-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.comment-submit-btn{padding:6px 20px;border-radius:var(--radius-pill);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));color:#fff;border:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.comment-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px var(--color-accent-glow)}.comment-submit-btn:disabled{opacity:.6;cursor:not-allowed}.comment-list{display:flex;flex-direction:column;gap:var(--space-md)}.comment-empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.comment-item{padding:var(--space-md);border-radius:var(--radius-md);background:var(--color-bg-card);border:1px solid var(--color-border);transition:box-shadow var(--transition-fast)}.comment-item:hover{box-shadow:var(--shadow-sm)}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.comment-author{display:flex;align-items:center;gap:var(--space-sm)}.comment-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center;font-size:.85rem}.comment-avatar img{width:100%;height:100%;object-fit:cover}.comment-author-name{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);color:var(--color-text-primary)}.comment-author-level{display:block;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.comment-meta{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.comment-type-badge{font-size:.85rem}.comment-body{display:flex;flex-direction:column;gap:var(--space-sm)}.comment-original{display:flex;gap:var(--space-sm)}.comment-lang-flag{flex-shrink:0;font-size:.9rem;margin-top:2px}.comment-original p,.comment-translation p{margin:0;font-size:var(--font-size-sm);line-height:1.6;color:var(--color-text-primary)}.comment-translation{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:var(--color-bg-secondary);border-left:3px solid var(--color-info)}.comment-translation-label{font-size:var(--font-size-xs);color:var(--color-info);font-weight:var(--font-weight-bold);margin-bottom:4px}.comment-translation p{color:var(--color-text-secondary)}.comment-actions{margin-top:var(--space-sm);display:flex;gap:var(--space-sm)}.comment-like-btn{display:flex;align-items:center;gap:4px;padding:4px 12px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:transparent;color:var(--color-text-tertiary);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast)}.comment-like-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.comment-like-btn.liked{background:var(--color-accent-light);border-color:var(--color-accent);color:var(--color-accent)}.reward-panel{display:flex;flex-direction:column;gap:var(--space-lg)}.reward-panel-guest{text-align:center;padding:var(--space-2xl);background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px dashed var(--color-border)}.reward-guest-icon{font-size:3rem;margin-bottom:var(--space-sm)}.reward-panel-guest h3{font-size:var(--font-size-lg);color:var(--color-text-primary);margin:0 0 var(--space-xs)}.reward-panel-guest p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.reward-level-card{padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--color-bg-card);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.reward-level-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.reward-level-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.reward-level-num{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.reward-xp-label{text-align:right;font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-xs)}.reward-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm)}.reward-stat{text-align:center;padding:var(--space-md);border-radius:var(--radius-md);background:var(--color-bg-card);border:1px solid var(--color-border)}.reward-stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.reward-stat-savings .reward-stat-value{color:var(--color-success)}.reward-stat-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.reward-progress-section{padding:var(--space-md);border-radius:var(--radius-md);background:var(--color-bg-card);border:1px solid var(--color-border)}.reward-progress-header{display:flex;justify-content:space-between;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.reward-progress-count{font-weight:var(--font-weight-bold);color:var(--color-success)}.reward-achievements h4{font-size:var(--font-size-md);margin:0 0 var(--space-sm)}.reward-badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--space-sm)}.reward-badge{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--space-md) var(--space-sm);border-radius:var(--radius-md);background:var(--color-bg-card);border:1px solid var(--color-border);transition:all var(--transition-fast)}.reward-badge.earned{border-color:var(--color-secondary);background:linear-gradient(135deg,#ffd7000d,#ffd70005)}.reward-badge.locked{opacity:.5;filter:grayscale(.8)}.reward-badge-icon{font-size:1.5rem}.reward-badge-name{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-align:center;line-height:1.3}.reward-leaderboard h4{font-size:var(--font-size-md);margin:0 0 var(--space-sm)}.reward-leaderboard-list{display:flex;flex-direction:column;gap:var(--space-xs)}.reward-leaderboard-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-bg-card);border:1px solid var(--color-border);font-size:var(--font-size-sm)}.reward-leaderboard-item.is-me{border-color:var(--color-accent);background:var(--color-accent-light)}.reward-lb-rank{font-size:1.1rem;min-width:24px}.reward-lb-name{font-weight:var(--font-weight-medium);flex:1}.reward-lb-title{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.reward-lb-savings{font-weight:var(--font-weight-bold);color:var(--color-success)}.made-this-cta{text-align:center;padding:var(--space-lg) 0}.made-this-btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:12px 32px;border-radius:var(--radius-pill);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));color:#fff;border:none;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);cursor:pointer;transition:all .2s ease;box-shadow:0 4px 16px var(--color-accent-glow)}.made-this-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px var(--color-accent-glow)}.made-this-btn:disabled{opacity:.7;cursor:not-allowed}.made-this-icon{font-size:1.2em}.made-this-success{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-success);animation:bounceIn .5s ease}.made-this-check{font-size:1.5rem}.made-this-xp{display:inline-block;padding:2px 10px;border-radius:var(--radius-pill);background:#2ecc7126;color:var(--color-success);font-size:var(--font-size-sm);font-weight:600}.share-bar{display:flex;gap:var(--space-sm);flex-wrap:wrap}.share-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.share-btn svg{flex-shrink:0}.share-btn:hover{transform:translateY(-1px)}.share-btn--line{border-color:#06c755;color:#06c755}.share-btn--line:hover{background:#06c755;color:#fff;box-shadow:0 4px 12px #06c7554d}.share-btn--fb{border-color:#1877f2;color:#1877f2}.share-btn--fb:hover{background:#1877f2;color:#fff;box-shadow:0 4px 12px #1877f24d}.share-btn--x{border-color:var(--color-text-tertiary);color:var(--color-text-primary)}.share-btn--x:hover{background:var(--color-text-primary);color:var(--color-bg-card)}.share-btn--copy{border-color:var(--color-border)}.share-btn--copy:hover{border-color:var(--color-accent);color:var(--color-accent)}.share-btn--copied{border-color:var(--color-success)!important;color:var(--color-success)!important;background:color-mix(in srgb,var(--color-success) 8%,var(--color-bg-card))}.share-popup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease}.share-popup{background:var(--color-bg-elevated);border-radius:var(--radius-xl);padding:var(--space-xl) var(--space-2xl);max-width:380px;width:90%;text-align:center;box-shadow:var(--shadow-xl);border:1px solid var(--color-border);animation:bounceIn .4s ease}.share-popup-icon{font-size:3rem;margin-bottom:var(--space-sm)}.share-popup-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-black);color:var(--color-text-primary);margin-bottom:var(--space-xs)}.share-popup-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-md)}.share-popup-xp{display:inline-block;padding:4px 16px;border-radius:var(--radius-pill);background:#2ecc7126;color:var(--color-success);font-weight:700;font-size:var(--font-size-sm);margin-bottom:var(--space-lg);animation:pulse 2s infinite}.share-popup-login-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-bg-secondary);border:1px dashed var(--color-border);margin-bottom:var(--space-lg)}.share-popup-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.share-popup-btn{padding:12px 24px;border-radius:var(--radius-pill);border:none;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);cursor:pointer;transition:all .2s ease}.share-popup-btn--share{background:linear-gradient(135deg,#06c755,#04b34b);color:#fff;box-shadow:0 4px 16px #06c7554d}.share-popup-btn--share:hover{transform:translateY(-2px);box-shadow:0 6px 20px #06c75566}.share-popup-btn--skip{background:transparent;color:var(--color-text-tertiary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.share-popup-btn--skip:hover{color:var(--color-text-secondary)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes bounceIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.1)}70%{transform:scale(.9)}to{transform:scale(1);opacity:1}}@media(max-width:480px){.reward-stats-row{grid-template-columns:repeat(2,1fr)}.reward-badge-grid{grid-template-columns:repeat(3,1fr)}.comment-tabs{gap:var(--space-2xs)}}.cooking-mode{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#0a0a0c;color:#f0ece6;display:flex;flex-direction:column;animation:cmFadeIn .3s ease;font-family:var(--font-family, "Noto Sans TC", sans-serif);user-select:none;-webkit-user-select:none}.cooking-mode.cm-closing{animation:cmFadeOut .3s ease forwards}.cm-top-bar{padding:12px 20px;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.cm-recipe-name{font-size:.85rem;color:#f0ece680;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cm-progress{display:flex;align-items:center;gap:12px}.cm-progress-track{flex:1;height:4px;border-radius:2px;background:#ffffff1a;overflow:hidden}.cm-progress-fill{height:100%;background:linear-gradient(90deg,#ff7654,#ffb347);border-radius:2px;transition:width .4s ease}.cm-progress-label{font-size:.8rem;color:#f0ece699;font-weight:600;min-width:40px;text-align:right;font-variant-numeric:tabular-nums}.cm-touch-zone{flex:1;position:relative;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:0 16px}.cm-hint{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#ffffff26;transition:color .2s;pointer-events:none}.cm-touch-zone:active .cm-hint{color:#fff6}.cm-hint-icon{font-size:1.2rem}.cm-step-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:85%;max-width:600px;text-align:center;pointer-events:none;z-index:1}.cm-step-animate{animation:cmStepIn .35s ease}.cm-step-number{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#ff7654,#ff9070);color:#fff;font-size:1.3rem;font-weight:800;margin-bottom:20px;box-shadow:0 4px 20px #ff76544d}.cm-step-text{font-size:1.4rem;line-height:1.8;font-weight:500;color:#f0ece6;letter-spacing:.02em}.cm-step-tip{margin-top:16px;padding:12px 16px;border-radius:12px;background:#ffb74d1a;border:1px solid rgba(255,183,77,.2);font-size:.9rem;line-height:1.6;color:#ffb74d}.cm-timer-section{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 0;flex-shrink:0}.cm-timer-icon{font-size:1.3rem}.cm-timer-display{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums;color:#ffb347;letter-spacing:.05em}.cm-timer-display.cm-timer-done{color:#2ecc71;animation:cmPulse .5s ease}.cm-timer-toggle{width:40px;height:40px;border-radius:50%;border:2px solid rgba(255,179,71,.4);background:transparent;color:#ffb347;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.cm-timer-toggle:hover{background:#ffb3471a}.cm-hint-finish{text-align:center;font-size:1.3rem;padding:16px;color:#2ecc71;font-weight:600;animation:cmPulse .6s ease}.cm-controls{display:flex;justify-content:center;align-items:center;gap:12px;padding:16px 20px;padding-bottom:max(16px,env(safe-area-inset-bottom));flex-shrink:0;border-top:1px solid rgba(255,255,255,.06)}.cm-ctrl-btn{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;color:#f0ece6b3;font-size:1.1rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.cm-ctrl-btn:hover{background:#ffffff1a;color:#f0ece6}.cm-ctrl-btn:active{transform:scale(.92)}.cm-ctrl-voice.cm-voice-active{background:#ff3b3033;border-color:#ff3b3080;color:#ff3b30;animation:cmPulse 1.5s ease infinite}.cm-ctrl-help{width:36px;height:36px;font-size:.9rem}.cm-voice-feedback{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.8);background:#000000d9;color:#ffb347;padding:16px 32px;border-radius:16px;font-size:1.2rem;font-weight:600;opacity:0;transition:all .2s ease;z-index:10002;pointer-events:none}.cm-voice-feedback.cm-feedback-show{opacity:1;transform:translate(-50%,-50%) scale(1)}.cm-ingredients-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10001;background:#000000b3;display:flex;align-items:flex-end;justify-content:center;animation:cmFadeIn .2s ease}.cm-ingredients-panel{background:#1a1814;border-radius:20px 20px 0 0;padding:24px;max-height:60vh;width:100%;max-width:500px;overflow-y:auto;animation:cmSlideUp .3s ease;position:relative}.cm-ingredients-title{font-size:1.1rem;font-weight:700;margin-bottom:16px;color:#f0ece6}.cm-ingredients-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.cm-ingredients-list li{padding:8px 12px;border-radius:8px;background:#ffffff0d;font-size:.95rem;color:#f0ece6d9}.cm-ingredients-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;border:none;background:#ffffff1a;color:#f0ece6;font-size:1rem;cursor:pointer}.cm-onboarding{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10003;background:#000000eb;display:flex;align-items:center;justify-content:center;animation:cmFadeIn .3s ease;padding:24px}.cm-onboarding.cm-onboarding-closing{animation:cmFadeOut .3s ease forwards}.cm-onboarding-content{max-width:400px;width:100%;text-align:center}.cm-onboarding-title{font-size:1.6rem;font-weight:800;margin-bottom:8px;color:#f0ece6}.cm-onboarding-subtitle{font-size:.9rem;color:#f0ece680;margin-bottom:32px}.cm-onboarding-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:28px}.cm-onboarding-item{padding:20px 12px;border-radius:16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08)}.cm-onboarding-icon{font-size:2rem;margin-bottom:8px}.cm-onboarding-label{font-size:.8rem;color:#f0ece6b3;line-height:1.5}.cm-onboarding-voice-cmds{padding:16px;border-radius:12px;background:#ff765414;border:1px solid rgba(255,118,84,.15);margin-bottom:24px}.cm-onboarding-voice-title{font-size:.75rem;font-weight:700;color:#ff9070;text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}.cm-onboarding-voice-row{display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 0;font-size:.9rem;color:#f0ece6b3}.cm-voice-cmd{padding:2px 10px;border-radius:6px;background:#ff765426;color:#ff9070;font-weight:600;font-size:.85rem}.cm-voice-arrow{color:#f0ece64d}.cm-onboarding-start{padding:14px 48px;border-radius:50px;border:none;background:linear-gradient(135deg,#ff7654,#ff9070);color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 4px 20px #ff76544d}.cm-onboarding-start:hover{transform:translateY(-2px);box-shadow:0 6px 24px #ff765466}@keyframes cmFadeIn{0%{opacity:0}to{opacity:1}}@keyframes cmFadeOut{0%{opacity:1}to{opacity:0}}@keyframes cmStepIn{0%{opacity:0;transform:translate(-50%,-50%) translateY(20px)}to{opacity:1;transform:translate(-50%,-50%) translateY(0)}}@keyframes cmSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes cmPulse{0%,to{opacity:1}50%{opacity:.6}}@media(max-width:480px){.cm-step-text{font-size:1.2rem;line-height:1.9}.cm-step-number{width:40px;height:40px;font-size:1.1rem}.cm-ctrl-btn{width:44px;height:44px}.cm-controls{gap:8px}.cm-onboarding-grid{gap:10px}.cm-onboarding-item{padding:14px 8px}}.cooking-start-btn{background:linear-gradient(135deg,#ff7654,#ff9070)!important;color:#fff!important;border-color:transparent!important}.cooking-start-btn:hover{box-shadow:0 4px 16px #ff76544d;transform:translateY(-1px)}@media(min-width:768px){.cm-step-text{font-size:1.8rem}.cm-step-number{width:56px;height:56px;font-size:1.5rem}}
