/* style.css - V10 - Added text-wrap: pretty for titles */
/* ADDED: Scroll progress indicators styling */

/* --- ROOT VARIABLES --- (Includes Sunset Theme) */
:root {
    /* Dark Theme (Default) */
    --bg-main-dark: #0F172A; 
    --bg-elements-dark: #1E293B; 
    --bg-section-dark: #182333; 
    --bg-subsection-dark: #151E2B; 
    --bg-hover-dark: #334155; 
    --bg-active-dark: #475569; 
    --text-primary-dark: #E2E8F0; 
    --text-secondary-dark: #94A3B8; 
    --accent-primary-dark: #38BDF8; 
    --border-dark: #334155; 
    --shadow-color-dark: rgba(0,0,0,0.4);

    /* Light Theme - Contrast Adjustments */
    --bg-main-light: #E9EDF0; 
    --bg-elements-light: #FFFFFF; 
    --bg-section-light: #FFFFFF; 
    --bg-subsection-light: #FDFEFF; 
    --bg-hover-light: #F8F9FA; 
    --bg-active-light: #E9ECEF; 
    --text-primary-light: #0F172A; 
    --text-secondary-light: #475569; 
    --accent-primary-light: #0EA5E9; 
    --border-light: #D1D5DB; 
    --shadow-color-light: rgba(0,0,0,0.08);

    /* Sunset Theme */
    --bg-main-sunset: #4A2C24; 
    --bg-elements-sunset: #6B3C32; 
    --bg-section-sunset: #5F332A; 
    --bg-subsection-sunset: #552E25; 
    --bg-hover-sunset: #804B3F;
    --bg-active-sunset: #945A4C;
    --text-primary-sunset: #FCEFDA; 
    --text-secondary-sunset: #E0C9A6; 
    --accent-primary-sunset: #FF8C42; 
    --border-sunset: #804B3F;
    --shadow-color-sunset: rgba(40,20,10,0.4);

    --bg-main: var(--bg-main-dark);
    --bg-elements: var(--bg-elements-dark);
    --bg-section: var(--bg-section-dark);
    --bg-subsection: var(--bg-subsection-dark);
    --bg-hover: var(--bg-hover-dark);
    --bg-active: var(--bg-active-dark);
    --text-primary: var(--text-primary-dark);
    --text-secondary: var(--text-secondary-dark);
    --accent-primary: var(--accent-primary-dark);
    --border: var(--border-dark);
    --shadow-color: var(--shadow-color-dark);

    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --font-heading: 'Lexend', 'Inter', sans-serif;
    --font-monospace: 'Fira Code', 'Consolas', 'Menlo', 'Courier New', monospace;
    --font-icons: 'Material Symbols Outlined', sans-serif;

    --spacing-xs: 0.3rem; --spacing-sm: 0.6rem; --spacing-md: 1.2rem;
    --spacing-lg: 1.8rem; --spacing-xl: 2.4rem; --spacing-xxl: 3.6rem;
    --list-indent: 2em;

    --border-radius-sm: 6px; 
    --border-radius-md: 10px;
    --border-radius-lg: 14px;

    --shadow-sm: 0 2px 4px var(--shadow-color);
    --shadow-md: 0 4px 10px var(--shadow-color);
    --shadow-lg: 0 8px 20px var(--shadow-color);

    --sidebar-width: clamp(330px, 80vw, 450px);
    --header-height: 70px;
    --content-max-width: 90ch; 

    --transition-speed-fast: 0.15s;
    --transition-speed-normal: 0.25s;
    --transition-timing-sidebar: cubic-bezier(0.4, 0, 0.2, 1);
    --transition-timing-default: ease-in-out;

    /* Scroll Progress Indicator Variables */
    --scroll-indicator-part-size: 10px;
    --scroll-indicator-chapter-size: 6px;
    --scroll-progress-bar-height: 4px; 
    --scroll-progress-container-height: var(--scroll-indicator-part-size);
}

body.theme-light {
    --bg-main: var(--bg-main-light);
    --bg-elements: var(--bg-elements-light);
    --bg-section: var(--bg-section-light);
    --bg-subsection: var(--bg-subsection-light);
    --bg-hover: var(--bg-hover-light);
    --bg-active: var(--bg-active-light);
    --text-primary: var(--text-primary-light);
    --text-secondary: var(--text-secondary-light);
    --accent-primary: var(--accent-primary-light);
    --border: var(--border-light);
    --shadow-color: var(--shadow-color-light);
}

body.theme-sunset {
    --bg-main: var(--bg-main-sunset);
    --bg-elements: var(--bg-elements-sunset);
    --bg-section: var(--bg-section-sunset);
    --bg-subsection: var(--bg-subsection-sunset);
    --bg-hover: var(--bg-hover-sunset);
    --bg-active: var(--bg-active-sunset);
    --text-primary: var(--text-primary-sunset);
    --text-secondary: var(--text-secondary-sunset);
    --accent-primary: var(--accent-primary-sunset);
    --border: var(--border-sunset);
    --shadow-color: var(--shadow-color-sunset);
}

/* --- GENERAL STYLES --- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 100%; }

body {
    font-family: var(--font-body);
    background-color: var(--bg-main);
    color: var(--text-primary);
    line-height: 1.75; 
    font-size: 1.08rem; 
    transition: background-color var(--transition-speed-normal) var(--transition-timing-default),
                color var(--transition-speed-normal) var(--transition-timing-default);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

#app-container { display: flex; min-height: 100vh; position: relative; }
a { color: var(--accent-primary); text-decoration: none; transition: color 0.15s ease, opacity 0.15s ease; }
a:hover { color: color-mix(in srgb, var(--accent-primary) 80%, var(--text-primary)); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; opacity: 0.9; }
::selection { background-color: var(--accent-primary); color: var(--bg-elements); }

.material-symbols-outlined {
  font-family: var(--font-icons); font-weight: normal; font-style: normal; font-size: 24px; 
  line-height: 1; letter-spacing: normal; text-transform: none; display: inline-block; 
  white-space: nowrap; word-wrap: normal; direction: ltr; 
  -webkit-font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; 
  vertical-align: middle; 
}

/* --- BUTTONS, HEADER, SIDEBAR, ETC. (Largely same as V7, inheriting new color vars) --- */
.button-modern {
    display: inline-flex; align-items: center; justify-content: center;
    gap: var(--spacing-sm); padding: calc(var(--spacing-sm) + 2px) calc(var(--spacing-md) + 2px);
    font-family: var(--font-body); font-weight: 600; font-size: 0.9rem; 
    color: var(--accent-primary); 
    background-color: var(--bg-elements); 
    border: 1px solid var(--border); 
    border-radius: var(--border-radius-md); cursor: pointer; text-align: center;
    text-decoration: none; white-space: nowrap;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05), 0 1px 1px var(--shadow-color); 
    transition: background-color var(--transition-speed-fast) var(--transition-timing-default),
                color var(--transition-speed-fast) var(--transition-timing-default),
                border-color var(--transition-speed-fast) var(--transition-timing-default),
                transform var(--transition-speed-fast) ease,
                box-shadow var(--transition-speed-fast) ease;
}
body.theme-light .button-modern {
    background-color: color-mix(in srgb, var(--bg-elements-light) 95%, var(--accent-primary-light) 2%);
    border-color: color-mix(in srgb, var(--accent-primary-light) 20%, var(--border-light) 80%);
}
body.theme-sunset .button-modern { /* No change needed, already distinct */ }

.button-modern .material-symbols-outlined { color: inherit; font-size: 1.2em; }
.button-modern:hover:not(:disabled) {
    background-color: var(--bg-hover);
    color: var(--accent-primary); border-color: var(--accent-primary);
    transform: translateY(-2px) scale(1.02); box-shadow: var(--shadow-md);
}
.button-modern:active:not(:disabled) {
    background-color: var(--bg-active);
    transform: translateY(0px) scale(1); box-shadow: inset 0 2px 3px var(--shadow-color);
}
.button-modern:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent-primary) 50%, transparent); outline-offset: 2px; }
.button-modern.disabled, .button-modern:disabled {
    opacity: 0.5; cursor: not-allowed; background-color: var(--bg-elements);
    color: var(--text-secondary); border-color: var(--border);
    box-shadow: none; transform: none;
}
.button-modern.icon-only { padding: var(--spacing-sm); width: 42px; height: 42px; border-radius: 50%; }
.button-modern.icon-only .material-symbols-outlined { font-size: 24px; color: var(--accent-primary); }
.floating-sidebar-toggle .material-symbols-outlined { color: var(--accent-primary); }

.chapter-nav-buttons {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: var(--spacing-xl); padding-top: var(--spacing-lg);
    border-top: 1px solid var(--border);
}
.chapter-nav-buttons .button-modern { min-width: 120px; }
.chapter-nav-buttons .button-modern .material-symbols-outlined { font-size: 1.1em; }
.chapter-nav-buttons .button-modern:first-child .material-symbols-outlined { margin-right: var(--spacing-xs); }
.chapter-nav-buttons .button-modern:last-child .material-symbols-outlined { margin-left: var(--spacing-xs); }

.floating-sidebar-toggle {
    position: fixed; top: calc(var(--header-height) / 2 - 21px); left: var(--spacing-md);
    z-index: 1005; transition: opacity var(--transition-speed-normal) ease, transform var(--transition-speed-normal) ease;
}
.floating-sidebar-toggle.is-open { opacity: 0; pointer-events: none; transform: translateX(-100%) scale(0.8); }
.floating-sidebar-toggle .material-symbols-outlined { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: inline-block; }

.theme-toggle-button {
    position: fixed; top: calc(var(--header-height) / 2 - 21px); right: var(--spacing-md);
    z-index: 1006; overflow: hidden; 
}
.theme-toggle-button .theme-icon {
    font-size: 24px; line-height: 1; display: inline-block;
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    opacity: 0; color: var(--accent-primary); 
}

#app-header { 
    position: fixed; top: 0; left: 0; right: 0; height: var(--header-height);
    background-color: var(--bg-elements); border-bottom: 1px solid var(--border);
    z-index: 1001; box-shadow: var(--shadow-sm);
    transition: background-color var(--transition-speed-normal) var(--transition-timing-default),
                border-color var(--transition-speed-normal) var(--transition-timing-default),
                box-shadow var(--transition-speed-normal) ease-out,
                padding-right var(--transition-speed-normal) var(--transition-timing-default);
}
#app-header.scrolled { box-shadow: 0 2px 8px var(--shadow-color); }
#app-header .header-content {
    display: grid; grid-template-columns: auto 1fr auto; align-items: center;
    width: 100%; max-width: calc(var(--content-max-width) + 150px + var(--spacing-xl) * 2); 
    margin: 0 auto; padding: 0 var(--spacing-lg); height: 100%;
}
#app-header .header-content > div:first-child,
#app-header .header-content > div:last-child {  min-width: calc(42px + var(--spacing-md)); flex-shrink: 0; }
.header-title-area {
    grid-column: 2 / 3; display: flex; justify-content: center; align-items: baseline;
    text-align: center; overflow: hidden; padding: 0 var(--spacing-xs); position: relative;
}
#site-title-main {
    font-family: var(--font-heading); font-size: clamp(1.8em, 4vw, 2.5em); color: var(--text-primary);
    font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    letter-spacing: -0.03em; line-height: 1; padding-right: 5px;
    text-wrap: balance; /* Attempt to balance title lines */
}
.copyright-notice {
    font-size: 0.7em; color: var(--text-secondary); white-space: nowrap;
    margin-left: var(--spacing-sm); font-weight: 400; opacity: 0.8;
}
.copyright-notice a { color: var(--text-secondary); }
.copyright-notice a:hover { color: var(--accent-primary); }

body.sidebar-open { overflow: hidden; }
body.sidebar-open::before {
    content: ''; position: fixed; top: 0; left: 0; right: 0; bottom: 0;
    background-color: rgba(0,0,0,0.7); z-index: 1008; opacity: 0;
    pointer-events: none; transition: opacity var(--transition-speed-normal) var(--transition-timing-default);
}
body.theme-light.sidebar-open::before { background-color: rgba(0,0,0,0.5); }
body.theme-sunset.sidebar-open::before { background-color: rgba(50,30,20,0.7); }
body.sidebar-open.sidebar-visible::before { opacity: 1; pointer-events: auto; }

#sidebar {
    width: var(--sidebar-width); height: 100dvh; position: fixed; top: 0; left: 0;
    background-color: var(--bg-elements); border-right: 1px solid var(--border);
    z-index: 1010; transform: translateX(-100%); box-shadow: var(--shadow-lg);
    transition: transform var(--transition-speed-normal) var(--transition-timing-sidebar);
    display: flex; flex-direction: column;
}
body.sidebar-open #sidebar.visible { transform: translateX(0%); }
.sidebar-content-wrapper { flex-grow: 1; overflow-y: auto; display: flex; flex-direction: column; padding-top: var(--header-height); }
.sidebar-header {
    padding: 0 var(--spacing-lg); height: var(--header-height); display: flex; align-items: center;
    border-bottom: 1px solid var(--border); background-color: var(--bg-elements); flex-shrink: 0;
    position: fixed; top: 0; left: 0; width: var(--sidebar-width); z-index: 1;
}
.sidebar-header h3 { font-family: var(--font-heading); font-size: 1.4em; color: var(--text-primary); font-weight: 600; letter-spacing: -0.01em; }
#toc-list { list-style: none; padding: var(--spacing-lg); flex-grow: 1; }
#toc-list ul { list-style: none; padding-left: var(--spacing-lg); margin-top: var(--spacing-sm); margin-bottom: var(--spacing-md); border-left: 1px solid color-mix(in srgb, var(--border) 50%, transparent); }
#toc-list li { position: relative; margin-bottom: var(--spacing-xs); }
#toc-list li a {
    display: flex; align-items: flex-start; gap: var(--spacing-md); text-decoration: none; color: var(--text-secondary);
    padding: calc(var(--spacing-sm) + 3px) var(--spacing-md); font-size: 1rem; font-weight: 500;
    border-radius: var(--border-radius-md); transition: color 0.15s ease, background-color 0.15s ease, transform 0.15s ease;
    white-space: normal; line-height: 1.45;
}
#toc-list li a .toc-text { white-space: normal; line-height: 1.45; }
#toc-list li a .toc-icon { font-size: 20px; color: currentColor; opacity: 0.7; margin-top: 0.1em; flex-shrink: 0; }
#toc-list li a:hover { color: var(--text-primary); background-color: var(--bg-hover); transform: translateX(4px); }
#toc-list li a.active { color: var(--accent-primary); font-weight: 600; background-color: color-mix(in srgb, var(--accent-primary) 12%, transparent); }
#toc-list li a.active .toc-icon { opacity: 1; color: var(--accent-primary); }
#toc-list ul li a { font-size: 0.92rem; font-weight: 400; }
#toc-list ul li a.active { font-weight: 500; }
.toc-loading, .toc-error { padding: var(--spacing-md); color: var(--text-secondary); }
p.content-loading, p.content-error-message { text-align: center; padding: 50px; font-size: 1.2em; color: var(--text-secondary); }
p.content-error-message { color: var(--accent-primary-dark); }
body.theme-light p.content-error-message { color: var(--accent-primary-light); }
body.theme-sunset p.content-error-message { color: var(--accent-primary-sunset); }

/* MAIN CONTENT & HIERARCHY STYLING */
#main-content-wrapper { padding-top: var(--header-height); flex-grow: 1; padding-left: 0; transition: padding-left var(--transition-speed-normal) var(--transition-timing-default); }
.content-column { max-width: var(--content-max-width); margin: 0 auto; padding: var(--spacing-xxl) var(--spacing-xl); }
.gsap-animate-section, .gsap-animate-title, .gsap-stagger-item { opacity: 0; }

.content-section { 
    margin-bottom: var(--spacing-xxl); 
    padding: var(--spacing-lg); 
    background-color: var(--bg-section); 
    border-radius: var(--border-radius-lg); 
    box-shadow: var(--shadow-sm); 
    transition: background-color var(--transition-speed-normal) var(--transition-timing-default);
}
.content-section:last-child { margin-bottom: 0; padding-bottom: var(--spacing-lg); }

.section-title { /* H2 */
    font-family: var(--font-heading); font-size: clamp(2.2em, 5vw, 3em); font-weight: 700;
    letter-spacing: -0.04em; line-height: 1.2; margin-top: 0; margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md); padding-top: var(--spacing-xs); 
    border-bottom: 1px solid var(--border); color: var(--text-primary);
    position: relative; 
    text-wrap: pretty; /* ADDED for better line breaking */
}
.section-title::before {
    content: ''; position: absolute; top: 0; left: 0;
    width: 60px; height: 4px; background-color: var(--accent-primary);
    border-radius: 2px;
}
.content-section:first-child .section-title { margin-top: 0; }

.subsection-block { 
    background-color: var(--bg-subsection); 
    padding: var(--spacing-lg); margin-top: var(--spacing-xl); margin-bottom: var(--spacing-xl);
    border-radius: var(--border-radius-md);
    box-shadow: inset 0 1px 3px color-mix(in srgb, var(--shadow-color) 50%, transparent); 
    transition: background-color var(--transition-speed-normal) var(--transition-timing-default);
}

.subsection-title { /* H3 */
    font-family: var(--font-heading); font-size: clamp(1.7em, 4vw, 2.3em); font-weight: 600;
    letter-spacing: -0.03em; line-height: 1.3; margin-top: 0; margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-sm); border-bottom: 1px dashed var(--border); 
    color: var(--text-primary);
    text-wrap: pretty; /* ADDED for better line breaking */
}
.content-column p { font-size: 1.1rem; line-height: 1.75; color: var(--text-primary); margin-bottom: var(--spacing-lg); }
.content-column strong { font-weight: 600; color: var(--text-primary); }
.content-column em { font-style: italic; color: var(--text-secondary); }

.content-column ul, .content-column ol { list-style: none; padding-left: 0; margin-bottom: var(--spacing-lg); line-height: 1.75; font-size: 1.1rem; }
.content-column li { margin-bottom: var(--spacing-md); padding-left: var(--list-indent); position: relative; }
.content-column ul li::before {
    content: "•"; color: var(--accent-primary); font-weight: bold; position: absolute;
    left: calc(var(--list-indent) - 1.2em); top: 0.05em; font-size: 1.1em;
}
.content-column ol { counter-reset: ordered-list-counter; }
.content-column ol li::before {
    counter-increment: ordered-list-counter; content: counter(ordered-list-counter) "."; color: var(--accent-primary);
    font-weight: 500; position: absolute; left: 0; top: 0; font-size: 1em;
    width: calc(var(--list-indent) - 0.5em); text-align: right; padding-right: 0.5em;
}

.content-column blockquote {
    border-left: 4px solid var(--accent-primary); padding: var(--spacing-lg) var(--spacing-xl);
    margin: var(--spacing-xl) 0 var(--spacing-xxl) 0; background-color: var(--bg-hover);
    border-radius: var(--border-radius-md); font-size: 1.05rem; line-height: 1.7; color: var(--text-secondary);
}
.content-column blockquote p { color: inherit; }
.content-column blockquote p:last-child { margin-bottom: 0; }

.content-column hr { border: none; border-top: 1px solid var(--border); margin: var(--spacing-xxl) auto; width: 30%; opacity: 0.5; }
.content-column pre {
    background-color: color-mix(in srgb, var(--bg-elements) 92%, black) !important; color: var(--text-primary) !important;
    padding: var(--spacing-lg) var(--spacing-xl) !important; border-radius: var(--border-radius-lg); overflow-x: auto;
    border: 1px solid var(--border); font-size: 0.95em; margin: var(--spacing-xl) 0 var(--spacing-xxl) 0;
    line-height: 1.6; box-shadow: var(--shadow-md);
}
body.theme-light .content-column pre { background-color: #f0f2f5 !important; border-color: var(--border-light); }
body.theme-sunset .content-column pre { background-color: color-mix(in srgb, var(--bg-elements-sunset) 92%, black) !important; }

.content-column code:not(pre code), .inline-code {
    font-family: var(--font-monospace); font-size: 0.9em; color: var(--accent-primary);
    background-color: color-mix(in srgb, var(--accent-primary) 8%, transparent);
    padding: 0.2em 0.45em; border-radius: var(--border-radius-sm);
    border: 1px solid color-mix(in srgb, var(--accent-primary) 20%, transparent);
}

/* SCROLL-TO-TOP BUTTON */
.scroll-to-top-button {
    position: fixed; bottom: var(--spacing-lg); right: var(--spacing-lg); z-index: 1000;
    opacity: 0; transform: translateY(20px) scale(0.8); display: none;
    transition: opacity var(--transition-speed-normal) ease, transform var(--transition-speed-normal) ease;
}
.scroll-to-top-button .material-symbols-outlined { font-size: 24px; }


/* SCROLL PROMPT MODAL */
.modal-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background-color: rgba(0,0,0,0.75); 
    display: flex; align-items: center; justify-content: center;
    z-index: 2000; opacity: 0; pointer-events: none;
    transition: opacity var(--transition-speed-normal) ease;
}
body.theme-light .modal-overlay { background-color: rgba(0,0,0,0.5); }
body.theme-sunset .modal-overlay { background-color: rgba(50,30,20,0.75); }

.modal-overlay:target, 
.modal-overlay[style*="display: flex"] { opacity: 1; pointer-events: auto; }
.modal-content {
    background-color: var(--bg-elements); padding: var(--spacing-xl);
    border-radius: var(--border-radius-lg); box-shadow: var(--shadow-lg);
    text-align: center; max-width: 400px; width: 90%;
    transform: scale(0.95) translateY(10px);
    transition: transform var(--transition-speed-normal) cubic-bezier(0.175, 0.885, 0.32, 1.275); 
}
.modal-overlay[style*="display: flex"] .modal-content { transform: scale(1) translateY(0); }
.modal-content p { font-size: 1.1em; color: var(--text-primary); margin-bottom: var(--spacing-lg); }
.modal-buttons { display: flex; gap: var(--spacing-md); justify-content: center; }
.modal-buttons .button-modern.secondary {
    background-color: var(--bg-hover); color: var(--text-secondary); border-color: var(--border);
}
.modal-buttons .button-modern.secondary:hover { background-color: var(--bg-active); color: var(--text-primary); }


/* SCROLL PROGRESS BAR */
#scroll-progress-container {
    position: fixed; bottom: 0; left: 0; width: 100%; 
    height: var(--scroll-progress-container-height); 
    background-color: transparent; 
    z-index: 1002; 
    opacity: 0; transition: opacity var(--transition-speed-normal) ease;
    pointer-events: none; 
}
#scroll-progress-container.has-indicators {
    pointer-events: auto; 
}

#scroll-progress-bar {
    height: var(--scroll-progress-bar-height); 
    width: 0%; background-color: var(--accent-primary);
    border-top-right-radius: calc(var(--scroll-progress-bar-height) / 2); 
    border-bottom-right-radius: calc(var(--scroll-progress-bar-height) / 2);
    transition: width 0.05s linear; 
    position: absolute;
    top: calc( (var(--scroll-progress-container-height) - var(--scroll-progress-bar-height)) / 2 ); 
    left: 0;
    z-index: 1; 
}

.progress-indicator {
    position: absolute;
    top: 50%; 
    transform: translate(-50%, -50%); 
    border-radius: 50%;
    background-color: var(--text-secondary);
    transition: background-color var(--transition-speed-fast) ease, 
                transform 0.15s ease,
                box-shadow var(--transition-speed-fast) ease;
    cursor: pointer;
    z-index: 2; 
    box-shadow: 0 0 2px color-mix(in srgb, var(--shadow-color) 50%, transparent);
}
.progress-indicator:hover {
    background-color: var(--accent-primary);
    transform: translate(-50%, -50%) scale(1.4);
}

.progress-indicator-part { /* For H2s */
    width: var(--scroll-indicator-part-size);
    height: var(--scroll-indicator-part-size);
}

.progress-indicator-chapter { /* For H3s */
    width: var(--scroll-indicator-chapter-size);
    height: var(--scroll-indicator-chapter-size);
}

.progress-indicator.active {
    background-color: var(--accent-primary);
    transform: translate(-50%, -50%) scale(1.2); 
    box-shadow: 0 0 6px var(--accent-primary);
}


/* RESPONSIVE ADJUSTMENTS */
@media (max-width: 1024px) {
    :root { --content-max-width: 90ch; } 
    #site-title-main { font-size: clamp(1.6em, 3.5vw, 2.2em); }
}
@media (max-width: 768px) {
    html { font-size: 93.75%; }
    :root { --header-height: 65px; --content-max-width: 100%; }
    #app-header .header-content { padding: 0 var(--spacing-md); }
    #app-header .header-content > div:first-child,
    #app-header .header-content > div:last-child { min-width: calc(42px + var(--spacing-sm));}
    .header-title-area { flex-direction: column; align-items: center; } 
    #site-title-main { font-size: clamp(1.4em, 5vw, 1.8em); padding-right: 0; }
    .copyright-notice { margin-left: 0; margin-top: 2px; }

    .floating-sidebar-toggle { top: calc(var(--header-height) / 2 - 21px); left: var(--spacing-sm); }
    .theme-toggle-button { top: calc(var(--header-height) / 2 - 21px); right: var(--spacing-sm); }

    .sidebar-header h3 { font-size: 1.25em; }
    #toc-list li a { font-size: 0.95rem; }
    .content-column { padding: var(--spacing-xl) var(--spacing-md); }
    .content-section { padding: var(--spacing-md); } 
    .subsection-block { padding: var(--spacing-md); }
    .section-title { font-size: clamp(1.9em, 6vw, 2.4em); }
    .subsection-title { font-size: clamp(1.5em, 5vw, 1.9em); }
    .content-column p, .content-column ul, .content-column ol { font-size: 1.05rem; }
    .chapter-nav-buttons { flex-direction: column; gap: var(--spacing-md); }
    .chapter-nav-buttons .button-modern { width: 100%; }
}

/* SCROLLBAR STYLES */
::-webkit-scrollbar { width: 12px; height: 12px; background-color: var(--bg-main); }
::-webkit-scrollbar-thumb { background-color: color-mix(in srgb, var(--text-secondary) 35%, transparent); border-radius: 6px; border: 3px solid var(--bg-main); }
::-webkit-scrollbar-thumb:hover { background-color: color-mix(in srgb, var(--text-secondary) 55%, transparent); }
#sidebar .sidebar-content-wrapper::-webkit-scrollbar { background-color: var(--bg-elements); }
#sidebar .sidebar-content-wrapper::-webkit-scrollbar-thumb { border-color: var(--bg-elements); }