// Component: Header .site-header { padding: 1.25rem 0; position: sticky; top: 0; z-index: 50; background-color: var(--bg-color); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--border-color); } .nav-container { display: flex; justify-content: space-between; align-items: center; } // Right side wrapper (links + controls) .nav-right { display: flex; align-items: center; gap: 1rem; } // Always-visible icon controls .nav-controls { display: flex; align-items: center; gap: 0.5rem; } .search-toggle { background: none; border: none; color: var(--text-color); cursor: pointer; padding: 0.35rem; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: var(--transition-smooth); &:hover { color: var(--accent-color); } } // Hamburger button — hidden on desktop, shown on mobile .nav-toggle { display: none; background: none; border: none; color: var(--text-color); cursor: pointer; padding: 0.25rem; align-items: center; justify-content: center; .close-icon { display: none; } &[aria-expanded='true'] { .hamburger-icon { display: none; } .close-icon { display: block; } } } @media (max-width: 640px) { .nav-toggle { display: flex; } // Hide the site name when the menu is open .nav-container:has(#nav-toggle[aria-expanded='true']) .brand-link { display: none; } // Make nav-right fill the full width so menu items span the container .nav-container:has(#nav-toggle[aria-expanded='true']) .nav-right { width: 100%; } .nav-right { flex-wrap: wrap; justify-content: flex-end; } .nav-links { display: none !important; flex-direction: column !important; align-items: flex-start !important; gap: 0 !important; width: 100%; order: 10; // push below nav-controls padding: 1rem 0; border-top: 1px solid var(--border-color); margin-top: 0.5rem; &.is-open { display: flex !important; } .nav-item { width: 100%; padding: 0.75rem 0; font-size: 1rem; border-bottom: 1px solid var(--border-color); &::after { display: none; } } } } .brand-text { font-weight: 700; font-size: 1.2rem; letter-spacing: -0.01em; } .nav-links { display: flex; align-items: center; gap: 1.5rem; } .nav-item { font-weight: 500; font-size: 0.95rem; position: relative; } .nav-item::after { content: ''; position: absolute; width: 0; height: 2px; bottom: -4px; left: 0; background-color: var(--accent-color); transition: var(--transition-smooth); } .nav-item:hover::after { width: 100%; }