{"id":1213,"date":"2025-10-22T16:35:44","date_gmt":"2025-10-22T23:35:44","guid":{"rendered":"https:\/\/brianbaker.net\/blog\/?p=1213"},"modified":"2025-10-24T08:26:36","modified_gmt":"2025-10-24T15:26:36","slug":"chicken-soup","status":"publish","type":"post","link":"https:\/\/brianbaker.net\/blog\/2025\/10\/22\/chicken-soup\/","title":{"rendered":"Chicken Soup"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Ultimate Homemade Chicken Soup Recipe | Comfort Food Classic<\/title>\n    <meta name=\"description\" content=\"Learn to make the perfect homemade chicken soup with our interactive recipe guide. Includes step-by-step instructions, nutritional info, and chef's tips.\">\n    \n    <!-- SEO Structured Data (JSON-LD Schema) -->\n    <script type=\"application\/ld+json\">\n    {\n      \"@context\": \"https:\/\/schema.org\/\",\n      \"@type\": \"Recipe\",\n      \"name\": \"Classic Homemade Chicken Soup\",\n      \"image\": \"https:\/\/images.unsplash.com\/photo-1588566565463-180a5b2090d2?w=1200&q=80\",\n      \"author\": {\n        \"@type\": \"Person\",\n        \"name\": \"MiniMax Agent\"\n      },\n      \"datePublished\": \"2025-10-22\",\n      \"description\": \"A warming, nourishing chicken soup made with tender chicken, fresh vegetables, and aromatic herbs. Perfect for cold days or when you need comfort food.\",\n      \"prepTime\": \"PT20M\",\n      \"cookTime\": \"PT60M\",\n      \"totalTime\": \"PT80M\",\n      \"recipeYield\": \"6 servings\",\n      \"recipeCategory\": \"Soup\",\n      \"recipeCuisine\": \"American\",\n      \"keywords\": \"chicken soup, homemade soup, comfort food, healthy soup\",\n      \"nutrition\": {\n        \"@type\": \"NutritionInformation\",\n        \"calories\": \"285 calories\",\n        \"proteinContent\": \"28g\",\n        \"carbohydrateContent\": \"22g\",\n        \"fatContent\": \"9g\"\n      },\n      \"recipeIngredient\": [\n        \"1.5 kg whole chicken\",\n        \"3 medium carrots\",\n        \"3 celery stalks\",\n        \"1 large onion\",\n        \"4 garlic cloves\",\n        \"2.5 liters chicken broth\",\n        \"2 bay leaves\",\n        \"1 tsp dried thyme\",\n        \"200g egg noodles\",\n        \"2 tbsp fresh parsley\",\n        \"Salt and pepper to taste\",\n        \"2 tbsp olive oil\"\n      ],\n      \"recipeInstructions\": [\n        {\n          \"@type\": \"HowToStep\",\n          \"text\": \"Prepare all vegetables by dicing carrots, celery, and onion. Mince garlic cloves.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"text\": \"In a large pot, heat olive oil and saut\u00e9 onions until translucent.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"text\": \"Add chicken, broth, and vegetables. Bring to a boil then simmer for 45 minutes.\"\n        }\n      ],\n      \"aggregateRating\": {\n        \"@type\": \"AggregateRating\",\n        \"ratingValue\": \"4.8\",\n        \"ratingCount\": \"324\"\n      }\n    }\n    <\/script>\n    \n    <!-- Google Fonts -->\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800&#038;display=swap\" rel=\"stylesheet\">\n    \n    <style>\n        \/* ===== CSS VARIABLES & RESET ===== *\/\n        :root {\n            \/* Colors *\/\n            --amber-50: #FFF8ED;\n            --amber-100: #FFE8C5;\n            --amber-500: #F59E0B;\n            --amber-600: #D97706;\n            --amber-700: #D97706;\n            --amber-900: #92400E;\n            --neutral-50: #FAFAFA;\n            --neutral-100: #F5F5F5;\n            --neutral-200: #E5E5E5;\n            --neutral-300: #D4D4D4;\n            --neutral-400: #A3A3A3;\n            --neutral-500: #737373;\n            --neutral-600: #525252;\n            --neutral-700: #404040;\n            --neutral-800: #262626;\n            --neutral-900: #171717;\n            --success: #10B981;\n            --warning: #F59E0B;\n            --warning-100: #FEF3C7;\n            --warning-900: #78350F;\n            --error: #EF4444;\n            --info: #3B82F6;\n            --info-50: #EFF6FF;\n            \n            \/* Spacing *\/\n            --space-xs: 8px;\n            --space-sm: 16px;\n            --space-md: 24px;\n            --space-lg: 32px;\n            --space-xl: 48px;\n            --space-xxl: 64px;\n            --space-xxxl: 96px;\n            \n            \/* Border Radius *\/\n            --radius-sm: 8px;\n            --radius-md: 12px;\n            --radius-lg: 16px;\n            \n            \/* Shadows *\/\n            --shadow-sm: 0 2px 8px rgba(245, 158, 11, 0.08);\n            --shadow-md: 0 4px 16px rgba(245, 158, 11, 0.10);\n            --shadow-lg: 0 8px 24px rgba(245, 158, 11, 0.12);\n            --shadow-hover: 0 12px 32px rgba(245, 158, 11, 0.15);\n        }\n        \n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n        \n        body {\n            font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;\n            font-size: 18px;\n            line-height: 1.7;\n            color: var(--neutral-800);\n            background: var(--neutral-50);\n            -webkit-font-smoothing: antialiased;\n        }\n        \n        \/* ===== PROGRESS TRACKER ===== *\/\n        .progress-tracker {\n            position: fixed;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 4px;\n            background: var(--neutral-200);\n            z-index: 1000;\n        }\n        \n        .progress-fill {\n            height: 100%;\n            background: var(--amber-500);\n            width: 0%;\n            transition: width 300ms ease;\n        }\n        \n        \/* ===== SKIP LINK (Accessibility) ===== *\/\n        .skip-link {\n            position: absolute;\n            top: -40px;\n            left: 0;\n            background: var(--amber-500);\n            color: white;\n            padding: 8px;\n            z-index: 2000;\n            text-decoration: none;\n            font-weight: 600;\n        }\n        \n        .skip-link:focus {\n            top: 0;\n        }\n        \n        \/* ===== HERO SECTION ===== *\/\n        .hero {\n            position: relative;\n            height: 520px;\n            width: 100%;\n            overflow: hidden;\n            display: flex;\n            align-items: center;\n            background: linear-gradient(90deg, #FFFFFF 0%, rgba(255,255,255,0.85) 45%, transparent 100%),\n                        url('https:\/\/images.unsplash.com\/photo-1588566565463-180a5b2090d2?w=1200&q=80') center\/cover;\n        }\n        \n        .hero-content {\n            max-width: 1200px;\n            margin: 0 auto;\n            padding: var(--space-xxxl) var(--space-xxl);\n            width: 100%;\n        }\n        \n        .hero h1 {\n            font-size: 56px;\n            font-weight: 800;\n            line-height: 1.2;\n            color: var(--neutral-900);\n            margin-bottom: var(--space-sm);\n            max-width: 560px;\n        }\n        \n        .hero-description {\n            font-size: 18px;\n            color: var(--neutral-600);\n            max-width: 560px;\n            margin-bottom: var(--space-lg);\n        }\n        \n        .badge-row {\n            display: flex;\n            gap: var(--space-sm);\n            flex-wrap: wrap;\n        }\n        \n        .badge {\n            display: inline-flex;\n            align-items: center;\n            gap: var(--space-xs);\n            height: 40px;\n            padding: 0 var(--space-sm);\n            background: var(--amber-100);\n            color: var(--amber-900);\n            border-radius: var(--radius-sm);\n            font-size: 14px;\n            font-weight: 600;\n        }\n        \n        .badge svg {\n            width: 16px;\n            height: 16px;\n        }\n        \n        \/* ===== MAIN LAYOUT ===== *\/\n        .container {\n            max-width: 1200px;\n            margin: 0 auto;\n            padding: var(--space-xxl) var(--space-md);\n            display: grid;\n            grid-template-columns: 1fr 320px;\n            gap: var(--space-xl);\n        }\n        \n        .main-content {\n            min-width: 0;\n        }\n        \n        \/* ===== STICKY SUMMARY CARD ===== *\/\n        .sticky-summary {\n            position: sticky;\n            top: 120px;\n            height: fit-content;\n            background: white;\n            border-radius: var(--radius-lg);\n            padding: var(--space-lg);\n            box-shadow: var(--shadow-lg);\n            border: 1px solid var(--neutral-100);\n        }\n        \n        .sticky-summary h3 {\n            font-size: 20px;\n            font-weight: 700;\n            margin-bottom: var(--space-md);\n            color: var(--neutral-900);\n        }\n        \n        .calorie-display {\n            font-size: 48px;\n            font-weight: 700;\n            color: var(--neutral-900);\n            margin-bottom: var(--space-xs);\n        }\n        \n        .calorie-label {\n            font-size: 14px;\n            color: var(--neutral-500);\n            margin-bottom: var(--space-md);\n        }\n        \n        .metadata-row {\n            display: flex;\n            justify-content: space-between;\n            font-size: 14px;\n            margin-bottom: 12px;\n        }\n        \n        .metadata-label {\n            color: var(--neutral-500);\n        }\n        \n        .metadata-value {\n            font-weight: 600;\n            color: var(--neutral-800);\n        }\n        \n        .dietary-tags {\n            display: flex;\n            flex-wrap: wrap;\n            gap: var(--space-xs);\n            margin: var(--space-md) 0;\n        }\n        \n        .tag {\n            background: var(--amber-100);\n            color: var(--amber-900);\n            padding: 6px 12px;\n            border-radius: var(--radius-sm);\n            font-size: 12px;\n            font-weight: 600;\n        }\n        \n        .equipment-list {\n            margin-top: var(--space-md);\n        }\n        \n        .equipment-list h4 {\n            font-size: 14px;\n            font-weight: 600;\n            margin-bottom: var(--space-sm);\n            color: var(--neutral-700);\n        }\n        \n        .equipment-item {\n            display: flex;\n            align-items: center;\n            gap: var(--space-xs);\n            margin-bottom: var(--space-xs);\n            font-size: 14px;\n        }\n        \n        .equipment-checkbox {\n            width: 20px;\n            height: 20px;\n            border: 2px solid var(--neutral-300);\n            border-radius: 4px;\n            cursor: pointer;\n        }\n        \n        \/* ===== SECTION CARD ===== *\/\n        .section-card {\n            background: white;\n            border-radius: var(--radius-lg);\n            padding: var(--space-lg);\n            box-shadow: var(--shadow-md);\n            margin-bottom: var(--space-xl);\n        }\n        \n        .section-card h2 {\n            font-size: 36px;\n            font-weight: 700;\n            line-height: 1.3;\n            color: var(--neutral-900);\n            margin-bottom: var(--space-md);\n        }\n        \n        .section-card h3 {\n            font-size: 24px;\n            font-weight: 600;\n            line-height: 1.4;\n            color: var(--neutral-800);\n            margin-bottom: var(--space-sm);\n        }\n        \n        \/* ===== CONTROLS ===== *\/\n        .controls {\n            display: flex;\n            gap: var(--space-sm);\n            margin-bottom: var(--space-lg);\n            flex-wrap: wrap;\n        }\n        \n        .btn-primary {\n            height: 48px;\n            padding: 0 var(--space-md);\n            background: var(--amber-500);\n            color: white;\n            border: none;\n            border-radius: var(--radius-md);\n            font-size: 16px;\n            font-weight: 600;\n            cursor: pointer;\n            box-shadow: var(--shadow-md);\n            transition: all 250ms ease-out;\n            display: inline-flex;\n            align-items: center;\n            gap: var(--space-xs);\n            font-family: inherit;\n        }\n        \n        .btn-primary:hover {\n            background: var(--amber-600);\n            box-shadow: var(--shadow-hover);\n            transform: translateY(-2px) scale(1.01);\n        }\n        \n        .btn-primary:active {\n            transform: scale(0.98);\n            box-shadow: var(--shadow-sm);\n        }\n        \n        .btn-primary:focus {\n            outline: 2px solid var(--amber-500);\n            outline-offset: 2px;\n        }\n        \n        .btn-secondary {\n            height: 48px;\n            padding: 0 var(--space-md);\n            background: white;\n            color: var(--amber-700);\n            border: 2px solid var(--amber-500);\n            border-radius: var(--radius-md);\n            font-size: 16px;\n            font-weight: 600;\n            cursor: pointer;\n            transition: all 250ms ease-out;\n            display: inline-flex;\n            align-items: center;\n            gap: var(--space-xs);\n            font-family: inherit;\n        }\n        \n        .btn-secondary:hover {\n            background: var(--amber-50);\n        }\n        \n        .btn-secondary:focus {\n            outline: 2px solid var(--amber-500);\n            outline-offset: 2px;\n        }\n        \n        \/* ===== SERVING SIZE ADJUSTER ===== *\/\n        .serving-adjuster {\n            display: inline-flex;\n            align-items: center;\n            gap: var(--space-sm);\n            background: var(--neutral-50);\n            padding: var(--space-sm);\n            border-radius: var(--radius-md);\n            margin-bottom: var(--space-md);\n        }\n        \n        .serving-adjuster button {\n            width: 36px;\n            height: 36px;\n            border: none;\n            background: var(--amber-500);\n            color: white;\n            border-radius: 50%;\n            cursor: pointer;\n            font-size: 20px;\n            font-weight: 700;\n            transition: all 200ms;\n        }\n        \n        .serving-adjuster button:hover {\n            background: var(--amber-600);\n            transform: scale(1.05);\n        }\n        \n        .serving-count {\n            font-size: 20px;\n            font-weight: 700;\n            min-width: 60px;\n            text-align: center;\n        }\n        \n        \/* ===== UNIT TOGGLE ===== *\/\n        .unit-toggle {\n            display: inline-flex;\n            background: var(--neutral-100);\n            border-radius: var(--radius-md);\n            padding: 4px;\n            gap: 4px;\n        }\n        \n        .unit-toggle button {\n            padding: 12px 20px;\n            background: transparent;\n            border: none;\n            border-radius: var(--radius-sm);\n            font-size: 16px;\n            font-weight: 600;\n            color: var(--neutral-600);\n            cursor: pointer;\n            transition: all 200ms;\n            font-family: inherit;\n        }\n        \n        .unit-toggle button.active {\n            background: white;\n            color: var(--neutral-900);\n            box-shadow: var(--shadow-sm);\n        }\n        \n        \/* ===== INGREDIENTS LIST ===== *\/\n        .ingredients-list {\n            list-style: none;\n        }\n        \n        .ingredient-item {\n            display: flex;\n            align-items: flex-start;\n            gap: 12px;\n            padding: var(--space-sm) 0;\n            border-bottom: 1px solid var(--neutral-100);\n            transition: background 200ms;\n        }\n        \n        .ingredient-item:hover {\n            background: var(--neutral-50);\n        }\n        \n        .ingredient-checkbox {\n            width: 24px;\n            height: 24px;\n            min-width: 24px;\n            border: 2px solid var(--neutral-300);\n            border-radius: 6px;\n            cursor: pointer;\n            position: relative;\n            transition: all 200ms ease;\n            background: white;\n        }\n        \n        .ingredient-checkbox.checked {\n            background: var(--amber-500);\n            border-color: var(--amber-500);\n        }\n        \n        .ingredient-checkbox.checked::after {\n            content: \"\";\n            position: absolute;\n            left: 7px;\n            top: 3px;\n            width: 6px;\n            height: 11px;\n            border: solid white;\n            border-width: 0 2px 2px 0;\n            transform: rotate(45deg);\n        }\n        \n        .ingredient-text {\n            flex: 1;\n            font-size: 18px;\n            transition: all 200ms;\n        }\n        \n        .ingredient-text.checked {\n            text-decoration: line-through;\n            color: var(--neutral-400);\n        }\n        \n        .ingredient-amount {\n            font-weight: 600;\n        }\n        \n        .substitution-icon {\n            width: 20px;\n            height: 20px;\n            color: var(--info);\n            cursor: help;\n            position: relative;\n        }\n        \n        .substitution-tooltip {\n            display: none;\n            position: absolute;\n            top: 30px;\n            right: 0;\n            background: var(--neutral-900);\n            color: white;\n            padding: var(--space-sm);\n            border-radius: var(--radius-sm);\n            font-size: 14px;\n            width: 250px;\n            z-index: 100;\n            box-shadow: var(--shadow-lg);\n        }\n        \n        .substitution-icon:hover .substitution-tooltip {\n            display: block;\n        }\n        \n        \/* ===== STEP CARDS ===== *\/\n        .steps-container {\n            position: relative;\n        }\n        \n        .step-card {\n            position: relative;\n            background: white;\n            border-radius: var(--radius-lg);\n            padding: var(--space-lg);\n            box-shadow: var(--shadow-md);\n            margin-bottom: var(--space-md);\n            border-left: 4px solid transparent;\n            transition: all 300ms;\n            padding-left: 60px;\n        }\n        \n        .step-card.active {\n            border-left-color: var(--amber-500);\n            box-shadow: var(--shadow-lg);\n        }\n        \n        .step-number {\n            position: absolute;\n            left: -24px;\n            top: var(--space-lg);\n            width: 48px;\n            height: 48px;\n            background: var(--amber-100);\n            color: var(--amber-900);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-size: 24px;\n            font-weight: 700;\n        }\n        \n        .step-card h3 {\n            font-size: 20px;\n            margin-bottom: var(--space-sm);\n        }\n        \n        .step-instruction {\n            margin-bottom: var(--space-md);\n            line-height: 1.7;\n        }\n        \n        .step-tip {\n            background: var(--info-50);\n            padding: var(--space-sm);\n            border-radius: var(--radius-sm);\n            font-size: 16px;\n            margin-top: var(--space-sm);\n            display: none;\n        }\n        \n        .step-tip.show {\n            display: block;\n        }\n        \n        .tip-toggle {\n            color: var(--info);\n            cursor: pointer;\n            font-weight: 600;\n            font-size: 14px;\n            display: inline-flex;\n            align-items: center;\n            gap: 4px;\n            margin-top: var(--space-xs);\n        }\n        \n        .timer-button {\n            height: 40px;\n            padding: 0 var(--space-sm);\n            background: var(--warning-100);\n            color: var(--warning-900);\n            border: none;\n            border-radius: var(--radius-sm);\n            font-size: 14px;\n            font-weight: 600;\n            cursor: pointer;\n            display: inline-flex;\n            align-items: center;\n            gap: var(--space-xs);\n            margin-top: var(--space-sm);\n            transition: all 200ms;\n            font-family: inherit;\n        }\n        \n        .timer-button:hover {\n            background: var(--warning);\n            color: white;\n        }\n        \n        .timer-button svg {\n            width: 16px;\n            height: 16px;\n        }\n        \n        \/* ===== TABS ===== *\/\n        .tabs {\n            margin-bottom: var(--space-lg);\n        }\n        \n        .tab-buttons {\n            display: inline-flex;\n            gap: 4px;\n            background: var(--neutral-100);\n            border-radius: var(--radius-md);\n            padding: 4px;\n        }\n        \n        .tab-button {\n            padding: 12px 20px;\n            background: transparent;\n            border: none;\n            border-radius: var(--radius-sm);\n            font-size: 16px;\n            font-weight: 600;\n            color: var(--neutral-600);\n            cursor: pointer;\n            transition: all 200ms;\n            font-family: inherit;\n        }\n        \n        .tab-button.active {\n            background: white;\n            color: var(--neutral-900);\n            box-shadow: var(--shadow-sm);\n        }\n        \n        .tab-panel {\n            display: none;\n            padding: var(--space-lg) 0;\n            animation: fadeIn 200ms;\n        }\n        \n        .tab-panel.active {\n            display: block;\n        }\n        \n        @keyframes fadeIn {\n            from { opacity: 0; }\n            to { opacity: 1; }\n        }\n        \n        \/* ===== ACCORDION ===== *\/\n        .accordion-item {\n            margin-bottom: var(--space-sm);\n        }\n        \n        .accordion-header {\n            width: 100%;\n            padding: 20px var(--space-md);\n            background: var(--neutral-50);\n            border: 1px solid var(--neutral-200);\n            border-radius: var(--radius-md);\n            font-size: 18px;\n            font-weight: 600;\n            color: var(--neutral-800);\n            cursor: pointer;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            transition: all 300ms;\n            font-family: inherit;\n            text-align: left;\n        }\n        \n        .accordion-header:hover {\n            background: var(--neutral-100);\n        }\n        \n        .accordion-header.active {\n            background: white;\n            border-radius: var(--radius-md) var(--radius-md) 0 0;\n        }\n        \n        .accordion-icon {\n            width: 20px;\n            height: 20px;\n            transition: transform 250ms ease;\n        }\n        \n        .accordion-header.active .accordion-icon {\n            transform: rotate(180deg);\n        }\n        \n        .accordion-content {\n            max-height: 0;\n            overflow: hidden;\n            transition: max-height 300ms ease-in-out;\n            background: white;\n            border: 1px solid var(--neutral-200);\n            border-top: 2px solid var(--amber-200);\n            border-radius: 0 0 var(--radius-md) var(--radius-md);\n        }\n        \n        .accordion-content.active {\n            max-height: 1000px;\n        }\n        \n        .accordion-body {\n            padding: var(--space-md);\n        }\n        \n        \/* ===== VIDEO SECTION ===== *\/\n        .video-container {\n            position: relative;\n            width: 100%;\n            padding-bottom: 56.25%; \/* 16:9 aspect ratio *\/\n            margin: var(--space-lg) 0;\n            background: var(--neutral-100);\n            border-radius: var(--radius-lg);\n            overflow: hidden;\n        }\n        \n        .video-container iframe {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n        }\n        \n        .video-placeholder {\n            position: absolute;\n            top: 50%;\n            left: 50%;\n            transform: translate(-50%, -50%);\n            text-align: center;\n            color: var(--neutral-500);\n        }\n        \n        .timestamp-markers {\n            display: flex;\n            gap: var(--space-sm);\n            flex-wrap: wrap;\n            margin-top: var(--space-sm);\n        }\n        \n        .timestamp-button {\n            padding: 8px 12px;\n            background: var(--neutral-100);\n            border: 1px solid var(--neutral-200);\n            border-radius: var(--radius-sm);\n            font-size: 14px;\n            cursor: pointer;\n            transition: all 200ms;\n            font-family: inherit;\n        }\n        \n        .timestamp-button:hover {\n            background: var(--amber-100);\n            border-color: var(--amber-500);\n        }\n        \n        \/* ===== NUTRITION CHART ===== *\/\n        .nutrition-grid {\n            display: grid;\n            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n            gap: var(--space-md);\n            margin-top: var(--space-md);\n        }\n        \n        .nutrition-item {\n            background: var(--neutral-50);\n            padding: var(--space-md);\n            border-radius: var(--radius-md);\n            text-align: center;\n        }\n        \n        .nutrition-value {\n            font-size: 32px;\n            font-weight: 700;\n            color: var(--amber-600);\n            display: block;\n        }\n        \n        .nutrition-label {\n            font-size: 14px;\n            color: var(--neutral-600);\n            margin-top: var(--space-xs);\n        }\n        \n        \/* ===== MEASUREMENT CONVERTER ===== *\/\n        .converter-tool {\n            background: var(--amber-50);\n            padding: var(--space-md);\n            border-radius: var(--radius-md);\n            margin-top: var(--space-md);\n        }\n        \n        .converter-inputs {\n            display: grid;\n            grid-template-columns: 1fr auto 1fr;\n            gap: var(--space-sm);\n            align-items: center;\n            margin-top: var(--space-sm);\n        }\n        \n        .converter-inputs input,\n        .converter-inputs select {\n            padding: 12px;\n            border: 1px solid var(--neutral-300);\n            border-radius: var(--radius-sm);\n            font-size: 16px;\n            font-family: inherit;\n        }\n        \n        .converter-arrow {\n            text-align: center;\n            color: var(--amber-700);\n            font-size: 20px;\n        }\n        \n        \/* ===== SOCIAL SHARE ===== *\/\n        .social-share {\n            display: flex;\n            gap: var(--space-sm);\n            margin-top: var(--space-md);\n        }\n        \n        .share-button {\n            width: 44px;\n            height: 44px;\n            border-radius: 50%;\n            background: var(--neutral-100);\n            border: none;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            transition: all 200ms;\n        }\n        \n        .share-button:hover {\n            background: var(--neutral-200);\n            transform: scale(1.05);\n        }\n        \n        .share-button svg {\n            width: 20px;\n            height: 20px;\n            color: var(--neutral-700);\n        }\n        \n        \/* ===== RATING SYSTEM ===== *\/\n        .rating-container {\n            text-align: center;\n            padding: var(--space-lg);\n            background: var(--amber-50);\n            border-radius: var(--radius-lg);\n            margin: var(--space-lg) 0;\n        }\n        \n        .stars {\n            display: inline-flex;\n            gap: 4px;\n            margin: var(--space-sm) 0;\n        }\n        \n        .star {\n            width: 32px;\n            height: 32px;\n            cursor: pointer;\n            transition: all 200ms;\n            color: var(--neutral-300);\n        }\n        \n        .star:hover,\n        .star.active {\n            color: var(--amber-500);\n            transform: scale(1.1);\n        }\n        \n        \/* ===== CHEF'S TIPS ===== *\/\n        .tip-box {\n            background: linear-gradient(135deg, var(--amber-50) 0%, var(--amber-100) 100%);\n            border-left: 4px solid var(--amber-500);\n            padding: var(--space-md);\n            border-radius: var(--radius-md);\n            margin: var(--space-md) 0;\n        }\n        \n        .tip-box h4 {\n            font-size: 16px;\n            font-weight: 700;\n            color: var(--amber-900);\n            margin-bottom: var(--space-xs);\n            display: flex;\n            align-items: center;\n            gap: var(--space-xs);\n        }\n        \n        .tip-box p {\n            font-size: 16px;\n            line-height: 1.6;\n            color: var(--neutral-700);\n        }\n        \n        \/* ===== USER NOTES ===== *\/\n        .notes-section {\n            margin-top: var(--space-lg);\n        }\n        \n        .notes-textarea {\n            width: 100%;\n            min-height: 120px;\n            padding: var(--space-md);\n            border: 2px solid var(--neutral-200);\n            border-radius: var(--radius-md);\n            font-size: 16px;\n            font-family: inherit;\n            resize: vertical;\n            margin-bottom: var(--space-sm);\n        }\n        \n        .notes-textarea:focus {\n            outline: none;\n            border-color: var(--amber-500);\n        }\n        \n        \/* ===== RELATED RECIPES CAROUSEL ===== *\/\n        .carousel {\n            overflow-x: auto;\n            scrollbar-width: thin;\n            scrollbar-color: var(--amber-500) var(--neutral-100);\n        }\n        \n        .carousel-content {\n            display: flex;\n            gap: var(--space-md);\n            padding-bottom: var(--space-sm);\n        }\n        \n        .recipe-card {\n            min-width: 280px;\n            background: white;\n            border-radius: var(--radius-lg);\n            overflow: hidden;\n            box-shadow: var(--shadow-md);\n            transition: all 300ms;\n            cursor: pointer;\n        }\n        \n        .recipe-card:hover {\n            transform: translateY(-4px);\n            box-shadow: var(--shadow-hover);\n        }\n        \n        .recipe-card-image {\n            width: 100%;\n            height: 180px;\n            object-fit: cover;\n        }\n        \n        .recipe-card-content {\n            padding: var(--space-md);\n        }\n        \n        .recipe-card h4 {\n            font-size: 18px;\n            font-weight: 600;\n            margin-bottom: var(--space-xs);\n        }\n        \n        .recipe-card-meta {\n            font-size: 14px;\n            color: var(--neutral-500);\n        }\n        \n        \/* ===== SHOPPING LIST MODAL ===== *\/\n        .modal {\n            display: none;\n            position: fixed;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background: rgba(0, 0, 0, 0.5);\n            z-index: 2000;\n            align-items: center;\n            justify-content: center;\n        }\n        \n        .modal.show {\n            display: flex;\n        }\n        \n        .modal-content {\n            background: white;\n            border-radius: var(--radius-lg);\n            padding: var(--space-lg);\n            max-width: 500px;\n            width: 90%;\n            max-height: 80vh;\n            overflow-y: auto;\n            box-shadow: var(--shadow-lg);\n        }\n        \n        .modal-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: var(--space-md);\n        }\n        \n        .modal-close {\n            background: none;\n            border: none;\n            font-size: 24px;\n            cursor: pointer;\n            color: var(--neutral-500);\n        }\n        \n        \/* ===== TIMER DISPLAY ===== *\/\n        .timer-display {\n            position: fixed;\n            bottom: 20px;\n            right: 20px;\n            background: var(--neutral-900);\n            color: white;\n            padding: var(--space-md);\n            border-radius: var(--radius-lg);\n            box-shadow: var(--shadow-lg);\n            min-width: 200px;\n            z-index: 999;\n            display: none;\n        }\n        \n        .timer-display.show {\n            display: block;\n        }\n        \n        .timer-time {\n            font-size: 36px;\n            font-weight: 700;\n            text-align: center;\n            margin: var(--space-sm) 0;\n        }\n        \n        .timer-controls {\n            display: flex;\n            gap: var(--space-xs);\n            margin-top: var(--space-sm);\n        }\n        \n        .timer-controls button {\n            flex: 1;\n            padding: var(--space-xs);\n            border: none;\n            border-radius: var(--radius-sm);\n            background: var(--amber-500);\n            color: white;\n            cursor: pointer;\n            font-weight: 600;\n            font-family: inherit;\n        }\n        \n        \/* ===== PRINT STYLES ===== *\/\n        @media print {\n            body {\n                background: white;\n            }\n            \n            .sticky-summary,\n            .controls,\n            .social-share,\n            .rating-container,\n            .notes-section,\n            .timer-button,\n            .progress-tracker {\n                display: none !important;\n            }\n            \n            .container {\n                grid-template-columns: 1fr;\n            }\n            \n            .section-card {\n                box-shadow: none;\n                page-break-inside: avoid;\n            }\n        }\n        \n        \/* ===== RESPONSIVE DESIGN ===== *\/\n        @media (max-width: 1023px) {\n            .container {\n                grid-template-columns: 1fr;\n            }\n            \n            .sticky-summary {\n                position: static;\n                margin-bottom: var(--space-lg);\n            }\n        }\n        \n        @media (max-width: 767px) {\n            .hero {\n                height: 400px;\n                background-position: center;\n            }\n            \n            .hero h1 {\n                font-size: 40px;\n            }\n            \n            .hero-content {\n                padding: var(--space-xxl) var(--space-md);\n            }\n            \n            .section-card h2 {\n                font-size: 28px;\n            }\n            \n            .section-card {\n                padding: var(--space-md);\n            }\n            \n            .step-card {\n                padding-left: var(--space-md);\n            }\n            \n            .step-number {\n                position: static;\n                margin-bottom: var(--space-sm);\n            }\n            \n            .controls {\n                flex-direction: column;\n            }\n            \n            .btn-primary,\n            .btn-secondary {\n                width: 100%;\n                justify-content: center;\n            }\n            \n            .badge-row {\n                flex-direction: column;\n                align-items: flex-start;\n            }\n            \n            .nutrition-grid {\n                grid-template-columns: 1fr 1fr;\n            }\n        }\n        \n        \/* ===== ACCESSIBILITY ===== *\/\n        *:focus-visible {\n            outline: 2px solid var(--amber-500);\n            outline-offset: 2px;\n        }\n        \n        .sr-only {\n            position: absolute;\n            width: 1px;\n            height: 1px;\n            padding: 0;\n            margin: -1px;\n            overflow: hidden;\n            clip: rect(0, 0, 0, 0);\n            white-space: nowrap;\n            border-width: 0;\n        }\n    <\/style>\n<\/head>\n<body>\n    <!-- Skip Link for Accessibility -->\n    <a href=\"#main-recipe\" class=\"skip-link\">Skip to recipe<\/a>\n    \n    <!-- Progress Tracker -->\n    <div class=\"progress-tracker\">\n        <div class=\"progress-fill\" id=\"progressBar\"><\/div>\n    <\/div>\n    \n    <!-- Hero Section -->\n    <header class=\"hero\">\n        <div class=\"hero-content\">\n            <h1>Classic Homemade Chicken Soup<\/h1>\n            <p class=\"hero-description\">A warming, nourishing soup made with tender chicken, fresh vegetables, and aromatic herbs. Perfect for cold days or when you need comfort food.<\/p>\n            <div class=\"badge-row\">\n                <div class=\"badge\">\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"12\" cy=\"12\" r=\"10\"\/>\n                        <polyline points=\"12 6 12 12 16 14\"\/>\n                    <\/svg>\n                    <span>20 min prep<\/span>\n                <\/div>\n                <div class=\"badge\">\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"12\" cy=\"12\" r=\"10\"\/>\n                        <polyline points=\"12 6 12 12 16 14\"\/>\n                    <\/svg>\n                    <span>60 min cook<\/span>\n                <\/div>\n                <div class=\"badge\">\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/>\n                        <circle cx=\"9\" cy=\"7\" r=\"4\"\/>\n                        <path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/>\n                        <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/>\n                    <\/svg>\n                    <span>6 servings<\/span>\n                <\/div>\n                <div class=\"badge\">\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"12\" cy=\"12\" r=\"10\"\/>\n                        <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"\/>\n                        <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"\/>\n                    <\/svg>\n                    <span>Easy<\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/header>\n    \n    <!-- Main Content -->\n    <div class=\"container\">\n        <main class=\"main-content\" id=\"main-recipe\">\n            \n            <!-- Controls -->\n            <div class=\"controls\">\n                <button class=\"btn-primary\" onclick=\"window.print()\">\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"20\" height=\"20\">\n                        <polyline points=\"6 9 6 2 18 2 18 9\"\/>\n                        <path d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"\/>\n                        <rect x=\"6\" y=\"14\" width=\"12\" height=\"8\"\/>\n                    <\/svg>\n                    Print Recipe\n                <\/button>\n                <button class=\"btn-secondary\" onclick=\"addToShoppingList()\">\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"20\" height=\"20\">\n                        <path d=\"M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4Zm-8 2a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z\"\/>\n                    <\/svg>\n                    Add to Shopping List\n                <\/button>\n                <button class=\"btn-secondary\" onclick=\"shareRecipe()\">\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"20\" height=\"20\">\n                        <circle cx=\"18\" cy=\"5\" r=\"3\"\/>\n                        <circle cx=\"6\" cy=\"12\" r=\"3\"\/>\n                        <circle cx=\"18\" cy=\"19\" r=\"3\"\/>\n                        <line x1=\"8.59\" y1=\"13.51\" x2=\"15.42\" y2=\"17.49\"\/>\n                        <line x1=\"15.41\" y1=\"6.51\" x2=\"8.59\" y2=\"10.49\"\/>\n                    <\/svg>\n                    Share Recipe\n                <\/button>\n            <\/div>\n            \n            <!-- Ingredients Section -->\n            <section class=\"section-card\">\n                <h2>Ingredients<\/h2>\n                \n                <!-- Serving Size Adjuster -->\n                <div class=\"serving-adjuster\">\n                    <button onclick=\"adjustServings(-1)\" aria-label=\"Decrease servings\">\u2212<\/button>\n                    <div class=\"serving-count\">\n                        <span id=\"servingCount\">6<\/span> servings\n                    <\/div>\n                    <button onclick=\"adjustServings(1)\" aria-label=\"Increase servings\">+<\/button>\n                <\/div>\n                \n                <!-- Unit Toggle -->\n                <div class=\"unit-toggle\" role=\"tablist\">\n                    <button class=\"active\" id=\"metricBtn\" onclick=\"switchUnits('metric')\" role=\"tab\" aria-selected=\"true\">Metric<\/button>\n                    <button id=\"imperialBtn\" onclick=\"switchUnits('imperial')\" role=\"tab\" aria-selected=\"false\">Imperial<\/button>\n                <\/div>\n                \n                <ul class=\"ingredients-list\" id=\"ingredientsList\">\n                    <!-- Ingredients will be dynamically populated -->\n                <\/ul>\n                \n                <!-- Measurement Converter Tool -->\n                <div class=\"converter-tool\">\n                    <h4 style=\"margin-bottom: 12px;\">\ud83e\uddee Quick Measurement Converter<\/h4>\n                    <div class=\"converter-inputs\">\n                        <div>\n                            <input type=\"number\" id=\"converterInput\" placeholder=\"Value\" value=\"1\" style=\"width: 100%;\">\n                            <select id=\"converterFrom\" style=\"width: 100%; margin-top: 8px;\">\n                                <option value=\"cup\">Cup<\/option>\n                                <option value=\"tbsp\">Tablespoon<\/option>\n                                <option value=\"tsp\">Teaspoon<\/option>\n                                <option value=\"ml\">Milliliter<\/option>\n                                <option value=\"l\">Liter<\/option>\n                                <option value=\"oz\">Ounce<\/option>\n                                <option value=\"lb\">Pound<\/option>\n                                <option value=\"g\">Gram<\/option>\n                                <option value=\"kg\">Kilogram<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"converter-arrow\">\u2192<\/div>\n                        <div>\n                            <input type=\"text\" id=\"converterOutput\" readonly style=\"width: 100%; background: white;\">\n                            <select id=\"converterTo\" style=\"width: 100%; margin-top: 8px;\">\n                                <option value=\"ml\">Milliliter<\/option>\n                                <option value=\"l\">Liter<\/option>\n                                <option value=\"cup\">Cup<\/option>\n                                <option value=\"tbsp\">Tablespoon<\/option>\n                                <option value=\"tsp\">Teaspoon<\/option>\n                                <option value=\"g\">Gram<\/option>\n                                <option value=\"kg\">Kilogram<\/option>\n                                <option value=\"oz\">Ounce<\/option>\n                                <option value=\"lb\">Pound<\/option>\n                            <\/select>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n            \n            <!-- Step-by-Step Instructions -->\n            <section class=\"section-card\">\n                <h2>Instructions<\/h2>\n                <div class=\"steps-container\" id=\"stepsContainer\">\n                    <!-- Steps will be dynamically populated -->\n                <\/div>\n            <\/section>\n            \n            <!-- Video Tutorial -->\n            <section class=\"section-card\">\n                <h2>Video Tutorial<\/h2>\n                <div class=\"video-container\">\n                    <div class=\"video-placeholder\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"64\" height=\"64\">\n                            <polygon points=\"5 3 19 12 5 21 5 3\"\/>\n                        <\/svg>\n                        <p>Video tutorial would be embedded here<\/p>\n                    <\/div>\n                    <!-- For actual use, replace with: <iframe src=\"your-video-url\" frameborder=\"0\" allowfullscreen><\/iframe> -->\n                <\/div>\n                <div class=\"timestamp-markers\">\n                    <button class=\"timestamp-button\" onclick=\"alert('Jump to 0:45 - Prep vegetables')\">0:45 &#8211; Prep vegetables<\/button>\n                    <button class=\"timestamp-button\" onclick=\"alert('Jump to 2:30 - Saut\u00e9 onions')\">2:30 &#8211; Saut\u00e9 onions<\/button>\n                    <button class=\"timestamp-button\" onclick=\"alert('Jump to 4:15 - Add chicken')\">4:15 &#8211; Add chicken<\/button>\n                    <button class=\"timestamp-button\" onclick=\"alert('Jump to 8:00 - Simmer soup')\">8:00 &#8211; Simmer soup<\/button>\n                <\/div>\n            <\/section>\n            \n            <!-- Nutritional Information -->\n            <section class=\"section-card\">\n                <h2>Nutritional Information<\/h2>\n                <p style=\"color: var(--neutral-600); margin-bottom: 16px;\">Per serving (approximately 400ml)<\/p>\n                <div class=\"nutrition-grid\">\n                    <div class=\"nutrition-item\">\n                        <span class=\"nutrition-value\">285<\/span>\n                        <span class=\"nutrition-label\">Calories<\/span>\n                    <\/div>\n                    <div class=\"nutrition-item\">\n                        <span class=\"nutrition-value\">28g<\/span>\n                        <span class=\"nutrition-label\">Protein<\/span>\n                    <\/div>\n                    <div class=\"nutrition-item\">\n                        <span class=\"nutrition-value\">22g<\/span>\n                        <span class=\"nutrition-label\">Carbs<\/span>\n                    <\/div>\n                    <div class=\"nutrition-item\">\n                        <span class=\"nutrition-value\">9g<\/span>\n                        <span class=\"nutrition-label\">Fat<\/span>\n                    <\/div>\n                    <div class=\"nutrition-item\">\n                        <span class=\"nutrition-value\">3g<\/span>\n                        <span class=\"nutrition-label\">Fiber<\/span>\n                    <\/div>\n                    <div class=\"nutrition-item\">\n                        <span class=\"nutrition-value\">850mg<\/span>\n                        <span class=\"nutrition-label\">Sodium<\/span>\n                    <\/div>\n                    <div class=\"nutrition-item\">\n                        <span class=\"nutrition-value\">45%<\/span>\n                        <span class=\"nutrition-label\">Vitamin A<\/span>\n                    <\/div>\n                    <div class=\"nutrition-item\">\n                        <span class=\"nutrition-value\">25%<\/span>\n                        <span class=\"nutrition-label\">Vitamin C<\/span>\n                    <\/div>\n                <\/div>\n            <\/section>\n            \n            <!-- Recipe Variations -->\n            <section class=\"section-card\">\n                <h2>Recipe Variations<\/h2>\n                <div class=\"tabs\">\n                    <div class=\"tab-buttons\" role=\"tablist\">\n                        <button class=\"tab-button active\" onclick=\"switchTab(0)\" role=\"tab\">Original<\/button>\n                        <button class=\"tab-button\" onclick=\"switchTab(1)\" role=\"tab\">Vegan<\/button>\n                        <button class=\"tab-button\" onclick=\"switchTab(2)\" role=\"tab\">Gluten-Free<\/button>\n                        <button class=\"tab-button\" onclick=\"switchTab(3)\" role=\"tab\">Low-Carb<\/button>\n                    <\/div>\n                    \n                    <div class=\"tab-panel active\" role=\"tabpanel\">\n                        <p>This is the classic chicken soup recipe with traditional ingredients for maximum flavor and nutrition.<\/p>\n                    <\/div>\n                    \n                    <div class=\"tab-panel\" role=\"tabpanel\">\n                        <h3>Vegan Adaptation<\/h3>\n                        <ul style=\"margin-left: 24px; margin-top: 12px;\">\n                            <li>Replace chicken with 400g firm tofu or chickpeas<\/li>\n                            <li>Use vegetable broth instead of chicken broth<\/li>\n                            <li>Add 1 tbsp nutritional yeast for umami flavor<\/li>\n                            <li>Include extra mushrooms for meaty texture<\/li>\n                        <\/ul>\n                    <\/div>\n                    \n                    <div class=\"tab-panel\" role=\"tabpanel\">\n                        <h3>Gluten-Free Version<\/h3>\n                        <ul style=\"margin-left: 24px; margin-top: 12px;\">\n                            <li>Use rice noodles or gluten-free pasta instead of egg noodles<\/li>\n                            <li>Ensure broth is certified gluten-free<\/li>\n                            <li>Add extra vegetables for more substance<\/li>\n                            <li>Consider zucchini noodles as a fresh alternative<\/li>\n                        <\/ul>\n                    <\/div>\n                    \n                    <div class=\"tab-panel\" role=\"tabpanel\">\n                        <h3>Low-Carb Keto Option<\/h3>\n                        <ul style=\"margin-left: 24px; margin-top: 12px;\">\n                            <li>Omit noodles entirely or use shirataki noodles<\/li>\n                            <li>Increase chicken to 2kg for higher protein<\/li>\n                            <li>Add more low-carb vegetables (spinach, zucchini)<\/li>\n                            <li>Include 2 tbsp heavy cream for richness<\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n            <\/section>\n            \n            <!-- Chef's Tips & Tricks -->\n            <section class=\"section-card\">\n                <h2>Chef&#8217;s Tips &#038; Tricks<\/h2>\n                \n                <div class=\"tip-box\">\n                    <h4>\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"20\" height=\"20\">\n                            <path d=\"M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\/>\n                        <\/svg>\n                        Use Whole Chicken for Maximum Flavor\n                    <\/h4>\n                    <p>Using a whole chicken with bones creates a richer, more flavorful broth. The bones release collagen and minerals that create that signature &#8220;liquid gold&#8221; appearance and silky texture.<\/p>\n                <\/div>\n                \n                <div class=\"tip-box\">\n                    <h4>\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"20\" height=\"20\">\n                            <circle cx=\"12\" cy=\"12\" r=\"10\"\/>\n                            <polyline points=\"12 6 12 12 16 14\"\/>\n                        <\/svg>\n                        Don&#8217;t Rush the Simmer\n                    <\/h4>\n                    <p>Low and slow is the key! Keep the heat at a gentle simmer, not a rolling boil. This prevents the chicken from becoming tough and allows flavors to develop gradually.<\/p>\n                <\/div>\n                \n                <div class=\"tip-box\">\n                    <h4>\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"20\" height=\"20\">\n                            <path d=\"M3 9h18v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9Z\"\/>\n                            <path d=\"m3 9 2.45-4.9A2 2 0 0 1 7.24 3h9.52a2 2 0 0 1 1.8 1.1L21 9\"\/>\n                            <path d=\"M12 3v6\"\/>\n                        <\/svg>\n                        Season at Multiple Stages\n                    <\/h4>\n                    <p>Add salt in layers: season vegetables while saut\u00e9ing, add some to the broth, and finish with a final taste adjustment. This builds complex, well-rounded flavor.<\/p>\n                <\/div>\n            <\/section>\n            \n            <!-- Common Mistakes to Avoid -->\n            <section class=\"section-card\">\n                <h2>Common Mistakes to Avoid<\/h2>\n                <div style=\"display: grid; gap: 16px;\">\n                    <div style=\"padding: 16px; background: var(--error); color: white; border-radius: 8px;\">\n                        <strong>\u274c Overcooking the Vegetables<\/strong>\n                        <p style=\"margin-top: 8px;\">Add vegetables at different times based on cooking duration needed. Carrots and celery at the beginning, but delicate greens at the very end.<\/p>\n                    <\/div>\n                    <div style=\"padding: 16px; background: var(--error); color: white; border-radius: 8px;\">\n                        <strong>\u274c Using Pre-Cooked Chicken<\/strong>\n                        <p style=\"margin-top: 8px;\">Raw chicken releases more flavor into the broth as it cooks. Pre-cooked chicken makes a less flavorful soup.<\/p>\n                    <\/div>\n                    <div style=\"padding: 16px; background: var(--error); color: white; border-radius: 8px;\">\n                        <strong>\u274c Skipping the Skimming<\/strong>\n                        <p style=\"margin-top: 8px;\">Skim the foam that rises to the top in the first 10-15 minutes. This removes impurities and results in a clearer, cleaner-tasting broth.<\/p>\n                    <\/div>\n                <\/div>\n            <\/section>\n            \n            <!-- Storage & Leftovers -->\n            <section class=\"section-card\">\n                <h2>Storage &#038; Leftover Tips<\/h2>\n                <div style=\"display: grid; gap: 16px; margin-top: 16px;\">\n                    <div>\n                        <h3 style=\"font-size: 18px;\">\ud83e\uddca Refrigerator Storage<\/h3>\n                        <p>Store in an airtight container for up to 4 days. The soup often tastes even better the next day as flavors meld together.<\/p>\n                    <\/div>\n                    <div>\n                        <h3 style=\"font-size: 18px;\">\u2744\ufe0f Freezer Storage<\/h3>\n                        <p>Freeze for up to 3 months. Store noodles separately and add fresh when reheating to prevent mushiness. Use freezer-safe containers, leaving 1 inch of headspace for expansion.<\/p>\n                    <\/div>\n                    <div>\n                        <h3 style=\"font-size: 18px;\">\u2668\ufe0f Reheating Tips<\/h3>\n                        <p>Reheat gently on the stovetop over medium-low heat. Add a splash of broth or water if the soup has thickened. Microwave individual portions for 2-3 minutes, stirring halfway.<\/p>\n                    <\/div>\n                <\/div>\n            <\/section>\n            \n            <!-- Wine Pairing -->\n            <section class=\"section-card\">\n                <h2>Beverage Pairing Recommendations<\/h2>\n                <div style=\"display: grid; gap: 16px; margin-top: 16px;\">\n                    <div style=\"padding: 16px; background: var(--amber-50); border-radius: 8px;\">\n                        <h3 style=\"font-size: 18px;\">\ud83c\udf77 Wine: Chardonnay<\/h3>\n                        <p>A lightly oaked Chardonnay complements the richness of the soup without overwhelming the delicate flavors.<\/p>\n                    <\/div>\n                    <div style=\"padding: 16px; background: var(--amber-50); border-radius: 8px;\">\n                        <h3 style=\"font-size: 18px;\">\ud83c\udf7a Beer: Wheat Beer<\/h3>\n                        <p>A crisp wheat beer or hefeweizen provides a refreshing contrast to the warm, comforting soup.<\/p>\n                    <\/div>\n                    <div style=\"padding: 16px; background: var(--amber-50); border-radius: 8px;\">\n                        <h3 style=\"font-size: 18px;\">\ud83e\uded6 Non-Alcoholic: Herbal Tea<\/h3>\n                        <p>A light chamomile or ginger tea enhances the soothing, healing qualities of chicken soup.<\/p>\n                    <\/div>\n                <\/div>\n            <\/section>\n            \n            <!-- FAQ Section -->\n            <section class=\"section-card\">\n                <h2>Frequently Asked Questions<\/h2>\n                <div style=\"margin-top: 16px;\">\n                    <div class=\"accordion-item\">\n                        <button class=\"accordion-header\" onclick=\"toggleAccordion(0)\">\n                            <span>Can I use chicken breast instead of whole chicken?<\/span>\n                            <svg class=\"accordion-icon\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                                <polyline points=\"6 9 12 15 18 9\"\/>\n                            <\/svg>\n                        <\/button>\n                        <div class=\"accordion-content\">\n                            <div class=\"accordion-body\">\n                                <p>Yes, but the flavor won&#8217;t be as rich. Use bone-in, skin-on chicken breasts for better flavor. Cook for 25-30 minutes instead of 45. For the best flavor, consider using chicken thighs which have more fat and flavor than breasts.<\/p>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"accordion-item\">\n                        <button class=\"accordion-header\" onclick=\"toggleAccordion(1)\">\n                            <span>How do I make the soup thicker?<\/span>\n                            <svg class=\"accordion-icon\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                                <polyline points=\"6 9 12 15 18 9\"\/>\n                            <\/svg>\n                        <\/button>\n                        <div class=\"accordion-content\">\n                            <div class=\"accordion-body\">\n                                <p>You have several options: 1) Add more noodles or rice, 2) Blend 1-2 cups of the soup and stir it back in, 3) Mix 2 tbsp cornstarch with cold water and stir into the simmering soup, 4) Add a roux (flour and butter mixture) at the beginning.<\/p>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"accordion-item\">\n                        <button class=\"accordion-header\" onclick=\"toggleAccordion(2)\">\n                            <span>Can I make this in a slow cooker?<\/span>\n                            <svg class=\"accordion-icon\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                                <polyline points=\"6 9 12 15 18 9\"\/>\n                            <\/svg>\n                        <\/button>\n                        <div class=\"accordion-content\">\n                            <div class=\"accordion-body\">\n                                <p>Absolutely! Saut\u00e9 the onions first (optional but recommended), then add everything to the slow cooker. Cook on LOW for 6-7 hours or HIGH for 3-4 hours. Add noodles in the last 30 minutes of cooking.<\/p>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"accordion-item\">\n                        <button class=\"accordion-header\" onclick=\"toggleAccordion(3)\">\n                            <span>Why is my soup greasy?<\/span>\n                            <svg class=\"accordion-icon\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                                <polyline points=\"6 9 12 15 18 9\"\/>\n                            <\/svg>\n                        <\/button>\n                        <div class=\"accordion-content\">\n                            <div class=\"accordion-body\">\n                                <p>Chicken skin and fat release oils during cooking. To fix: 1) Refrigerate the soup overnight and skim the solidified fat from the top, 2) Use a fat separator while the soup is still hot, 3) Remove chicken skin before cooking, or 4) Skim the surface with a ladle during cooking.<\/p>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"accordion-item\">\n                        <button class=\"accordion-header\" onclick=\"toggleAccordion(4)\">\n                            <span>How can I add more vegetables?<\/span>\n                            <svg class=\"accordion-icon\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                                <polyline points=\"6 9 12 15 18 9\"\/>\n                            <\/svg>\n                        <\/button>\n                        <div class=\"accordion-content\">\n                            <div class=\"accordion-body\">\n                                <p>Great additions include: potatoes, parsnips, leeks, kale, spinach, peas, corn, green beans, or zucchini. Add hearty vegetables (potatoes, parsnips) at the beginning. Add quick-cooking vegetables (spinach, peas) in the last 5-10 minutes.<\/p>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n            \n            <!-- Historical Context -->\n            <section class=\"section-card\" style=\"background: linear-gradient(135deg, var(--neutral-50) 0%, var(--amber-50) 100%);\">\n                <h2>The Cultural History of Chicken Soup<\/h2>\n                <p style=\"margin-bottom: 16px;\">Chicken soup has been called &#8220;Jewish penicillin&#8221; and comfort food across virtually every culture. Its history dates back thousands of years.<\/p>\n                \n                <div style=\"display: grid; gap: 16px;\">\n                    <div>\n                        <h3 style=\"font-size: 18px;\">Ancient Origins<\/h3>\n                        <p>The first recorded chicken soup recipe dates to ancient China around 200 BC. Greek physician Hippocrates prescribed it as a remedy for respiratory infections.<\/p>\n                    <\/div>\n                    <div>\n                        <h3 style=\"font-size: 18px;\">Scientific Validation<\/h3>\n                        <p>Modern research has confirmed that chicken soup contains anti-inflammatory properties. The steam helps clear nasal passages, while the broth keeps you hydrated. Chicken provides protein and nutrients essential for recovery.<\/p>\n                    <\/div>\n                    <div>\n                        <h3 style=\"font-size: 18px;\">Cultural Variations<\/h3>\n                        <p>Every culture has its version: Jewish Matzo Ball Soup, Chinese Congee, Filipino Tinola, Korean Samgye-tang, and Latin American Caldo de Pollo. Each reflects local ingredients and traditions while maintaining the nourishing essence of chicken soup.<\/p>\n                    <\/div>\n                <\/div>\n            <\/section>\n            \n            <!-- User Notes -->\n            <section class=\"section-card notes-section\">\n                <h2>Your Personal Notes<\/h2>\n                <p style=\"color: var(--neutral-600); margin-bottom: 12px;\">Add your own modifications, substitutions, or cooking tips. Your notes are saved automatically.<\/p>\n                <textarea \n                    class=\"notes-textarea\" \n                    id=\"userNotes\" \n                    placeholder=\"Example: I added extra garlic and it was amazing! Next time I'll try adding fresh dill.\"\n                    aria-label=\"Personal recipe notes\"\n                ><\/textarea>\n                <button class=\"btn-primary\" onclick=\"saveNotes()\">\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"20\" height=\"20\">\n                        <path d=\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"\/>\n                        <polyline points=\"17 21 17 13 7 13 7 21\"\/>\n                        <polyline points=\"7 3 7 8 15 8\"\/>\n                    <\/svg>\n                    Save Notes\n                <\/button>\n            <\/section>\n            \n            <!-- Rating Section -->\n            <section class=\"rating-container\">\n                <h2 style=\"margin-bottom: 8px;\">Rate This Recipe<\/h2>\n                <p style=\"color: var(--neutral-600); margin-bottom: 16px;\">Help others by rating this recipe!<\/p>\n                <div class=\"stars\" id=\"ratingStars\">\n                    <svg class=\"star\" onclick=\"setRating(1)\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                        <path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/>\n                    <\/svg>\n                    <svg class=\"star\" onclick=\"setRating(2)\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                        <path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/>\n                    <\/svg>\n                    <svg class=\"star\" onclick=\"setRating(3)\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                        <path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/>\n                    <\/svg>\n                    <svg class=\"star\" onclick=\"setRating(4)\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                        <path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/>\n                    <\/svg>\n                    <svg class=\"star\" onclick=\"setRating(5)\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                        <path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/>\n                    <\/svg>\n                <\/div>\n                <p id=\"ratingText\" style=\"margin-top: 12px; font-weight: 600;\">Click stars to rate<\/p>\n            <\/section>\n            \n            <!-- Social Share -->\n            <section class=\"section-card\">\n                <h3>Share This Recipe<\/h3>\n                <div class=\"social-share\">\n                    <button class=\"share-button\" onclick=\"shareOn('pinterest')\" aria-label=\"Share on Pinterest\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                            <path d=\"M12 0a12 12 0 0 0-4.37 23.17c-.05-.92-.1-2.33.02-3.33l.77-3.28s-.2-.39-.2-.97c0-.91.53-1.59 1.18-1.59.56 0 .83.42.83.92 0 .56-.36 1.4-.54 2.18-.15.65.33 1.18.97 1.18 1.17 0 2.06-1.23 2.06-3.01 0-1.57-1.13-2.67-2.74-2.67-1.87 0-2.97 1.4-2.97 2.85 0 .56.22 1.17.49 1.5.05.06.06.12.04.18l-.18.75c-.03.11-.1.14-.23.08-.82-.38-1.33-1.58-1.33-2.54 0-2.07 1.5-3.97 4.33-3.97 2.27 0 4.03 1.62 4.03 3.78 0 2.25-1.42 4.07-3.39 4.07-.66 0-1.29-.34-1.5-.75l-.41 1.56c-.15.57-.55 1.29-.82 1.73a12 12 0 1 0 0-23.14z\"\/>\n                        <\/svg>\n                    <\/button>\n                    <button class=\"share-button\" onclick=\"shareOn('facebook')\" aria-label=\"Share on Facebook\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                            <path d=\"M24 12.07C24 5.41 18.63 0 12 0S0 5.4 0 12.07C0 18.1 4.39 23.1 10.13 24v-8.44H7.08v-3.49h3.04V9.41c0-3.02 1.8-4.7 4.54-4.7 1.31 0 2.68.24 2.68.24v2.97h-1.5c-1.5 0-1.96.93-1.96 1.89v2.26h3.32l-.53 3.5h-2.8V24C19.62 23.1 24 18.1 24 12.07\"\/>\n                        <\/svg>\n                    <\/button>\n                    <button class=\"share-button\" onclick=\"shareOn('twitter')\" aria-label=\"Share on Twitter\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                            <path d=\"M23.95 4.57a10 10 0 0 1-2.83.78 4.96 4.96 0 0 0 2.17-2.73c-.95.56-2 .97-3.13 1.19A4.92 4.92 0 0 0 16.62 2c-2.73 0-4.94 2.21-4.94 4.94 0 .39.04.77.13 1.13a14.03 14.03 0 0 1-10.17-5.16 4.93 4.93 0 0 0 1.53 6.58A4.9 4.9 0 0 1 .96 9.1v.06c0 2.39 1.7 4.38 3.95 4.84a4.93 4.93 0 0 1-2.23.08 4.94 4.94 0 0 0 4.6 3.42A9.87 9.87 0 0 1 0 19.54a13.94 13.94 0 0 0 7.55 2.21c9.05 0 14-7.5 14-14 0-.21 0-.42-.02-.63A10.03 10.03 0 0 0 24 4.59z\"\/>\n                        <\/svg>\n                    <\/button>\n                    <button class=\"share-button\" onclick=\"shareOn('instagram')\" aria-label=\"Share on Instagram\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                            <path d=\"M12 2.16c3.2 0 3.58.01 4.85.07 1.17.05 1.97.24 2.43.4.61.24 1.04.52 1.5.98.46.46.74.89.98 1.5.16.46.35 1.26.4 2.43.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.05 1.17-.24 1.97-.4 2.43-.24.61-.52 1.04-.98 1.5-.46.46-.89.74-1.5.98-.46.16-1.26.35-2.43.4-1.27.06-1.65.07-4.85.07s-3.58-.01-4.85-.07c-1.17-.05-1.97-.24-2.43-.4-.61-.24-1.04-.52-1.5-.98-.46-.46-.74-.89-.98-1.5-.16-.46-.35-1.26-.4-2.43-.06-1.27-.07-1.65-.07-4.85s.01-3.58.07-4.85c.05-1.17.24-1.97.4-2.43.24-.61.52-1.04.98-1.5.46-.46.89-.74 1.5-.98.46-.16 1.26-.35 2.43-.4 1.27-.06 1.65-.07 4.85-.07M12 0C8.74 0 8.33.01 7.05.07 5.78.13 4.85.33 4.04.63c-.83.32-1.53.75-2.23 1.45S.95 3.21.63 4.04C.33 4.85.13 5.78.07 7.05.01 8.33 0 8.74 0 12s.01 3.67.07 4.95c.06 1.27.26 2.2.56 3.01.32.83.75 1.53 1.45 2.23s1.4 1.13 2.23 1.45c.81.3 1.74.5 3.01.56 1.28.06 1.69.07 4.95.07s3.67-.01 4.95-.07c1.27-.06 2.2-.26 3.01-.56.83-.32 1.53-.75 2.23-1.45s1.13-1.4 1.45-2.23c.3-.81.5-1.74.56-3.01.06-1.28.07-1.69.07-4.95s-.01-3.67-.07-4.95c-.06-1.27-.26-2.2-.56-3.01-.32-.83-.75-1.53-1.45-2.23S19.79.95 18.96.63c-.81-.3-1.74-.5-3.01-.56C14.67.01 14.26 0 12 0z\"\/>\n                            <path d=\"M12 5.84a6.16 6.16 0 1 0 0 12.32 6.16 6.16 0 0 0 0-12.32zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8z\"\/>\n                            <circle cx=\"18.41\" cy=\"5.59\" r=\"1.44\"\/>\n                        <\/svg>\n                    <\/button>\n                <\/div>\n            <\/section>\n            \n            <!-- Related Recipes Carousel -->\n            <section class=\"section-card\">\n                <h2>Related Recipes You&#8217;ll Love<\/h2>\n                <div class=\"carousel\">\n                    <div class=\"carousel-content\">\n                        <div class=\"recipe-card\" onclick=\"alert('Navigate to Beef Stew recipe')\">\n                            <img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1547592166-23ac45744acd?w=400&#038;q=80\" alt=\"Hearty Beef Stew\" class=\"recipe-card-image\">\n                            <div class=\"recipe-card-content\">\n                                <h4>Hearty Beef Stew<\/h4>\n                                <p class=\"recipe-card-meta\">\u23f1\ufe0f 2h 30min \u2022 \ud83d\udc65 8 servings<\/p>\n                            <\/div>\n                        <\/div>\n                        <div class=\"recipe-card\" onclick=\"alert('Navigate to Tomato Soup recipe')\">\n                            <img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1622973536968-3ead9e780960?w=400&#038;q=80\" alt=\"Creamy Tomato Soup\" class=\"recipe-card-image\">\n                            <div class=\"recipe-card-content\">\n                                <h4>Creamy Tomato Soup<\/h4>\n                                <p class=\"recipe-card-meta\">\u23f1\ufe0f 40min \u2022 \ud83d\udc65 4 servings<\/p>\n                            <\/div>\n                        <\/div>\n                        <div class=\"recipe-card\" onclick=\"alert('Navigate to Vegetable Broth recipe')\">\n                            <img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1547592180-85f173990554?w=400&#038;q=80\" alt=\"Homemade Vegetable Broth\" class=\"recipe-card-image\">\n                            <div class=\"recipe-card-content\">\n                                <h4>Vegetable Broth<\/h4>\n                                <p class=\"recipe-card-meta\">\u23f1\ufe0f 1h 30min \u2022 \ud83d\udc65 10 servings<\/p>\n                            <\/div>\n                        <\/div>\n                        <div class=\"recipe-card\" onclick=\"alert('Navigate to Minestrone recipe')\">\n                            <img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1604908816026-f9a37eb0e3dd?w=400&#038;q=80\" alt=\"Classic Minestrone\" class=\"recipe-card-image\">\n                            <div class=\"recipe-card-content\">\n                                <h4>Classic Minestrone<\/h4>\n                                <p class=\"recipe-card-meta\">\u23f1\ufe0f 50min \u2022 \ud83d\udc65 6 servings<\/p>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n            \n        <\/main>\n        \n        <!-- Sticky Summary Sidebar -->\n        <aside class=\"sticky-summary\">\n            <h3>Quick Summary<\/h3>\n            <div class=\"calorie-display\">285<\/div>\n            <div class=\"calorie-label\">calories per serving<\/div>\n            \n            <div class=\"metadata-row\">\n                <span class=\"metadata-label\">Total Time:<\/span>\n                <span class=\"metadata-value\">1h 20min<\/span>\n            <\/div>\n            <div class=\"metadata-row\">\n                <span class=\"metadata-label\">Difficulty:<\/span>\n                <span class=\"metadata-value\">Easy<\/span>\n            <\/div>\n            <div class=\"metadata-row\">\n                <span class=\"metadata-label\">Servings:<\/span>\n                <span class=\"metadata-value\">6<\/span>\n            <\/div>\n            <div class=\"metadata-row\">\n                <span class=\"metadata-label\">Rating:<\/span>\n                <span class=\"metadata-value\">\u2b50 4.8\/5 (324)<\/span>\n            <\/div>\n            \n            <div class=\"dietary-tags\">\n                <span class=\"tag\">High Protein<\/span>\n                <span class=\"tag\">Comfort Food<\/span>\n                <span class=\"tag\">One-Pot<\/span>\n            <\/div>\n            \n            <div class=\"equipment-list\">\n                <h4>Equipment Needed:<\/h4>\n                <div class=\"equipment-item\">\n                    <input type=\"checkbox\" class=\"equipment-checkbox\">\n                    <span>Large pot or Dutch oven<\/span>\n                <\/div>\n                <div class=\"equipment-item\">\n                    <input type=\"checkbox\" class=\"equipment-checkbox\">\n                    <span>Chef&#8217;s knife<\/span>\n                <\/div>\n                <div class=\"equipment-item\">\n                    <input type=\"checkbox\" class=\"equipment-checkbox\">\n                    <span>Cutting board<\/span>\n                <\/div>\n                <div class=\"equipment-item\">\n                    <input type=\"checkbox\" class=\"equipment-checkbox\">\n                    <span>Ladle<\/span>\n                <\/div>\n                <div class=\"equipment-item\">\n                    <input type=\"checkbox\" class=\"equipment-checkbox\">\n                    <span>Wooden spoon<\/span>\n                <\/div>\n            <\/div>\n        <\/aside>\n    <\/div>\n    \n    <!-- Shopping List Modal -->\n    <div class=\"modal\" id=\"shoppingModal\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <h2 style=\"margin: 0;\">Shopping List<\/h2>\n                <button class=\"modal-close\" onclick=\"closeModal()\" aria-label=\"Close modal\">&times;<\/button>\n            <\/div>\n            <div id=\"shoppingListContent\"><\/div>\n            <button class=\"btn-primary\" style=\"width: 100%; margin-top: 16px;\" onclick=\"copyShoppingList()\">Copy to Clipboard<\/button>\n        <\/div>\n    <\/div>\n    \n    <!-- Timer Display -->\n    <div class=\"timer-display\" id=\"timerDisplay\">\n        <div style=\"text-align: center; margin-bottom: 8px;\">Cooking Timer<\/div>\n        <div class=\"timer-time\" id=\"timerTime\">00:00<\/div>\n        <div class=\"timer-controls\">\n            <button onclick=\"pauseTimer()\">Pause<\/button>\n            <button onclick=\"resetTimer()\">Reset<\/button>\n            <button onclick=\"closeTimer()\">Close<\/button>\n        <\/div>\n    <\/div>\n    \n    <script>\n        \/\/ ===== DATA =====\n        const ingredients = {\n            metric: [\n                { amount: 1.5, unit: 'kg', name: 'whole chicken, cut into pieces', substitution: 'Can use 1.2kg chicken thighs or breasts' },\n                { amount: 3, unit: '', name: 'medium carrots, diced', substitution: 'Parsnips or sweet potato work well too' },\n                { amount: 3, unit: '', name: 'celery stalks, diced', substitution: 'Fennel adds a nice anise flavor' },\n                { amount: 1, unit: '', name: 'large onion, finely chopped', substitution: '2 leeks (white and light green parts)' },\n                { amount: 4, unit: '', name: 'garlic cloves, minced', substitution: '1 tsp garlic powder in a pinch' },\n                { amount: 2.5, unit: 'liters', name: 'low-sodium chicken broth', substitution: 'Vegetable broth for lighter flavor' },\n                { amount: 2, unit: '', name: 'bay leaves', substitution: '1 tsp dried thyme' },\n                { amount: 1, unit: 'tsp', name: 'dried thyme', substitution: '1 tbsp fresh thyme leaves' },\n                { amount: 200, unit: 'g', name: 'egg noodles', substitution: 'Rice, quinoa, or gluten-free pasta' },\n                { amount: 2, unit: 'tbsp', name: 'fresh parsley, chopped', substitution: 'Fresh dill or cilantro' },\n                { amount: 0, unit: '', name: 'Salt and pepper to taste', substitution: null },\n                { amount: 2, unit: 'tbsp', name: 'olive oil', substitution: 'Butter or coconut oil' }\n            ],\n            imperial: [\n                { amount: 3.3, unit: 'lbs', name: 'whole chicken, cut into pieces', substitution: 'Can use 2.6lbs chicken thighs or breasts' },\n                { amount: 3, unit: '', name: 'medium carrots, diced', substitution: 'Parsnips or sweet potato work well too' },\n                { amount: 3, unit: '', name: 'celery stalks, diced', substitution: 'Fennel adds a nice anise flavor' },\n                { amount: 1, unit: '', name: 'large onion, finely chopped', substitution: '2 leeks (white and light green parts)' },\n                { amount: 4, unit: '', name: 'garlic cloves, minced', substitution: '1 tsp garlic powder in a pinch' },\n                { amount: 10, unit: 'cups', name: 'low-sodium chicken broth', substitution: 'Vegetable broth for lighter flavor' },\n                { amount: 2, unit: '', name: 'bay leaves', substitution: '1 tsp dried thyme' },\n                { amount: 1, unit: 'tsp', name: 'dried thyme', substitution: '1 tbsp fresh thyme leaves' },\n                { amount: 7, unit: 'oz', name: 'egg noodles', substitution: 'Rice, quinoa, or gluten-free pasta' },\n                { amount: 2, unit: 'tbsp', name: 'fresh parsley, chopped', substitution: 'Fresh dill or cilantro' },\n                { amount: 0, unit: '', name: 'Salt and pepper to taste', substitution: null },\n                { amount: 2, unit: 'tbsp', name: 'olive oil', substitution: 'Butter or coconut oil' }\n            ]\n        };\n        \n        const steps = [\n            {\n                title: 'Prepare the Vegetables',\n                instruction: 'Wash and dice the carrots and celery into uniform pieces (about 1cm\/\u00bd inch). Finely chop the onion and mince the garlic. Having everything prepped before you start cooking makes the process much smoother.',\n                tip: 'Pro tip: Cut vegetables uniformly so they cook evenly. Smaller pieces cook faster, larger pieces hold their texture better through long cooking.',\n                timer: null\n            },\n            {\n                title: 'Saut\u00e9 the Aromatics',\n                instruction: 'Heat olive oil in a large pot or Dutch oven over medium heat. Add the chopped onion and cook for 5-7 minutes until translucent and soft. Add the minced garlic and cook for another minute until fragrant, being careful not to burn it.',\n                tip: 'The key to great flavor is taking time to properly saut\u00e9 your aromatics. This step builds the foundation of your soup\\'s flavor profile.',\n                timer: 7\n            },\n            {\n                title: 'Add Chicken and Broth',\n                instruction: 'Add the chicken pieces to the pot and pour in the chicken broth. Add the bay leaves and dried thyme. Bring everything to a boil over high heat, then immediately reduce to a gentle simmer. Skim off any foam that rises to the surface during the first 10-15 minutes.',\n                tip: 'Never let your soup reach a rolling boil after the initial boil. A gentle simmer (small bubbles breaking the surface) keeps the chicken tender and the broth clear.',\n                timer: 45\n            },\n            {\n                title: 'Add Vegetables',\n                instruction: 'After the chicken has simmered for 30 minutes, add the diced carrots and celery to the pot. Continue simmering for another 15 minutes until the vegetables are tender and the chicken is cooked through (internal temperature of 165\u00b0F\/74\u00b0C).',\n                tip: 'Adding vegetables partway through ensures they don\\'t become mushy. If you prefer very soft vegetables, add them at the same time as the chicken.',\n                timer: 15\n            },\n            {\n                title: 'Remove and Shred Chicken',\n                instruction: 'Carefully remove the chicken pieces from the pot using tongs or a slotted spoon. Place them on a cutting board and let cool for 5 minutes. Remove the skin and bones, then shred the meat into bite-sized pieces using two forks. Return the shredded chicken to the pot.',\n                tip: 'Save those bones! You can make an even richer broth by simmering them with water and vegetables for another hour. Freeze it for your next soup.',\n                timer: null\n            },\n            {\n                title: 'Cook the Noodles',\n                instruction: 'Add the egg noodles to the soup and cook according to package directions (usually 8-10 minutes) until tender but not mushy. Season with salt and pepper to taste. Remember that the broth will intensify as it cooks, so season conservatively.',\n                tip: 'For meal prep or leftovers, cook noodles separately and add them to individual bowls. This prevents them from absorbing too much liquid and becoming soggy.',\n                timer: 10\n            },\n            {\n                title: 'Final Touches',\n                instruction: 'Remove the bay leaves and discard them. Stir in the fresh chopped parsley. Taste and adjust seasoning with additional salt, pepper, or a squeeze of lemon juice for brightness. Let the soup rest for 5 minutes before serving.',\n                tip: 'A squeeze of fresh lemon juice at the end brightens all the flavors. It\\'s the secret ingredient many restaurants use!',\n                timer: null\n            },\n            {\n                title: 'Serve and Enjoy',\n                instruction: 'Ladle the hot soup into bowls and serve immediately. Garnish with extra fresh parsley or a sprinkle of black pepper. Serve with crusty bread, crackers, or a simple green salad for a complete meal.',\n                tip: 'Chicken soup tastes even better the next day as flavors meld together. Store in the refrigerator and enjoy within 4 days.',\n                timer: null\n            }\n        ];\n        \n        \/\/ ===== STATE =====\n        let currentUnit = 'metric';\n        let servingSize = 6;\n        let currentRating = 0;\n        let timerInterval = null;\n        let timerSeconds = 0;\n        let timerTarget = 0;\n        \n        \/\/ ===== INITIALIZATION =====\n        document.addEventListener('DOMContentLoaded', function() {\n            renderIngredients();\n            renderSteps();\n            loadNotes();\n            updateProgress();\n            setupConverterListeners();\n            \n            \/\/ Update progress on scroll\n            window.addEventListener('scroll', updateProgress);\n        });\n        \n        \/\/ ===== RENDER FUNCTIONS =====\n        function renderIngredients() {\n            const ingredientsList = document.getElementById('ingredientsList');\n            const currentIngredients = ingredients[currentUnit];\n            const multiplier = servingSize \/ 6;\n            \n            ingredientsList.innerHTML = currentIngredients.map((ing, index) => {\n                const adjustedAmount = ing.amount > 0 ? (ing.amount * multiplier).toFixed(1) : '';\n                const displayAmount = adjustedAmount ? `${adjustedAmount}${ing.unit ? ' ' + ing.unit : ''}` : '';\n                \n                return `\n                    <li class=\"ingredient-item\">\n                        <div class=\"ingredient-checkbox\" onclick=\"toggleIngredient(${index})\" id=\"ingredient-${index}\"><\/div>\n                        <span class=\"ingredient-text\" id=\"ingredient-text-${index}\">\n                            <span class=\"ingredient-amount\">${displayAmount}<\/span> ${ing.name}\n                        <\/span>\n                        ${ing.substitution ? `\n                            <div class=\"substitution-icon\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                                    <circle cx=\"12\" cy=\"12\" r=\"10\"\/>\n                                    <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"\/>\n                                    <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"\/>\n                                <\/svg>\n                                <div class=\"substitution-tooltip\">\n                                    \ud83d\udca1 ${ing.substitution}\n                                <\/div>\n                            <\/div>\n                        ` : ''}\n                    <\/li>\n                `;\n            }).join('');\n        }\n        \n        function renderSteps() {\n            const stepsContainer = document.getElementById('stepsContainer');\n            stepsContainer.innerHTML = steps.map((step, index) => `\n                <div class=\"step-card\" id=\"step-${index}\">\n                    <div class=\"step-number\">${index + 1}<\/div>\n                    <h3>${step.title}<\/h3>\n                    <p class=\"step-instruction\">${step.instruction}<\/p>\n                    ${step.tip ? `\n                        <div class=\"tip-toggle\" onclick=\"toggleTip(${index})\">\n                            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"16\" height=\"16\">\n                                <path d=\"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z\"\/>\n                            <\/svg>\n                            Show chef's tip\n                        <\/div>\n                        <div class=\"step-tip\" id=\"tip-${index}\">\n                            ${step.tip}\n                        <\/div>\n                    ` : ''}\n                    ${step.timer ? `\n                        <button class=\"timer-button\" onclick=\"startTimer(${step.timer}, '${step.title}')\">\n                            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                                <circle cx=\"12\" cy=\"12\" r=\"10\"\/>\n                                <polyline points=\"12 6 12 12 16 14\"\/>\n                            <\/svg>\n                            Set ${step.timer} min timer\n                        <\/button>\n                    ` : ''}\n                <\/div>\n            `).join('');\n        }\n        \n        \/\/ ===== INTERACTION FUNCTIONS =====\n        function toggleIngredient(index) {\n            const checkbox = document.getElementById(`ingredient-${index}`);\n            const text = document.getElementById(`ingredient-text-${index}`);\n            \n            checkbox.classList.toggle('checked');\n            text.classList.toggle('checked');\n            \n            updateProgress();\n        }\n        \n        function toggleTip(index) {\n            const tip = document.getElementById(`tip-${index}`);\n            tip.classList.toggle('show');\n        }\n        \n        function adjustServings(delta) {\n            servingSize = Math.max(1, servingSize + delta);\n            document.getElementById('servingCount').textContent = servingSize;\n            renderIngredients();\n        }\n        \n        function switchUnits(unit) {\n            currentUnit = unit;\n            document.getElementById('metricBtn').classList.toggle('active', unit === 'metric');\n            document.getElementById('imperialBtn').classList.toggle('active', unit === 'imperial');\n            renderIngredients();\n        }\n        \n        function switchTab(index) {\n            const buttons = document.querySelectorAll('.tab-button');\n            const panels = document.querySelectorAll('.tab-panel');\n            \n            buttons.forEach((btn, i) => {\n                btn.classList.toggle('active', i === index);\n                btn.setAttribute('aria-selected', i === index);\n            });\n            \n            panels.forEach((panel, i) => {\n                panel.classList.toggle('active', i === index);\n            });\n        }\n        \n        function toggleAccordion(index) {\n            const headers = document.querySelectorAll('.accordion-header');\n            const contents = document.querySelectorAll('.accordion-content');\n            \n            const header = headers[index];\n            const content = contents[index];\n            \n            const isActive = header.classList.contains('active');\n            \n            header.classList.toggle('active');\n            content.classList.toggle('active');\n            header.setAttribute('aria-expanded', !isActive);\n        }\n        \n        function updateProgress() {\n            const checkboxes = document.querySelectorAll('.ingredient-checkbox');\n            const checkedCount = document.querySelectorAll('.ingredient-checkbox.checked').length;\n            const progress = (checkedCount \/ checkboxes.length) * 100;\n            document.getElementById('progressBar').style.width = progress + '%';\n        }\n        \n        function setRating(rating) {\n            currentRating = rating;\n            const stars = document.querySelectorAll('.star');\n            stars.forEach((star, index) => {\n                star.classList.toggle('active', index < rating);\n            });\n            \n            const ratingText = document.getElementById('ratingText');\n            const messages = [\n                'Not for me',\n                'It was okay',\n                'Good recipe',\n                'Really enjoyed it!',\n                'Absolutely amazing!'\n            ];\n            ratingText.textContent = `You rated this ${rating} star${rating > 1 ? 's' : ''}: ${messages[rating - 1]}`;\n            \n            \/\/ Save rating to localStorage\n            localStorage.setItem('chickenSoupRating', rating);\n        }\n        \n        \/\/ ===== TIMER FUNCTIONS =====\n        function startTimer(minutes, stepName) {\n            timerTarget = minutes * 60;\n            timerSeconds = timerTarget;\n            document.getElementById('timerDisplay').classList.add('show');\n            updateTimerDisplay();\n            \n            if (timerInterval) clearInterval(timerInterval);\n            timerInterval = setInterval(() => {\n                timerSeconds--;\n                updateTimerDisplay();\n                \n                if (timerSeconds <= 0) {\n                    clearInterval(timerInterval);\n                    notifyTimerComplete(stepName);\n                }\n            }, 1000);\n        }\n        \n        function updateTimerDisplay() {\n            const mins = Math.floor(timerSeconds \/ 60);\n            const secs = timerSeconds % 60;\n            document.getElementById('timerTime').textContent = \n                `${String(mins).padStart(2, '0')}:${String(secs).padStart(2, '0')}`;\n        }\n        \n        function pauseTimer() {\n            if (timerInterval) {\n                clearInterval(timerInterval);\n                timerInterval = null;\n            } else {\n                timerInterval = setInterval(() => {\n                    timerSeconds--;\n                    updateTimerDisplay();\n                    \n                    if (timerSeconds <= 0) {\n                        clearInterval(timerInterval);\n                        notifyTimerComplete();\n                    }\n                }, 1000);\n            }\n        }\n        \n        function resetTimer() {\n            timerSeconds = timerTarget;\n            updateTimerDisplay();\n        }\n        \n        function closeTimer() {\n            if (timerInterval) clearInterval(timerInterval);\n            document.getElementById('timerDisplay').classList.remove('show');\n        }\n        \n        function notifyTimerComplete(stepName) {\n            if ('Notification' in window &#038;&#038; Notification.permission === 'granted') {\n                new Notification('Timer Complete!', {\n                    body: `Time for: ${stepName || 'next step'}`,\n                    icon: '\/favicon.ico'\n                });\n            } else {\n                alert(`\u23f0 Timer Complete! Time for: ${stepName || 'next step'}`);\n            }\n        }\n        \n        \/\/ Request notification permission on page load\n        if ('Notification' in window &#038;&#038; Notification.permission === 'default') {\n            Notification.requestPermission();\n        }\n        \n        \/\/ ===== NOTES FUNCTIONS =====\n        function saveNotes() {\n            const notes = document.getElementById('userNotes').value;\n            localStorage.setItem('chickenSoupNotes', notes);\n            alert('\u2705 Your notes have been saved!');\n        }\n        \n        function loadNotes() {\n            const notes = localStorage.getItem('chickenSoupNotes');\n            if (notes) {\n                document.getElementById('userNotes').value = notes;\n            }\n        }\n        \n        \/\/ ===== SHOPPING LIST =====\n        function addToShoppingList() {\n            const currentIngredients = ingredients[currentUnit];\n            const multiplier = servingSize \/ 6;\n            \n            let listHTML = '<h3 style=\"margin-bottom: 16px;\">Ingredients for ' + servingSize + ' servings<\/h3><ul style=\"list-style: none; padding: 0;\">';\n            \n            currentIngredients.forEach(ing => {\n                const adjustedAmount = ing.amount > 0 ? (ing.amount * multiplier).toFixed(1) : '';\n                const displayAmount = adjustedAmount ? `${adjustedAmount}${ing.unit ? ' ' + ing.unit : ''}` : '';\n                listHTML += `<li style=\"padding: 8px 0; border-bottom: 1px solid var(--neutral-100);\">\u2610 ${displayAmount} ${ing.name}<\/li>`;\n            });\n            \n            listHTML += '<\/ul>';\n            \n            document.getElementById('shoppingListContent').innerHTML = listHTML;\n            document.getElementById('shoppingModal').classList.add('show');\n        }\n        \n        function closeModal() {\n            document.getElementById('shoppingModal').classList.remove('show');\n        }\n        \n        function copyShoppingList() {\n            const currentIngredients = ingredients[currentUnit];\n            const multiplier = servingSize \/ 6;\n            \n            let text = `Shopping List - Chicken Soup (${servingSize} servings)\\n\\n`;\n            currentIngredients.forEach(ing => {\n                const adjustedAmount = ing.amount > 0 ? (ing.amount * multiplier).toFixed(1) : '';\n                const displayAmount = adjustedAmount ? `${adjustedAmount}${ing.unit ? ' ' + ing.unit : ''}` : '';\n                text += `\u2610 ${displayAmount} ${ing.name}\\n`;\n            });\n            \n            navigator.clipboard.writeText(text).then(() => {\n                alert('\u2705 Shopping list copied to clipboard!');\n            });\n        }\n        \n        \/\/ ===== SHARE FUNCTIONS =====\n        function shareRecipe() {\n            if (navigator.share) {\n                navigator.share({\n                    title: 'Classic Homemade Chicken Soup',\n                    text: 'Check out this amazing chicken soup recipe!',\n                    url: window.location.href\n                });\n            } else {\n                alert('Share this recipe: ' + window.location.href);\n            }\n        }\n        \n        function shareOn(platform) {\n            const url = encodeURIComponent(window.location.href);\n            const text = encodeURIComponent('Check out this amazing Chicken Soup recipe!');\n            \n            const urls = {\n                pinterest: `https:\/\/pinterest.com\/pin\/create\/button\/?url=${url}&description=${text}`,\n                facebook: `https:\/\/www.facebook.com\/sharer\/sharer.php?u=${url}`,\n                twitter: `https:\/\/twitter.com\/intent\/tweet?url=${url}&text=${text}`,\n                instagram: 'https:\/\/www.instagram.com\/'\n            };\n            \n            if (urls[platform]) {\n                window.open(urls[platform], '_blank', 'width=600,height=400');\n            }\n        }\n        \n        \/\/ ===== MEASUREMENT CONVERTER =====\n        const conversions = {\n            \/\/ Volume\n            cup: { ml: 240, l: 0.24, tbsp: 16, tsp: 48 },\n            tbsp: { ml: 15, cup: 0.0625, tsp: 3 },\n            tsp: { ml: 5, cup: 0.0208, tbsp: 0.333 },\n            ml: { l: 0.001, cup: 0.00423, tbsp: 0.0676, tsp: 0.203 },\n            l: { ml: 1000, cup: 4.227, tbsp: 67.628, tsp: 202.884 },\n            \/\/ Weight\n            oz: { g: 28.35, lb: 0.0625, kg: 0.0283 },\n            lb: { g: 453.592, oz: 16, kg: 0.454 },\n            g: { kg: 0.001, oz: 0.0353, lb: 0.0022 },\n            kg: { g: 1000, oz: 35.274, lb: 2.205 }\n        };\n        \n        function setupConverterListeners() {\n            document.getElementById('converterInput').addEventListener('input', convertMeasurement);\n            document.getElementById('converterFrom').addEventListener('change', convertMeasurement);\n            document.getElementById('converterTo').addEventListener('change', convertMeasurement);\n        }\n        \n        function convertMeasurement() {\n            const input = parseFloat(document.getElementById('converterInput').value) || 0;\n            const from = document.getElementById('converterFrom').value;\n            const to = document.getElementById('converterTo').value;\n            \n            let result = input;\n            \n            if (from !== to && conversions[from] && conversions[from][to]) {\n                result = input * conversions[from][to];\n            } else if (from === to) {\n                result = input;\n            } else {\n                result = 0;\n            }\n            \n            document.getElementById('converterOutput').value = result.toFixed(2);\n        }\n        \n        \/\/ Initialize converter\n        convertMeasurement();\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n  <title>Classic Comfort Chicken Soup Recipe<\/title>\n  <style>\n    body { font-family: 'Segoe UI', Arial, sans-serif; margin: 0; background: #f6f8fa; color: #232323; }\n    .hero { position: relative; text-align: center; padding: 40px 10px 20px 10px; background: #fff; }\n    .hero img { width: 100%; max-width: 500px; border-radius: 16px; box-shadow: 0 2px 12px #ddd; }\n    .badges { margin: 18px 0 0 0; }\n    .badge { display: inline-block; background: #f3eee2; color: #4a4a4a; border-radius: 16px; padding: 7px 16px; margin: 0 7px 7px 0; font-size: 15px; }\n    .quick-info { \n      background: #fff7ea; border-radius: 12px; box-shadow: 0 2px 16px #eee; \n      padding: 18px 24px; margin: -30px auto 30px auto; max-width: 380px; position: relative; z-index: 2;\n    }\n    .quick-info h3 { margin: 0 0 8px 0; }\n    .diet-icon { font-size: 20px; margin-right: 5px; }\n    .equipment { margin-top: 10px; font-size: 15px;}\n    .section { background: #fff; border-radius: 10px; margin: 18px auto; max-width: 650px; padding: 24px 20px 16px 20px; box-shadow: 0 1px 8px #f1f1f1;}\n    .section h2 { margin-top: 0;}\n    .ingredients-list { list-style: none; padding: 0; }\n    .ingredients-list li { margin: 10px 0; }\n    .step { display: flex; align-items: flex-start; margin-bottom: 18px;}\n    .step-num { \n      font-weight: bold; color: #007d40; \n      background: #e9ffe6; border-radius: 50%; width: 32px; height: 32px; \n      display: flex; align-items: center; justify-content: center; margin-right: 14px;\n    }\n    .step-content { flex: 1; }\n    .step-tip { font-size: 14px; color: #888; margin-top: 3px;}\n    .progress { background: #e2f1fa; border-radius: 6px; overflow: hidden; margin-bottom: 18px; }\n    .progress-bar { background: #0080ff; height: 8px; width: 0%; transition: width 0.4s;}\n    .nutrition-table { width: 100%; border-collapse: collapse; margin-top: 10px; }\n    .nutrition-table th, .nutrition-table td { border: 1px solid #eaeaea; padding: 6px 12px; font-size: 15px;}\n    .tabs { display: flex; gap: 8px; margin-bottom: 12px; }\n    .tab { background: #f3eee2; border: none; border-radius: 14px; padding: 8px 15px; cursor: pointer; font-size: 15px;}\n    .tab.active { background: #0080ff; color: #fff;}\n    .tab-content { display: none;}\n    .tab-content.active { display: block; }\n    .tools { display: flex; gap: 18px; flex-wrap: wrap; align-items: center; margin: 16px 0 12px 0;}\n    .serving-adjust { display: flex; align-items: center; gap: 6px;}\n    .btn { background: #0080ff; color: #fff; border: none; border-radius: 6px; padding: 8px 16px; cursor: pointer; font-size: 15px;}\n    .btn.print { background: #ffd700; color: #232323;}\n    .chef-tip { background: #e2f1fa; border-left: 5px solid #0080ff; padding: 10px 20px; margin: 22px 0; font-size: 16px;}\n    .storage { background: #f8efe0; padding: 12px 18px; border-radius: 8px; font-size: 15px;}\n    .related { display: flex; flex-wrap: wrap; gap: 15px;}\n    .related-card { background: #f6f8fa; border-radius: 8px; padding: 12px 18px; flex: 1; min-width: 140px; text-align: center;}\n    .beverage { margin: 18px 0 0 0; font-style: italic; color: #555; }\n    @media (max-width: 700px) {\n      .section, .quick-info { max-width: 97vw; }\n      .hero img { max-width: 94vw; }\n    }\n  <\/style>\n<\/head>\n<body>\n  <div class=\"hero\">\n    <h1>Classic Comfort Chicken Soup<\/h1>\n    <img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1504674900247-0877df9cc836?auto=format&#038;fit=crop&#038;w=800&#038;q=80\" alt=\"Bowl of Chicken Soup\">\n    <div class=\"badges\">\n      <span class=\"badge\">\u23f1\ufe0f Prep: 15 min<\/span>\n      <span class=\"badge\">\ud83c\udf72 Cook: 40 min<\/span>\n      <span class=\"badge\">\u2b50 Easy<\/span>\n      <span class=\"badge\">\ud83c\udf7d\ufe0f 4 servings<\/span>\n    <\/div>\n  <\/div>\n\n  <div class=\"quick-info\" id=\"quick-info\">\n    <h3>Quick Info<\/h3>\n    <div><strong>Calories:<\/strong> <span id=\"calories\">215<\/span> per serving<\/div>\n    <div>\n      <span class=\"diet-icon\" title=\"Gluten-Free\">\ud83c\udf3e<\/span>\n      <span class=\"diet-icon\" title=\"Dairy-Free\">\ud83e\udd5b\ud83d\udeab<\/span>\n      <span class=\"diet-icon\" title=\"Nut-Free\">\ud83e\udd5c\ud83d\udeab<\/span>\n    <\/div>\n    <div class=\"equipment\">\n      <strong>Equipment:<\/strong> Large pot, ladle, chopping board, knife\n    <\/div>\n  <\/div>\n\n  <div class=\"section\">\n    <h2>\ud83d\udcdd Ingredients <span id=\"unit-label\">(US)<\/span><\/h2>\n    <div style=\"display:flex; gap:20px; flex-wrap:wrap;\">\n      <label><input type=\"radio\" name=\"units\" value=\"us\" checked> US<\/label>\n      <label><input type=\"radio\" name=\"units\" value=\"metric\"> Metric<\/label>\n    <\/div>\n    <ul class=\"ingredients-list\" id=\"ingredients-list\">\n      <li><input type=\"checkbox\"> 2 boneless, skinless chicken breasts<\/li>\n      <li><input type=\"checkbox\"> 8 cups chicken broth<\/li>\n      <li><input type=\"checkbox\"> 3 carrots, sliced<\/li>\n      <li><input type=\"checkbox\"> 2 celery stalks, chopped<\/li>\n      <li><input type=\"checkbox\"> 1 onion, diced<\/li>\n      <li><input type=\"checkbox\"> 2 cloves garlic, minced<\/li>\n      <li><input type=\"checkbox\"> 1 cup egg noodles<\/li>\n      <li><input type=\"checkbox\"> 2 tbsp olive oil<\/li>\n      <li><input type=\"checkbox\"> 1 tsp dried thyme<\/li>\n      <li><input type=\"checkbox\"> Salt &#038; pepper, to taste<\/li>\n      <li><input type=\"checkbox\"> Fresh parsley, for serving<\/li>\n    <\/ul>\n  <\/div>\n\n  <div class=\"section\">\n    <h2>\ud83d\udc69\u200d\ud83c\udf73 Cooking Steps <span id=\"step-counter\">(Step 1 of 6)<\/span><\/h2>\n    <div class=\"progress\"><div class=\"progress-bar\" id=\"progress-bar\" style=\"width:16%\"><\/div><\/div>\n    <div id=\"steps\">\n      <div class=\"step\">\n        <div class=\"step-num\">1<\/div>\n        <div class=\"step-content\">\n          Heat olive oil in a large pot over medium heat. Add onion, carrots, and celery. Saut\u00e9 for 5-6 minutes until softened.\n          <div class=\"step-tip\">Tip: Chop veggies evenly for consistent cooking.<\/div>\n        <\/div>\n      <\/div>\n      <div class=\"step\">\n        <div class=\"step-num\">2<\/div>\n        <div class=\"step-content\">\n          Stir in garlic and thyme. Cook for 1 minute until fragrant.\n          <div class=\"step-tip\">Tip: Don\u2019t let garlic burn \u2013 keep stirring!<\/div>\n        <\/div>\n      <\/div>\n      <div class=\"step\">\n        <div class=\"step-num\">3<\/div>\n        <div class=\"step-content\">\n          Pour in chicken broth and bring to a simmer.\n          <div class=\"step-tip\">Optional: Skim off any foam for a clearer soup.<\/div>\n        <\/div>\n      <\/div>\n      <div class=\"step\">\n        <div class=\"step-num\">4<\/div>\n        <div class=\"step-content\">\n          Add chicken breasts. Simmer gently for 15-18 minutes until cooked through.\n          <div class=\"step-tip\">Tip: Don\u2019t boil rapidly \u2013 keep it at a gentle simmer.<\/div>\n        <\/div>\n      <\/div>\n      <div class=\"step\">\n        <div class=\"step-num\">5<\/div>\n        <div class=\"step-content\">\n          Remove chicken, shred with forks, and return to the pot. Add noodles and cook 8-10 min until tender.\n          <div class=\"step-tip\">Photo: <span style=\"color:#888\">(Placeholder for shredded chicken photo)<\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"step\">\n        <div class=\"step-num\">6<\/div>\n        <div class=\"step-content\">\n          Season with salt &#038; pepper. Serve hot, topped with fresh parsley.\n          <div class=\"step-tip\">Video: <span style=\"color:#888\">(Placeholder for serving video)<\/span><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"chef-tip\">\n      <strong>Chef\u2019s Tip:<\/strong> For extra depth, add a splash of lemon juice just before serving to brighten the flavors!\n    <\/div>\n  <\/div>\n\n  <div class=\"section\">\n    <h2>\ud83d\udd22 Nutrition Facts (per serving)<\/h2>\n    <table class=\"nutrition-table\">\n      <tr><th>Calories<\/th><th>Protein<\/th><th>Carbs<\/th><th>Fat<\/th><th>Vitamin A<\/th><th>Vitamin C<\/th><\/tr>\n      <tr><td id=\"nf-cal\">215<\/td><td id=\"nf-protein\">22g<\/td><td id=\"nf-carbs\">18g<\/td><td id=\"nf-fat\">6g<\/td>\n      <td>68%<\/td><td>21%<\/td><\/tr>\n    <\/table>\n  <\/div>\n\n  <div class=\"section\">\n    <h2>\ud83c\udf7d\ufe0f Recipe Variations<\/h2>\n    <div class=\"tabs\">\n      <button class=\"tab active\" onclick=\"showTab(0)\">Vegan \ud83e\udd55<\/button>\n      <button class=\"tab\" onclick=\"showTab(1)\">Gluten-Free \ud83c\udf3e<\/button>\n      <button class=\"tab\" onclick=\"showTab(2)\">Low-Carb<\/button>\n    <\/div>\n    <div id=\"tab-contents\">\n      <div class=\"tab-content active\">\n        <strong>Vegan:<\/strong> Replace chicken with chickpeas or tofu, and use vegetable broth. Omit egg noodles or use vegan noodles.\n      <\/div>\n      <div class=\"tab-content\">\n        <strong>Gluten-Free:<\/strong> Swap egg noodles for gluten-free pasta or rice noodles.\n      <\/div>\n      <div class=\"tab-content\">\n        <strong>Low-Carb:<\/strong> Use zucchini noodles (\u201czoodles\u201d) instead of pasta, and increase veggies.\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"section tools\">\n    <div class=\"serving-adjust\">\n      <label><strong>Servings: <\/strong><\/label>\n      <button class=\"btn\" onclick=\"adjustServing(-1)\">&#8211;<\/button>\n      <span id=\"servings-count\">4<\/span>\n      <button class=\"btn\" onclick=\"adjustServing(1)\">+<\/button>\n    <\/div>\n    <button class=\"btn\" onclick=\"addToShoppingList()\">Add to Shopping List<\/button>\n    <button class=\"btn print\" onclick=\"window.print()\">\ud83d\udda8\ufe0f Print Recipe<\/button>\n  <\/div>\n\n  <div class=\"section storage\">\n    <strong>Storage:<\/strong>\n    Keeps in the fridge for up to 4 days. Freeze leftovers for up to 2 months! Reheat gently on the stovetop.\n  <\/div>\n\n  <div class=\"section\">\n    <h2>\ud83d\udd17 Related Recipes<\/h2>\n    <div class=\"related\">\n      <div class=\"related-card\">\n        <strong>Hearty Lentil Stew<\/strong><br>\n        <small>Vegan &#038; gluten-free<\/small>\n      <\/div>\n      <div class=\"related-card\">\n        <strong>Easy Turkey Chili<\/strong><br>\n        <small>High-protein<\/small>\n      <\/div>\n      <div class=\"related-card\">\n        <strong>Classic Vegetable Soup<\/strong><br>\n        <small>Low-calorie<\/small>\n      <\/div>\n    <\/div>\n    <div class=\"beverage\">\n      \ud83c\udf77 Pairs well with a crisp white wine or refreshing iced tea.\n    <\/div>\n  <\/div>\n\n  <script>\n    \/\/ Unit converter data (basic, for demonstration)\n    const ingredientData = [\n      [\"2 boneless, skinless chicken breasts\", \"300g chicken breast\"],\n      [\"8 cups chicken broth\", \"2 liters vegetable\/chicken broth\"],\n      [\"3 carrots, sliced\", \"3 carrots, sliced\"],\n      [\"2 celery stalks, chopped\", \"2 celery stalks, chopped\"],\n      [\"1 onion, diced\", \"1 onion, diced\"],\n      [\"2 cloves garlic, minced\", \"2 cloves garlic, minced\"],\n      [\"1 cup egg noodles\", \"100g egg noodles\"],\n      [\"2 tbsp olive oil\", \"30ml olive oil\"],\n      [\"1 tsp dried thyme\", \"1 tsp dried thyme\"],\n      [\"Salt & pepper, to taste\", \"Salt & pepper, to taste\"],\n      [\"Fresh parsley, for serving\", \"Fresh parsley, for serving\"]\n    ];\n    function updateIngredients(unit) {\n      const ul = document.getElementById('ingredients-list');\n      ul.innerHTML = '';\n      ingredientData.forEach(function(item, idx) {\n        ul.innerHTML += `<li><input type=\"checkbox\"> ${unit === 'metric' ? item[1] : item[0]}<\/li>`;\n      });\n      document.getElementById('unit-label').innerText = unit === 'us' ? '(US)' : '(Metric)';\n    }\n    document.querySelectorAll('input[name=\"units\"]').forEach(function(el) {\n      el.addEventListener('change', function() {\n        updateIngredients(this.value);\n      });\n    });\n\n    \/\/ Step progress bar & tracker\n    let stepsTotal = 6;\n    let currentStep = 1;\n    function updateStepCounter(step) {\n      document.getElementById('step-counter').textContent = `(Step ${step} of ${stepsTotal})`;\n      document.getElementById('progress-bar').style.width = (step\/stepsTotal)*100 + '%';\n    }\n    \/\/ Optionally, make steps collapsible or clickable to set progress (not in this simple version)\n    updateStepCounter(currentStep);\n\n    \/\/ Variation tabs\n    function showTab(tabIdx) {\n      document.querySelectorAll('.tab').forEach((btn, i) => {\n        btn.classList.toggle('active', i === tabIdx);\n      });\n      document.querySelectorAll('.tab-content').forEach((div, i) => {\n        div.classList.toggle('active', i === tabIdx);\n      });\n    }\n\n    \/\/ Serving size adjuster\n    let servings = 4;\n    let caloriesPerServing = 215;\n    function adjustServing(delta) {\n      servings = Math.max(1, servings + delta);\n      document.getElementById('servings-count').textContent = servings;\n      document.getElementById('calories').textContent = Math.round(caloriesPerServing * servings \/ 4);\n      document.getElementById('nf-cal').textContent = Math.round(caloriesPerServing * servings \/ 4);\n    }\n\n    \/\/ Add to Shopping List (simple demo)\n    function addToShoppingList() {\n      alert('All ingredients added to your shopping list! (Demo)');\n    }\n  <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Ultimate Homemade Chicken Soup Recipe | Comfort Food Classic Skip to recipe Classic Homemade Chicken Soup A warming, nourishing soup made with tender chicken, fresh vegetables, and aromatic herbs. Perfect for cold days or when you need comfort food. 20 min prep 60 min cook 6 servings Easy Print Recipe Add to Shopping List Share [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1213","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/posts\/1213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/comments?post=1213"}],"version-history":[{"count":2,"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/posts\/1213\/revisions"}],"predecessor-version":[{"id":1218,"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/posts\/1213\/revisions\/1218"}],"wp:attachment":[{"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/media?parent=1213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/categories?post=1213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/tags?post=1213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}