/* === GLOBAL RESETS === */ /* Remove all default spacing that causes the white gap */ .md-main__inner { margin-top: 0 !important; padding-top: 0 !important; } .md-content__inner { margin-top: 0 !important; padding-top: 0 !important; } /* Add padding back ONLY for non-homepage content */ body:not(.has-hero) .md-content__inner { padding-top: 4rem !important; /* Adjust based on your header height */ } /* === 1. HEADER: Fixed transparent to solid === */ .md-header { position: fixed; top: 0; width: 100%; z-index: 1000; transition: all 0.3s ease; } /* Force transparent background when not scrolled */ .md-header:not(.scrolled) { background-color: transparent !important; backdrop-filter: none !important; box-shadow: none !important; } /* Solid background after scroll */ .md-header.scrolled { background-color: var(--md-primary-fg-color); box-shadow: var(--md-shadow-z2); } /* === 2. HERO BANNER: Full viewport with proper positioning === */ .hero-banner { /* Full viewport coverage */ width: 100vw; min-height: 100vh; margin: 0; padding: 0; /* Reset any container constraints */ margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); /* Background setup */ background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)), url('../assets/banner1.png') no-repeat center center; background-size: cover; background-attachment: fixed; /* Optional: parallax effect */ /* Content centering */ display: flex; flex-direction: column; justify-content: center; align-items: center; /* Initial state for JS animation */ opacity: 0; transition: opacity 1s ease-in-out; /* Ensure it's behind header but above page background */ position: relative; z-index: 1; /* Content styling */ color: white; text-align: center; padding: 2rem; box-sizing: border-box; } /* Hero text styling */ .hero-banner h1, .hero-banner p { color: white !important; text-shadow: 2px 2px 4px rgba(0,0,0,0.7); margin: 0; padding: 0.5rem 0; } /* === 3. PAGE OFFSET FIX === */ /* Remove white bar at top */ .md-header + .md-container { padding-top: 0 !important; } /* === 4. HEADER COLORS: Amber when transparent, theme colors when solid === */ /* Transparent state - Amber styling */ .md-header:not(.scrolled) .md-header__title, .md-header:not(.scrolled) .md-header__button, .md-header:not(.scrolled) .md-nav__link, .md-header:not(.scrolled) .md-icon, .md-header:not(.scrolled) .md-search__icon { color: #ffb300 !important; fill: #ffb300 !important; } /* Search box in transparent state */ .md-header:not(.scrolled) .md-search__form { background-color: rgba(255, 179, 0, 0.1) !important; border: 1px solid rgba(255, 179, 0, 0.3) !important; box-shadow: none !important; } .md-header:not(.scrolled) .md-search__input { background-color: transparent !important; color: #ffb300 !important; } .md-header:not(.scrolled) .md-search__input::placeholder { color: rgba(255, 179, 0, 0.7) !important; } /* Scrolled state - Default theme colors */ .md-header.scrolled .md-header__title, .md-header.scrolled .md-header__button, .md-header.scrolled .md-nav__link, .md-header.scrolled .md-icon, .md-header.scrolled .md-search__icon { color: var(--md-primary-bg-color) !important; fill: var(--md-primary-bg-color) !important; } .md-header.scrolled .md-search__form { background-color: var(--md-default-bg-color--light) !important; border: none !important; } .md-header.scrolled .md-search__input { background-color: var(--md-default-bg-color--light) !important; color: var(--md-default-fg-color) !important; } /* === 5. SIDEBAR POSITIONING === */ @media screen and (min-width: 76.25em) { /* Default positioning for hero pages */ body.has-hero .md-sidebar { top: 0; height: 100vh; } /* Push sidebars down on non-hero pages */ body:not(.has-hero) .md-sidebar { top: 5rem !important; height: calc(100vh - 5rem) !important; } /* Sidebar fade transition (managed by JS) */ .md-sidebar--primary, .md-sidebar--secondary { transition: opacity 0.3s ease; } } /* === 6. CONTENT AFTER HERO === */ /* Ensure content after hero has proper background */ .md-content__inner > *:not(.hero-banner) { background-color: var(--md-default-bg-color); position: relative; z-index: 2; } /* === 7. MOBILE ADJUSTMENTS === */ @media screen and (max-width: 76.25em) { .hero-banner { min-height: 70vh; } body:not(.has-hero) .md-content__inner { padding-top: 3.5rem !important; /* Smaller header on mobile */ } } /* Force inline admonitions to work on desktop */ @media screen and (min-width: 76.25em) { .md-typeset .admonition.inline, .md-typeset details.inline { float: right; margin-left: 1rem; margin-top: 0; max-width: 20rem; } }