172 lines
3.2 KiB
CSS

.navbar {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
background-color: var(--color-bg-nav);
padding: 0 20px;
height: var(--nav-height);
box-sizing: border-box;
}
.navbar-left {
display: flex;
align-items: center;
gap: 20px;
z-index: 1;
}
.navbar-left .logo {
height: 44px;
border-radius: var(--radius-lg);
flex-shrink: 0;
}
.navbar-links {
display: flex;
gap: 20px;
}
.navbar-links a {
color: var(--color-text-nav);
text-decoration: none;
font-family: var(--font-heading);
font-size: var(--font-size-base);
letter-spacing: 0.05em;
text-transform: uppercase;
opacity: 0.75;
transition: opacity var(--transition-fast);
}
.navbar-links a:hover {
opacity: 1;
}
/* Absolutely positioned so it's always centered relative to the full navbar width */
.navbar-center {
position: absolute;
left: 50%;
transform: translateX(-50%);
text-align: center;
}
.navbar-center a {
text-decoration: none;
}
.navbar-center h1 {
color: var(--color-text-nav);
font-family: var(--font-heading);
font-size: clamp(11px, 3.2vw, 20px);
font-weight: 400;
letter-spacing: 0.12em;
text-transform: uppercase;
margin: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: calc(100vw - 160px);
}
.navbar-right {
display: flex;
align-items: center;
gap: 16px;
z-index: 1;
}
.navbar-social {
display: none;
}
.icon {
height: 28px;
width: 28px;
opacity: 0.75;
transition: opacity var(--transition-fast), transform var(--transition-fast);
}
.icon:hover {
opacity: 1;
transform: scale(1.1);
}
.navbar-hamburger {
display: flex;
flex-direction: column;
gap: 5px;
background: none;
border: none;
cursor: pointer;
padding: 4px;
}
.navbar-hamburger span {
display: block;
width: 22px;
height: 2px;
background-color: var(--color-text-nav);
border-radius: 2px;
transition: transform 0.2s ease, opacity 0.2s ease;
}
.navbar-hamburger.open span:nth-child(1) {
transform: translateY(7px) rotate(45deg);
}
.navbar-hamburger.open span:nth-child(2) {
opacity: 0;
}
.navbar-hamburger.open span:nth-child(3) {
transform: translateY(-7px) rotate(-45deg);
}
/* Mobile dropdown menu */
.navbar-mobile-menu {
position: absolute;
top: 100%;
left: 0;
right: 0;
background-color: var(--color-bg-nav);
display: flex;
flex-direction: column;
align-items: center;
padding: 16px 20px 20px;
gap: 16px;
z-index: 100;
border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.navbar-mobile-menu a {
color: var(--color-text-nav);
text-decoration: none;
font-family: var(--font-heading);
font-size: var(--font-size-base);
letter-spacing: 0.05em;
text-transform: uppercase;
opacity: 0.75;
transition: opacity var(--transition-fast);
}
.navbar-mobile-menu a:hover {
opacity: 1;
}
.mobile-menu-icons {
display: flex;
justify-content: center;
gap: 20px;
padding-top: 4px;
}
.mobile-menu-icons .icon {
height: 22px;
width: 22px;
}
/* Nav links are always in the dropdown, never inline */
.navbar-links {
display: none;
}