        :root {
            --bg-primary: #ffffff;
            --bg-secondary: #f8fafc;
            --bg-code: #0f172a;
            --text-main: #334155;
            --text-heading: #0f172a;
            --text-muted: #64748b;
            --sidebar-topic: #e11d48;
            --accent: #2563eb;
            --accent-light: #eff6ff;
            --border-color: #e2e8f0;
            --sidebar-width: 230px;
            --header-height: 64px;
        }
        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }
        body {
            font-family: 'Inter', sans-serif;
            background-color: var(--bg-primary);
            color: var(--text-main);
            line-height: 1.6;
            -webkit-font-smoothing: antialiased;
        }
        /* --- Header --- */
        header {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            height: var(--header-height);
            background-color: rgba(255, 255, 255, 0.8);
            backdrop-filter: blur(8px);
            border-bottom: 1px solid var(--border-color);
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0 1.5rem;
            z-index: 100;
        }
        .logo {
            font-weight: 700;
            font-size: 1.25rem;
            color: var(--text-heading);
            text-decoration: none;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }
        .logo span {
            color: var(--accent);
        }
        .menu-toggle {
            display: none;
            background: none;
            border: none;
            font-size: 1.5rem;
            color: var(--text-heading);
            cursor: pointer;
        }
        /* --- Layout Container --- */
        .container {
            display: flex;
            margin-top: var(--header-height);
            min-height: calc(100vh - var(--header-height));
        }
        /* --- Sidebar Navigation --- */
        aside {
            background-color: red;
            position: fixed;
            top: 40px; /* Or use your layout token: var(--header-height); */
            bottom: 0;
            left: 0;
            
            height: calc(110vh);
            
            width: var(--sidebar-width);
            background-color: var(--bg-secondary);
            border-right: 1px solid var(--border-color);
            z-index: 90;
        /* --- Ultra-Smooth Scroll Optimization Matrix --- */
            overflow-y: auto;
            /*overflow-x: hidden;*/
            scroll-behavior: smooth;
            -webkit-overflow-scrolling: touch; /* Kinetic momentum scrolling for iOS/Safari mobile */
    /* Isolate layout, paint, and size calculations completely from the DOM */
    contain: strict;
    
        /* --- Hardware Acceleration Layer Hooks --- */
            will-change: transform;
            backface-visibility: hidden;
            transform: translateZ(0); /* Forces GPU layer caching to eliminate micro-stuttering */
        /* --- Visual Cleanup --- */
            padding: 2rem 1.5rem;
            transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1); /* Smarter, premium easing curve */
        }
        /* --- Optional: Clean, Minimalist Scrollbar Design --- */
            aside::-webkit-scrollbar {
            width: 6px; /* Sleek, non-intrusive track width */
        }
        aside::-webkit-scrollbar-track {
        background: transparent; 
        }
        aside::-webkit-scrollbar-thumb {
        background: var(--border-color); 
        border-radius: 10px;
        }
        aside::-webkit-scrollbar-thumb:hover {
        background: var(--text-muted); /* Darkens slightly when user hovers over it */
        }
        .sidebar-section {
            margin-bottom: 2rem;
        }
        .sidebar-section h4 {
            font-size: 0.75rem;
            font-weight: 700 !important;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            color: var(--sidebar-topic);
            margin-bottom: 0.75rem;
            padding-left: 0.5rem;
            border-left: 2px solid #2563eb;
        }
        .sidebar-section ul {
            list-style: none;
        }
        .sidebar-section a {
            display: block;
            padding: 0.5rem;
            color: var(--text-main);
            text-decoration: none;
            border-radius: 6px;
            font-size: 0.925rem;
            font-weight: 500;
            transition: all 0.2s;
        }
        .sidebar-section a:hover {
            background-color: var(--border-color);
            color: var(--text-heading);
        }
        .sidebar-section a.active {
            background-color: var(--accent-light);
            color: var(--accent);
        }
        /* --- Main Content Area --- */
        main {
            flex: 1;
            margin-left: var(--sidebar-width);
            padding: 2.5rem 4rem;
            max-width: 1000px;
        }
        .content-section {
            margin-bottom: 3.5rem;
            scroll-margin-top: calc(var(--header-height) + 2rem);
        }
        h1 {
            font-size: 2.5rem;
            font-weight: 700;
            color: var(--text-heading);
            margin-bottom: 1rem;
            letter-spacing: -0.02em;
        }
        h2 {
            font-size: 1.75rem;
            font-weight: 600;
            color: var(--text-heading);
            margin-top: 2rem;
            margin-bottom: 1rem;
            border-bottom: 1px solid var(--border-color);
            padding-bottom: 0.5rem;
        }
        p {
            margin-bottom: 1.25rem;
            color: var(--text-main);
        }
        /* --- Components: Code Blocks & Callouts --- */
        pre {
            background-color: var(--bg-code);
            color: #f8f8f2;
            padding: 1.25rem;
            border-radius: 8px;
            overflow-x: auto;
            font-family: 'Fira Code', monospace;
            font-size: 0.9rem;
            margin: 1.5rem 0;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
        }
        code {
            font-family: 'Fira Code', monospace;
            background-color: var(--bg-secondary);
            color: #e11d48;
            padding: 0.2rem 0.4rem;
            border-radius: 4px;
            font-size: 0.875rem;
        }
        pre code {
            background-color: transparent;
            color: inherit;
            padding: 0;
        }
        .callout {
            background-color: var(--accent-light);
            border-left: 4px solid var(--accent);
            padding: 1rem 1.25rem;
            border-radius: 0 8px 8px 0;
            margin: 1.5rem 0;
        }
        .callout-title {
            font-weight: 600;
            color: var(--accent);
            margin-bottom: 0.25rem;
        }
        .callout p {
            margin-bottom: 0;
            font-size: 0.95rem;
        }
        /* --- Utility Syntax Highlighting Utilities --- */
        .tag { color: #f43f5e; }
        .attr { color: #fb923c; }
        .val { color: #4ade80; }
        .comment { color: #64748b; font-style: italic; }
        
        /*
        .tag { color: #f43f5e; }
        .attr { color: #fb923c; }
        .val { color: #4ade80; }
        .comment { color: #64748b; font-style: italic; }
        */
        
        /* --- Responsive Media Queries --- */
        @media (max-width: 1024px) {
            main {
                padding: 2rem;
            }
        }
        @media (max-width: 768px) {
            .menu-toggle {
                display: block;
            }
            /*aside {
                transform: translateX(-100%);
                width: 100%;
                max-width: 230px;
                min-height: 8000px;
            }*/
@media (max-width: 768px) {
    aside {
        position: fixed;
        top: var(--header-height); 
        bottom: 0; 
        left: 0;
        width: 100%;
        max-width: 230px;
        z-index: 50; 
        height: calc(170vh - var(--header-height));
        /* Enable basic scrolling boundaries */
        overflow-y: auto;
        -webkit-overflow-scrolling: touch; 
        
        /* Clean animation state (No heavy GPU forcing while hidden) */
        transform: translateX(-100%);
        transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
        
        /* Tells the browser to optimize layout box calculations ahead of time */
        contain: content; 
    }

    /* --- THE FIX: Force high-performance paint ONLY when open --- */
    aside.open {
        transform: translateX(0);
        box-shadow: 4px 0 15px rgba(0,0,0,0.15);
        
        /* Force the mobile hardware rendering engine to instantly paint 
           the entire list only when the drawer is pulled into view */
        will-change: transform, scroll-position;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
    }
}

/* --- Force Mobile Rendering Engine to Pre-Paint Sidebar Content --- */
aside * {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translate3d(0, 0, 0); /* Forces GPU layer caching on all child items */
}

/* Fix for scrolling container breakdown on iOS/Chrome mobile */
aside ul {
    display: block;
    width: 100%;
    height: auto;
    contain: content; /* Keeps nested lists isolated for instant rendering */
}
            main {
                margin-left: 0;
                padding: 1.5rem;
            }
            h1 { font-size: 2rem; }
            h2 { font-size: 1.5rem; }
        }
.code-block{
    position: relative;
    margin: 1.5rem 0;
}
.code-block pre{
    background-color: var(--bg-code);
    color: #f8f8f2;
    padding: 3.5rem 1.25rem 1.25rem;
    border-radius: 8px;
    overflow-x: auto;
    font-family: 'Fira Code', monospace;
    font-size: 0.9rem;
    margin: 0;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}
.wrapper {
    white-space: pre-wrap;
    word-break: break-word;
}
.code-block code{
    background-color: transparent;
    color: inherit;
    padding: 0;
}
.copy-btn{
    position: absolute;
    top: 12px;
    right: 12px;
    border: 1px solid white;
    border-radius: 6px;
    padding: 0.45rem 0.8rem;
    background: rgba(255,255,255,0.08);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    backdrop-filter: blur(4px);
    transition: 0.2s ease;
}
.copy-btn:hover{
    background: rgba(255,255,255,0.16);
}
footer{
    position: fixed;
    left: var(--sidebar-width);
    right: 0;
    bottom: 0;
    height: 18px;
    background-color: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(8px);
    border-top: 2px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 1.5rem;
    z-index: 100;
}
footer p{
    position: relative;
    top: 10px;
    color: var(--text-muted);
    font-size: 0.9rem;
    font-weight: 500;
}
@media (max-width: 768px){
    footer{
        left: 0;
    }
}
main{
    padding: 2.5rem 4rem 5rem;
}



/* --- Table of Contents Container --- */
.table-of-contents {
    width: 50%;
    border: 1px solid var(--border-color);
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
    margin: 2rem 0;
    background-color: var(--bg-secondary);
}

.table-of-contents h3 {
    margin-bottom: 1rem;
    color: var(--text-heading);
    font-size: 1.1rem;
}

/* --- List Structures --- */
.table-of-contents ul {
    list-style: none;
    padding-left: 0;
}

/* Indent nested sub-lists cleanly */
.table-of-contents ul ul {
    padding-left: 1.25rem;
    margin-top: 0.25rem;
    margin-bottom: 0.5rem;
}

.table-of-contents li {
    margin-bottom: 0.5rem; /* Balanced spacing between items */
}

/* --- Links & Typography --- */
.table-of-contents a {
    text-decoration: none;
    color: var(--text-main); /* Fallback to main text color for readability */
    font-size: 0.95rem;
    font-weight: 500;
    transition: 0.2s ease;
}

/* Sub-topics styled slightly smaller and muted for hierarchy */
.table-of-contents ul ul a {
    color: var(--text-muted);
    font-size: 0.9rem;
}

.table-of-contents a:hover {
    opacity: 0.7;
    color: var(--accent); /* Changes color to accent color on hover */
}

/* --- Hierarchical Numbering --- */
.toc-number {
    font-weight: 600;
    color: var(--accent); /* Uses your professional CSS variable theme accent */
    margin-right: 0.35rem;
}
/* --- Responsive Adjustments for Mobile Viewports --- */
@media (max-width: 768px) {
    .table-of-contents {
        width: 100%;          /* Expand card container to use the full content width */
        padding: 1rem 1.15rem; /* Tighten up inner padding for smaller screens */
        margin: 1.5rem 0;     /* Reduce vertical spacing slightly */
    }

    .table-of-contents h3 {
        font-size: 1rem;      /* Scale down header sizing */
        margin-bottom: 0.85rem;
    }

    .table-of-contents a {
        font-size: 0.9rem;    /* Scale down main topic links */
    }

    .table-of-contents ul ul a {
        font-size: 0.85rem;   /* Scale down sub-topic links */
    }

    /* Slightly expand the nested indentation on touch devices for better scannability */
    .table-of-contents ul ul {
        padding-left: 1rem;
    }
}


.dot-paragraph {
    position: relative;
    margin-left: 50px; /* Shifts the entire paragraph body over */
}

.dot-paragraph::before {
    content: "•";               /* Inserts the dot string dynamically */
    position: absolute;
    left: -20px;                /* Hangs the dot out into the left margin space */
    color: var(--accent);       /* Uses your theme accent color (or swap to any hex) */
    font-weight: bold;
}

.always-blue {
    color: var(--accent) !important; /* Forces your theme's blue accent */
    text-decoration: none;      /* Keeps the standard link look */
}

/* Ensures the color doesn't change across any link states */
.always-blue:visited,
.always-blue:hover,
.always-blue:active {
    color: var(--accent) !important;
    opacity: 1 !important; /* Overrides the 0.7 opacity hover effect from earlier */
}

#scrollTopBtn {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    z-index: 999; /* Ensures it stays above all content layers */
    /* Sizing and Sharp Shapes */
    width: 48px;
    height: 48px;
    border-radius: 4px; /* Small radius for clean, sharp square edges */
    border: none;
    /* High-Visibility Theme Colors */
    background-color: var(--accent); /* Solid vibrant blue background */
    color: #ffffff;                  /* Crisp white arrow string */
    box-shadow: 0 4px 20px rgba(37, 99, 235, 0.4); /* Colored drop-shadow for extra pop */
    /* Centering layout alignment */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem; /* Larger arrow character size */
    font-weight: bold;
    cursor: pointer;
    /* Hidden state defaults */
    opacity: 0;
    transform: scale(0.8); /* Starts slightly shrunk */
    pointer-events: none;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); /* Snappy spring transition */
}
/* Active State: Triggered when user scrolls past threshold matrix */
#scrollTopBtn.visible {
    opacity: 1;
    transform: scale(1); /* Snaps to full size */
    pointer-events: auto;
    /* Eye-catching entry pulse effect */
    animation: attentionPulse 0.4s ease-out; 
}
/* Dynamic Hover Interaction */
#scrollTopBtn:hover {
    background-color: var(--text-heading); /* Shifts dark on hover */
    box-shadow: 0 6px 24px rgba(15, 23, 42, 0.3);
    transform: translateY(-4px); /* Moves up cleanly */
}
/* Attention-grabbing entry keyframe mapping */
@keyframes attentionPulse {
    0% {
        transform: scale(0.6);
        box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.7);
    }
    70% {
        transform: scale(1.1); /* Slight overshoot to catch user attention */
        box-shadow: 0 0 0 12px rgba(37, 99, 235, 0);
    }
    100% {
        transform: scale(1);
        box-shadow: 0 4px 20px rgba(37, 99, 235, 0.4);
    }
}
/* Mobile Compatibility Override adjustments */
@media (max-width: 768px) {
    #scrollTopBtn {
        bottom: 1.5rem;
        right: 1.5rem;
        width: 44px;
        height: 44px;
        font-size: 1.3rem;
    }
}