
        body {
            background-color: #ffffff;
            color: #1f2937; /* text-gray-800 */
            line-height: 1.6;
            /* Font removed as requested */
        }

        /* --- Layout --- */
        .fg-container {
            max-width: 64rem; /* max-w-5xl */
            margin-left: auto;
            margin-right: auto;
            padding: 1rem 2rem;
        }

        /* --- Header --- */
        .fg-header {
            text-align: center;
            margin-bottom: 3rem; /* mb-12 */
            margin-top: 2rem; /* mt-8 */
        }
        .fg-h1 {
            font-size: 2.25rem; /* text-3xl sm:text-4xl */
            font-weight: 700;
            color: #1e3a8a; /* text-sky-800 */
            margin-bottom: 0.5rem; /* mb-2 */
        }
        .fg-header-sub {
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.125rem; /* text-lg */
            color: #4b5563; /* text-gray-600 */
            margin: 0.5rem 0;
        }
        .fg-header-sub-text {
            color: #2563eb; /* text-blue-600 */
            font-weight: 600;
        }
        
        .fg-header-icons {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0.75rem;
            color: #075985; /* text-sky-800 */
        }
         .fg-header-icons svg {
            width: 2.25rem; /* h-9 */
            height: 2.25rem; /* w-9 */
            opacity: 0.9;
         }


        .fg-intro-text {
            display: flex;
            justify-content: flex-start;
            align-items: center;
            margin-bottom: 1rem;
            color: #374151; /* text-gray-700 */
        }
        .fg-intro-text svg {
            width: 1.5rem;
            height: 1.5rem;
            margin-left: 0.5rem;
            color: #3b82f6; /* text-blue-500 */
        }

        /* --- Main Timeline --- */
        .fg-main {
            display: grid;
            gap: 4rem; /* space-y-16 */
        }
        .fg-step-card {
            position: relative;
            padding-right: 2.5rem; /* Space for the line and icon */
        }
        /* The vertical line */
        .fg-step-card:not(:last-child)::before {
            content: '';
            position: absolute;
            right: 18px; /* Center the line */
            top: 40px; /* Start below the icon */
            width: 4px;
            height: calc(100% + 4rem);
            border-radius: 2px;
        }
        /* The arrowhead */
        .fg-step-card:not(:last-child)::after {
            content: '';
            position: absolute;
            right: 12px; /* Center the arrow on the line */
            top: calc(100% + 1.5rem);
            width: 0;
            height: 0;
            border-left: 8px solid transparent;
            border-right: 8px solid transparent;
            border-top: 10px solid;
        }

        /* Line/Arrow Colors */
        #download::before, #download::after {
            background-color: #7dd3fc; /* sky-300 */
            border-top-color: #7dd3fc;
        }
        #install::before, #install::after {
            background-color: #86efac; /* green-300 */
            border-top-color: #86efac;
        }
        #run::before, #run::after {
            background-color: #fde047; /* yellow-300 */
            border-top-color: #fde047;
        }
        /* Language step has no line after it */


        .fg-step-icon {
            position: absolute;
            right: 0;
            top: 0;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 4px solid #ffffff;
            z-index: 10;
            font-weight: 700;
            color: white;
        }
        .fg-bg-sky-500 { background-color: #0ea5e9; }
        .fg-bg-green-500 { background-color: #22c55e; } /* Added */
        .fg-bg-yellow-500 { background-color: #eab308; }
        .fg-bg-indigo-500 { background-color: #6366f1; }

        /* --- Content Card --- */
        .fg-card {
            padding: 1.5rem; /* p-6 */
            border-radius: 0.5rem; /* rounded-lg */
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); /* shadow-md */
            border: 1px solid #e5e7eb; /* border-gray-200 */
            background-color: #f0f9ff; /* Default bg-sky-50 */
        }
        .fg-bg-green-50 { background-color: #f0fdf4; } /* Added */
        .fg-bg-yellow-50 { background-color: #fefce8; }
        .fg-bg-indigo-50 { background-color: #eef2ff; }

        .fg-card-header {
            display: flex;
            align-items: center;
            margin-bottom: 1rem;
        }
        .fg-card-header svg {
            width: 2rem; /* h-8 w-8 */
            height: 2rem;
            margin-left: 0.75rem; /* ml-3 */
        }
        .fg-h2 {
            font-size: 1.5rem; /* text-2xl */
            font-weight: 700;
        }
        .fg-text-sky-700 { color: #0369a1; }
        .fg-text-sky-500 { color: #0ea5e9; }
        .fg-text-green-700 { color: #15803d; } /* Added */
        .fg-text-green-500 { color: #22c55e; } /* Added */
        .fg-text-yellow-700 { color: #a16207; }
        .fg-text-yellow-500 { color: #eab308; }
        .fg-text-indigo-700 { color: #4338ca; }
        .fg-text-indigo-500 { color: #6366f1; }
        
        /* --- List Styles --- */
        .fg-ul {
            list-style-type: disc;
            list-style-position: outside;
            padding-right: 1.25rem; /* pr-5 */
            display: grid;
            gap: 1rem; /* space-y-4 */
        }
        .fg-ul li {
            padding-right: 0.5rem;
            font-size: 0.875rem; /* text-sm */
            font-weight: 500; /* medium */
            color: #374151; /* text-gray-700 */
        }
        .fg-p, .fg-summary-text {
            display: inline;
        }
        .fg-strong { 
            font-weight: 700; /* bold */
            color: #111827; /* text-gray-900 */
        }
        .fg-link {
            color: #0284c7; /* text-sky-600 */
            font-weight: 700; /* bold */
            text-decoration: none;
        }
        .fg-link:hover { text-decoration: underline; }

        .fg-ul-sky li::marker { color: #0ea5e9; }
        .fg-ul-green li::marker { color: #22c55e; } /* Added */
        .fg-ul-yellow li::marker { color: #eab308; }
        .fg-ul-indigo li::marker { color: #6366f1; }

        /* --- <details> & <summary> --- */
        .fg-details > summary {
            list-style: none;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 0.5rem; 
        }
        .fg-details > summary::-webkit-details-marker {
            display: none;
        }
        .fg-arrow-container {
            display: inline-block;
            animation: fg-blink 1.8s infinite ease-in-out;
            color: black;
            flex-shrink: 0;
        }
        .fg-arrow-svg {
            width: 1rem; /* h-4 w-4 */
            height: 1rem;
            display: inline-block;
            margin-bottom: -0.125rem;
            transition: transform 0.3s ease;
        }
        .fg-details[open] .fg-arrow-svg {
            transform: rotate(180deg);
        }
        @keyframes fg-blink {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.3; }
        }
        
        /* --- Image Placeholder --- */
        .fg-image-placeholder {
            background-color: #f3f4f6; /* gray-100 */
            border-radius: 0.5rem;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            min-height: 200px;
            width: 100%;
            margin-top: 1rem;
            padding: 0.5rem;
            transition: all 0.3s ease-in-out;
            overflow: hidden;
            box-sizing: border-box; 
        }
        .fg-image-placeholder img {
            width: 100%;
            height: auto;
            max-height: 400px;
            object-fit: contain;
            border-radius: 0.375rem;
            cursor: zoom-in;
            transition: transform 0.3s ease;
        }
        .fg-image-placeholder img:hover {
            transform: scale(1.03);
        }

        /* --- Info Box --- */
        .fg-info-box {
            margin-top: 1rem;
            padding: 1rem;
            background-color: #fffbeb; /* bg-amber-50 */
            border-right: 4px solid #f59e0b; /* border-amber-400 */
            color: #92400e; /* text-amber-800 */
            border-top-right-radius: 0.5rem;
            border-bottom-right-radius: 0.5rem;
        }
        .fg-info-box ul {
            list-style-type: disc;
            padding-right: 1.25rem; /* pr-5 */
            display: grid;
            gap: 0.25rem; /* space-y-1 */
            font-size: 0.875rem; /* text-sm */
        }
        .fg-info-box-p {
             font-weight: 600; /* semibold */
             margin-bottom: 0.5rem;
        }
        .fg-info-strong {
            color: #78350f; /* text-amber-900 */
        }


        /* --- Zoom Modal (Copied from LiveWeb) --- */
        .fg-zoom-modal {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: rgba(0, 0, 0, 0.9);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 1000;
            padding: 1rem;
        }
        .fg-hidden {
            display: none !important;
        }
        .fg-flex {
            display: flex !important;
        }

        #zoomModalContent {
            position: relative;
            width: 100%;
            height: 100%;
            overflow: hidden;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        #zoomModalImage {
            transform-origin: center center;
            transition: transform 0.2s ease-out;
            max-width: none;
            max-height: none;
            cursor: grab;
        }
        
        .fg-zoom-close-btn {
            position: absolute;
            top: 1rem;
            right: 1.5rem;
            color: white;
            font-size: 3rem;
            font-weight: 700;
            opacity: 0.8;
            transition: opacity 0.2s;
            cursor: pointer;
            background: none;
            border: none;
            line-height: 1;
        }
        .fg-zoom-close-btn:hover {
            opacity: 1;
        }
        
        .fg-zoom-controls {
            position: absolute;
            top: 1rem;
            left: 1rem;
            display: flex;
            gap: 0.5rem;
        }
        .fg-zoom-btn {
            background-color: rgba(255, 255, 255, 0.8);
            color: black;
            border-radius: 50%;
            width: 2.5rem;
            height: 2.5rem;
            font-size: 1.5rem;
            font-weight: 700;
            border: none;
            cursor: pointer;
            transition: all 0.2s;
        }
        .fg-zoom-btn:hover {
            background-color: rgba(255, 255, 255, 1);
        }
