@font-face {
    font-family: "NorthPaxx Outfit";
    src: url("../fonts/outfit-variable.ttf") format("truetype");
    font-display: swap;
    font-style: normal;
    font-weight: 100 900;
}

@font-face {
    font-family: "NorthPaxx Manrope";
    src: url("../../lmz_builder/l3/fonts/manrope-400-latin.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 400;
    unicode-range: U+0000-00FF;
}

@font-face {
    font-family: "NorthPaxx Manrope";
    src: url("../../lmz_builder/l3/fonts/manrope-400-latin-ext.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 400;
    unicode-range: U+0100-024F, U+1E00-1EFF;
}

@font-face {
    font-family: "NorthPaxx Manrope";
    src: url("../../lmz_builder/l3/fonts/manrope-500-latin.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 500;
    unicode-range: U+0000-00FF;
}

@font-face {
    font-family: "NorthPaxx Manrope";
    src: url("../../lmz_builder/l3/fonts/manrope-500-latin-ext.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 500;
    unicode-range: U+0100-024F, U+1E00-1EFF;
}

@font-face {
    font-family: "NorthPaxx Manrope";
    src: url("../../lmz_builder/l3/fonts/manrope-600-latin.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 600;
    unicode-range: U+0000-00FF;
}

@font-face {
    font-family: "NorthPaxx Manrope";
    src: url("../../lmz_builder/l3/fonts/manrope-600-latin-ext.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 600;
    unicode-range: U+0100-024F, U+1E00-1EFF;
}

@font-face {
    font-family: "NorthPaxx Manrope";
    src: url("../../lmz_builder/l3/fonts/manrope-700-latin.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 700;
    unicode-range: U+0000-00FF;
}

@font-face {
    font-family: "NorthPaxx Manrope";
    src: url("../../lmz_builder/l3/fonts/manrope-700-latin-ext.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 700;
    unicode-range: U+0100-024F, U+1E00-1EFF;
}

@font-face {
    font-family: "NorthPaxx Manrope";
    src: url("../../lmz_builder/l3/fonts/manrope-800-latin.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 800;
    unicode-range: U+0000-00FF;
}

@font-face {
    font-family: "NorthPaxx Manrope";
    src: url("../../lmz_builder/l3/fonts/manrope-800-latin-ext.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 800;
    unicode-range: U+0100-024F, U+1E00-1EFF;
}

@font-face {
    font-family: "NorthPaxx Mono";
    src: url("../../lmz_builder/l3/fonts/space-mono-400-latin.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 400;
    unicode-range: U+0000-00FF;
}

@font-face {
    font-family: "NorthPaxx Mono";
    src: url("../../lmz_builder/l3/fonts/space-mono-400-latin-ext.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 400;
    unicode-range: U+0100-024F, U+1E00-1EFF;
}

@font-face {
    font-family: "NorthPaxx Mono";
    src: url("../../lmz_builder/l3/fonts/space-mono-700-latin.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 700;
    unicode-range: U+0000-00FF;
}

@font-face {
    font-family: "NorthPaxx Mono";
    src: url("../../lmz_builder/l3/fonts/space-mono-700-latin-ext.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 700;
    unicode-range: U+0100-024F, U+1E00-1EFF;
}

:root {
    color-scheme: dark;
    --ns-bg: #070b0c;
    --ns-bg-soft: #0c1214;
    --ns-surface: #11191c;
    --ns-surface-strong: #172226;
    --ns-line: rgba(225, 233, 231, 0.1);
    --ns-line-strong: rgba(225, 233, 231, 0.19);
    --ns-text: #f4f1eb;
    --ns-muted: #a3adae;
    --ns-accent: #cb6a3c;
    --ns-accent-strong: #f08b57;
    --ns-accent-dark: #9c4725;
    --ns-accent-ink: #160f0b;
    --ns-accent-soft: rgba(203, 106, 60, 0.14);
    --ns-shell: min(90vw, 1480px);
    --ns-radius: 30px;
    --ns-radius-small: 14px;
    --ns-shadow: 0 32px 100px rgba(0, 0, 0, 0.44), 0 0 0 1px rgba(255, 255, 255, 0.025) inset;
    --ns-display: "NorthPaxx Outfit", "NorthPaxx Manrope", "Segoe UI Variable Display", "Aptos Display", sans-serif;
    --ns-body: "NorthPaxx Manrope", "Segoe UI Variable Text", "Aptos", sans-serif;
    --ns-mono: "NorthPaxx Mono", "SFMono-Regular", Consolas, monospace;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    background: var(--ns-bg);
    color: var(--ns-text);
    font-family: var(--ns-body);
    font-size: 16px;
    scroll-behavior: smooth;
    scroll-padding-top: 104px;
}

body.ns-site {
    position: relative;
    isolation: isolate;
    min-width: 0;
    min-height: 100dvh;
    margin: 0;
    overflow-x: clip;
    background:
        radial-gradient(circle at 84% -8%, rgba(203, 106, 60, 0.14), transparent 34rem),
        radial-gradient(circle at 4% 42%, rgba(166, 184, 182, 0.055), transparent 31rem),
        var(--ns-bg);
    color: var(--ns-text);
    font-family: var(--ns-body);
    line-height: 1.6;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

.ns-motion-bg::before {
    position: absolute;
    z-index: 2;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
    background-size: 180px 180px;
    content: "";
    mix-blend-mode: soft-light;
    opacity: 0.07;
}

.ns-motion-bg {
    position: fixed;
    z-index: 0;
    inset: 0;
    overflow: hidden;
    contain: strict;
    pointer-events: none;
}

.ns-motion-bg::after {
    z-index: 3;
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at center, transparent 32%, rgba(5, 7, 8, 0.48) 100%);
    content: "";
}

.ns-motion-bg__orb,
.ns-motion-bg__grid,
.ns-motion-bg__beam {
    position: absolute;
    display: block;
    pointer-events: none;
    transform: translate3d(0, 0, 0);
}

.ns-motion-bg__orb {
    width: clamp(30rem, 54vw, 68rem);
    aspect-ratio: 1;
    border-radius: 50%;
}

.ns-motion-bg__orb--primary {
    top: -29rem;
    right: -20rem;
    background: radial-gradient(circle, rgba(203, 106, 60, 0.25) 0, rgba(203, 106, 60, 0.08) 35%, transparent 70%);
    opacity: 0.82;
}

.ns-motion-bg__orb--secondary {
    bottom: -31rem;
    left: -24rem;
    background: radial-gradient(circle, rgba(209, 220, 226, 0.1) 0, rgba(113, 129, 138, 0.05) 37%, transparent 72%);
    opacity: 0.7;
}

.ns-motion-bg__grid {
    inset: -12%;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.11) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.11) 1px, transparent 1px);
    background-size: 84px 84px;
    -webkit-mask-image: linear-gradient(to bottom, transparent 2%, #000 24%, #000 78%, transparent 98%);
    mask-image: linear-gradient(to bottom, transparent 2%, #000 24%, #000 78%, transparent 98%);
    opacity: 0.065;
}

.ns-motion-bg__beam {
    top: -24vh;
    left: 44%;
    width: min(28rem, 34vw);
    height: 148vh;
    border-inline: 1px solid rgba(203, 106, 60, 0.08);
    background: linear-gradient(90deg, transparent, rgba(203, 106, 60, 0.045), transparent);
    opacity: 0.72;
    transform: rotate(-12deg) translate3d(0, 0, 0);
    transform-origin: 50% 50%;
}

.ns-scroll-progress {
    position: fixed;
    z-index: 1200;
    top: 0;
    right: 0;
    left: 0;
    height: 2px;
    overflow: hidden;
    pointer-events: none;
}

.ns-scroll-progress span {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--ns-accent);
    box-shadow: 0 0 8px rgba(203, 106, 60, 0.32);
    transform: scaleX(0);
    transform-origin: 0 50%;
}

html.ns-menu-open,
html.ns-menu-open body {
    overflow: hidden;
}

img,
svg,
video {
    display: block;
    max-width: 100%;
}

a {
    color: inherit;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.24em;
}

button,
input,
textarea,
select {
    color: inherit;
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

:focus-visible {
    outline: 3px solid var(--ns-accent-strong);
    outline-offset: 4px;
}

::selection {
    background: var(--ns-accent);
    color: #fff;
}

.ns-shell,
.ns-container {
    width: var(--ns-shell);
    margin-inline: auto;
}

.ns-hero__copy,
.ns-hero__media,
.ns-audience > *,
.ns-split > *,
.ns-subhero > *,
.ns-contact-grid > *,
.ns-job > *,
.ns-cta > * {
    min-width: 0;
}

.ns-skip-link {
    position: fixed;
    z-index: 9999;
    top: 12px;
    left: 12px;
    padding: 0.75rem 1rem;
    border-radius: 999px;
    background: var(--ns-text);
    color: var(--ns-bg);
    transform: translateY(-160%);
    transition: transform 180ms ease;
}

.ns-skip-link:focus {
    transform: translateY(0);
}

.ns-header-marker {
    position: absolute;
    inset: 0 0 auto;
    width: 1px;
    height: 20px;
    pointer-events: none;
}

.ns-header {
    position: sticky;
    z-index: 1000;
    top: 0;
    height: 96px;
    border-bottom: 0;
    background: linear-gradient(to bottom, rgba(7, 11, 12, 0.86), transparent);
    transition: height 220ms ease;
}

.ns-header.is-condensed {
    height: 82px;
    background: linear-gradient(to bottom, rgba(7, 11, 12, 0.92), transparent);
}

.ns-header__inner {
    position: relative;
    top: 12px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    height: 72px;
    gap: clamp(1rem, 3vw, 3.5rem);
    padding-inline: 1.15rem 0.85rem;
    border: 1px solid var(--ns-line);
    border-radius: 19px;
    background: rgba(10, 15, 17, 0.76);
    box-shadow: 0 18px 54px rgba(0, 0, 0, 0.26), inset 0 1px rgba(255, 255, 255, 0.025);
    backdrop-filter: blur(22px) saturate(125%);
    -webkit-backdrop-filter: blur(22px) saturate(125%);
    transition: top 220ms ease, height 220ms ease, background-color 220ms ease, box-shadow 220ms ease;
}

.ns-header.is-condensed .ns-header__inner {
    top: 8px;
    height: 64px;
    background: rgba(9, 14, 16, 0.94);
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.42), inset 0 1px rgba(255, 255, 255, 0.035);
}

.ns-brand {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    min-height: 44px;
    gap: 0.78rem;
    color: var(--ns-text);
    text-decoration: none;
}

.ns-brand img {
    width: 39px;
    height: 41px;
    object-fit: contain;
}

.ns-brand__wordmark {
    display: grid;
    grid-template-columns: auto auto;
    align-items: baseline;
    column-gap: 0.26rem;
    font-family: var(--ns-display);
    font-size: 1.02rem;
    font-weight: 600;
    letter-spacing: 0.24em;
    line-height: 1;
}

.ns-brand__wordmark strong {
    color: var(--ns-accent);
    font-weight: 800;
}

.ns-brand__wordmark small {
    grid-column: 1 / -1;
    margin-top: 0.36rem;
    color: var(--ns-muted);
    font-family: var(--ns-mono);
    font-size: 0.52rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ns-navigation {
    justify-self: center;
}

.ns-navigation ul {
    display: flex;
    align-items: center;
    gap: clamp(1.1rem, 2.2vw, 2.25rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.ns-navigation a {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--ns-muted);
    font-size: 0.91rem;
    font-weight: 600;
    letter-spacing: -0.015em;
    text-decoration: none;
    transition: color 180ms ease;
    white-space: nowrap;
}

.ns-navigation a::after {
    position: absolute;
    right: 0;
    bottom: 6px;
    left: 0;
    height: 2px;
    background: var(--ns-accent);
    content: "";
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 180ms ease;
}

.ns-navigation a:hover,
.ns-navigation a[aria-current="page"] {
    color: var(--ns-text);
}

.ns-navigation a:hover::after,
.ns-navigation a[aria-current="page"]::after {
    transform: scaleX(1);
    transform-origin: left;
}

.ns-language-switcher {
    position: relative;
    z-index: 3;
    justify-self: end;
}

.ns-language-switcher__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 66px;
    height: 44px;
    gap: 0.48rem;
    padding: 0 0.78rem;
    border: 1px solid var(--ns-line-strong);
    border-radius: 999px;
    background: rgba(23, 34, 38, 0.7);
    color: var(--ns-text);
    cursor: pointer;
    font-size: 0.76rem;
    font-family: var(--ns-mono);
    font-weight: 700;
    letter-spacing: 0.08em;
    transition: border-color 180ms ease, background-color 180ms ease;
}

.ns-language-switcher__toggle:hover,
.ns-language-switcher.is-open .ns-language-switcher__toggle {
    border-color: rgba(203, 106, 60, 0.62);
    background: var(--ns-surface-strong);
}

.ns-language-switcher__toggle img,
.ns-language-switcher__options img {
    width: 18px;
    height: 12px;
    border-radius: 2px;
    object-fit: cover;
}

.ns-language-switcher__toggle > i {
    font-size: 0.66rem;
    transition: transform 180ms ease;
}

.ns-language-switcher.is-open .ns-language-switcher__toggle > i {
    transform: rotate(180deg);
}

.ns-language-switcher__options {
    position: absolute;
    top: calc(100% + 0.75rem);
    right: 0;
    width: min(15rem, calc(100vw - 2rem));
    margin: 0;
    padding: 0.45rem;
    border: 1px solid var(--ns-line-strong);
    border-radius: var(--ns-radius-small);
    background: rgba(15, 20, 23, 0.98);
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.42);
    list-style: none;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px) scale(0.985);
    transform-origin: 100% 0;
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
    visibility: hidden;
}

.ns-language-switcher.is-open .ns-language-switcher__options {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
    visibility: visible;
}

.ns-language-switcher__options a {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) 1rem;
    align-items: center;
    min-height: 46px;
    gap: 0.72rem;
    padding: 0.55rem 0.7rem;
    border-radius: 8px;
    color: var(--ns-muted);
    font-size: 0.88rem;
    font-weight: 650;
    text-decoration: none;
}

.ns-language-switcher__options a:hover,
.ns-language-switcher__options a.is-active {
    background: var(--ns-accent-soft);
    color: var(--ns-text);
}

.ns-language-switcher__options a > i {
    color: var(--ns-accent);
    font-size: 0.78rem;
}

.ns-menu-toggle {
    display: none;
}

.ns-button,
.ns-button:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0.9rem 1.45rem;
    border: 1px solid var(--ns-accent);
    border-radius: 14px;
    background: var(--ns-accent);
    box-shadow: 0 12px 32px rgba(156, 71, 37, 0.2), inset 0 1px rgba(255, 255, 255, 0.16);
    color: var(--ns-accent-ink);
    font-weight: 800;
    line-height: 1.1;
    text-align: center;
    text-decoration: none;
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
    white-space: nowrap;
}

.ns-button > i,
.ns-button__icon {
    flex: 0 0 auto;
    font-size: 0.88em;
}

.ns-button > i:first-child {
    margin-right: 0.62rem;
}

.ns-button__icon {
    display: inline-grid;
    place-items: center;
    width: 1.7rem;
    height: 1.7rem;
    margin: -0.42rem -0.72rem -0.42rem 0.8rem;
    border-radius: 8px;
    background: rgba(22, 15, 11, 0.12);
    transition: transform 180ms ease;
}

.ns-button:hover .ns-button__icon {
    transform: translateX(3px);
}

.ns-button:hover {
    border-color: var(--ns-accent-strong);
    background: var(--ns-accent-strong);
    box-shadow: 0 17px 38px rgba(156, 71, 37, 0.28), inset 0 1px rgba(255, 255, 255, 0.18);
    color: var(--ns-accent-ink);
    transform: translateY(-2px);
}

.ns-button:active {
    transform: translateY(1px) scale(0.985);
}

.ns-button--ghost {
    border-color: var(--ns-line-strong);
    background: rgba(255, 255, 255, 0.015);
    box-shadow: none;
    color: var(--ns-text);
}

.ns-button--ghost:hover {
    border-color: rgba(240, 139, 87, 0.64);
    background: var(--ns-accent-soft);
    color: var(--ns-text);
}

.ns-button--ghost .ns-button__icon {
    background: rgba(203, 106, 60, 0.14);
    color: var(--ns-accent-strong);
}

.ns-button--small {
    min-height: 44px;
    padding: 0.74rem 1.15rem;
    font-size: 0.9rem;
}

.ns-main,
.ns-footer,
.lmz-page-builder,
.lmz-page-content {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.lmz-page-builder,
.lmz-page-content {
    margin: 0;
    padding: 0;
}

.lmz-page-header {
    width: var(--ns-shell);
    margin: 3rem auto 0;
}

.ns-page {
    position: relative;
    overflow: clip;
}

.ns-section {
    position: relative;
    padding-block: clamp(5rem, 9vw, 9rem);
}

.ns-section--compact {
    padding-block: clamp(3.5rem, 6vw, 6rem);
}

.ns-section--line {
    border-top: 1px solid var(--ns-line);
}

.ns-section--surface {
    border-block: 1px solid rgba(225, 233, 231, 0.075);
    background:
        radial-gradient(circle at 88% 12%, rgba(203, 106, 60, 0.1), transparent 28rem),
        rgba(12, 18, 20, 0.94);
}

.ns-icon-chip {
    position: relative;
    z-index: 2;
    display: inline-grid;
    place-items: center;
    width: 3.25rem;
    height: 3.25rem;
    border: 1px solid rgba(203, 106, 60, 0.38);
    border-radius: 16px;
    background: rgba(8, 13, 15, 0.76);
    color: var(--ns-accent-strong);
    font-size: 1.1rem;
    box-shadow: inset 0 0 0 5px rgba(203, 106, 60, 0.045), 0 12px 28px rgba(0, 0, 0, 0.2);
}

.ns-inline-icon {
    display: inline-grid;
    place-items: center;
    width: 1.5em;
    margin-right: 0.55rem;
    color: var(--ns-accent-strong);
    font-size: 0.9em;
}

.ns-eyebrow {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 1.15rem;
    color: var(--ns-accent-strong);
    font-family: var(--ns-mono);
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ns-eyebrow::before {
    width: 2.25rem;
    height: 1px;
    background: currentColor;
    content: "";
}

.ns-display,
.ns-page h1,
.ns-page h2,
.ns-page h3 {
    margin-top: 0;
    font-family: var(--ns-display);
    letter-spacing: -0.035em;
    text-wrap: balance;
}

.ns-page h1 {
    margin-bottom: 1.5rem;
    font-size: clamp(3.2rem, 6.15vw, 6.65rem);
    font-weight: 700;
    line-height: 0.93;
}

.ns-page h2 {
    margin-bottom: 1.35rem;
    font-size: clamp(2.3rem, 4.2vw, 4.8rem);
    font-weight: 700;
    line-height: 1;
}

.ns-page h3 {
    margin-bottom: 0.8rem;
    font-size: clamp(1.3rem, 2vw, 1.75rem);
    font-weight: 700;
    line-height: 1.15;
}

.ns-page p {
    margin-top: 0;
}

.ns-lead {
    max-width: 62ch;
    color: #c6cdd1;
    font-size: clamp(1.08rem, 1.5vw, 1.28rem);
    line-height: 1.7;
}

.ns-copy {
    max-width: 67ch;
    color: var(--ns-muted);
    font-size: 1.02rem;
}

.ns-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.8rem;
}

.ns-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 0.87fr) minmax(440px, 1.13fr);
    align-items: center;
    gap: clamp(2.5rem, 5vw, 6.5rem);
    min-height: calc(100dvh - 96px);
    padding-block: clamp(4rem, 7vw, 7.5rem);
}

.ns-hero__copy {
    position: relative;
    z-index: 2;
    padding-left: clamp(0rem, 2vw, 2rem);
}

.ns-hero__copy::before {
    position: absolute;
    top: 0.35rem;
    bottom: 0.35rem;
    left: 0;
    width: 1px;
    background: linear-gradient(to bottom, var(--ns-accent), rgba(203, 106, 60, 0.02) 68%);
    content: "";
    opacity: 0.7;
}

.ns-hero h1 {
    max-width: 13ch;
}

.ns-hero h1 span {
    display: block;
}

.ns-hero h1 span:last-child {
    color: var(--ns-accent);
    text-shadow: 0 18px 60px rgba(203, 106, 60, 0.11);
}

.ns-hero .ns-lead {
    max-width: 46ch;
    margin-bottom: 2rem;
}

.ns-hero__media {
    position: relative;
    z-index: 1;
    min-height: min(70vh, 780px);
    overflow: hidden;
    border: 1px solid var(--ns-line);
    border-radius: 34px 34px 104px 34px;
    background: var(--ns-surface);
    box-shadow: var(--ns-shadow);
}

.ns-hero__media::before {
    position: absolute;
    z-index: 1;
    inset: 0;
    background:
        radial-gradient(circle at 84% 14%, rgba(203, 106, 60, 0.32), transparent 34%),
        linear-gradient(135deg, rgba(203, 106, 60, 0.08), transparent 44%, rgba(7, 11, 12, 0.46));
    content: "";
    pointer-events: none;
}

.ns-hero__media::after {
    position: absolute;
    z-index: 4;
    top: 1.35rem;
    right: 1.35rem;
    width: 3.6rem;
    height: 3.6rem;
    border-top: 1px solid rgba(240, 139, 87, 0.72);
    border-right: 1px solid rgba(240, 139, 87, 0.72);
    content: "";
    pointer-events: none;
}

.ns-hero__media img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
    object-position: center;
    filter: saturate(1.02) contrast(1.06);
}

.ns-hero__badge {
    position: absolute;
    z-index: 4;
    right: 1.25rem;
    bottom: 1.25rem;
    max-width: 20rem;
    padding: 1.05rem 1.2rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: var(--ns-radius-small);
    background: rgba(7, 12, 14, 0.86);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.34), inset 0 1px rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(18px) saturate(120%);
    color: #e8e9e7;
    font-size: 0.86rem;
    line-height: 1.45;
}

.ns-home-hero-visual {
    position: absolute;
    z-index: 2;
    inset: 0;
    display: block;
    overflow: hidden;
    border-radius: inherit;
    pointer-events: none;
}

.ns-home-hero-visual > span {
    position: absolute;
    display: block;
    aspect-ratio: 1;
    border-radius: 50%;
    pointer-events: none;
    transform: translate3d(0, 0, 0);
}

.ns-home-hero-visual__flare {
    top: -31%;
    right: -19%;
    width: clamp(28rem, 48vw, 54rem);
    background: radial-gradient(circle, rgba(240, 139, 87, 0.36), rgba(203, 106, 60, 0.1) 38%, transparent 69%);
    mix-blend-mode: screen;
    opacity: 0.44;
}

.ns-home-hero-visual__ring {
    top: -30%;
    right: -26%;
    width: clamp(25rem, 43vw, 49rem);
    border: 1px solid rgba(240, 139, 87, 0.48);
    box-shadow:
        0 0 0 clamp(2.6rem, 5vw, 5.4rem) rgba(203, 106, 60, 0.035),
        0 0 0 clamp(6rem, 10vw, 10rem) rgba(203, 106, 60, 0.018);
    opacity: 0.62;
}

.ns-home-hero-visual__arc {
    bottom: -29%;
    left: -18%;
    width: clamp(17rem, 28vw, 31rem);
    border: 1px solid transparent;
    border-top-color: rgba(240, 139, 87, 0.68);
    border-right-color: rgba(225, 233, 231, 0.2);
    opacity: 0.68;
}

.ns-gsap-active .ns-home-hero-motion-target {
    backface-visibility: hidden;
    will-change: transform, opacity;
}

.ns-proof {
    border-block: 1px solid var(--ns-line);
    background: rgba(13, 19, 21, 0.64);
}

.ns-proof__grid {
    display: grid;
    grid-template-columns: 1.4fr 0.8fr 0.8fr;
}

.ns-proof__item {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 138px;
    padding: 2rem clamp(1.25rem, 3vw, 3rem);
    border-right: 1px solid var(--ns-line);
    overflow: hidden;
    transition: background-color 220ms ease;
}

.ns-proof__item > .ns-icon-chip {
    position: absolute;
    top: 50%;
    right: clamp(1.25rem, 2.5vw, 2.4rem);
    width: 2.8rem;
    height: 2.8rem;
    margin: 0;
    border-radius: 14px;
    font-size: 0.96rem;
    transform: translateY(-50%);
}

.ns-proof__item:first-child {
    padding-left: clamp(1.5rem, 3vw, 3rem);
    background: linear-gradient(110deg, rgba(203, 106, 60, 0.12), transparent 72%);
}

.ns-proof__item:last-child {
    border-right: 0;
}

.ns-proof__item > strong,
.ns-proof__item > span:not(.ns-icon-chip) {
    display: block;
}

.ns-proof__item > strong {
    margin-bottom: 0.4rem;
    color: var(--ns-text);
    font-family: var(--ns-display);
    font-size: clamp(1.25rem, 2vw, 1.7rem);
    line-height: 1.2;
}

.ns-proof__item:first-child strong {
    font-size: clamp(1.45rem, 2.4vw, 2.15rem);
}

.ns-proof__item > span:not(.ns-icon-chip) {
    max-width: 30ch;
    padding-right: 3.6rem;
    color: var(--ns-muted);
    font-size: 0.95rem;
}

.ns-audience {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
    align-items: start;
    gap: 1.25rem;
}

.ns-audience__panel {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: clamp(450px, 40vw, 610px);
    overflow: hidden;
    padding: clamp(2rem, 4vw, 4rem);
    border: 1px solid var(--ns-line);
    border-radius: 32px 32px 88px 32px;
    background:
        linear-gradient(145deg, rgba(203, 106, 60, 0.13), transparent 48%),
        var(--ns-surface);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.035), 0 28px 80px rgba(0, 0, 0, 0.18);
    transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.ns-audience__panel:nth-child(2) {
    margin-top: clamp(1.5rem, 3vw, 3rem);
    border-radius: 32px 88px 32px 32px;
    background:
        linear-gradient(155deg, rgba(194, 211, 209, 0.055), transparent 52%),
        var(--ns-surface);
}

.ns-audience__panel::before,
.ns-service::before,
.ns-value::before,
.ns-contact-card::before {
    position: absolute;
    z-index: 0;
    inset: -1px;
    border-radius: inherit;
    background: radial-gradient(420px circle at var(--ns-spot-x, 50%) var(--ns-spot-y, 20%), rgba(240, 139, 87, 0.17), transparent 58%);
    content: "";
    opacity: 0;
    pointer-events: none;
    transition: opacity 240ms ease;
}

.ns-audience__panel > *,
.ns-service > *,
.ns-value > *,
.ns-contact-card > * {
    position: relative;
    z-index: 1;
}

.ns-audience__panel > .ns-icon-chip {
    margin-bottom: clamp(3rem, 7vw, 8rem);
}

.ns-audience__panel::after {
    position: absolute;
    right: -5rem;
    bottom: -6rem;
    width: 19rem;
    height: 19rem;
    border: 1px solid rgba(203, 106, 60, 0.3);
    border-radius: 50%;
    content: "";
}

.ns-audience__panel:nth-child(2)::after {
    right: auto;
    left: -6rem;
    border-color: rgba(255, 255, 255, 0.18);
}

.ns-audience__panel h2 {
    max-width: 11ch;
    font-size: clamp(2.5rem, 4.6vw, 5rem);
}

.ns-audience__panel p {
    max-width: 44ch;
    color: var(--ns-muted);
}

.ns-audience__panel .ns-button {
    align-self: flex-start;
    margin-top: auto;
}

.ns-service-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 1.25rem;
    margin-top: clamp(2.5rem, 5vw, 5rem);
}

.ns-service {
    position: relative;
    min-height: 300px;
    overflow: hidden;
    padding: clamp(1.6rem, 3vw, 2.7rem);
    border: 1px solid var(--ns-line);
    border-radius: 28px;
    background: var(--ns-surface);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.03);
    transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.ns-service > .ns-icon-chip {
    position: absolute;
    top: clamp(1.4rem, 2.5vw, 2.4rem);
    right: clamp(1.4rem, 2.5vw, 2.4rem);
}

.ns-service:nth-child(1) {
    grid-column: span 7;
    min-height: 390px;
    border-radius: 28px 28px 84px 28px;
    background:
        linear-gradient(135deg, rgba(203, 106, 60, 0.21), transparent 54%),
        var(--ns-surface);
}

.ns-service:nth-child(2) {
    grid-column: span 5;
    min-height: 390px;
    border-radius: 28px 84px 28px 28px;
}

.ns-service:nth-child(3),
.ns-service:nth-child(4) {
    grid-column: span 6;
}

.ns-service__number {
    display: block;
    margin-bottom: clamp(4.5rem, 8vw, 8rem);
    color: var(--ns-accent);
    font-family: var(--ns-mono);
    font-size: 0.72rem;
    font-weight: 760;
    letter-spacing: 0.16em;
}

.ns-service:nth-child(n + 3) .ns-service__number {
    margin-bottom: 3rem;
}

.ns-service h3 {
    max-width: 17ch;
    font-size: clamp(1.8rem, 3vw, 3.2rem);
}

.ns-service p {
    max-width: 48ch;
    color: var(--ns-muted);
}

.ns-split {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    align-items: center;
    gap: clamp(3rem, 7vw, 8rem);
}

.ns-split--reverse {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
}

.ns-split--reverse .ns-split__media {
    order: 2;
}

.ns-split__media {
    position: relative;
    overflow: hidden;
    min-height: clamp(420px, 56vw, 720px);
    border: 1px solid var(--ns-line);
    border-radius: 36px 36px 108px 36px;
    background: var(--ns-surface);
    box-shadow: var(--ns-shadow);
}

.ns-split__media img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
    filter: saturate(0.88) contrast(1.045);
}

.ns-split__copy h2 {
    max-width: 12ch;
}

.ns-checks {
    display: grid;
    gap: 0;
    margin: 2rem 0 2.3rem;
    padding: 0;
    list-style: none;
}

.ns-checks li {
    display: grid;
    grid-template-columns: 2rem 1fr;
    gap: 0.7rem;
    padding-block: 1rem;
    border-bottom: 1px solid var(--ns-line);
    color: #d8dddf;
}

.ns-checks li::before {
    color: var(--ns-accent);
    content: "0" counter(list-item);
    font-size: 0.72rem;
    font-weight: 760;
    letter-spacing: 0.08em;
}

.ns-process {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 3.5rem;
    border-block: 1px solid var(--ns-line);
    background: rgba(13, 19, 21, 0.34);
}

.ns-process__rail {
    display: none;
}

.ns-process__step {
    position: relative;
    min-height: 300px;
    padding: 2.2rem 2rem 2rem;
    border-right: 1px solid var(--ns-line);
}

.ns-process__step > .ns-icon-chip {
    position: absolute;
    top: 4.72rem;
    right: auto;
    left: 2rem;
    width: 2.85rem;
    height: 2.85rem;
    border-radius: 50%;
    font-size: 0.95rem;
    transform: translateY(-50%);
}

.ns-process__step:last-child {
    border-right: 0;
}

.ns-process__step > span:not(.ns-icon-chip) {
    display: block;
    margin-bottom: 6.3rem;
    padding-left: 4rem;
    color: var(--ns-accent);
    font-family: var(--ns-mono);
    font-size: 0.7rem;
    font-weight: 760;
    letter-spacing: 0.15em;
}

.ns-process__step p {
    color: var(--ns-muted);
}

.ns-jobs {
    margin-top: 3rem;
    border-top: 1px solid var(--ns-line-strong);
}

.ns-job {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(200px, 0.7fr) auto;
    align-items: center;
    gap: 2rem;
    min-height: 112px;
    padding-block: 1.5rem;
    border-bottom: 1px solid var(--ns-line);
}

.ns-job h3 .ns-inline-icon {
    width: auto;
    margin-right: 0.7rem;
}

.ns-job a .ns-inline-icon {
    width: auto;
    margin: 0 0 0 0.5rem;
    font-size: 0.76em;
    transition: transform 180ms ease;
}

.ns-job a:hover .ns-inline-icon {
    transform: translateX(3px);
}

.ns-job h3,
.ns-job p {
    margin: 0;
}

.ns-job p,
.ns-job small {
    color: var(--ns-muted);
}

.ns-job a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--ns-accent-strong);
    font-weight: 720;
    text-decoration: none;
}

.ns-job a:hover {
    text-decoration: underline;
}

.ns-note {
    margin-top: 2rem;
    padding: 1rem 1.2rem;
    border-left: 3px solid var(--ns-accent);
    background: var(--ns-accent-soft);
    color: #d7dddf;
    font-size: 0.9rem;
}

.ns-cta {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 3rem;
    padding: clamp(2rem, 5vw, 5rem);
    overflow: hidden;
    border: 1px solid rgba(203, 106, 60, 0.42);
    border-radius: 32px 32px 96px 32px;
    background:
        radial-gradient(circle at 88% 20%, rgba(203, 106, 60, 0.3), transparent 22rem),
        linear-gradient(125deg, rgba(255, 255, 255, 0.025), transparent 52%),
        var(--ns-surface);
    box-shadow: var(--ns-shadow);
}

.ns-cta::before {
    position: absolute;
    right: -8rem;
    bottom: -14rem;
    width: 30rem;
    aspect-ratio: 1;
    border: 1px solid rgba(240, 139, 87, 0.24);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.ns-cta > * {
    position: relative;
    z-index: 1;
}

.ns-cta h2 {
    max-width: 13ch;
    margin-bottom: 0;
}

.ns-subhero {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
    align-items: end;
    gap: 3rem;
    min-height: 570px;
    padding-block: clamp(6rem, 10vw, 10rem);
    border-bottom: 1px solid var(--ns-line);
}

.ns-subhero h1 {
    max-width: 12ch;
    margin-bottom: 0;
}

.ns-subhero .ns-lead {
    margin-bottom: 0.4rem;
}

.ns-stack {
    display: grid;
    gap: 1rem;
}

.ns-feature-row {
    display: grid;
    grid-template-columns: minmax(180px, 0.35fr) minmax(0, 0.65fr);
    gap: clamp(2rem, 6vw, 7rem);
    padding-block: clamp(2.5rem, 5vw, 5rem);
    border-bottom: 1px solid var(--ns-line);
}

.ns-feature-row:first-child {
    border-top: 1px solid var(--ns-line);
}

.ns-feature-row__label {
    color: var(--ns-accent);
    font-size: 0.77rem;
    font-weight: 760;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.ns-feature-row__label .ns-inline-icon {
    width: 1.35rem;
    margin-right: 0.45rem;
}

.ns-feature-row h2 {
    max-width: 14ch;
    font-size: clamp(2rem, 3.5vw, 3.8rem);
}

.ns-feature-row p {
    max-width: 62ch;
    color: var(--ns-muted);
}

.ns-values {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

.ns-value {
    position: relative;
    min-height: 300px;
    padding: clamp(1.7rem, 3vw, 3rem);
    border: 1px solid var(--ns-line);
    border-radius: 24px;
    background:
        linear-gradient(145deg, rgba(194, 211, 209, 0.035), transparent 52%),
        var(--ns-surface);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.03);
    transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.ns-value > .ns-icon-chip {
    position: absolute;
    top: clamp(1.5rem, 3vw, 2.5rem);
    right: clamp(1.5rem, 3vw, 2.5rem);
}

.ns-value strong {
    display: block;
    margin-bottom: 5rem;
    color: var(--ns-accent);
    font-size: 0.78rem;
    letter-spacing: 0.15em;
}

.ns-value p {
    color: var(--ns-muted);
}

.ns-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 1rem;
}

.ns-contact-card {
    position: relative;
    min-height: 460px;
    padding: clamp(2rem, 4vw, 4rem);
    border: 1px solid var(--ns-line);
    border-radius: 30px 30px 86px 30px;
    background: var(--ns-surface);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.035), 0 28px 80px rgba(0, 0, 0, 0.18);
    transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.ns-contact-card:nth-child(2) {
    border-radius: 30px 86px 30px 30px;
}

.ns-contact-card > .ns-icon-chip {
    position: absolute;
    top: clamp(1.5rem, 3vw, 2.5rem);
    right: clamp(1.5rem, 3vw, 2.5rem);
}

.ns-contact-card--accent {
    background:
        linear-gradient(145deg, rgba(203, 106, 60, 0.28), transparent 60%),
        var(--ns-surface);
}

.ns-contact-card h2 {
    max-width: 10ch;
}

.ns-contact-card address {
    margin: 2rem 0;
    color: var(--ns-muted);
    font-style: normal;
}

.ns-contact-links {
    display: grid;
    gap: 0.8rem;
}

.ns-contact-links a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--ns-text);
    font-family: var(--ns-display);
    font-size: clamp(1.2rem, 2.4vw, 2rem);
    font-weight: 600;
    text-decoration-color: var(--ns-accent);
}

.ns-contact-links a .ns-inline-icon {
    width: 1.2em;
    margin-right: 0.65rem;
    font-size: 0.72em;
}

.ns-legal {
    max-width: 880px;
    padding-block: clamp(5rem, 9vw, 9rem);
}

.ns-legal h1 {
    margin-bottom: 2.5rem;
    font-size: clamp(3.2rem, 7vw, 6.8rem);
}

.ns-legal h2 {
    margin-top: 3.5rem;
    font-size: clamp(1.65rem, 3vw, 2.5rem);
}

.ns-legal p,
.ns-legal li {
    color: #c4cbcf;
}

.ns-legal a {
    color: var(--ns-accent-strong);
}

.ns-draft-notice {
    margin-bottom: 3rem;
    padding: 1.25rem 1.4rem;
    border: 1px solid rgba(203, 106, 60, 0.45);
    border-radius: var(--ns-radius-small);
    background: var(--ns-accent-soft);
    color: #f4d5c6;
}

.ns-footer {
    position: relative;
    overflow: hidden;
    padding-top: clamp(4rem, 8vw, 8rem);
    border-top: 1px solid var(--ns-line);
    background:
        radial-gradient(circle at 16% 12%, rgba(203, 106, 60, 0.075), transparent 28rem),
        #06090a;
}

.ns-footer::before {
    position: absolute;
    right: -0.04em;
    bottom: -0.22em;
    color: rgba(244, 241, 235, 0.018);
    content: "NORTHPAXX";
    font-family: var(--ns-display);
    font-size: clamp(7rem, 18vw, 20rem);
    font-weight: 800;
    letter-spacing: -0.075em;
    line-height: 0.8;
    pointer-events: none;
    white-space: nowrap;
}

.ns-footer__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1.35fr 1fr 1fr 0.7fr;
    gap: clamp(2rem, 5vw, 5rem);
    padding-bottom: clamp(3rem, 6vw, 6rem);
}

.ns-footer h2 {
    margin: 0 0 1.2rem;
    color: var(--ns-text);
    font-family: var(--ns-mono);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ns-footer p,
.ns-footer address,
.ns-footer a {
    color: var(--ns-muted);
}

.ns-footer address {
    font-style: normal;
}

.ns-footer__address,
.ns-footer__link {
    display: grid !important;
    grid-template-columns: 1.2rem minmax(0, 1fr);
    align-items: start;
    gap: 0.65rem;
}

.ns-footer__link {
    align-items: center;
    min-height: 44px;
}

.ns-footer__link > i {
    margin-top: 0;
}

.ns-footer__address > i,
.ns-footer__link > i {
    margin-top: 0.34em;
    color: var(--ns-accent);
    font-size: 0.9rem;
    text-align: center;
}

.ns-footer__link > i {
    margin-top: 0;
}

.ns-footer__link:hover span {
    color: var(--ns-text);
    text-decoration: none;
}

.ns-footer a {
    display: block;
    width: fit-content;
    margin-bottom: 0.55rem;
    text-decoration: none;
}

.ns-footer__brand p {
    max-width: 30ch;
    margin-top: 1.5rem;
}

.ns-footer__bottom {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: flex-start;
    gap: 1.5rem;
    padding-block: 1.25rem;
    border-top: 1px solid var(--ns-line);
}

.ns-footer__bottom p {
    margin: 0;
    font-size: 0.78rem;
}

.ns-error-page {
    display: grid;
    place-items: center;
    padding: 2rem;
}

.ns-error {
    width: min(100%, 760px);
}

.ns-error h1 {
    font-family: var(--ns-display);
    font-size: clamp(3rem, 8vw, 7rem);
    line-height: 0.98;
}

.ns-component-only {
    padding: 2rem;
}

.alert,
.joomla-alert {
    width: var(--ns-shell);
    margin: 1rem auto;
    padding: 1rem 1.2rem;
    border: 1px solid var(--ns-line-strong);
    border-radius: var(--ns-radius-small);
    background: var(--ns-surface);
}

.ns-gsap-active [data-reveal]:not(.is-motion-complete) {
    backface-visibility: hidden;
}

.ns-gsap-active .ns-parallax-image {
    backface-visibility: hidden;
}

.ns-gsap-active .ns-is-animating,
.ns-gsap-active [data-scroll-progress] {
    will-change: transform;
}

.ns-section-rail {
    position: fixed;
    z-index: 900;
    top: 50%;
    right: clamp(1rem, 1.8vw, 2rem);
    display: none;
    width: 1rem;
    height: min(38vh, 23rem);
    pointer-events: none;
    transform: translateY(-50%);
}

.ns-section-rail__line,
.ns-section-rail__progress {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 1px;
    transform: translateX(-50%);
}

.ns-section-rail__line {
    background: rgba(225, 233, 231, 0.12);
}

.ns-section-rail__progress {
    background: var(--ns-accent);
    box-shadow: 0 0 10px rgba(203, 106, 60, 0.2);
    transform: translateX(-50%) scaleY(0);
    transform-origin: 50% 0;
}

.ns-section-rail__dots {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.ns-section-rail__dot {
    width: 0.5rem;
    height: 0.5rem;
    margin-inline: auto;
    border: 1px solid rgba(225, 233, 231, 0.3);
    border-radius: 50%;
    background: var(--ns-bg);
    box-shadow: 0 0 0 4px rgba(7, 11, 12, 0.82);
    transform: scale(0.74);
    transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.ns-section-rail__dot.is-active {
    border-color: var(--ns-accent);
    background: var(--ns-accent);
    transform: scale(1);
}

.ns-reduced-motion [data-reveal] {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    will-change: auto !important;
}

.ns-reduced-motion .ns-scroll-progress {
    display: none;
}

.ns-reduced-motion .ns-motion-bg__orb,
.ns-reduced-motion .ns-motion-bg__grid,
.ns-reduced-motion .ns-motion-bg__beam,
.ns-reduced-motion [data-process-line],
.ns-reduced-motion .ns-motion-drift {
    transform: none !important;
    will-change: auto !important;
}

@media (min-width: 1281px) {
    .ns-process__rail {
        position: absolute;
        z-index: 0;
        top: 6.15rem;
        right: 2rem;
        left: 2rem;
        display: block;
        height: 1px;
        overflow: hidden;
        background: rgba(255, 255, 255, 0.08);
        pointer-events: none;
    }

    .ns-process__rail > span {
        display: block;
        width: 100%;
        height: 100%;
        background: var(--ns-accent);
        transform-origin: 0 50%;
    }

    .ns-process__step {
        z-index: 1;
    }
}

@media (min-width: 1321px) {
    .ns-section-rail {
        display: block;
    }
}

@media (hover: hover) and (pointer: fine) {
    .ns-audience__panel:hover,
    .ns-service:hover,
    .ns-value:hover,
    .ns-contact-card:hover {
        border-color: rgba(203, 106, 60, 0.52);
        box-shadow: inset 0 1px rgba(255, 255, 255, 0.045), 0 30px 82px rgba(0, 0, 0, 0.24);
        transform: translateY(-4px);
    }

    .ns-audience__panel:hover::before,
    .ns-service:hover::before,
    .ns-value:hover::before,
    .ns-contact-card:hover::before {
        opacity: 1;
    }

    .ns-icon-chip {
        transition: border-color 220ms ease, color 220ms ease, transform 220ms ease;
    }

    .ns-audience__panel:hover > .ns-icon-chip,
    .ns-service:hover > .ns-icon-chip,
    .ns-value:hover > .ns-icon-chip,
    .ns-contact-card:hover > .ns-icon-chip {
        border-color: rgba(240, 139, 87, 0.72);
        color: var(--ns-accent-strong);
        transform: translateY(-3px) rotate(-3deg);
    }
}

@media (max-width: 1280px) {
    .ns-header__inner {
        grid-template-columns: auto minmax(0, 1fr) auto auto auto;
    }

    .ns-menu-toggle {
        display: inline-flex;
        grid-column: 5;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        padding: 0;
        border: 1px solid var(--ns-line-strong);
        border-radius: 999px;
        background: transparent;
        cursor: pointer;
    }

    .ns-menu-toggle__label {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap;
    }

    .ns-menu-toggle__lines {
        display: grid;
        gap: 6px;
        width: 19px;
    }

    .ns-menu-toggle__lines i {
        display: block;
        width: 100%;
        height: 1px;
        background: var(--ns-text);
        transition: transform 180ms ease;
    }

    .ns-menu-toggle[aria-expanded="true"] .ns-menu-toggle__lines i:first-child {
        transform: translateY(3.5px) rotate(45deg);
    }

    .ns-menu-toggle[aria-expanded="true"] .ns-menu-toggle__lines i:last-child {
        transform: translateY(-3.5px) rotate(-45deg);
    }

    .ns-navigation {
        position: absolute;
        z-index: 999;
        inset: calc(100% + 10px) 0 auto;
        justify-self: stretch;
        display: grid;
        width: auto;
        max-width: none;
        height: calc(100dvh - 106px);
        padding: 2rem 4vw 4rem;
        overflow-y: auto;
        border: 1px solid var(--ns-line);
        border-radius: 24px;
        background: rgba(8, 13, 15, 0.985);
        box-shadow: 0 32px 90px rgba(0, 0, 0, 0.52);
        opacity: 0;
        pointer-events: none;
        transform: translateY(-10px);
        visibility: hidden;
        transition: opacity 180ms ease, transform 180ms ease, visibility 0s linear 180ms;
    }

    .ns-navigation.is-open {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
        visibility: visible;
        transition-delay: 0s;
    }

    .ns-navigation ul {
        align-self: start;
        display: grid;
        width: 100%;
        gap: 0;
    }

    .ns-navigation li {
        border-bottom: 1px solid var(--ns-line);
    }

    .ns-navigation a {
        width: 100%;
        min-height: 72px;
        font-size: 1.4rem;
    }

    .ns-navigation a::after {
        display: none;
    }

    .ns-header__cta {
        grid-column: 4;
        justify-self: end;
    }

    .ns-language-switcher {
        grid-column: 3;
    }

    .ns-hero {
        grid-template-columns: 1fr 1fr;
        gap: 2rem;
    }

    .ns-page h1 {
        font-size: clamp(3.2rem, 7.8vw, 6.2rem);
    }

    .ns-process {
        grid-template-columns: repeat(2, 1fr);
    }

    .ns-process__step:nth-child(2) {
        border-right: 0;
    }

    .ns-process__step:nth-child(-n + 2) {
        border-bottom: 1px solid var(--ns-line);
    }

    .ns-footer__grid {
        grid-template-columns: 1.4fr 1fr;
    }

    .ns-footer__grid > :last-child {
        grid-column: auto;
    }
}

@media (max-width: 900px) {
    .ns-header__cta {
        display: none;
    }

    .ns-header__inner {
        grid-template-columns: 1fr auto auto;
        grid-template-areas: "brand language menu";
    }

    .ns-brand {
        grid-area: brand;
        min-width: 0;
    }

    .ns-menu-toggle {
        grid-area: menu;
    }

    .ns-language-switcher {
        grid-area: language;
    }

    .ns-navigation {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .ns-hero {
        grid-template-columns: 1fr;
        min-height: auto;
        padding-top: 4rem;
    }

    .ns-hero h1 {
        max-width: 13ch;
    }

    .ns-hero__copy {
        padding-left: 0;
    }

    .ns-hero__copy::before {
        display: none;
    }

    .ns-hero__media {
        min-height: 62vw;
    }

    .ns-proof__grid,
    .ns-audience,
    .ns-split,
    .ns-split--reverse,
    .ns-subhero,
    .ns-contact-grid {
        grid-template-columns: 1fr;
    }

    .ns-split--reverse .ns-split__media {
        order: 0;
    }

    .ns-split:not(.ns-split--reverse) .ns-split__copy {
        order: -1;
    }

    .ns-audience__panel:nth-child(2) {
        margin-top: 0;
    }

    .ns-service:nth-child(n) {
        grid-column: span 12;
        min-height: 340px;
    }

    .ns-subhero {
        min-height: auto;
        padding-block: 6rem;
    }

    .ns-feature-row {
        grid-template-columns: 1fr;
        gap: 1.2rem;
    }

    .ns-cta {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .ns-job {
        grid-template-columns: 1fr auto;
    }

    .ns-job > :nth-child(2) {
        grid-column: 1;
    }

    .ns-job > :last-child {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    .ns-footer__grid {
        grid-template-columns: 1.4fr 1fr;
    }

    .ns-footer__grid > :last-child {
        grid-column: auto;
    }
}

@media (max-width: 640px) {
    :root {
        --ns-shell: calc(100% - 2rem);
        --ns-radius: 16px;
    }

    .ns-header,
    .ns-header.is-condensed {
        height: 76px;
    }

    .ns-header__inner {
        top: 8px;
        height: 60px;
        gap: 0.5rem;
        padding-inline: 0.75rem 0.55rem;
        border-radius: 16px;
    }

    .ns-header.is-condensed .ns-header__inner {
        top: 6px;
        height: 58px;
    }

    .ns-brand img {
        width: 26px;
        height: 28px;
    }

    .ns-brand__wordmark {
        font-size: 0.76rem;
        letter-spacing: 0.16em;
    }

    .ns-brand__wordmark small {
        display: none;
    }

    .ns-language-switcher__toggle {
        min-height: 44px;
        gap: 0.45rem;
        padding-inline: 0.65rem;
    }

    .ns-menu-toggle {
        width: 44px;
        height: 44px;
    }

    .ns-navigation {
        top: calc(100% + 8px);
        height: calc(100dvh - 86px);
    }

    .ns-page h1 {
        max-width: 13ch;
        font-size: clamp(2.7rem, 14vw, 4.35rem);
        line-height: 0.98;
    }

    .ns-page h2 {
        font-size: clamp(2.15rem, 10vw, 3.2rem);
    }

    .ns-section {
        padding-block: 4.8rem;
    }

    .ns-hero {
        gap: 2.3rem;
        padding-block: 3rem 4rem;
    }

    .ns-hero__media {
        min-height: 108vw;
        border-radius: 22px 22px 64px 22px;
    }

    .ns-hero__badge {
        right: 0.75rem;
        bottom: 0.75rem;
        left: 0.75rem;
        max-width: none;
    }

    .ns-actions,
    .ns-actions .ns-button {
        width: 100%;
    }

    .ns-proof__grid {
        grid-template-columns: 1fr;
    }

    .ns-proof__item,
    .ns-proof__item:first-child {
        min-height: auto;
        padding: 1.5rem 0;
        border-right: 0;
        border-bottom: 1px solid var(--ns-line);
        background: transparent;
    }

    .ns-proof__item > .ns-icon-chip {
        right: 0;
    }

    .ns-proof__item:last-child {
        border-bottom: 0;
    }

    .ns-audience__panel {
        min-height: 390px;
        padding: 1.6rem;
        border-radius: 22px 22px 58px 22px;
    }

    .ns-audience__panel:nth-child(2) {
        border-radius: 22px 58px 22px 22px;
    }

    .ns-service-grid {
        gap: 0.75rem;
    }

    .ns-service:nth-child(n) {
        min-height: 310px;
        padding: 1.5rem;
        border-radius: 22px;
    }

    .ns-service__number {
        margin-bottom: 6rem;
    }

    .ns-split__media {
        min-height: 116vw;
        max-height: 620px;
        border-radius: 24px 24px 64px 24px;
    }

    .ns-process {
        grid-template-columns: 1fr;
    }

    .ns-process__step,
    .ns-process__step:nth-child(n) {
        min-height: auto;
        padding: 1.6rem 0;
        border-right: 0;
        border-bottom: 1px solid var(--ns-line);
    }

    .ns-process__step > span:not(.ns-icon-chip) {
        margin-bottom: 2.2rem;
        padding-left: 0;
    }

    .ns-process__step > .ns-icon-chip {
        top: 1.45rem;
        right: 0;
        left: auto;
        transform: none;
    }

    .ns-job {
        grid-template-columns: 1fr;
        gap: 0.7rem;
    }

    .ns-job > :last-child {
        grid-column: 1;
        grid-row: auto;
        margin-top: 0.5rem;
    }

    .ns-values,
    .ns-footer__grid {
        grid-template-columns: 1fr;
    }

    .ns-value {
        min-height: 260px;
    }

    .ns-contact-card {
        min-height: auto;
        border-radius: 22px 22px 58px 22px;
    }

    .ns-contact-card:nth-child(2) {
        border-radius: 22px 58px 22px 22px;
    }

    .ns-cta {
        border-radius: 22px 22px 64px 22px;
    }

    .ns-footer__bottom {
        display: grid;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }

    [data-reveal] {
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }

    .ns-scroll-progress {
        display: none;
    }

    .ns-section-rail {
        display: none !important;
    }

    .ns-motion-bg__orb,
    .ns-motion-bg__grid,
    .ns-motion-bg__beam,
    [data-process-line] {
        transform: none !important;
    }
}

@media (prefers-reduced-transparency: reduce) {
    .ns-header,
    .ns-header__inner,
    .ns-hero__badge,
    .ns-language-switcher__options {
        background: var(--ns-bg);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
}

/* NorthPaxx editorial refinement, August 2026. */
.ns-page h1,
.ns-page h2,
.ns-page h3 {
    letter-spacing: -0.025em;
}

.ns-header {
    height: 84px;
}

.ns-header.is-condensed {
    height: 74px;
}

.ns-header__inner {
    top: 10px;
    height: 64px;
    border-radius: 17px;
}

.ns-header.is-condensed .ns-header__inner {
    top: 7px;
    height: 60px;
}

.ns-section-rail {
    display: none !important;
}

.ns-card,
.ns-value,
.ns-contact-card,
.ns-job {
    border-radius: 24px;
}

.ns-footer h2 {
    font-size: 0.76rem;
}

.ns-subhero h1,
.ns-feature-row h2,
.ns-service h3 {
    hyphens: auto;
    overflow-wrap: anywhere;
}

.ns-checks {
    counter-reset: ns-check;
}

.ns-checks li {
    counter-increment: ns-check;
}

.ns-checks li::before {
    content: counter(ns-check, decimal-leading-zero);
}

/* Homepage: editorial split hero. */
.ns-page--home .ns-hero {
    grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
    gap: clamp(2.5rem, 4vw, 5rem);
    min-height: calc(100svh - 84px);
    padding-block: clamp(2.75rem, 4.8vw, 5.4rem);
}

.ns-page--home .ns-hero__copy {
    padding-left: 0;
}

.ns-page--home .ns-hero__copy::before {
    display: none;
}

.ns-page--home .ns-hero h1 {
    max-width: 74rem;
    margin-bottom: clamp(1.5rem, 2.4vw, 2.2rem);
    font-size: clamp(4.25rem, 6.05vw, 6.4rem);
    font-weight: 690;
    line-height: 0.88;
}

.ns-page--home .ns-hero h1 > span {
    display: inline;
}

.ns-page--home .ns-hero h1 > .ns-hero__line-break::before {
    display: block;
    content: "";
}

.ns-page--home .ns-hero h1 > span:last-child::before {
    display: block;
    content: "";
}

.ns-page--home .ns-hero .ns-lead {
    max-width: 52ch;
    margin-bottom: 1.8rem;
}

.ns-page--home .ns-hero__media {
    min-height: clamp(500px, 64vh, 680px);
    border-radius: 28px 28px 88px 28px;
}

.ns-page--home .ns-hero__badge {
    display: none;
}

/* Trust statements become a deliberately composed 7 + 5 / 12 bento. */
.ns-page--home .ns-proof {
    padding-block: 1.1rem 0;
    border: 0;
    background: transparent;
}

.ns-page--home .ns-proof__grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem;
}

.ns-page--home .ns-proof__item,
.ns-page--home .ns-proof__item:first-child,
.ns-page--home .ns-proof__item:last-child {
    min-height: 176px;
    padding: clamp(1.6rem, 3vw, 2.6rem);
    border: 1px solid var(--ns-line);
    border-radius: 24px;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.025), transparent 48%),
        rgba(14, 21, 23, 0.88);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.03);
}

.ns-page--home .ns-proof__item:first-child {
    grid-column: span 7;
    background:
        linear-gradient(125deg, rgba(203, 106, 60, 0.18), transparent 68%),
        rgba(14, 21, 23, 0.92);
}

.ns-page--home .ns-proof__item:nth-child(2) {
    grid-column: span 5;
}

.ns-page--home .ns-proof__item:nth-child(3) {
    grid-column: 1 / -1;
    min-height: 148px;
}

.ns-page--home .ns-proof__item strong {
    padding-right: 4rem;
    font-size: clamp(1.55rem, 2.3vw, 2.25rem);
}

.ns-page--home .ns-proof__controls {
    display: none;
}

.ns-page--home .ns-section:has(> .ns-eyebrow + .ns-audience) > .ns-eyebrow,
.ns-page--home .ns-split .ns-eyebrow,
.ns-page--home .ns-cta .ns-eyebrow {
    display: none;
}

.ns-page--home .ns-cta {
    min-height: clamp(310px, 27vw, 390px);
    isolation: isolate;
    background: #0b1113;
}

.ns-page--home .ns-cta::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    background:
        linear-gradient(90deg, rgba(7, 11, 12, 0.97) 0%, rgba(7, 11, 12, 0.87) 38%, rgba(7, 11, 12, 0.43) 70%, rgba(7, 11, 12, 0.61) 100%),
        linear-gradient(0deg, rgba(7, 11, 12, 0.78), rgba(7, 11, 12, 0.08) 62%),
        url("../../../images/northpaxx/content/service-matching.webp") center 44% / cover no-repeat;
    filter: saturate(0.82) contrast(1.05);
    pointer-events: none;
    transform: scale(1.015);
}

.ns-page--home .ns-cta::before {
    z-index: 1;
}

.ns-page--home .ns-cta > * {
    z-index: 2;
}

.ns-page--home .ns-audience {
    gap: 1rem;
}

.ns-page--home .ns-audience__panel {
    min-height: clamp(410px, 34vw, 520px);
    border-radius: 26px 26px 76px 26px;
}

.ns-page--home .ns-audience__panel:nth-child(2) {
    margin-top: clamp(1rem, 2vw, 2rem);
    border-radius: 26px 76px 26px 26px;
}

.ns-page--home .ns-audience__panel:nth-child(2)::after {
    right: -1px;
    bottom: -1px;
    left: auto;
    width: 59%;
    height: 62%;
    border: 0;
    border-radius: 48% 0 26px 0;
    background:
        linear-gradient(100deg, var(--ns-surface) 0%, rgba(17, 25, 28, 0.28) 48%, rgba(7, 11, 12, 0.12)),
        url("../../../images/northpaxx/content/logistics-team-v2.webp") 56% center / cover no-repeat;
    opacity: 0.78;
}

.ns-page--home .ns-audience__panel h2 {
    font-size: clamp(2.7rem, 4.4vw, 4.8rem);
}

.ns-page--home .ns-audience__panel:nth-child(2) p {
    max-width: 39ch;
    text-shadow: 0 2px 18px rgba(7, 11, 12, 0.9);
}

/* One continuous capability marquee, derived from the real service names. */
.ns-capability-marquee {
    position: relative;
    z-index: 1;
    overflow: hidden;
    border-block: 1px solid var(--ns-line);
    background: rgba(8, 13, 15, 0.72);
}

.ns-capability-marquee__track {
    display: flex;
    width: max-content;
    animation: ns-capability-loop var(--ns-capability-duration, 34s) linear infinite;
    transform: translate3d(0, 0, 0);
    will-change: transform;
}

.ns-capability-marquee__group {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.ns-capability-marquee__item {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1.15rem clamp(1.5rem, 3vw, 3rem);
    color: #d8dddf;
    font-family: var(--ns-display);
    font-size: clamp(1rem, 1.5vw, 1.3rem);
    font-weight: 620;
    letter-spacing: -0.015em;
    white-space: nowrap;
}

.ns-capability-marquee__item i {
    color: var(--ns-accent-strong);
    font-size: 0.84em;
}

@keyframes ns-capability-loop {
    to {
        transform: translate3d(var(--ns-capability-distance, -50%), 0, 0);
    }
}

/* Desktop service cards form a GSAP-pinned editorial story. */
.ns-services-editorial > .ns-container > h2 {
    max-width: 12ch;
    font-size: clamp(3.2rem, 5.5vw, 6rem);
}

.ns-services-editorial > .ns-container > .ns-lead {
    max-width: 58ch;
}

.ns-page--home .ns-service-grid--stack .ns-service__number {
    display: none;
}

/* Subpages receive the same visual confidence as the homepage. */
.ns-subhero {
    position: relative;
    isolation: isolate;
    min-height: min(66vh, 650px);
    margin-top: clamp(1rem, 2vw, 2rem);
    padding: clamp(4rem, 7vw, 7rem) clamp(1.6rem, 5vw, 5.5rem);
    overflow: hidden;
    border: 1px solid var(--ns-line);
    border-radius: 28px 28px 88px 28px;
    background:
        radial-gradient(circle at 84% 18%, rgba(203, 106, 60, 0.22), transparent 24rem),
        linear-gradient(125deg, rgba(255, 255, 255, 0.035), transparent 52%),
        rgba(13, 20, 22, 0.92);
    box-shadow: var(--ns-shadow);
}

.ns-subhero::before {
    position: absolute;
    z-index: -1;
    top: -22rem;
    right: -16rem;
    width: 42rem;
    aspect-ratio: 1;
    border: 1px solid rgba(240, 139, 87, 0.24);
    border-radius: 50%;
    box-shadow: 0 0 0 5rem rgba(203, 106, 60, 0.018), 0 0 0 10rem rgba(203, 106, 60, 0.012);
    content: "";
}

.ns-subhero::after {
    position: absolute;
    z-index: -1;
    right: clamp(1.5rem, 5vw, 5rem);
    bottom: 0;
    width: clamp(7rem, 14vw, 13rem);
    height: 38%;
    border-right: 1px solid rgba(240, 139, 87, 0.48);
    border-bottom: 1px solid rgba(240, 139, 87, 0.48);
    content: "";
    opacity: 0.8;
}

.ns-subhero h1 {
    max-width: 13ch;
    font-size: clamp(3.6rem, 6.4vw, 7rem);
    font-weight: 680;
    line-height: 0.9;
}

.ns-subhero .ns-lead {
    max-width: 48ch;
}

.ns-feature-row {
    transition: border-color 220ms ease, background-color 220ms ease, padding-inline 220ms ease;
}

.ns-feature-row:hover {
    border-color: rgba(240, 139, 87, 0.28);
}

.ns-page--feature-bento .ns-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.ns-page--feature-bento .ns-feature-row {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 390px;
    gap: 1.2rem;
    padding: clamp(1.8rem, 3vw, 3rem);
    overflow: hidden;
    border: 1px solid var(--ns-line);
    border-radius: 26px;
    background:
        linear-gradient(145deg, rgba(203, 106, 60, 0.12), transparent 48%),
        var(--ns-surface);
}

.ns-page--feature-bento .ns-feature-row:nth-child(2) {
    border-radius: 26px 74px 26px 26px;
    background:
        linear-gradient(145deg, rgba(194, 211, 209, 0.07), transparent 54%),
        var(--ns-surface);
}

.ns-page--feature-bento .ns-feature-row:nth-child(3),
.ns-page--feature-bento .ns-feature-row:nth-child(4) {
    min-height: 470px;
    background-position: center;
    background-size: cover;
}

.ns-page--feature-bento .ns-feature-row:nth-child(3) {
    border-radius: 26px 26px 26px 74px;
    background:
        linear-gradient(to top, rgba(7, 11, 12, 0.98) 7%, rgba(7, 11, 12, 0.74) 56%, rgba(7, 11, 12, 0.18)),
        url("../../../images/northpaxx/content/jobs-crew.webp") center / cover no-repeat;
}

.ns-page--feature-bento .ns-feature-row:nth-child(4) {
    border-radius: 26px 26px 74px 26px;
    background:
        linear-gradient(to top, rgba(7, 11, 12, 0.98) 7%, rgba(7, 11, 12, 0.72) 58%, rgba(7, 11, 12, 0.16)),
        url("../../../images/northpaxx/content/logistics-team-v2.webp") center / cover no-repeat;
}

.ns-page--feature-bento .ns-feature-row__label {
    order: -1;
}

.ns-page--feature-bento .ns-feature-row > div {
    position: relative;
    z-index: 1;
}

.ns-page--feature-bento .ns-feature-row h2 {
    max-width: 12ch;
    margin-bottom: 1rem;
    font-size: clamp(2.35rem, 3.5vw, 4rem);
}

.ns-page--feature-bento .ns-feature-row p {
    max-width: 50ch;
    color: #c7ced0;
}

.ns-gsap-active .ns-image-scale-stage {
    will-change: transform, opacity;
}

@media (min-width: 1281px) {
    .ns-page--home .ns-service-grid--stack {
        display: block;
        margin-top: clamp(4rem, 7vw, 7rem);
    }

    .ns-page--home .ns-service-grid--stack .ns-service {
        display: flex;
        flex-direction: column;
        justify-content: center;
        width: 100%;
        min-height: min(78svh, 740px);
        margin-bottom: 18svh;
        padding: clamp(7.5rem, 12vh, 10rem) clamp(2.5rem, 6vw, 6.5rem) clamp(4rem, 7vw, 6rem) clamp(7.5rem, 9vw, 9rem);
        border-radius: 28px 28px 88px 28px;
        background:
            linear-gradient(125deg, rgba(203, 106, 60, 0.17), transparent 50%),
            var(--ns-surface);
        box-shadow: 0 38px 110px rgba(0, 0, 0, 0.42), inset 0 1px rgba(255, 255, 255, 0.04);
    }

    .ns-page--home .ns-service-grid--stack > .ns-service:last-child {
        margin-bottom: 0;
    }

    .ns-page--home .ns-service-grid--stack .ns-service--secondary {
        border-radius: 28px 88px 28px 28px;
        background:
            linear-gradient(145deg, rgba(194, 211, 209, 0.08), transparent 56%),
            var(--ns-surface);
    }

    .ns-page--home .ns-service-grid--stack .ns-service--visual-events,
    .ns-page--home .ns-service-grid--stack .ns-service--visual-logistics {
        background: var(--ns-surface);
    }

    .ns-page--home .ns-service-grid--stack .ns-service--visual-events::after,
    .ns-page--home .ns-service-grid--stack .ns-service--visual-logistics::after {
        position: absolute;
        z-index: 0;
        inset: 0 0 0 48%;
        background-position: center;
        background-size: cover;
        content: "";
        opacity: 0.82;
        -webkit-mask-image: linear-gradient(90deg, transparent, #000 42%);
        mask-image: linear-gradient(90deg, transparent, #000 42%);
    }

    .ns-page--home .ns-service-grid--stack .ns-service--visual-events::after {
        background-image:
            linear-gradient(90deg, rgba(7, 11, 12, 0.18), rgba(7, 11, 12, 0.44)),
            url("../../../images/northpaxx/content/jobs-crew.webp");
    }

    .ns-page--home .ns-service-grid--stack .ns-service--visual-logistics::after {
        background-image:
            linear-gradient(90deg, rgba(7, 11, 12, 0.16), rgba(7, 11, 12, 0.42)),
            url("../../../images/northpaxx/content/logistics-team-v2.webp");
    }

    .ns-page--home .ns-service-grid--stack .ns-service > .ns-icon-chip {
        position: absolute;
        top: 50%;
        right: auto;
        left: clamp(3rem, 4vw, 4rem);
        transform: translateY(-50%);
    }

    .ns-page--home .ns-service-grid--stack h3 {
        max-width: 13ch;
        margin-bottom: 1.25rem;
        font-size: clamp(3.6rem, 6vw, 6.8rem);
        line-height: 0.92;
    }

    .ns-page--home .ns-service-grid--stack p {
        max-width: 43ch;
        font-size: clamp(1.05rem, 1.4vw, 1.25rem);
        line-height: 1.65;
    }
}

@media (min-width: 901px) and (max-width: 1280px) {
    .ns-header__inner {
        grid-template-rows: 1fr;
    }

    .ns-brand,
    .ns-navigation,
    .ns-language-switcher,
    .ns-header__cta,
    .ns-menu-toggle {
        grid-row: 1;
    }

    .ns-page--home .ns-hero {
        grid-template-columns: minmax(0, 1fr) minmax(380px, 0.86fr);
    }

    .ns-page--home .ns-hero h1 {
        font-size: clamp(3.8rem, 6.6vw, 5.25rem);
    }

    .ns-services-editorial .ns-service-grid--stack {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .ns-page--home .ns-hero {
        grid-template-columns: 1fr;
        min-height: auto;
        padding-block: 3.75rem 4.5rem;
    }

    .ns-page--home .ns-hero h1 {
        max-width: 12ch;
        font-size: clamp(3.6rem, 12vw, 5.4rem);
    }

    .ns-page--home .ns-hero__media {
        min-height: min(74vw, 650px);
    }

    .ns-page--home .ns-audience__panel:nth-child(2) {
        margin-top: 0;
    }

    .ns-page--feature-bento .ns-stack {
        grid-template-columns: 1fr;
    }

    .ns-page--feature-bento .ns-feature-row,
    .ns-page--feature-bento .ns-feature-row:nth-child(3),
    .ns-page--feature-bento .ns-feature-row:nth-child(4) {
        min-height: 360px;
    }

    .ns-subhero {
        grid-template-columns: 1fr;
        min-height: auto;
        gap: 2rem;
        padding-block: 4.5rem;
    }
}

@media (max-width: 700px) {
    .ns-page--home .ns-proof {
        padding-block: 0.5rem 1.25rem;
    }

    .ns-page--home .ns-proof__grid {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: minmax(82%, 1fr);
        gap: 0.75rem;
        padding-block: 0.75rem;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-padding-inline: 0.2rem;
        scroll-snap-type: inline mandatory;
        scrollbar-width: none;
    }

    .ns-page--home .ns-proof__grid::-webkit-scrollbar {
        display: none;
    }

    .ns-page--home .ns-proof__item,
    .ns-page--home .ns-proof__item:first-child,
    .ns-page--home .ns-proof__item:nth-child(2),
    .ns-page--home .ns-proof__item:nth-child(3),
    .ns-page--home .ns-proof__item:last-child {
        grid-column: auto;
        min-height: 188px;
        padding: 1.55rem;
        border: 1px solid var(--ns-line);
        scroll-snap-align: start;
    }

    .ns-page--home .ns-proof__controls {
        display: flex;
        justify-content: flex-end;
        gap: 0.6rem;
    }

    .ns-proof__control {
        display: inline-grid;
        place-items: center;
        width: 46px;
        height: 46px;
        border: 1px solid var(--ns-line-strong);
        border-radius: 14px;
        background: var(--ns-surface);
        color: var(--ns-text);
        cursor: pointer;
    }

    .ns-proof__control:hover,
    .ns-proof__control:focus-visible {
        border-color: var(--ns-accent);
        color: var(--ns-accent-strong);
    }
}

@media (max-width: 640px) {
    .ns-header,
    .ns-header.is-condensed {
        height: 72px;
    }

    .ns-header__inner,
    .ns-header.is-condensed .ns-header__inner {
        top: 6px;
        height: 58px;
    }

    .ns-page h2,
    .ns-feature-row h2,
    .ns-service h3 {
        max-width: 100%;
        font-size: clamp(2rem, 9vw, 2.75rem);
        line-height: 1.02;
    }

    .ns-subhero {
        margin-top: 0.75rem;
        padding: 3.75rem 1.35rem;
        border-radius: 22px 22px 58px 22px;
    }

    .ns-subhero h1 {
        max-width: 100%;
        font-size: clamp(2.55rem, 12vw, 3.6rem);
        line-height: 0.96;
    }

    .ns-page--home .ns-hero {
        gap: 2.2rem;
        padding-block: 2.75rem 3.75rem;
    }

    .ns-page--home .ns-hero h1 {
        width: 100%;
        max-width: 100%;
        font-size: clamp(2.75rem, 13.5vw, 4.35rem);
    }

    .ns-page--home .ns-hero__media {
        min-height: 100vw;
        max-height: 560px;
        border-radius: 22px 22px 58px 22px;
    }

    .ns-page--home .ns-audience__panel {
        min-height: 390px;
    }

    .ns-page--home .ns-audience__panel:nth-child(2)::after {
        width: 72%;
        height: 54%;
        opacity: 0.62;
    }

    .ns-capability-marquee__item {
        padding: 1rem 1.35rem;
        font-size: 0.98rem;
    }

    .ns-page--feature-bento .ns-feature-row,
    .ns-page--feature-bento .ns-feature-row:nth-child(2),
    .ns-page--feature-bento .ns-feature-row:nth-child(3),
    .ns-page--feature-bento .ns-feature-row:nth-child(4) {
        min-height: 340px;
        padding: 1.45rem;
        border-radius: 22px;
    }

    .ns-page--feature-bento .ns-feature-row h2 {
        font-size: clamp(2rem, 9vw, 2.7rem);
    }

    .ns-button,
    .ns-button:visited {
        max-width: 100%;
        white-space: normal;
    }
}

@media (max-width: 360px) {
    :root {
        --ns-shell: calc(100% - 1.5rem);
    }

    .ns-page--home .ns-hero h1 {
        font-size: clamp(2.65rem, 13.5vw, 3.05rem);
        letter-spacing: -0.04em;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ns-capability-marquee__track {
        animation: none;
        transform: none;
    }

    .ns-image-scale-stage,
    .ns-stack-card {
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }
}

/* Underpages: cinematic chapter motion without hiding readable content. */
.ns-page--motion-story {
    isolation: isolate;
}

.ns-subpage-atmosphere {
    position: absolute;
    z-index: 1;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.ns-subpage-atmosphere > span,
.ns-subhero__motion > span,
.ns-chapter-atmosphere > span,
.ns-cta__motion > span {
    position: absolute;
    display: block;
    pointer-events: none;
    transform: translate3d(0, 0, 0);
}

.ns-subpage-atmosphere__wash {
    top: -24%;
    right: -24%;
    width: min(88vw, 78rem);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(203, 106, 60, 0.2), rgba(203, 106, 60, 0.06) 38%, transparent 70%);
    opacity: 0.22;
}

.ns-subpage-atmosphere__halo {
    top: -30%;
    right: -27%;
    width: clamp(36rem, 64vw, 76rem);
    aspect-ratio: 1;
    border: 1px solid rgba(240, 139, 87, 0.2);
    border-radius: 50%;
    box-shadow:
        0 0 0 clamp(3rem, 7vw, 8rem) rgba(203, 106, 60, 0.016),
        0 0 0 clamp(7rem, 14vw, 15rem) rgba(203, 106, 60, 0.01);
    opacity: 0.28;
}

.ns-subpage-atmosphere__orbit {
    bottom: -24%;
    left: -15%;
    width: clamp(24rem, 42vw, 50rem);
    aspect-ratio: 1;
    border: 1px solid transparent;
    border-right-color: rgba(194, 211, 209, 0.2);
    border-bottom-color: rgba(203, 106, 60, 0.3);
    border-radius: 50%;
    opacity: 0.2;
}

.ns-subpage-atmosphere__ribbon {
    top: -18%;
    bottom: -18%;
    left: 47%;
    width: clamp(8rem, 13vw, 14rem);
    border-inline: 1px solid rgba(203, 106, 60, 0.09);
    background: linear-gradient(90deg, transparent, rgba(203, 106, 60, 0.055), transparent);
    opacity: 0.12;
    transform: rotate(-14deg) translate3d(0, 0, 0);
    transform-origin: 50% 50%;
}

.ns-subhero--motion-stage > :not(.ns-subhero__motion) {
    position: relative;
    z-index: 2;
}

.ns-subhero__motion {
    position: absolute;
    z-index: 0;
    inset: 0;
    overflow: hidden;
    border-radius: inherit;
    pointer-events: none;
}

.ns-subhero__motion-flare {
    top: -48%;
    right: -16%;
    width: clamp(30rem, 52vw, 60rem);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(203, 106, 60, 0.28), rgba(203, 106, 60, 0.065) 38%, transparent 68%);
    opacity: 0.34;
}

.ns-subhero__motion-ring {
    top: -52%;
    right: -18%;
    width: clamp(30rem, 48vw, 55rem);
    aspect-ratio: 1;
    border: 1px solid rgba(240, 139, 87, 0.24);
    border-radius: 50%;
    box-shadow:
        0 0 0 clamp(2rem, 4vw, 4.5rem) rgba(203, 106, 60, 0.016),
        0 0 0 clamp(5rem, 8vw, 9rem) rgba(203, 106, 60, 0.01);
    opacity: 0.44;
}

.ns-subhero__motion-arc {
    right: clamp(2rem, 8vw, 9rem);
    bottom: -28%;
    width: clamp(16rem, 28vw, 30rem);
    aspect-ratio: 1;
    border: 1px solid transparent;
    border-right-color: rgba(240, 139, 87, 0.5);
    border-bottom-color: rgba(194, 211, 209, 0.16);
    border-radius: 50%;
    opacity: 0.56;
}

.ns-motion-word {
    display: inline-block;
    backface-visibility: hidden;
    white-space: nowrap;
}

.ns-motion-surface {
    isolation: isolate;
    overflow: hidden;
}

.ns-motion-surface > .ns-container {
    position: relative;
    z-index: 1;
}

.ns-chapter-atmosphere {
    position: absolute;
    z-index: 0;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.ns-chapter-atmosphere__wash {
    top: -38%;
    right: -18%;
    width: min(78vw, 70rem);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(203, 106, 60, 0.24), rgba(203, 106, 60, 0.055) 40%, transparent 69%);
    opacity: 0.18;
}

.ns-chapter-atmosphere__ring {
    bottom: -55%;
    left: -12%;
    width: clamp(26rem, 48vw, 56rem);
    aspect-ratio: 1;
    border: 1px solid transparent;
    border-top-color: rgba(194, 211, 209, 0.14);
    border-right-color: rgba(203, 106, 60, 0.34);
    border-radius: 50%;
    opacity: 0.24;
}

.ns-motion-card {
    isolation: isolate;
    overflow: hidden;
}

.ns-motion-card > :not(.ns-card-aura):not(.ns-icon-chip) {
    position: relative;
    z-index: 1;
}

.ns-motion-card > .ns-icon-chip {
    z-index: 2;
}

.ns-card-aura {
    position: absolute;
    z-index: 0;
    inset: -22%;
    display: block;
    border-radius: 50%;
    background: radial-gradient(circle at center, rgba(240, 139, 87, 0.25), rgba(203, 106, 60, 0.055) 36%, transparent 68%);
    opacity: 0.11;
    pointer-events: none;
    transform: translate3d(0, 0, 0);
}

.ns-motion-split .ns-split__media {
    isolation: isolate;
}

.ns-motion-split .ns-split__media img {
    position: relative;
    z-index: 1;
}

.ns-split__motion-sweep {
    position: absolute;
    z-index: 2;
    top: -20%;
    bottom: -20%;
    left: 34%;
    width: 34%;
    border-inline: 1px solid rgba(240, 139, 87, 0.13);
    background: linear-gradient(90deg, transparent, rgba(240, 139, 87, 0.16), rgba(225, 233, 231, 0.08), transparent);
    mix-blend-mode: screen;
    opacity: 0.06;
    pointer-events: none;
    transform: translate3d(-115%, 0, 0) rotate(-8deg);
}

.ns-job--motion {
    position: relative;
}

.ns-job__motion-line {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--ns-accent) 20%, var(--ns-accent-strong) 68%, transparent);
    pointer-events: none;
    transform: scaleX(0);
}

.ns-cta--motion {
    isolation: isolate;
}

.ns-cta > .ns-cta__motion {
    position: absolute;
    z-index: 0;
    inset: 0;
    overflow: hidden;
    border-radius: inherit;
    pointer-events: none;
}

.ns-cta__motion-wash {
    top: -65%;
    right: -14%;
    width: clamp(24rem, 42vw, 48rem);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(240, 139, 87, 0.32), rgba(203, 106, 60, 0.07) 42%, transparent 70%);
    opacity: 0.2;
}

.ns-cta__motion-orbit {
    right: -7%;
    bottom: -78%;
    width: clamp(19rem, 34vw, 38rem);
    aspect-ratio: 1;
    border: 1px solid transparent;
    border-top-color: rgba(240, 139, 87, 0.48);
    border-left-color: rgba(194, 211, 209, 0.16);
    border-radius: 50%;
    opacity: 0.3;
}

.ns-legal--motion {
    position: relative;
}

.ns-legal--motion > :not(.ns-legal__reading-track) {
    position: relative;
    z-index: 1;
}

.ns-legal__reading-track {
    position: absolute;
    z-index: 0;
    top: clamp(6rem, 10vw, 10rem);
    bottom: clamp(4rem, 8vw, 8rem);
    left: -2rem;
    display: block;
    width: 1px;
    overflow: hidden;
    background: rgba(225, 233, 231, 0.1);
    pointer-events: none;
}

.ns-legal__reading-progress {
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, var(--ns-accent), var(--ns-accent-strong));
    box-shadow: 0 0 10px rgba(203, 106, 60, 0.24);
    transform: scaleY(0);
    transform-origin: 50% 0;
}

/* Mobile motion layers stay decorative and never own readable content. */
.ns-mobile-motion-card {
    isolation: isolate;
}

.ns-mobile-card-glint,
.ns-mobile-service-media {
    position: absolute;
    display: none;
    pointer-events: none;
    transform: translate3d(0, 0, 0);
}

.ns-mobile-card-glint {
    z-index: 3;
    top: -42%;
    left: 29%;
    width: 42%;
    height: 184%;
    border-inline: 1px solid rgba(240, 139, 87, 0.12);
    background: linear-gradient(90deg, transparent, rgba(240, 139, 87, 0.13), rgba(225, 233, 231, 0.055), transparent);
    opacity: 0;
    transform: translate3d(-190%, 0, 0) rotate(-14deg);
}

.ns-mobile-service-media {
    z-index: 0;
    inset: 42% -5% -8%;
    border-radius: inherit;
    background-position: center;
    background-size: cover;
    opacity: 0.64;
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 30%, #000 100%);
    mask-image: linear-gradient(to bottom, transparent, #000 30%, #000 100%);
}

.ns-mobile-service-media--events {
    background-image:
        linear-gradient(to bottom, rgba(7, 11, 12, 0.04), rgba(7, 11, 12, 0.42)),
        url("../../../images/northpaxx/content/jobs-crew.webp");
}

.ns-mobile-service-media--logistics {
    background-image:
        linear-gradient(to bottom, rgba(7, 11, 12, 0.04), rgba(7, 11, 12, 0.44)),
        url("../../../images/northpaxx/content/logistics-team-v2.webp");
}

.ns-mobile-motion-card > :not(.ns-mobile-card-glint):not(.ns-mobile-service-media):not(.ns-icon-chip) {
    position: relative;
    z-index: 1;
}

.ns-mobile-motion-card > .ns-icon-chip {
    z-index: 2;
}

.ns-gsap-active .ns-mobile-motion-target {
    backface-visibility: hidden;
    will-change: transform;
}

@media (max-width: 900px) {
    .ns-page,
    .lmz-page-builder,
    .lmz-page-content,
    .ns-hero__copy,
    .ns-hero__media {
        max-width: 100%;
    }

    .ns-mobile-card-glint,
    .ns-mobile-service-media {
        display: block;
    }

    .ns-page--home .ns-service--visual-events,
    .ns-page--home .ns-service--visual-logistics {
        min-height: clamp(400px, 78vw, 520px);
        padding-bottom: clamp(10rem, 30vw, 13rem);
    }

    .ns-page--home .ns-service > .ns-mobile-service-media {
        position: absolute;
        z-index: 0;
    }

    .ns-motion-word {
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
        hyphens: auto;
    }

    .ns-footer__link span,
    .ns-contact-links a,
    .ns-job a {
        overflow-wrap: anywhere;
    }

    .ns-subpage-atmosphere__wash {
        top: -14%;
        right: -58%;
        width: 150vw;
    }

    .ns-subpage-atmosphere__halo {
        top: -10%;
        right: -82%;
        width: 145vw;
    }

    .ns-subpage-atmosphere__orbit {
        bottom: -16%;
        left: -72%;
        width: 130vw;
    }

    .ns-subpage-atmosphere__ribbon {
        left: 52%;
        width: 7rem;
    }

    .ns-subhero__motion-flare {
        top: -16%;
        right: -72%;
        width: 138vw;
    }

    .ns-subhero__motion-ring {
        top: -14%;
        right: -88%;
        width: 142vw;
    }

    .ns-subhero__motion-arc {
        right: -34%;
        bottom: -38%;
        width: 86vw;
    }

    .ns-chapter-atmosphere__wash {
        top: -18%;
        right: -70%;
        width: 150vw;
    }

    .ns-chapter-atmosphere__ring {
        bottom: -34%;
        left: -78%;
        width: 130vw;
    }

    .ns-split__motion-sweep {
        width: 44%;
    }

    .ns-legal__reading-track {
        display: none;
    }
}

@media (max-width: 640px) {
    .ns-process {
        padding-left: 0;
    }

    .ns-process__rail {
        position: absolute;
        z-index: 0;
        top: 1.65rem;
        bottom: 1.65rem;
        left: 1.36rem;
        display: block;
        width: 1px;
        overflow: hidden;
        background: rgba(225, 233, 231, 0.1);
        pointer-events: none;
    }

    .ns-process__rail > span {
        display: block;
        width: 100%;
        height: 100%;
        background: linear-gradient(to bottom, var(--ns-accent), var(--ns-accent-strong));
        box-shadow: 0 0 10px rgba(203, 106, 60, 0.22);
        transform: scaleY(0);
        transform-origin: 50% 0;
    }

    .ns-process__step,
    .ns-process__step:nth-child(n) {
        z-index: 1;
        padding: 1.65rem 0 1.8rem 4.15rem;
    }

    .ns-process__step:last-child {
        border-bottom: 0;
    }

    .ns-process__step > .ns-icon-chip {
        top: 1.65rem;
        right: auto;
        left: -0.07rem;
        transform: none;
    }

    .ns-process__step > span:not(.ns-icon-chip) {
        margin-bottom: 1.15rem;
        padding-left: 0;
    }

    .ns-page--home .ns-service--visual-events,
    .ns-page--home .ns-service--visual-logistics {
        min-height: clamp(410px, 118vw, 500px);
        padding-bottom: 10.5rem;
    }
}

.ns-reduced-motion .ns-underpage-motion-target,
.ns-reduced-motion .ns-motion-word,
.ns-reduced-motion .ns-legal__reading-progress,
.ns-reduced-motion .ns-job__motion-line {
    transform: none !important;
    will-change: auto !important;
}

.ns-reduced-motion .ns-motion-word,
.ns-reduced-motion .ns-legal p {
    opacity: 1 !important;
    visibility: visible !important;
}

.ns-reduced-motion .ns-job__motion-line,
.ns-reduced-motion .ns-legal__reading-track {
    display: none;
}

.ns-reduced-motion .ns-mobile-card-glint {
    display: none;
}

.ns-reduced-motion .ns-mobile-service-media {
    opacity: 0.68 !important;
    transform: none !important;
    will-change: auto !important;
}

.ns-reduced-motion .ns-home-hero-motion-target {
    transform: none !important;
    will-change: auto !important;
}

@media (prefers-reduced-motion: reduce) {
    .ns-underpage-motion-target,
    .ns-motion-word,
    .ns-legal__reading-progress,
    .ns-job__motion-line {
        transform: none !important;
        will-change: auto !important;
    }

    .ns-motion-word,
    .ns-legal p {
        opacity: 1 !important;
        visibility: visible !important;
    }

    .ns-job__motion-line,
    .ns-legal__reading-track {
        display: none;
    }

    .ns-mobile-card-glint {
        display: none;
    }

    .ns-mobile-service-media {
        opacity: 0.68 !important;
        transform: none !important;
        will-change: auto !important;
    }

    .ns-home-hero-motion-target {
        transform: none !important;
        will-change: auto !important;
    }
}
