@import url("./variables.css"); @font-face { font-family: "Combined"; src: url("../fonts/Combinedd.otf") format("opentype"); font-style: normal; font-weight: 400; font-display: swap; } @font-face { font-family: "BBBDMSans"; src: url("../fonts/BBBDMSans-Light.otf") format("opentype"); font-style: normal; font-weight: 300; font-display: swap; } @font-face { font-family: "BBBDMSans"; src: url("../fonts/BBBDMSans-Regular.otf") format("opentype"); font-style: normal; font-weight: 400; font-display: swap; } @font-face { font-family: "BBBDMSans"; src: url("../fonts/BBBDMSans-Medium.otf") format("opentype"); font-style: normal; font-weight: 500; font-display: swap; } @font-face { font-family: "BBBDMSans"; src: url("../fonts/BBBDMSans-Bold.otf") format("opentype"); font-style: normal; font-weight: 700; font-display: swap; } *, *::before, *::after { box-sizing: border-box; } html, body { margin: 0; padding: 0; height: 100%; } body { font-family: var(--font-body); background: var(--bg-primary); color: var(--text-primary); } a { color: inherit; text-decoration: none; } a:hover { text-decoration: none; } /* ============================================================ HEADER / NAV BAR (public pages) ============================================================ */ body > header { flex-shrink: 0; background: linear-gradient( 180deg, var(--gradient-start) 0%, var(--gradient-2) 20%, var(--gradient-3) 40%, var(--gradient-4) 60%, var(--gradient-4) 88%, var(--header-gradient-fade) 96% ); } body > header nav { padding: 1.44rem 1.5rem; display: flex; align-items: center; justify-content: space-between; } .nav-left { display: flex; align-items: center; gap: 3rem; } .nav-left-links, .nav-right-links { display: flex; gap: 3rem; align-items: center; list-style: none; margin: 0; padding: 0; } body > header nav > a { font-family: var(--font-display); font-size: 1.1rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent-foreground); text-decoration: none; /* font-weight: 400; */ } body > header nav > ul { display: flex; gap: 3rem; align-items: center; list-style: none; margin: 0; padding: 0; } body > header nav ul a { font-size: 0.95rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent-foreground); text-decoration: none; /* font-weight: 400; */ transition: opacity 0.15s; } /* Subtle shadow on all header text to improve legibility against the gradient */ body > header nav > a, body > header nav ul a { text-shadow: 0 0 16px var(--header-shadow-strong), 0 0 32px var(--header-shadow-soft); } body > header nav ul a:hover { opacity: 1; } body > header nav ul a[aria-current="page"] { opacity: 1; border-bottom: 1px solid var(--header-nav-active-border); padding-bottom: 1px; } /* ============================================================ SEARCH BAR (shared) ============================================================ */ .header-search-wrap { padding: 0 0; } body > header form[role="search"] { display: flex; align-items: center; gap: 0.5rem; padding: 0.4rem 1.5rem; border: 1px solid var(--accent-primary); border-radius: 0; background: var(--bg-primary); width: 100%; color: var(--accent-primary); } body > header form[role="search"] svg { color: var(--text-tertiary); flex-shrink: 0; width: 16px; height: 16px; stroke: var(--accent-primary); } body > header form[role="search"] input { flex: 1; border: none; font-size: 0.95rem; color: var(--text-primary); background: transparent; padding: 0.15rem 0; font-family: inherit; } body > header form[role="search"] input::placeholder { color: var(--accent-primary); } /* ============================================================ ACCESSIBILITY UTILITIES ============================================================ */ /* Visually-hidden but screen-reader-accessible */ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } /* Skip-to-content link (visible only on keyboard focus) */ .skip-link { position: absolute; top: -999px; left: 1rem; z-index: 9999; padding: 0.5rem 1rem; background: var(--accent-primary); color: var(--text-primary); font-size: 0.9rem; font-weight: 600; text-decoration: none; border-radius: 0 0 4px 4px; } .skip-link:focus { top: 0; } /* Consistent keyboard-focus outline for all interactive elements */ :focus-visible { outline: 2px solid var(--accent-primary); outline-offset: 2px; } /* Respect user motion preferences */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; } }