/*==============================================================
  Lunar Logic v2.0
  Navigation
  File: navigation.css
==============================================================*/

/*==============================================================
  Header
==============================================================*/

.site-header {
    position: fixed;
    inset: 0 0 auto 0;

    width: 100%;
    height: var(--header-height);

    display: flex;
    align-items: center;

    background: rgba(7, 17, 31, 0.72);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);

    border-bottom: var(--border);

    /* Header/mobile-menu chrome stays dark regardless of the section
       scrolled behind it, so its text tokens are scoped independently
       of the page-wide light theme. */
    --color-heading: #ffffff;
    --color-text: rgba(255,255,255,.88);
    --color-text-soft: rgba(255,255,255,.72);
    --color-border: rgba(255,255,255,.10);
    --color-border-strong: rgba(255,255,255,.20);

    transition:
        background var(--duration-base) var(--ease-standard),
        border-color var(--duration-base) var(--ease-standard),
        box-shadow var(--duration-base) var(--ease-standard),
        height var(--duration-base) var(--ease-standard);

    z-index: var(--z-header);
}

.site-header.is-scrolled {
    background: rgba(7,17,31,.90);

    border-color: rgba(255,255,255,.16);

    box-shadow: var(--shadow-sm);
}

/*==============================================================
  Navigation Layout
==============================================================*/

.navigation {

    display: flex;
    align-items: center;
    justify-content: space-between;

    width: 100%;
    height: var(--header-height);

    gap: var(--space-10);

}

/*==============================================================
  Brand
==============================================================*/

.brand {

    display: inline-flex;
    align-items: center;
    gap: .85rem;

    flex-shrink: 0;

    font-size: 1.125rem;
    font-weight: var(--fw-bold);

    color: var(--color-heading);

    transition:
        opacity var(--duration-base),
        transform var(--duration-base);

}

.brand:hover {

    color: var(--color-heading);

    opacity: .95;

}

.brand__icon {

    display: grid;
    place-items: center;

    width: 42px;
    height: 42px;

    border-radius: 50%;

    background:
        radial-gradient(circle at 35% 35%,
            var(--color-brand-300),
            var(--color-brand-600));

    box-shadow:
        0 0 30px rgba(47,111,255,.35);

    color: white;

    font-size: .8rem;
    font-weight: var(--fw-bold);
    letter-spacing: -.03em;

}

.brand__text {

    letter-spacing: -.03em;

}

/*==============================================================
  Desktop Menu
==============================================================*/

.navigation__menu {

    display: flex;
    align-items: center;
    justify-content: center;

    gap: var(--space-10);

    flex: 1;

}

.navigation__menu li {

    display: flex;

}

.navigation__menu a {

    position: relative;

    display: inline-flex;
    align-items: center;

    padding-block: .5rem;

    font-size: .95rem;
    font-weight: var(--fw-medium);

    color: var(--color-text);

    transition:
        color var(--duration-base),
        opacity var(--duration-base);

}

.navigation__menu a:hover {

    color: white;

}

.navigation__menu a::after {

    content: "";

    position: absolute;

    left: 0;
    bottom: -.3rem;

    width: 100%;
    height: 2px;

    background: var(--color-brand-400);

    transform: scaleX(0);

    transform-origin: left;

    transition:
        transform var(--duration-base)
        var(--ease-emphasis);

}

.navigation__menu a:hover::after,
.navigation__menu a:focus-visible::after {

    transform: scaleX(1);

}

/*==============================================================
  Actions
==============================================================*/

.navigation__actions {

    display: flex;
    align-items: center;
    gap: var(--space-4);

    flex-shrink: 0;

}

/*==============================================================
  Mobile Toggle
==============================================================*/

.mobile-toggle {

    display: none;

    width: 48px;
    height: 48px;

    border-radius: var(--radius-md);

    border: var(--border);

    background: rgba(255,255,255,.04);

    transition:
        background var(--duration-base),
        border-color var(--duration-base);

}

.mobile-toggle:hover {

    background: rgba(255,255,255,.08);

}

.mobile-toggle span {

    display: block;

    width: 22px;
    height: 2px;

    margin: 5px auto;

    border-radius: 999px;

    background: white;

    transition:
        transform var(--duration-base),
        opacity var(--duration-base);

}

/*==============================================================
  Mobile Navigation
==============================================================*/

.mobile-navigation {

    position: fixed;

    inset:
        var(--header-height)
        0
        0
        0;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    padding:
        var(--space-12)
        var(--space-8);

    background: rgba(7,17,31,.98);

    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);

    z-index: calc(var(--z-header) - 1);

}

.mobile-navigation ul {

    display: flex;
    flex-direction: column;

    gap: var(--space-8);

}

.mobile-navigation a {

    display: inline-flex;

    font-size: 1.2rem;
    font-weight: var(--fw-semibold);

    color: #ffffff;

}

.mobile-navigation .button {

    width: 100%;

}

/*==============================================================
  Active State
==============================================================*/

.navigation__menu a[aria-current="page"] {

    color: white;

}

.navigation__menu a[aria-current="page"]::after {

    transform: scaleX(1);

}

/*==============================================================
  Responsive
==============================================================*/

@media (max-width: 1024px) {

    .navigation__menu,
    .navigation__cta {

        display: none !important;

    }

    .mobile-toggle {

        display: inline-flex;
        align-items: center;
        justify-content: center;

    }

}

@media (min-width: 1025px) {

    .mobile-navigation {

        display: none !important;

    }

}

@media (max-width: 768px) {

    .site-header {

        height: 78px;

    }

    .navigation {

        height: 78px;

    }

    .brand__text {

        font-size: 1rem;

    }

    .brand__icon {

        width: 38px;
        height: 38px;

    }

}

@media (max-width: 480px) {

    .navigation {

        gap: var(--space-4);

    }

    .brand {

        gap: .65rem;

    }

    .brand__text {

        font-size: .95rem;

    }

}

/*==============================================================
  Reduced Motion
==============================================================*/

@media (prefers-reduced-motion: reduce) {

    .site-header,
    .navigation__menu a,
    .navigation__menu a::after,
    .mobile-toggle,
    .mobile-toggle span,
    .brand {

        transition: none;

    }

}