/* =================================== BMP – Layout (Nav + Footer) =================================== */ /* ── Navigation (Floating Glass Effect) ── */ .nav { position: fixed; top: var(--space-md); left: 50%; transform: translateX(-50%); width: calc(100% - var(--space-xl)); max-width: var(--container-xl); height: 64px; background: rgba(10, 25, 47, 0.75); backdrop-filter: blur(16px) saturate(180%); -webkit-backdrop-filter: blur(16px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: var(--radius-lg); z-index: var(--z-nav); transition: top 0.4s cubic-bezier(0.16, 1, 0.3, 1), width 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-radius 0.4s cubic-bezier(0.16, 1, 0.3, 1), background 0.4s ease, height 0.4s ease; } .nav.scrolled { top: 0; width: 100%; max-width: 100%; border-radius: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.08); border-top: none; border-left: none; border-right: none; background: rgba(6, 14, 27, 0.95); height: 72px; } .nav__inner { height: 100%; padding: 0 var(--space-lg); display: flex; align-items: center; justify-content: space-between; } .nav__brand { display: flex; align-items: center; gap: var(--space-md); text-decoration: none; } .nav__brand-name { font-family: var(--font-display); font-size: 1.15rem; font-weight: var(--fw-bold); color: var(--color-white); letter-spacing: -0.01em; line-height: 1.1; display: block; } .nav__brand-sub { font-size: 9px; color: var(--color-accent); text-transform: uppercase; letter-spacing: 0.25em; margin-top: 3px; opacity: 0.9; display: block; } .nav__links { display: flex; align-items: center; gap: var(--space-xs); } .nav__link { color: rgba(255, 255, 255, 0.65); font-size: 11px; text-transform: uppercase; letter-spacing: 0.15em; font-weight: var(--fw-bold); padding: 0.75rem 1.25rem; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); position: relative; display: flex; align-items: center; border-radius: var(--radius-sm); } .nav__link:hover { color: var(--color-white); background: rgba(255, 255, 255, 0.05); } .nav__link.active { color: var(--color-accent); background: rgba(201, 162, 39, 0.08); /* Subtle gold tint */ } /* Dots indicator for active state */ .nav__link::after { content: ''; position: absolute; bottom: 0.4rem; left: 50%; width: 3px; height: 3px; background: var(--color-accent); border-radius: 50%; transform: translateX(-50%) scale(0); transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1); } .nav__link.active::after { transform: translateX(-50%) scale(1); } .nav__cta { margin-left: var(--space-lg); padding: 0.75rem 1.5rem; font-size: 11px; } /* ── Page Hero (Depth & Atmosphere) ── */ .page-hero { padding: calc(var(--nav-height) + var(--space-5xl)) 0 var(--space-4xl); background: var(--color-primary); position: relative; overflow: hidden; text-align: center; } .page-hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 50% 0%, var(--color-primary-light) 0%, transparent 70%); opacity: 0.5; } /* ── Footer (Executive Style) ── */ .footer { background: var(--color-dark); padding: var(--space-5xl) 0 var(--space-xl); border-top: 1px solid rgba(255, 255, 255, 0.05); } .footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: var(--space-3xl); margin-bottom: var(--space-4xl); } .footer__heading { font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.2em; color: var(--color-accent); margin-bottom: var(--space-xl); font-weight: var(--fw-bold); } .footer__link { color: var(--color-gray); font-size: var(--fs-small); margin-bottom: var(--space-sm); transition: color var(--transition-fast); } .footer__link:hover { color: var(--color-white); } .footer__bottom { border-top: 1px solid rgba(255, 255, 255, 0.05); padding-top: var(--space-xl); font-size: var(--fs-xs); color: var(--color-gray-dark); } @media (max-width: 768px) { .footer__grid { grid-template-columns: 1fr 1fr; gap: var(--space-2xl); } .footer__brand { grid-column: 1 / -1; } } /* ── Spacer ── */ .nav-spacer { height: var(--nav-height); } /* ── Scroll Progress Bar ── */ .scroll-progress { position: fixed; top: 0; left: 0; width: 100%; height: 2px; background: linear-gradient(90deg, var(--color-accent), var(--color-accent-light)); transform: scaleX(0); transform-origin: left center; z-index: calc(var(--z-nav) + 1); pointer-events: none; } /* ── Nav: Mobile Toggle ── */ .nav__toggle { display: none; flex-direction: column; justify-content: center; gap: 6px; padding: var(--space-xs); background: none; border: none; cursor: pointer; z-index: 10; } .nav__toggle-bar { display: block; width: 24px; height: 2px; background: var(--color-white); border-radius: 2px; transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease; transform-origin: center; } .nav__toggle.open .nav__toggle-bar:nth-child(1) { transform: translateY(8px) rotate(45deg); } .nav__toggle.open .nav__toggle-bar:nth-child(2) { opacity: 0; transform: scaleX(0); } .nav__toggle.open .nav__toggle-bar:nth-child(3) { transform: translateY(-8px) rotate(-45deg); } @media (max-width: 900px) { .nav__toggle { display: flex; } .nav__links { position: fixed; inset: 0; background: rgba(6, 14, 27, 0.97); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); flex-direction: column; align-items: center; justify-content: center; gap: var(--space-xl); opacity: 0; pointer-events: none; transform: translateY(-16px); transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), transform 0.35s cubic-bezier(0.16, 1, 0.3, 1); } .nav__links.open { opacity: 1; pointer-events: all; transform: translateY(0); } .nav__link { font-size: var(--fs-h3); letter-spacing: 0.05em; } .nav__cta { margin-top: var(--space-sm); } } /* ── Page Hero: text colors fix ── */ .page-hero h1, .page-hero h2, .page-hero h3, .page-hero p { color: var(--color-white); } .page-hero .hero-title, .page-hero__title { font-size: var(--fs-hero); font-weight: var(--fw-black); color: var(--color-white); line-height: var(--lh-tight); letter-spacing: var(--ls-tight); margin-bottom: var(--space-xl); text-wrap: balance; } .page-hero__subtitle { font-size: var(--fs-body-lg); color: rgba(255, 255, 255, 0.72); max-width: 600px; margin: 0 auto; line-height: var(--lh-relaxed); } /* ── Page Hero: animated orbs ── */ .page-hero__orbs { position: absolute; inset: 0; pointer-events: none; overflow: hidden; } .page-hero__orb { position: absolute; border-radius: 50%; filter: blur(90px); } .page-hero__orb--1 { width: 700px; height: 700px; background: rgba(201, 162, 39, 0.08); top: -300px; right: -150px; animation: orbFloat 14s ease-in-out infinite; } .page-hero__orb--2 { width: 500px; height: 500px; background: rgba(111, 182, 233, 0.07); bottom: -200px; left: -100px; animation: orbFloat 18s ease-in-out infinite reverse; } .page-hero__orb--3 { width: 300px; height: 300px; background: rgba(201, 162, 39, 0.05); top: 50%; left: 50%; transform: translate(-50%, -50%); animation: orbFloat 10s ease-in-out infinite; animation-delay: -5s; } @keyframes orbFloat { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(30px, -25px) scale(1.06); } 66% { transform: translate(-20px, 15px) scale(0.94); } } /* ── Scroll Indicator ── */ .scroll-indicator { position: absolute; bottom: var(--space-xl); left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: var(--space-xs); color: rgba(255, 255, 255, 0.35); font-size: 9px; letter-spacing: 0.25em; text-transform: uppercase; font-family: var(--font-body); font-weight: var(--fw-semibold); } .scroll-indicator__line { width: 1px; height: 48px; background: linear-gradient(to bottom, rgba(201, 162, 39, 0.5), transparent); animation: scrollLine 2.2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } @keyframes scrollLine { 0% { transform: scaleY(0); transform-origin: top; opacity: 1; } 50% { transform: scaleY(1); transform-origin: top; opacity: 1; } 100% { transform: scaleY(1); transform-origin: bottom; opacity: 0; } }