/* Northshore Gen agency direction — the current homepage narrative. */
:root { --ns-ink: #0a0a09; --ns-panel: #151412; --ns-bone: #f1ede4; --ns-muted: #aaa397; --ns-gold: #bd8e49; --ns-line: rgba(241,237,228,.17); }
html { scroll-behavior: smooth; background: var(--ns-ink); }
body, a, button { cursor: auto !important; }
body { background: var(--ns-ink); color: var(--ns-bone); font-family: Manrope, Arial, sans-serif; }
#ambient-fireflies-canvas { display: none; }
.site-header { background: rgba(10,10,9,.72) !important; border-color: var(--ns-line) !important; backdrop-filter: blur(16px); }
.brand-logo, .nav-link { font-family: Manrope, Arial, sans-serif !important; letter-spacing: .1em; }
.nav-link { font-size: .65rem !important; }
.header-contact-btn { border-color: var(--ns-line) !important; color: var(--ns-bone) !important; background: transparent !important; }

.ns-hero { min-height: 190svh; position: relative; background: var(--ns-ink); }
.ns-hero__stage { --hero-copy-opacity: 1; --hero-copy-y: 0px; position: sticky; top: 0; height: 100svh; isolation: isolate; display: flex; align-items: flex-end; padding: clamp(8rem, 18vh, 12rem) clamp(1.5rem, 7vw, 8.5rem) clamp(4.5rem, 10vh, 7rem); overflow: hidden; }
.ns-hero__stage::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, rgba(5,5,4,.96) 0%, rgba(5,5,4,.79) 31%, rgba(5,5,4,.25) 60%, rgba(5,5,4,.12) 100%), linear-gradient(0deg, rgba(5,5,4,.78) 0%, transparent 48%), linear-gradient(180deg, rgba(5,5,4,.5) 0%, transparent 24%); }
.ns-hero__copy { position: relative; z-index: 2; max-width: 760px; opacity: var(--hero-copy-opacity); transform: translateY(var(--hero-copy-y)); will-change: opacity, transform; }
.ns-kicker { margin: 0 0 1.2rem; color: var(--ns-gold); font: 500 .68rem/1.2 "DM Mono", monospace; letter-spacing: .18em; }
.ns-hero h1, .ns-problem h2, .ns-transformation h2, .ns-section-heading h2, .ns-rivet h2 { margin: 0; color: var(--ns-bone); font: 600 clamp(3.5rem, 7.2vw, 7.5rem)/.91 "Playfair Display", Georgia, serif; letter-spacing: -.065em; }
.ns-hero h1 em, .ns-problem h2 em, .ns-transformation h2 em, .ns-section-heading h2 em { color: var(--ns-gold); font-weight: 500; }
.ns-lede { max-width: 33rem; margin: 2.1rem 0 2.35rem; color: #c3bdb2; font-size: clamp(1rem, 1.25vw, 1.16rem); line-height: 1.75; }
.ns-actions { display: flex; align-items: center; gap: 1.6rem; flex-wrap: wrap; }
.ns-button { appearance: none; border: 1px solid transparent; padding: 1rem 1.25rem; font: 600 .72rem/1 Manrope, sans-serif; letter-spacing: .08em; text-transform: uppercase; transition: transform .25s ease, background .25s ease; }
.ns-button:hover { transform: translateY(-3px); }
.ns-button--gold { background: var(--ns-gold); color: #11100e; }
.ns-button--outline { background: transparent; border-color: var(--ns-line); color: var(--ns-bone); }
.ns-text-link { color: var(--ns-bone); font-size: .78rem; text-decoration: none; }
.ns-arrow-icon { display:inline-block; width:.92rem; height:.92rem; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; vertical-align:-.12em; }
.ns-text-link .ns-arrow-icon, .ns-button .ns-arrow-icon { margin-left:.55rem; color:var(--ns-gold); }
.ns-button--gold .ns-arrow-icon { color:currentColor; }
.ns-hero__media { --expand-progress: 0; --hero-x-inset: 7vw; --hero-y-inset: 10vh; --hero-radius: 30px; --hero-scale: 1; position: absolute; inset: 0; z-index: -2; margin: 0; width: 100%; height: 100%; overflow: hidden; clip-path: inset(var(--hero-y-inset) var(--hero-x-inset) round var(--hero-radius)); transform: scale(var(--hero-scale)); transform-origin: center; will-change: clip-path, transform; }
.ns-hero__media img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 58% center; }
.ns-hero__media figcaption { position: absolute; right: 1rem; bottom: 1rem; color: rgba(241,237,228,.7); font: .6rem "DM Mono", monospace; letter-spacing: .12em; text-transform: uppercase; }
.ns-background-paths { position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none; mix-blend-mode: screen; opacity: .28; }
.ns-background-paths svg { width: 100%; height: 100%; }
.ns-background-paths path { fill: none; stroke: rgba(205,158,83,.7); stroke-width: 1.15; stroke-dasharray: 7 13; vector-effect: non-scaling-stroke; animation: ns-path-drift 16s linear infinite; }
.ns-background-paths path:nth-child(2) { opacity: .62; animation-duration: 21s; animation-direction: reverse; }
.ns-background-paths path:nth-child(3) { opacity: .4; animation-duration: 26s; }
.ns-background-paths path:nth-child(4) { opacity: .76; animation-duration: 19s; animation-direction: reverse; }
@keyframes ns-path-drift { to { stroke-dashoffset: -260; } }

.ns-problem, .ns-capabilities, .ns-process { padding: clamp(6rem, 14vw, 13rem) clamp(1.5rem, 12vw, 15rem); border-top: 1px solid var(--ns-line); background: var(--ns-ink); }
.ns-problem { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .55fr); column-gap: clamp(3rem, 8vw, 9rem); align-items: center; padding-top: clamp(5rem, 8vw, 8rem); padding-bottom: clamp(5rem, 8vw, 8rem); }
.ns-problem .ns-kicker { grid-column: 1 / -1; }.ns-problem > p:last-child { max-width: 28rem; margin: 1rem 0 .2rem; color: var(--ns-muted); line-height: 1.8; }
.ns-transformation { min-height: 100svh; position: relative; isolation: isolate; display: flex; align-items: flex-end; overflow: hidden; padding: clamp(7rem, 15vh, 11rem) clamp(1.5rem, 7vw, 8.5rem) clamp(4.5rem, 9vh, 7rem); background: #12110f; }
.ns-transformation::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, rgba(7,7,6,.94) 0%, rgba(7,7,6,.73) 38%, rgba(7,7,6,.18) 72%), linear-gradient(0deg, rgba(7,7,6,.82), transparent 55%); }
.ns-transformation h2 { font-size: clamp(3rem, 5.6vw, 6.4rem); }
.ns-transformation__copy { position: relative; z-index: 1; max-width: 760px; }
.ns-transformation__copy p:last-child { max-width: 35rem; margin-top: 2rem; color: #c5beb2; line-height: 1.8; }
.ns-transformation__media { position: absolute; inset: 0; z-index: -2; margin: 0; overflow: hidden; }
.ns-transformation__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ns-section-heading { max-width: 54rem; }.ns-capability-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 5rem; border-top: 1px solid var(--ns-line); }.ns-capability-grid article { min-height: 20rem; padding: 1.4rem 1.4rem 2.5rem; border-right: 1px solid var(--ns-line); display: flex; flex-direction: column; }.ns-capability-grid article:first-child { border-left: 1px solid var(--ns-line); }.ns-capability-grid span, .ns-process__steps span { color: var(--ns-gold); font: .68rem "DM Mono", monospace; }.ns-capability-grid h3, .ns-process h3 { margin: auto 0 1.1rem; font: 500 clamp(1.4rem, 2vw, 2rem)/1.12 "Playfair Display", serif; }.ns-capability-grid p, .ns-process p { margin: 0; color: var(--ns-muted); font-size: .86rem; line-height: 1.7; }

.ns-work-gallery { padding: clamp(6rem, 12vw, 11rem) clamp(1.5rem, 8vw, 9rem); border-top: 1px solid var(--ns-line); background: #10100f; }
.ns-work-gallery__intro { display: grid; grid-template-columns: minmax(300px, 1.1fr) minmax(240px, .6fr); gap: 3rem; align-items: end; margin: 0 auto clamp(4rem, 8vw, 7rem); max-width: 1440px; }
.ns-work-gallery__intro .ns-kicker { grid-column: 1 / -1; margin-bottom: 0; }
.ns-work-gallery h2 { margin: 0; font: 600 clamp(3.2rem, 6vw, 6.4rem)/.93 "Playfair Display", Georgia, serif; letter-spacing: -.065em; }
.ns-work-gallery h2 em { color: var(--ns-gold); font-weight: 500; }
.ns-work-gallery__intro > p:last-child { max-width: 26rem; margin: 0 0 .4rem; color: var(--ns-muted); line-height: 1.75; }
.ns-work-gallery__layout { display: grid; grid-template-columns: minmax(225px, .48fr) minmax(600px, 1.52fr); gap: clamp(2rem, 5vw, 6rem); max-width: 1440px; margin: 0 auto; }
.ns-work-rail { list-style: none; padding: 0 0 1rem 1.5rem; margin: 0; border-left: 1px solid rgba(189,142,73,.52); display: grid; align-content: start; }
.ns-work-rail li { min-height: clamp(4.4rem, 9.5vh, 7.5rem); display: flex; align-items: center; position: relative; }
.ns-work-rail li::before { content: ""; width: 7px; height: 7px; background: var(--ns-gold); border-radius: 50%; position: absolute; left: calc(-1.5rem - 4px); transition: transform .2s ease, box-shadow .2s ease; }
.ns-work-rail button { color: #a9a398; background: transparent; border: 0; padding: .45rem 0; text-align: left; font: 500 clamp(.72rem, .95vw, .88rem)/1.35 Manrope, sans-serif; transition: color .2s ease, transform .2s ease; }
.ns-work-rail button span { width: 2.5rem; display: inline-block; color: var(--ns-gold); font: .65rem "DM Mono", monospace; }
.ns-work-rail li:has(button[aria-selected="true"])::before { transform: scale(1.8); box-shadow: 0 0 0 4px rgba(189,142,73,.15); }
.ns-work-rail button[aria-selected="true"], .ns-work-rail button:hover { color: var(--ns-bone); transform: translateX(.35rem); }
.ns-work-detail { position: sticky; top: 6.6rem; align-self: start; display: grid; grid-template-columns: minmax(220px, .64fr) minmax(420px, 1.36fr); gap: clamp(2rem, 4vw, 4rem); min-height: 600px; }
.ns-work-detail__copy { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(.4rem, 2vw, 1.5rem) 0; }
.ns-work-detail__number { color: var(--ns-gold); margin: 0 0 3rem; font: .68rem "DM Mono", monospace; letter-spacing: .12em; }
.ns-work-detail__type { margin: 0 0 1rem; color: var(--ns-gold); font: .62rem "DM Mono", monospace; letter-spacing: .14em; }
.ns-work-detail h3 { margin: 0; font: 500 clamp(2.1rem, 3.6vw, 4rem)/.98 "Playfair Display", Georgia, serif; letter-spacing: -.05em; }
.ns-work-detail__copy > p:not(.ns-work-detail__number):not(.ns-work-detail__type):not(.ns-work-detail__note) { margin: 2rem 0 0; color: #c4bdb1; font-size: .92rem; line-height: 1.8; }
.ns-work-detail__note { margin: 1rem 0 2rem; color: var(--ns-muted); font: .62rem "DM Mono", monospace; letter-spacing: .09em; text-transform: uppercase; }
.ns-work-detail__cta { margin-top: auto; border: 1px solid var(--ns-gold); background: transparent; color: var(--ns-bone); padding: .9rem 1rem; font: 600 .66rem Manrope, sans-serif; letter-spacing: .08em; text-transform: uppercase; transition: background .2s ease, color .2s ease; }
.ns-work-detail__cta:hover { background: var(--ns-gold); color: #16130f; }.ns-work-detail__cta .ns-arrow-icon { margin-left:.6rem; }
.ns-work-visual { --work-accent: #83bb48; position: relative; min-height: clamp(425px, 46vw, 590px); overflow: hidden; border: 1px solid var(--work-accent); background: #151614; box-shadow: 0 26px 70px rgba(0,0,0,.38); transition: border-color .35s ease, background .35s ease; }
.ns-work-visual[data-work-variant="hobart"] { --work-accent: #88aaa0; background: #161916; }.ns-work-visual[data-work-variant="fieldops"] { --work-accent: #6c9ac2; background: #111519; }.ns-work-visual[data-work-variant="construction"] { --work-accent: #cb9d50; background: #181511; }.ns-work-visual[data-work-variant="insurance"] { --work-accent: #9699ca; background: #14141b; }.ns-work-visual[data-work-variant="scholarship"] { --work-accent: #bb8181; background: #1b1415; }
.ns-work-visual__topbar { height: 3.25rem; display: flex; align-items: center; gap: .6rem; padding: 0 1rem; border-bottom: 1px solid rgba(241,237,228,.12); color: var(--work-accent); font: .59rem "DM Mono", monospace; letter-spacing: .14em; }.ns-work-visual__topbar i { width: 6px; height: 6px; border-radius: 50%; background: var(--work-accent); opacity: .75; }.ns-work-visual__topbar i:first-of-type { margin-left: auto; opacity: .35; }
.ns-work-visual__canvas { min-height: calc(clamp(425px, 46vw, 590px) - 3.25rem); display: grid; grid-template-columns: 3.9rem 1fr; }.ns-work-visual__sidebar { border-right: 1px solid rgba(241,237,228,.11); padding-top: 1.2rem; display: grid; place-items: start center; align-content: start; gap: 1.25rem; }.ns-work-visual__sidebar b { display: block; width: 1rem; height: 1rem; border: 1px solid var(--work-accent); opacity: .78; }.ns-work-visual__sidebar b:nth-child(2) { background: var(--work-accent); }.ns-work-visual__main { padding: clamp(1rem, 2vw, 1.7rem); display: grid; grid-template-rows: auto 1fr auto; gap: 1.1rem; }.ns-work-visual__header { display: flex; align-items: center; color: #ede9e0; font-size: clamp(.82rem, 1.3vw, 1.05rem); }.ns-work-visual__header i { width: 5.3rem; height: 1.5rem; margin-left: auto; border: 1px solid rgba(241,237,228,.22); }
.ns-work-visual__hero-shape { min-height: 200px; position: relative; overflow: hidden; border: 1px solid rgba(241,237,228,.12); background-color: #111; }.ns-work-visual__hero-shape::before { content:""; position:absolute; inset:0; background-image: linear-gradient(rgba(241,237,228,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(241,237,228,.055) 1px, transparent 1px); background-size: 36px 36px; }.ns-work-visual__hero-shape span { position: absolute; border-radius: 50%; border: 2px solid var(--work-accent); width: 13px; height: 13px; z-index: 1; }.ns-work-visual__hero-shape span:nth-child(1) { top:28%; left:20%; }.ns-work-visual__hero-shape span:nth-child(2) { top:48%; left:55%; }.ns-work-visual__hero-shape span:nth-child(3) { top:23%; right:16%; }.ns-work-visual__hero-shape b { position: absolute; left: 18%; right: 13%; top: 60%; border-top: 1px solid var(--work-accent); transform: rotate(-13deg); opacity:.7; }.ns-work-visual__lower { display: grid; grid-template-columns: .9fr 1.25fr; gap: 1rem; }.ns-work-visual__lower > div { border: 1px solid rgba(241,237,228,.12); min-height: 94px; padding: .9rem; }.ns-work-visual__lower i { display:block; height: 7px; margin-bottom: .75rem; background: rgba(241,237,228,.17); }.ns-work-visual__lower i:nth-child(1) { width:74%; background: var(--work-accent); }.ns-work-visual__lower i:nth-child(2) { width:92%; }.ns-work-visual__lower i:nth-child(3) { width:53%; }.ns-work-visual__lower b { display:inline-block; width: 11%; height: 58px; margin-right: 8%; background: var(--work-accent); opacity: .7; vertical-align: bottom; }.ns-work-visual__lower b:nth-child(2) { height:35px; opacity:.4; }.ns-work-visual__lower b:nth-child(3) { height:71px; opacity:.85; }.ns-work-visual__lower b:nth-child(4) { height:47px; opacity:.25; }
.ns-work-visual[data-work-variant="howell"] .ns-work-visual__hero-shape { background-color:#1d241a; }.ns-work-visual[data-work-variant="hobart"] .ns-work-visual__hero-shape { background-color:#18231f; }.ns-work-visual[data-work-variant="construction"] .ns-work-visual__hero-shape { background-color:#241d14; }.ns-work-visual[data-work-variant="insurance"] .ns-work-visual__hero-shape { background-color:#1c1c29; }.ns-work-visual[data-work-variant="scholarship"] .ns-work-visual__hero-shape { background-color:#291b1d; }
.ns-work-visual__caption { position: absolute; right: .8rem; bottom: .65rem; margin: 0; color: rgba(241,237,228,.62); font: .53rem "DM Mono", monospace; letter-spacing:.09em; text-transform:uppercase; }
.ns-process { position: relative; padding: 0; background: #080807; overflow: clip; }
.ns-process__orbit > .ns-section-heading { --process-heading-exit-y: 0px; position: sticky; top: calc(var(--header-height, 72px) + clamp(1.2rem, 3vh, 2rem)); z-index: 4; width: min(1180px, calc(100% - 3rem)); max-width: 1180px; height: 0; margin: 0 auto; text-align: center; pointer-events: none; filter: drop-shadow(0 8px 18px rgba(8,8,7,.95)) drop-shadow(0 0 38px rgba(8,8,7,.9)); transform: translateY(var(--process-heading-exit-y)); will-change: transform; }
.ns-process__orbit > .ns-section-heading h2 { font-size: clamp(2.7rem, 4.35vw, 4.8rem); text-shadow: 0 2px 22px #080807, 0 0 48px #080807; }
.ns-process__orbit { position: relative; min-height: 275svh; width: 100%; max-width: none; margin: 0; perspective: 1400px; }
.ns-process__sphere-shell { --process-core-y: 55%; position: sticky; top: 0; z-index: 1; width: 100%; height: 100svh; overflow: hidden; filter: drop-shadow(0 30px 70px rgba(0,0,0,.5)); }
.ns-process__sphere-shell::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(circle at center, transparent 0 30%, rgba(8,8,7,.05) 52%, rgba(8,8,7,.72) 88%, #080807 100%); }
.ns-process__sphere-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.ns-process__core { position: absolute; left: 50%; top: var(--process-core-y); z-index: 2; width: min(31vw, 440px); min-height: 390px; transform: translate(-50%,-50%); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 3.2rem; text-align: center; border: 1px solid rgba(220,171,96,.72); border-radius: 50%; background: radial-gradient(circle at 42% 34%, rgba(189,142,73,.24), rgba(12,12,11,.96) 66%); box-shadow: inset 0 0 55px rgba(189,142,73,.12), 0 0 110px rgba(189,142,73,.22); will-change: top; }
.ns-process__core span { margin-bottom: 1.25rem; color: var(--ns-gold); font: 500 .58rem "DM Mono", monospace; letter-spacing: .15em; }
.ns-process__core strong { color: var(--ns-bone); font: 500 clamp(2.8rem, 4vw, 4.6rem)/.95 "Playfair Display", Georgia, serif; letter-spacing: -.04em; }
.ns-process__core > p { max-width: 20rem; margin: 1.25rem 0 0; color: #c8c0b3; font-size: .82rem; line-height: 1.65; }
.ns-process__core > div { max-width: 18rem; margin-top: 1.35rem; padding-top: 1rem; border-top: 1px solid rgba(210,161,87,.38); }
.ns-process__core small { display: block; margin-bottom: .4rem; color: var(--ns-gold); font: 500 .52rem "DM Mono", monospace; letter-spacing: .14em; }
.ns-process__core b { display: block; color: #eee7db; font-size: .72rem; line-height: 1.55; font-weight: 500; }
.ns-process__core em { position: absolute; left: 50%; bottom: -4.5rem; transform: translateX(-50%); width: max-content; color: rgba(241,237,228,.48); font: 500 .54rem "DM Mono", monospace; letter-spacing: .14em; text-transform: uppercase; }
.ns-process__depth-labels { position: absolute; inset: 0; z-index: 2; pointer-events: none; color: rgba(216,167,91,.56); font: 500 .56rem "DM Mono", monospace; letter-spacing: .18em; }
.ns-process__depth-labels span { position: absolute; left: 50%; top: 50%; opacity: .55; text-shadow: 0 0 18px #080807; }
.ns-process__depth-labels span:nth-child(1) { transform: translate(-50%,-37vw); }
.ns-process__depth-labels span:nth-child(2) { transform: translate(35vw,-50%); }
.ns-process__depth-labels span:nth-child(3) { transform: translate(-50%,35vw); }
.ns-process__depth-labels span:nth-child(4) { transform: translate(-42vw,-50%); }
.ns-process__orbit-list { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; list-style: none; }
.ns-process__step { position: static; width: auto; padding: 0; border: 0; opacity: 1; transform: none; }
.ns-process__step--diagnose { left: 0; top: 4%; }.ns-process__step--design { right: 0; top: 4%; }.ns-process__step--build { right: 0; bottom: 3%; }.ns-process__step--improve { left: 0; bottom: 3%; }
.ns-process__step > span { color: var(--ns-gold); font: 500 .65rem "DM Mono", monospace; letter-spacing: .12em; }
.ns-process__step h3 { margin: 1.15rem 0 .8rem; font: 500 clamp(1.75rem, 2.5vw, 2.7rem)/1 "Playfair Display", Georgia, serif; }
.ns-process__step > p { margin: 0; color: var(--ns-muted); font-size: .82rem; line-height: 1.65; }
.ns-process__step > div { margin-top: 1.1rem; padding-left: .8rem; border-left: 1px solid rgba(189,142,73,.5); }
.ns-process__step small { display: block; margin-bottom: .35rem; color: var(--ns-gold); font: 500 .52rem "DM Mono", monospace; letter-spacing: .13em; }
.ns-process__step div strong { display: block; color: #d4cec3; font-size: .75rem; line-height: 1.55; font-weight: 500; }

/* Short landscape viewports need extra clearance between the sticky heading
   and the first process card as the orbit comes into view. */
@media (min-width: 851px) and (min-aspect-ratio: 1 / 1) and (max-height: 920px) {
  .ns-process__sphere-shell { --process-core-y: 64%; }
}
.ns-rivet { display: grid; grid-template-columns: 1fr 280px; align-items: center; gap: 4rem; padding: clamp(4rem, 9vw, 8rem) clamp(1.5rem, 12vw, 15rem); background: linear-gradient(115deg,#1b1710,#0d0d0c 62%); border-top: 1px solid rgba(189,142,73,.35); }.ns-rivet > div:first-child { max-width: 45rem; }.ns-rivet h2 { font-size: clamp(2.8rem, 5vw, 5.4rem); }.ns-rivet p:not(.ns-kicker) { max-width: 35rem; color: #c3bdb2; line-height: 1.75; margin: 1.5rem 0 2rem; }.ns-rivet__mark { width: min(23vw,260px); aspect-ratio: 1; border: 1px solid var(--ns-gold); border-radius: 50%; display: grid; place-items: center; position: relative; color: var(--ns-gold); box-shadow: 0 0 70px rgba(189,142,73,.12); }.ns-rivet__mark span { font: 600 7rem "Playfair Display", serif; }.ns-rivet__mark i { position:absolute; width:7px; height:7px; background:var(--ns-gold); border-radius:50%; }.ns-rivet__mark i:nth-child(2){top:11%;left:48%}.ns-rivet__mark i:nth-child(3){right:11%;top:50%}.ns-rivet__mark i:nth-child(4){bottom:11%;left:28%}
/* Old sections removed from HTML — no display:none needed */
.site-footer { border-top: 1px solid var(--ns-line); }.footer-brand__desc { max-width: 29rem; }.footer-manifesto { font-family: Manrope, sans-serif; }

@media (max-width: 1040px) { .ns-work-gallery__layout { grid-template-columns: 200px 1fr; gap: 2rem; }.ns-work-detail { grid-template-columns: 1fr; }.ns-work-detail__copy { min-height: 330px; }.ns-work-detail__number { margin-bottom: 1.4rem; } }
@media (max-width: 850px) { .site-header__nav { display: none; }.ns-transformation, .ns-problem, .ns-rivet, .ns-work-gallery__intro { grid-template-columns: 1fr; }.ns-hero { min-height: 100svh; padding: 8rem 1.5rem 4rem; }.ns-hero::after { background: linear-gradient(90deg, rgba(5,5,4,.92) 0%, rgba(5,5,4,.55) 72%, rgba(5,5,4,.22) 100%), linear-gradient(0deg, rgba(5,5,4,.86) 0%, transparent 62%); }.ns-hero__media img { object-position: 62% center; }.ns-problem { gap: 2rem; }.ns-capability-grid, .ns-process__steps { grid-template-columns: 1fr; }.ns-capability-grid { margin-top: 3.5rem; }.ns-capability-grid article { min-height: 15rem; border-left: 1px solid var(--ns-line); border-bottom: 0; }.ns-process__steps { gap: 3rem; margin-top: 3.5rem; }.ns-process__steps h3 { margin-top: 1.5rem; }.ns-rivet__mark { width: 180px; }.header-contact-btn { padding: .75rem !important; }.header-contact-btn .btn-text { display: none; }.ns-work-gallery__intro { gap: 1.5rem; }.ns-work-gallery__layout { display:block; }.ns-work-rail { grid-auto-flow: column; grid-auto-columns: minmax(135px, 46vw); overflow-x: auto; margin: 0 -1.5rem 2.2rem; padding: 0 1.5rem .95rem; border-left: 0; border-bottom: 1px solid rgba(189,142,73,.52); gap: .8rem; scroll-snap-type: x mandatory; }.ns-work-rail li { min-height: 4.9rem; scroll-snap-align:start; }.ns-work-rail li::before { left: 0; bottom: -.72rem; top:auto; }.ns-work-rail button { white-space: normal; }.ns-work-rail button span { display:block; margin-bottom:.4rem; }.ns-work-detail { position:static; min-height:0; gap: 1.6rem; }.ns-work-detail__copy { min-height:0; padding:0; }.ns-work-detail__cta { margin-top: 2rem; }.ns-work-visual { min-height: 390px; }.ns-work-visual__canvas { min-height: calc(390px - 3.25rem); }.ns-work-visual__hero-shape { min-height: 155px; } }
@media (max-width: 850px) { .ns-process { padding: 7rem 1.5rem; }.ns-process__orbit > .ns-section-heading { position: relative; inset: auto; width: 100%; height: auto; margin: 0; text-align: left; pointer-events: auto; filter: none; }.ns-process__orbit { min-height: 0; margin-top: 0; perspective: none; }.ns-process__sphere-shell { display: none; }.ns-process__orbit-list { position: relative; inset: auto; display: grid; width: auto; height: auto; gap: 2.6rem; margin: 4rem 0 0; overflow: visible; clip: auto; white-space: normal; }.ns-process__step, .ns-process__step--diagnose, .ns-process__step--design, .ns-process__step--build, .ns-process__step--improve { position: relative; inset: auto; width: 100%; padding: 1rem 0 0 1.25rem; border-top: 0; border-left: 1px solid var(--ns-gold); opacity: 1; transform: none; filter: none; }.ns-process__step[data-active="true"], .ns-process__step:hover, .ns-process__step:focus-visible { transform: none; filter: none; }.ns-process__step::before { content: ""; position: absolute; left: -4px; top: 1.2rem; width: 7px; height: 7px; border-radius: 50%; background: var(--ns-gold); }.ns-process__step > div { margin-top: .9rem; } }
@media (max-width: 850px) { .ns-hero { min-height: 170svh; padding: 0; }.ns-hero__stage { height: 100svh; padding: 8rem 1.5rem 5rem; }.ns-hero__stage::after { background: linear-gradient(90deg, rgba(5,5,4,.92) 0%, rgba(5,5,4,.55) 72%, rgba(5,5,4,.22) 100%), linear-gradient(0deg, rgba(5,5,4,.86) 0%, transparent 62%); }.ns-hero__media img { object-position: 62% center; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }.ns-hero { min-height: 100svh; }.ns-hero__stage { position: relative; }.ns-hero__media { clip-path: none; transform: none; } }
