:root {
  --nx-ink: #310706;
  --nx-red: #ff160d;
  --nx-paper: #f8f3f1;
  --nx-pale-red: #ffd9d5;
}

body { background: var(--nx-paper); color: var(--nx-ink); }
/* Text on the paper sections must use the light-surface palette. */
.np-content, .np-story__facts, .np-story__body {
  --np-muted: rgba(49,7,6,.75);
  color: var(--nx-ink);
}
.np-story__fact span { color: rgba(49,7,6,.75); }
.np-apply-form .np-field input, .np-apply-form .np-field textarea { color: var(--nx-paper); border-color: rgba(248,243,241,.5); }
html[data-page="service"] #main, html[data-page="services"] #main { overflow: clip; }
.np-services-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.np-service-card { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(1.5rem,3vw,3rem); border: 1px solid rgba(49,7,6,.25); border-radius: 1rem; transition: background .2s,border-color .2s; }
.np-service-card:hover, .np-service-card:focus-visible { background: var(--nx-pale-red); border-color: var(--nx-red); }
.np-service-card h2 { max-width: 100%; overflow-wrap: anywhere; margin: 2rem 0 1rem; font: 800 clamp(2rem,3.5vw,4rem)/1 Arial,sans-serif; letter-spacing: -.06em; }
.np-service-card p { max-width: 32rem; margin: 0 0 2rem; font: 400 1.1rem/1.5 Arial,sans-serif; }
.np-service-card__link { display: flex; justify-content: space-between; gap: 2rem; width: 100%; margin-top: auto; color: var(--nx-ink); font: 700 .8rem/1.5 Arial,sans-serif; text-transform: uppercase; }
.np-service-card__link span { color: var(--nx-red); font-size: 1.4rem; }
@media (max-width: 700px) { .np-services-grid { grid-template-columns: 1fr; } }
[data-noxus-main] { overflow: clip; }
.np-shell { width: min(100%, 1440px); margin: 0 auto; }
.np-kicker, .np-section-number, .np-card-meta, .np-story__meta, .np-story__back, .np-project-group__label { font: 750 .7rem/1.2 Arial, sans-serif; letter-spacing: .045em; text-transform: uppercase; }

.np-hero { position: relative; min-height: min(52rem, 86vh); padding: clamp(10rem, 16vw, 14rem) clamp(1.5rem, 6vw, 7rem) clamp(4rem, 8vw, 8rem); background: var(--nx-ink); color: var(--nx-paper); display: grid; align-content: end; isolation: isolate; }
.np-hero::before { content: ''; position: absolute; inset: 0; opacity: .5; background: radial-gradient(ellipse 55% 85% at 108% 100%, rgba(255,22,13,.52), transparent 70%), repeating-radial-gradient(ellipse 75% 130% at -10% 50%, transparent 0 6.5rem, rgba(255,255,255,.07) 6.55rem 6.65rem, transparent 6.7rem 11rem); pointer-events: none; }
.np-hero > * { position: relative; z-index: 1; }
.np-hero__eyebrow { margin: 0 0 clamp(1.4rem, 4vw, 4rem); font: 750 .68rem/1 Arial, sans-serif; letter-spacing: .06em; }
.np-hero h1 { max-width: 13ch; margin: 0; font: 800 clamp(4.2rem, 10.5vw, 11rem)/.76 Arial, sans-serif; letter-spacing: -.105em; }
.np-hero h1 em, .np-callout h2 em, .np-group-title em, .np-about-hero h1 em, .np-story h1 em, .np-product h2 em, .np-careers-cta h2 em { color: var(--nx-red); font-family: Georgia, 'Times New Roman', serif; font-weight: 500; letter-spacing: -.075em; }
.np-hero__intro { max-width: 29rem; margin: clamp(2.5rem, 6vw, 5.5rem) 0 0 auto; font: 500 clamp(1rem, 1.45vw, 1.35rem)/1.35 Arial, sans-serif; }
.np-hero__grid-text { position: absolute; right: -1.5rem; bottom: -.1em; z-index: 0; opacity: .08; font: 800 clamp(3.5rem, 11vw, 12rem)/.75 Arial, sans-serif; letter-spacing: -.12em; white-space: nowrap; }

.np-content { padding: clamp(4rem, 8vw, 8rem) clamp(1.5rem, 6vw, 7rem); }
.np-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3.5rem); }
.np-article-card { padding-bottom: 1.5rem; border-bottom: 1px solid rgba(49,7,6,.25); }
.np-card-image { display: block; aspect-ratio: .92; overflow: hidden; background: var(--nx-pale-red); }
.np-card-image img, .np-project-row__image img, .np-product__image img, .np-story__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.np-article-card:hover img, .np-project-row:hover img, .np-product:hover img { transform: scale(1.04); }
.np-card-meta { display: flex; justify-content: space-between; gap: 1rem; margin: 1rem 0 1.25rem; }
.np-article-card h2 { margin: 0; font: 750 clamp(1.65rem, 2.2vw, 2.8rem)/.92 Arial, sans-serif; letter-spacing: -.075em; }
.np-article-card p { margin: 1.2rem 0; max-width: 28rem; font: 400 1rem/1.42 Arial, sans-serif; }
.np-article-card__byline { display: flex; justify-content: space-between; gap: 1rem; color: rgba(49,7,6,.7); font: 700 .64rem/1.2 Arial, sans-serif; letter-spacing: .04em; }

.np-project-groups { padding: clamp(4rem, 8vw, 8rem) clamp(1.5rem, 6vw, 7rem) 0; }
.np-project-group { padding: 0 0 clamp(4.5rem, 10vw, 10rem); }
.np-project-group + .np-project-group { padding-top: clamp(4rem, 8vw, 8rem); border-top: 1px solid rgba(49,7,6,.25); }
.np-project-group__heading { display: grid; grid-template-columns: minmax(10rem, .55fr) 1fr; gap: 2rem; margin-bottom: clamp(2.5rem, 6vw, 6rem); }
.np-project-group__label { margin: .7rem 0 0; }
.np-group-title { margin: 0; font: 800 clamp(3.5rem, 8vw, 8.5rem)/.78 Arial, sans-serif; letter-spacing: -.1em; }
.np-project-list { border-top: 1px solid var(--nx-ink); }
.np-project-row { display: grid; grid-template-columns: minmax(13rem, .85fr) 1.6fr .75fr auto; align-items: center; gap: clamp(1rem, 3vw, 3rem); padding: clamp(1.2rem, 2vw, 2rem) 0; border-bottom: 1px solid rgba(49,7,6,.25); }
.np-project-row__image { aspect-ratio: 1.45; overflow: hidden; background: var(--nx-pale-red); }
.np-project-row__title { display: flex; flex-direction: column; gap: .6rem; }
.np-project-row__title span, .np-project-row__info { font: 700 .68rem/1.25 Arial, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.np-project-row h3 { margin: 0; font: 800 clamp(1.9rem, 4vw, 4.5rem)/.82 Arial, sans-serif; letter-spacing: -.085em; }
.np-project-row__info { display: grid; gap: .55rem; color: rgba(49,7,6,.7); }
.np-project-row > i { font: 500 clamp(2rem, 3vw, 3.2rem)/1 Arial, sans-serif; font-style: normal; }
.np-project-hardware-slot { min-height: clamp(2.5rem, 6vw, 5rem); border-top: 1px solid var(--nx-ink); }

.np-products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.np-product { padding: 1rem; background: var(--nx-ink); color: var(--nx-paper); }
.np-product__image { position: relative; overflow: hidden; aspect-ratio: 1.12; background: #4b1714; }
.np-product__badge { position: absolute; top: 1rem; left: 1rem; padding: .55rem .7rem; color: var(--nx-ink); background: var(--nx-paper); font: 800 .61rem/1 Arial, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.np-product__label { margin: 1.25rem 0 .7rem; color: var(--nx-red); font: 700 .65rem/1 Arial, sans-serif; letter-spacing: .06em; }
.np-product h2 { margin: 0; font: 800 clamp(2rem, 3vw, 3.9rem)/.8 Arial, sans-serif; letter-spacing: -.085em; }
.np-product__copy { min-height: 4.2rem; margin: 1.2rem 0; font: 400 .95rem/1.42 Arial, sans-serif; }
.np-link, .np-button { display: inline-flex; align-items: center; gap: 1.2rem; padding: 1rem 1.15rem; background: var(--nx-red); color: var(--nx-paper); font: 800 .66rem/1 Arial, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.np-link i, .np-button span { font: 500 1.35rem/0 Arial, sans-serif; font-style: normal; }

.np-news-list { border-top: 1px solid var(--nx-ink); }
.np-news-list__item { display: grid; grid-template-columns: 10rem 1fr auto; gap: clamp(1.5rem, 4vw, 6rem); align-items: start; padding: clamp(2rem, 4vw, 4.5rem) 0; border-bottom: 1px solid rgba(49,7,6,.25); }
.np-news-list__date, .np-news-list__source { font: 700 .7rem/1.25 Arial, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.np-news-list__source { margin: 0 0 1rem; color: var(--nx-red); }
.np-news-list h2 { max-width: 17ch; margin: 0; font: 800 clamp(2.25rem, 5vw, 5.8rem)/.84 Arial, sans-serif; letter-spacing: -.09em; }
.np-news-list__summary { display: block; max-width: 45rem; margin-top: 1.3rem; font: 400 1.05rem/1.45 Arial, sans-serif; }
.np-round-arrow { display: grid; width: 3rem; aspect-ratio: 1; place-items: center; border: 1px solid var(--nx-ink); border-radius: 50%; font-size: 1.3rem; }

.np-jobs__intro { display: grid; grid-template-columns: 1fr minmax(17rem, .55fr); gap: 3rem; padding-bottom: 2.5rem; }
.np-jobs__intro h2 { margin: 0; font: 800 clamp(3rem, 6vw, 6.5rem)/.8 Arial, sans-serif; letter-spacing: -.1em; }.np-jobs__intro h2 span { color: var(--nx-red); }
.np-jobs__intro p { max-width: 26rem; margin: 0; font: 400 1rem/1.42 Arial, sans-serif; }
.np-jobs { border-top: 1px solid var(--nx-ink); }.np-job { display: grid; grid-template-columns: 4rem 1.35fr .6fr .55fr .4fr auto; gap: 1rem; align-items: center; padding: 2rem 0; border-bottom: 1px solid rgba(49,7,6,.25); }
.np-job > * { margin: 0; }.np-job__id, .np-job__meta { font: 700 .66rem/1.25 Arial, sans-serif; letter-spacing: .04em; text-transform: uppercase; }.np-job h2 { font: 800 clamp(1.8rem, 3vw, 3.7rem)/.85 Arial, sans-serif; letter-spacing: -.075em; }.np-job i { font: normal 1.7rem/1 Arial, sans-serif; }
.np-careers-cta { padding: clamp(4rem, 8vw, 8rem) clamp(1.5rem, 6vw, 7rem); background: var(--nx-red); }.np-careers-cta__inner { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }.np-careers-cta h2 { margin: 1rem 0 0; font: 800 clamp(3rem, 7vw, 8rem)/.77 Arial, sans-serif; letter-spacing: -.1em; }.np-careers-cta h2 em { color: var(--nx-paper); }

.np-about-hero { min-height: min(51rem, 86vh); padding: clamp(10rem, 16vw, 14rem) clamp(1.5rem, 6vw, 7rem) clamp(4rem, 8vw, 7rem); display: grid; grid-template-columns: 1.12fr .88fr; align-items: end; gap: 3rem; background: var(--nx-ink); color: var(--nx-paper); }.np-about-hero h1 { max-width: 9ch; margin: 1.5rem 0 0; font: 800 clamp(4.2rem, 10vw, 10.5rem)/.76 Arial, sans-serif; letter-spacing: -.11em; }.np-about-hero__intro { max-width: 28rem; margin: 0 0 1rem; font: 400 clamp(1.1rem, 1.7vw, 1.45rem)/1.35 Arial, sans-serif; }.np-about-hero__status { align-self: end; justify-self: end; display: flex; align-items: center; gap: .65rem; font: 700 .7rem/1 Arial, sans-serif; letter-spacing: .05em; }.np-about-hero__status::before { width: .6rem; aspect-ratio: 1; content: ''; border-radius: 50%; background: var(--nx-red); box-shadow: 0 0 1rem var(--nx-red); }
.np-about-story { display: grid; grid-template-columns: minmax(8rem, .45fr) 1.25fr .7fr; gap: clamp(1.5rem, 5vw, 7rem); padding: clamp(5rem, 11vw, 11rem) clamp(1.5rem, 6vw, 7rem); }.np-about-story h2 { margin: 0; font: 800 clamp(2.8rem, 6vw, 7rem)/.82 Arial, sans-serif; letter-spacing: -.1em; }.np-about-story__copy { max-width: 30rem; font: 400 1.05rem/1.48 Arial, sans-serif; }.np-about-story__copy p { margin: 0 0 1.4rem; }.np-about-story__signal { min-height: 18rem; background: url('https://noxusai.online/media/cache/webp/noxus-city.webp') center/cover; }
.np-values { padding: 0 clamp(1.5rem, 6vw, 7rem) clamp(6rem, 12vw, 12rem); }.np-values > h2 { max-width: 14ch; margin: 1.5rem 0 clamp(3rem, 7vw, 7rem); font: 800 clamp(3rem, 7vw, 8rem)/.79 Arial, sans-serif; letter-spacing: -.1em; }.np-value { display: grid; grid-template-columns: 5rem 1fr minmax(16rem, .55fr); gap: 1.5rem; padding: 2rem 0; border-top: 1px solid rgba(49,7,6,.25); }.np-value span { font: 700 .7rem/1 Arial, sans-serif; }.np-value h3 { margin: 0; font: 800 clamp(2rem, 4vw, 4.6rem)/.8 Arial, sans-serif; letter-spacing: -.09em; }.np-value h3 em { color: var(--nx-red); font: 500 1em Georgia, serif; }.np-value p { max-width: 25rem; margin: 0; font: 400 1rem/1.42 Arial, sans-serif; }.np-stats { padding: clamp(4rem, 8vw, 8rem) clamp(1.5rem, 6vw, 7rem); background: var(--nx-red); }.np-stats__inner { display: grid; grid-template-columns: repeat(3,1fr); gap: 2rem; }.np-stats strong { display: block; font: 800 clamp(3.5rem, 7vw, 8rem)/.8 Arial, sans-serif; letter-spacing: -.11em; }.np-stats span { font: 700 .7rem/1.2 Arial,sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.np-callout { padding: clamp(5rem, 12vw, 12rem) clamp(1.5rem, 6vw, 7rem); background: var(--nx-ink); color: var(--nx-paper); }.np-callout h2 { max-width: 12ch; margin: 1.2rem 0 3rem; font: 800 clamp(4rem, 9vw, 10rem)/.76 Arial, sans-serif; letter-spacing: -.1em; }

.np-story { padding: clamp(11rem, 18vw, 16rem) clamp(1.5rem, 10vw, 14rem) clamp(3.5rem, 8vw, 7rem); background: var(--nx-ink); color: var(--nx-paper); }.np-story__back { display: inline-block; margin-bottom: clamp(3rem, 8vw, 7rem); }.np-story .np-kicker { color: var(--nx-red); }.np-story h1 { max-width: 13ch; margin: 1.2rem 0; font: 800 clamp(4rem, 9vw, 10rem)/.76 Arial, sans-serif; letter-spacing: -.1em; }.np-story__summary { max-width: 39rem; margin: 2rem 0; font: 400 clamp(1.15rem, 2vw, 1.65rem)/1.35 Arial, sans-serif; }.np-story__meta { margin: 2rem 0 0; }.np-story__image { padding: clamp(1.5rem, 6vw, 7rem); background: var(--nx-paper); }.np-story__image img { display: block; max-height: 48rem; aspect-ratio: 1.75; }.np-story__facts { display: grid; grid-template-columns: repeat(4,1fr); padding: clamp(3rem, 7vw, 7rem) clamp(1.5rem, 6vw, 7rem); gap: 1.5rem; }.np-story__fact span { display: block; margin-bottom: .7rem; font: 700 .65rem/1 Arial,sans-serif; letter-spacing: .05em; }.np-story__fact strong { font: 700 clamp(1.15rem, 2vw, 2.2rem)/1 Arial,sans-serif; letter-spacing: -.05em; }.np-story__body { display: grid; grid-template-columns: minmax(8rem, .45fr) 1fr; gap: 3rem; padding: clamp(3rem, 7vw, 7rem) clamp(1.5rem, 10vw, 14rem); }.np-story__aside { font: 700 .68rem/1.2 Arial,sans-serif; letter-spacing: .05em; }.np-story__copy { max-width: 45rem; font: 400 1.12rem/1.52 Arial,sans-serif; }.np-story__copy p { margin: 0 0 1.5rem; }.np-story__copy h3 { margin: 3rem 0 1rem; font: 800 clamp(2rem, 3vw, 3.5rem)/.85 Arial,sans-serif; letter-spacing: -.08em; }.np-apply-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }.np-field { display: grid; gap: .6rem; }.np-field--wide { grid-column: 1/-1; }.np-field label { font: 700 .66rem/1 Arial,sans-serif; letter-spacing: .05em; }.np-field input, .np-field textarea { width: 100%; border: 1px solid rgba(49,7,6,.4); border-radius: 0; padding: .9rem; background: transparent; color: var(--nx-ink); font: 400 1rem Arial,sans-serif; }.np-field textarea { min-height: 9rem; resize: vertical; }.np-consent { display:flex !important; align-items:center; gap:.7rem; font:400 .8rem/1.3 Arial,sans-serif !important; letter-spacing:0 !important; }.np-consent input { width:auto; }.np-form-message { grid-column:1/-1; font:700 .85rem/1.35 Arial,sans-serif; }.np-form-message.is-success { color:#107346; }.np-form-message.is-error { color:#bd1611; }

@media (max-width: 850px) { .np-card-grid, .np-products { grid-template-columns: 1fr; }.np-project-group__heading, .np-about-story, .np-news-list__item, .np-jobs__intro, .np-value { grid-template-columns: 1fr; }.np-project-row { grid-template-columns: 8rem 1fr auto; }.np-project-row__info { display: none; }.np-job { grid-template-columns: 2.5rem 1fr auto; }.np-job__meta { display: none; }.np-careers-cta__inner { display: grid; align-items: start; }.np-about-hero { grid-template-columns: 1fr; }.np-about-hero__status { justify-self: start; }.np-about-story__signal { min-height: 14rem; }.np-stats__inner, .np-story__facts { grid-template-columns: 1fr; }.np-story__body { grid-template-columns: 1fr; }.np-apply-form { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .np-hero h1, .np-about-hero h1, .np-story h1 { font-size: clamp(3.5rem, 17vw, 5rem); }.np-project-row { grid-template-columns: 6rem 1fr auto; gap: .75rem; }.np-project-row h3 { font-size: 2rem; } }

/* Page motion uses the same reveal language as the homepage while keeping the
   individual page content accessible when motion is reduced. */
.np-hero__eyebrow, .np-hero h1, .np-hero__intro, .np-hero__grid-text,
.np-about-hero > *, .np-story > * { transition: opacity .7s ease, transform .95s cubic-bezier(.22,1,.36,1); }
.np-hero:not(.is-ready) .np-hero__eyebrow, .np-hero:not(.is-ready) h1,
.np-hero:not(.is-ready) .np-hero__intro, .np-about-hero:not(.is-ready) > *,
.np-story:not(.is-ready) > * { opacity: 0; transform: translate3d(0, 2rem, 0); }
.np-hero:not(.is-ready) .np-hero__grid-text { opacity: 0; transform: translate3d(3rem, 0, 0); }
.np-hero.is-ready h1, .np-about-hero.is-ready h1, .np-story.is-ready h1 { transition-delay: .08s; }
.np-hero.is-ready .np-hero__intro, .np-about-hero.is-ready > div:last-child, .np-story.is-ready .np-story__summary { transition-delay: .18s; }
.np-hero.is-ready .np-hero__grid-text { transition-delay: .25s; }

.np-reveal { opacity: 0; transform: translate3d(0, 2.4rem, 0); transition: opacity .65s ease var(--np-reveal-delay, 0ms), transform .85s cubic-bezier(.22,1,.36,1) var(--np-reveal-delay, 0ms); }
.np-reveal.is-visible { opacity: 1; transform: none; }
.np-project-row:nth-child(odd) { transform: translate3d(-1.4rem, 1.6rem, 0); }
.np-project-row:nth-child(even) { transform: translate3d(1.4rem, 1.6rem, 0); }
.np-project-row.is-visible { transform: none; }
.np-project-group__note { max-width: 42rem; margin: -3rem 0 3rem auto; color: rgba(49,7,6,.68); font: 400 1rem/1.42 Arial, sans-serif; }
.np-project-row__image.is-material { position: relative; display: grid; place-items: end start; min-height: 100%; padding: 1rem; color: var(--nx-paper); background: linear-gradient(135deg, #1a0303 0%, #50100c 48%, #ff160d 49%, #310706 50%); }
.np-project-row__image.is-material::after { content: ''; position: absolute; inset: .65rem; border: 1px solid rgba(248,243,241,.35); pointer-events: none; }
.np-project-row__material { position: relative; z-index: 1; display: grid; gap: .4rem; font: 700 .64rem/1.15 Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.np-project-row__material small { font: 400 .66rem/1.2 Arial, sans-serif; letter-spacing: .04em; }
.np-story__links { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }
.np-story__links a { display: inline-flex; align-items: center; gap: .7rem; padding: .8rem 1rem; border: 1px solid rgba(248,243,241,.55); font: 700 .65rem/1 Arial, sans-serif; letter-spacing: .05em; text-transform: uppercase; transition: background .25s ease, color .25s ease; }
.np-story__links a:hover { color: var(--nx-ink); background: var(--nx-paper); }
.np-story__links i { font: normal 1.25rem/0 Arial, sans-serif; }
.np-story__material { display: grid; min-height: clamp(17rem, 32vw, 29rem); place-content: center start; gap: 1rem; padding: clamp(2rem, 6vw, 7rem); color: var(--nx-paper); background: linear-gradient(125deg, #1a0303, #5b110c 48%, #ff160d 49%, #310706 50%); }
.np-story__material span { font: 700 .68rem/1 Arial,sans-serif; letter-spacing: .06em; }
.np-story__material strong { font: 800 clamp(2.5rem, 5.2vw, 6rem)/.82 Arial,sans-serif; letter-spacing: -.08em; }

@media (max-width: 850px) { .np-project-group__note { margin: 0 0 2rem; } }
@media (prefers-reduced-motion: reduce) {
  .np-hero__eyebrow, .np-hero h1, .np-hero__intro, .np-hero__grid-text,
  .np-about-hero > *, .np-story > *, .np-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/*
   Layout guardrails for the content pages.  The original starter stylesheet
   used `.np-content.np-shell` as one element, which painted a 1440px-wide
   dark panel instead of a full-width section.  Page markup now uses a full
   section with a contained shell, so these rules deliberately reset the
   inherited panel styles before applying the page-specific layout.
*/
html, body, [data-noxus-main] { background: var(--nx-paper); }
.np-content {
  width: 100%;
  margin: 0;
  padding: clamp(4rem, 8vw, 8rem) clamp(1.5rem, 6vw, 7rem);
  background: var(--nx-paper);
  color: var(--nx-ink);
}
.np-content > .np-shell { width: min(100%, 1440px); margin-inline: auto; }
.np-content .np-jobs { border-color: rgba(49,7,6,.25); }
.np-content .np-job { border-color: rgba(49,7,6,.25); color: var(--nx-ink); }
.np-content .np-jobs__intro p { color: rgba(49,7,6,.72); }
.np-content .np-job__meta { color: rgba(49,7,6,.68); }

/* Long case-study names stay inside their own grid column at every desktop
   width.  This also keeps project visuals, service notes and the arrow from
   overlapping one another when an entry takes three or four lines. */
.np-project-row {
  grid-template-columns: minmax(12rem, 20rem) minmax(0, 1.25fr) minmax(10rem, .65fr) auto;
  align-items: start;
  gap: clamp(1rem, 2vw, 2.5rem);
}
.np-project-row > *, .np-project-row__title, .np-project-row__info { min-width: 0; }
.np-project-row__image { align-self: center; }
.np-project-row__title { align-self: center; }
.np-project-row h3 {
  font-size: clamp(1.8rem, 2.8vw, 3.3rem);
  line-height: .84;
  overflow-wrap: normal;
  word-break: normal;
  text-wrap: balance;
}
.np-project-row__info { align-self: center; }

/* A story heading remains editorial in scale without becoming a clipped wall
   of text on wide or short screens. */
.np-story { box-sizing: border-box; overflow: hidden; }
.np-story h1 {
  max-width: 12ch;
  font-size: clamp(3.5rem, 7.5vw, 9.5rem);
  line-height: .8;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

@media (min-width: 851px) and (max-width: 1180px) {
  .np-project-row { grid-template-columns: minmax(9rem, 12rem) minmax(0, 1fr) auto; }
  .np-project-row__info { grid-column: 2; grid-row: 2; margin-top: .45rem; }
  .np-project-row > i { grid-column: 3; grid-row: 1 / 3; align-self: center; }
}

@media (max-width: 850px) {
  .np-content { padding-inline: 1.25rem; }
  .np-project-row > i { align-self: center; }
}

/* Keep every subpage hero readable.  The descriptive copy used to be pushed
   to the far edge on wide displays, while the oversized background wordmark
   was clipped at the fold. */
.np-hero__intro {
  margin-left: 0;
  margin-right: 0;
  transform: none;
}
.np-hero__grid-text { display: none; }

/* NOXUS Moto Dash Cam V1 — a focused hardware case-study treatment. */
.np-moto-story { background: var(--nx-paper); color: var(--nx-ink); }
.np-moto-story__hero {
  min-height: min(58rem, 92vh);
  background: radial-gradient(circle at 82% 76%, rgba(255,22,13,.54), transparent 28%), linear-gradient(122deg, #160202 0%, #310706 58%, #63130d 100%);
}
.np-moto-story__hero > * { position: relative; z-index: 1; }
.np-moto-story__hero h1 { max-width: 9ch; }
.np-moto-story__hero-specs { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: clamp(2rem, 5vw, 4rem); }
.np-moto-story__hero-specs span { border: 1px solid rgba(248,243,241,.34); padding: .65rem .8rem; font: 700 .64rem/1 Arial, sans-serif; letter-spacing: .055em; text-transform: uppercase; }

.np-moto-story__intro { display: grid; grid-template-columns: minmax(14rem, .58fr) 1fr; gap: clamp(2rem, 8vw, 10rem); padding: clamp(5rem, 12vw, 12rem) clamp(1.5rem, 6vw, 7rem); }
.np-moto-story__intro h2, .np-moto-story__architecture h2, .np-moto-story__kit h2, .np-moto-story__closing h2 { margin: 1rem 0 0; font: 800 clamp(3.2rem, 6.7vw, 7.8rem)/.78 Arial, sans-serif; letter-spacing: -.1em; }
.np-moto-story h2 em, .np-moto-story h3 em { color: var(--nx-red); font-family: Georgia, "Times New Roman", serif; font-weight: 500; letter-spacing: -.075em; }
.np-moto-story__intro > p { max-width: 38rem; margin: .65rem 0 0; font: 400 clamp(1.2rem, 2vw, 1.7rem)/1.38 Arial, sans-serif; }

.np-moto-story__feature-band { color: var(--nx-paper); background: var(--nx-ink); }
.np-moto-story__features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.np-moto-story__feature { min-width: 0; min-height: 20rem; padding: clamp(1.5rem, 2.2vw, 2rem); border-right: 1px solid rgba(248,243,241,.22); }
.np-moto-story__feature:last-child { border-right: 0; }
.np-moto-story__feature > span { color: var(--nx-red); font: 700 .68rem/1 Arial, sans-serif; letter-spacing: .05em; }
.np-moto-story__feature h3 { max-width: 100%; margin: clamp(3rem, 7vw, 7rem) 0 1.25rem; font: 800 clamp(1.8rem, 2.6vw, 3rem)/.85 Arial, sans-serif; letter-spacing: -.09em; overflow-wrap: normal; word-break: normal; }
.np-moto-story__feature p { max-width: 18rem; margin: 0; color: rgba(248,243,241,.75); font: 400 1rem/1.42 Arial, sans-serif; }

.np-moto-story__exploded { width: min(100% - 3rem, 1800px); margin: clamp(3rem, 9vw, 9rem) auto; overflow: hidden; background: #e5e2e0; }
.np-moto-story__exploded img { display: block; width: 100%; height: auto; }
.np-moto-story__exploded figcaption { display: grid; grid-template-columns: minmax(12rem, .55fr) 1fr; gap: 2rem; padding: clamp(1.4rem, 3vw, 3rem); border-top: 1px solid rgba(49,7,6,.2); }
.np-moto-story__exploded figcaption span, .np-moto-story__kit figcaption { font: 700 .65rem/1.2 Arial, sans-serif; letter-spacing: .05em; text-transform: uppercase; }
.np-moto-story__exploded figcaption p { max-width: 40rem; margin: 0; font: 400 1rem/1.42 Arial, sans-serif; }

.np-moto-story__architecture { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2.5rem, 9vw, 11rem); padding: clamp(4rem, 10vw, 10rem) clamp(1.5rem, 6vw, 7rem); }
.np-moto-story__architecture ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(49,7,6,.3); }
.np-moto-story__architecture li { display: grid; grid-template-columns: 4rem 1fr; gap: 1rem; padding: 1.45rem 0; border-bottom: 1px solid rgba(49,7,6,.22); }
.np-moto-story__architecture li > span { color: var(--nx-red); font: 700 .7rem/1.25 Arial, sans-serif; }
.np-moto-story__architecture strong { display: block; font: 800 clamp(1.5rem, 2.5vw, 2.8rem)/.9 Arial, sans-serif; letter-spacing: -.075em; }
.np-moto-story__architecture li p { max-width: 36rem; margin: .7rem 0 0; color: rgba(49,7,6,.7); font: 400 1rem/1.42 Arial, sans-serif; }

.np-moto-story__kit { color: var(--nx-paper); background: var(--nx-ink); }
.np-moto-story__kit-grid { display: grid; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; padding: clamp(4rem, 9vw, 9rem) clamp(1.5rem, 6vw, 7rem); }
.np-moto-story__kit-grid > * { min-width: 0; }
.np-moto-story__kit h2 { max-width: 8ch; color: var(--nx-paper); font-size: clamp(2.6rem, 4vw, 4.5rem); line-height: .82; overflow-wrap: normal; word-break: normal; }
.np-moto-story__kit p:not(.np-kicker) { max-width: 31rem; margin: 2rem 0; color: rgba(248,243,241,.75); font: 400 1.05rem/1.45 Arial, sans-serif; }
.np-moto-story__kit ul { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.np-moto-story__kit li { padding-top: .75rem; border-top: 1px solid rgba(248,243,241,.26); font: 700 .75rem/1.25 Arial, sans-serif; letter-spacing: .035em; text-transform: uppercase; }
.np-moto-story__kit figure { margin: 0; }
.np-moto-story__kit img { display: block; width: 100%; background: #eee9e3; }
.np-moto-story__kit figcaption { margin-top: 1rem; color: rgba(248,243,241,.72); }

.np-moto-story__closing { color: var(--nx-ink); background: var(--nx-red); }
.np-moto-story__closing > div { padding: clamp(5rem, 11vw, 11rem) clamp(1.5rem, 6vw, 7rem); }
.np-moto-story__closing h2 { max-width: 10ch; margin-bottom: 2.5rem; }
.np-moto-story__closing h2 em { color: var(--nx-paper); }
.np-moto-story__closing .np-button { color: var(--nx-paper); background: var(--nx-ink); }
.np-moto-story__closing .np-button:hover { color: var(--nx-ink); background: transparent; border-color: var(--nx-ink); }

@media (max-width: 850px) {
  .np-moto-story__intro, .np-moto-story__architecture, .np-moto-story__kit-grid { grid-template-columns: 1fr; }
  .np-moto-story__features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .np-moto-story__feature:nth-child(2) { border-right: 0; }
  .np-moto-story__feature:nth-child(-n+2) { border-bottom: 1px solid rgba(248,243,241,.22); }
  .np-moto-story__exploded { width: min(100% - 2rem, 1800px); }
}

@media (max-width: 520px) {
  .np-moto-story__features { grid-template-columns: 1fr; }
  .np-moto-story__feature, .np-moto-story__feature:nth-child(2) { min-height: auto; border-right: 0; border-bottom: 1px solid rgba(248,243,241,.22); }
  .np-moto-story__feature:last-child { border-bottom: 0; }
  .np-moto-story__feature h3 { margin-top: 3rem; }
  .np-moto-story__exploded figcaption { grid-template-columns: 1fr; }
}
