/* NEWSON / Precision & care — shared editorial design system. */
:root {
  --bg: #fafaf9; --surface-2: #f0f0ef; --surface-3: #e6e7e8;
  --ink: #292c32; --ink-2: #44484e; --muted: #73767b; --faint: #8f9297;
  --line: rgba(40,43,49,.1); --line-2: rgba(40,43,49,.19);
  --brand: #e78a2e; --brand-600: #cd7120; --brand-700: #a75515;
  --brand-50: #fff4e8; --brand-100: #f6dfc6; --ok: #e78a2e;
  --container: 1320px; --nav-h: 88px;
  --sh-brand: 0 6px 20px -12px #ba5f2a;
}
html { scroll-padding-top: 105px; }
body { background: var(--bg); }
.n-nav { background: rgba(250,250,249,.94); border-bottom: 1px solid var(--line); backdrop-filter: blur(20px); }
.n-nav.is-scrolled { --nav-h: 72px; background: rgba(250,250,249,.96); }
.n-nav.is-menu-open { background: #fafaf9; }
.n-nav__brand img { height: 39px; }
.n-nav__links { background: none; border: 0; padding: 0; }
.n-nav__links a { padding: 9px 13px; font-size: 13px; color: var(--ink-2); }
.n-nav__actions .n-btn { border-radius: 6px; background: var(--brand); color: #24272c; box-shadow: none; }
.n-nav__search { border-radius: 6px; background: transparent; font-size: 12px; }
.n-btn { --bh: 51px; border-radius: 6px; padding-inline: 24px; font-size: 14px; box-shadow: none; }
.n-btn--dark { background: var(--ink); }
.n-btn--dark:hover { background: #41454c; }
.n-btn--primary { background: var(--brand); }
.n-link { font-size: 14px; padding-block: 4px; }
.n-eyebrow { border: 0; padding: 0; background: none; box-shadow: none; color: var(--ink-2); font-size: 10px; letter-spacing: .075em; }
.n-head__meta { font-size: 10px; color: var(--ink-2); letter-spacing: .12em; margin-bottom: 24px; }
.n-index { background: transparent; border: 1px solid var(--line-2); border-radius: 50%; }
.n-muted { color: #858990; }

/* The hero is an editorial grid, not a scroll-jacking experience. */
.n-x { height: auto; background: var(--bg); }
.n-x__sticky {
  position: relative; height: auto; min-height: 0; overflow: visible;
  max-width: calc(var(--container) + var(--gutter) * 2); margin: auto;
  display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(30px,5vw,76px);
  padding: 128px var(--gutter) 60px; align-items: center;
}
.n-x .n-hero__grid, .n-x .n-hero__glow { display: none; }
.n-x__copy { grid-column: 1; grid-row: 1; order: 1; height: auto; width: 100%; padding: 0; margin: 0; z-index: 1; }
.n-x__copy > * { max-width: 100%; }
.n-x__copy h1 { position: relative; font-size: clamp(60px,6.7vw,96px); font-weight: 500; line-height: .98; letter-spacing: -.067em; margin: 28px 0; }
.n-x__copy .n-accent { background: none; color: var(--brand); }
.n-title-mark { display: inline-block; font-size: .54em; margin-left: .15em; vertical-align: 14%; color: var(--brand); font-weight: 300; }
.n-x__copy .n-lead { max-width: 38ch; font-size: 16px; line-height: 1.8; }
.n-x__copy .n-hero__actions { margin-top: 24px; gap: 28px; align-items: center; }
.n-x__copy .n-hero__actions .n-btn { background: var(--brand); color: #272b31; }
.n-x__copy .n-hero__actions .n-btn:hover { background: #f09b46; }
.n-x__copy .n-hero__trust { margin-top: 45px; padding-top: 23px; border-top: 1px solid var(--line); width: 100%; }
.n-hero__trust > .n-mono { color: var(--muted); font-size: 9px; letter-spacing: .1em; }
.n-hero__trust ul { gap: 16px; margin-top: 12px; flex-wrap: wrap; }
.n-hero__trust li { font-size: 11px; color: var(--ink-2); gap: 5px; }
.n-hero__trust li i { font-size: 10px; color: var(--brand-600); }

/* A purpose-built, quiet studio for the real-time models. */
.n-studio { grid-column: 2; grid-row: 1; order: 2; min-width: 0; }
.n-studio__heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin: 0 2px 12px; font: 9px var(--mono); letter-spacing: .1em; color: var(--muted); }
.n-studio__heading > span:first-child { display: flex; align-items: center; gap: 9px; color: var(--ink); }
.n-studio__heading .n-live { width: 5px; height: 5px; }
.n-x__frame {
  --it: 0px; --ir: 0px; --ib: 0px; --il: 0px; --rad: 16px;
  order: 0;
  position: relative; inset: auto; margin: 0; height: clamp(420px,37vw,550px); min-height: 0;
  clip-path: none; border-radius: 16px 16px 0 0; overflow: hidden; box-shadow: none;
  background: radial-gradient(ellipse at 44% 35%, #5a5a5a 0%, #383b40 43%, #23262c 100%);
  isolation: isolate;
}
.n-x__frame::before { background-image: radial-gradient(#c8c8c833 .8px, transparent .8px); background-size: 22px 22px; mask-image: radial-gradient(ellipse at center, transparent 28%, #000 95%); opacity: .4; }
.n-x__frame::after { box-shadow: inset 0 0 0 1px #ffffff12; border-radius: 16px 16px 0 0; }
.n-x__hud { inset: 0; }
.n-x__hud-top { padding: 20px 22px; align-items: start; gap: 10px; color: #b8bdc4; }
.n-x__hud-top > .n-mono:first-child { font-size: 8px; }
.n-x__rec { width: 4px; height: 4px; background: #edaa62; animation: none; margin-right: 6px; }
.n-x__hud-title { position: absolute; top: 39px; left: 22px; display: block; font: 500 13px var(--font) !important; color: #f0f2ed; letter-spacing: 0; text-transform: none; }
.n-x__status { background: #ffffff08; border-color: #ffffff1a; color: #b7bac0; font: 8px var(--mono); border-radius: 4px; padding: 5px 7px; }
.n-x__hud .n-cross, .n-x__usehint { display: none; }
.n-x__hud-bottom { flex-direction: row; align-items: end !important; padding: 18px; gap: 12px; }
.n-x__tools { margin: 0; padding: 4px; border-radius: 7px; background: #25282db8; border-color: #ffffff24; box-shadow: none; }
.n-x__tool { color: #d4d6db; border-radius: 4px; width: 34px; height: 34px; }
.n-x__tool[data-auto-toggle] { color: #e7a66c; }
.n-x__tool:hover, .n-x__tool[aria-pressed="true"] { background: #ffffff1a; color: #fff; }
.n-x__tool[data-zoom-in], .n-x__tool[data-zoom-out] { display: grid; }
.n-x__readout { padding: 9px 11px; gap: 7px; border-radius: 6px; background: #25282d80; border-color: #ffffff20; box-shadow: none; }
.n-x__readout .n-mono { font-size: 7px; color: #b2b6bd; }
.n-x__readout b { font-size: 16px; color: #f0f1f2; }
.n-x__bar { width: 110px; background: #ffffff13; height: 2px; }
.n-x__bar i { background: #ce965f; }
.n-x__tabs { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); border: 1px solid var(--line); border-top: 0; border-radius: 0 0 12px 12px; box-shadow: none; background: #eeeeed; gap: 0; padding: 0; backdrop-filter: none; overflow: hidden; }
.n-x__tab, .n-x__tab.is-active { min-width: 0; width: 100%; height: 75px; border-radius: 0; padding: 12px 3px; flex-direction: column; justify-content: center; gap: 9px; background: transparent; color: #70747b; }
.n-x__tab + .n-x__tab { border-left: 1px solid var(--line); }
.n-x__tab i { font-size: 17px; }
.n-x__tab span, .n-x__tab.is-active span { opacity: 1; max-width: none; font-size: clamp(8px,.76vw,10px); line-height: 1.3; white-space: normal; text-align: center; }
.n-x__tab.is-active { background: #fff; color: var(--ink); }
.n-x__tab.is-active i { color: var(--brand); }
.n-x__tab:hover { background: #fff; }
.n-x__tab:disabled, .n-x__tool:disabled { opacity: .4; cursor: wait; }
.n-x__tabprog { bottom: 0; left: 0; right: 0; height: 2px; border-radius: 0; }
.n-studio__caption { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 10px; color: #787b80; margin: 12px 2px 0; }
.n-studio__caption i { margin-right: 4px; }
.n-x__outro { position: static; display: flex; align-items: center; justify-content: space-between; gap: 16px; opacity: 1; pointer-events: auto; width: 100%; margin: 18px 0 0; padding: 13px 0 0; background: none; border: 0; border-top: 1px solid var(--line); box-shadow: none; border-radius: 0; backdrop-filter: none; }
.n-x__outro .n-mono { font-size: 10px; color: var(--ink); }
.n-x__outro h2, .n-x__outro p { display: none; }
.n-x__outro a { display: flex; align-items: center; gap: 12px; font-size: 11px; color: var(--ink-2); }
.n-x__outro a:hover { color: var(--brand-700); }
.n-x__hotspots { opacity: 0; visibility: hidden; transition: opacity .25s; }
.show-labels .n-x__hotspots { opacity: 1; visibility: visible; }
.n-hot__card { background: #fafafaf0; border: none; border-radius: 6px; padding: 7px 10px; }
.n-hot__card b { font-size: 11px; }
.n-hot__card small { font-size: 8px; }
.n-hot__dot { width: 10px; height: 10px; left: -5px; top: -5px; border-width: 2px; }
.n-hot__dot::after { animation: none; }
.n-x__toolhint { display: none; }
.n-x__toolhint small { color: #b8bdc4; font-size: 8px; }
.n-x__toolhint b { font-size: 10px; }
.n-x__tip { max-width: min(250px, 80%); white-space: normal; border: 1px solid #ffffff20; background: #24272ded; border-radius: 6px; }
.n-x__fallback span { border-color: #ffffff25; }
.n-x__fallback span:nth-child(3) { background: #41454b; }

/* Proof, portfolio and the human side of precision. */
.n-marquee { padding: 30px 0; background: transparent; border-block: 1px solid var(--line); }
.n-marquee__label { text-align: center; font-size: 9px; letter-spacing: .14em; margin-bottom: 22px; color: var(--muted); }
.n-marquee__item { width: 175px; }
.n-marquee__item img { opacity: .68; max-height: 30px; }
.n-metrics { background: #f0f0ef; border: 0; }
.n-metrics__grid > div { padding-block: 36px; border: 0; }
.n-metrics__grid > div + div { border-left: 1px solid #dddee0; }
.n-metrics .n-mono { display: none; }
.n-metrics strong { font-size: clamp(38px,4vw,56px); font-weight: 400; letter-spacing: -.05em; margin: 0 0 13px; }
.n-metrics p { font-size: 12px; max-width: 24ch; }
.n-section { padding-block: clamp(65px,7.5vw,108px); }
.n-section.n-metrics { padding-block: 0; }
.n-section--tight { padding-block: 36px; }
.n-head { max-width: none; grid-template-columns: 1.2fr 1fr; gap: 0 80px; align-items: end; margin-bottom: 40px; }
.n-head__meta { grid-column: 1 / -1; }
.n-head h2, .n-split h2 { font-size: clamp(34px,3.4vw,48px); font-weight: 400; letter-spacing: -.05em; line-height: 1.1; }
.n-head > p { margin: 0 0 4px; font-size: 14px; line-height: 1.85; max-width: 46ch; justify-self: end; }
.n-spec-grid { gap: 20px; }
.n-spec { border: 1px solid #e4e5e6; border-radius: 10px; padding: 24px; background: #f1f1f0; min-height: 410px; box-shadow: none; }
.n-spec:nth-child(2), .n-spec:nth-child(5) { background: #eceeef; }
.n-spec:nth-child(3), .n-spec:nth-child(6) { background: #f6f1eb; }
.n-spec:hover { box-shadow: 0 16px 35px -22px #282d3466; border-color: #f0b77f; transform: translateY(-5px); }
.n-spec__top .n-mono { font-size: 9px; color: #81858b; }
.n-spec__arrow { width: 30px; height: 30px; border-color: #d0d2d6; background: #ffffff50; }
.n-spec__media { background: none; min-height: 180px; margin: 2px 0 18px; }
.n-spec__media img { max-height: 170px; filter: drop-shadow(0 14px 8px #32353a12); }
.n-spec__body h3 { font-size: 24px; font-weight: 500; }
.n-spec__body p { font-size: 13px; line-height: 1.75; min-height: 46px; }
.n-spec__tags { border-top: 1px solid #d7d9dc; font-size: 9px; color: #6d7077; padding-top: 17px; }
.n-portfolio-foot { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 26px; font-size: 12px; color: var(--muted); }
.n-portfolio-foot p { margin: 0; }
.n-story { background: #2b2e34; color: #e3e4e7; margin-inline: 24px; border-radius: 16px; border: 0; }
.n-story .n-head__meta { color: #c7a57e; }
.n-story .n-index { border-color: #ffffff35; color: #c9cbd1; }
.n-story h2 { color: #fafafa; }
.n-story .n-muted { color: #b0b3b9; }
.n-story .n-lead { color: #b9bcc2; font-size: 14px; line-height: 1.85; }
.n-story .n-btn--dark { background: var(--brand); color: #272b31; }
.n-story .n-link { color: #ededee; border-color: #92969e; font-size: 12px; }
.n-story .n-timeline-card { background: #33363d; border-color: #ffffff15; border-radius: 8px; }
.n-story .n-timeline-card__head { color: #d0d2d7; border-color: #ffffff20; }
.n-story .n-timeline__year { color: #f4b678; font-size: 22px; font-family: var(--font); font-weight: 400; }
.n-story .n-timeline__text { color: #dedfe2; font-size: 13px; font-weight: 400; }
.n-story .n-timeline li + li, .n-story .n-timeline-card__foot { border-color: #ffffff15; }
.n-story .n-timeline__dot { background: #34373e; border-color: #dca369; width: 8px; height: 8px; }
.n-story .n-timeline-card__foot div { padding: 12px 0; background: none; border: 0; }
.n-story .n-timeline-card__foot strong { color: #e8e9eb; font-size: 12px; }
.n-story .n-timeline-card__foot small { color: #b8bac0; font-size: 10px; }
.n-pillars { gap: 24px; border-top: 0; }
.n-pillar, .n-pillar + .n-pillar { border: 0; margin: 0; padding: 24px 0 0; border-top: 1px solid var(--line-2); }
.n-pillar__icon { border: 0; box-shadow: none; background: #fbecdd; color: #b76c29; border-radius: 50%; width: 47px; height: 47px; margin-bottom: 24px; }
.n-pillar h3 { font-size: 18px; font-weight: 500; }
.n-pillar p { font-size: 13px; line-height: 1.8; }
.n-certs { background: transparent; padding: 36px 0; border: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.n-certs__intro h3 { font-size: 27px; font-weight: 400; }
.n-certs__list { background: transparent; border: 0; border-radius: 0; gap: 20px; }
.n-certs__list li { padding: 8px; background: transparent; gap: 12px; }
.n-certs__list b { font-size: 12px; }
.n-certs__list small { font-size: 10px; }
.n-cta { background: #f1f0ee; border: 0; border-radius: 10px; padding: 60px; margin-bottom: 40px; }
.n-cta h2 { font-size: clamp(32px,3.5vw,48px); font-weight: 400; max-width: 21ch; }
.n-cta .n-eyebrow { color: #976332; }
.n-cta__actions .n-btn { background: var(--brand); color: #272b31; }
.n-cta__actions .n-btn:hover { background: #f09b46; }
.n-cta .n-link { font-size: 12px; }
.n-cta::after { border-color: #dbc9b7; box-shadow: 0 0 0 60px #e7d6c540, 0 0 0 120px #e7d6c530; }
.n-cta .n-hero__grid { display: none; }
.n-footer { background: #f0f0ef; }
.n-footer__col h3 { color: #737780; font-size: 10px; }
.n-footer__brand p, .n-footer__col a, .n-footer__contact p { font-size: 12px; }
.n-footer__bottom { font-size: 11px; }
.n-footer__certs span { background: transparent; font-size: 9px; border-radius: 4px; }
.n-footer__wordmark { color: #dcdde0; -webkit-text-stroke: 0; background: none; font-weight: 500; }
.n-page-hero { background: #f0f0ef; }
.n-page-hero .n-hero__grid { opacity: .25; }
.n-page-hero h1 { font-weight: 400; letter-spacing: -.055em; }
.n-carbon { background: linear-gradient(135deg,#fff,#f0f0ed); border-color: var(--line); }
.n-auth__ok { background: var(--brand-50); box-shadow: 0 0 0 8px #e78a2e0c; }
.n-form-msg .alert-success { background: #f3f3f0; border-color: #d2d4d7; color: var(--ink); }

@media (min-width: 1500px) {
  .n-x__sticky { padding-block: 150px 72px; }
  .n-x__frame { height: 535px; }
}
@media (max-width: 1100px) and (min-width: 901px) {
  .n-x__sticky { gap: 28px; grid-template-columns: .83fr 1.17fr; }
  .n-x__copy h1 { font-size: 68px; }
  .n-x__copy .n-lead { font-size: 14px; }
  .n-hero__trust ul { gap: 9px; }
  .n-x__copy .n-hero__actions { gap: 17px; }
}
@media (max-width: 1024px) {
  .n-nav__menu { background: var(--bg); }
  .n-nav__links { background: none; }
  .n-head { gap: 0 35px; }
  .n-certs { grid-template-columns: 1fr; }
  .n-cta { padding: 38px; }
}
@media (max-width: 900px) {
  .n-x__sticky { display: flex; flex-direction: column; align-items: stretch; padding: 124px var(--gutter) 45px; gap: 36px; }
  .n-x__copy { display: block; }
  .n-x__copy h1 { font-size: clamp(62px,9.5vw,88px); }
  .n-x__copy .n-lead { max-width: 54ch; }
  .n-x__copy .n-hero__trust { margin-top: 30px; }
  .n-studio { width: 100%; }
  .n-x__frame { height: 520px; }
  .n-x__tab span, .n-x__tab.is-active span { font-size: 10px; }
  .n-story { margin-inline: 16px; }
  .n-head { grid-template-columns: 1fr; gap: 0; }
  .n-head > p { justify-self: start; max-width: 55ch; margin-top: 22px; }
  .n-head h2 { max-width: 20ch; }
  .n-pillar:nth-child(even) { border-left: 0; padding-left: 0; }
  .n-spec-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  :root { --gutter: 22px; --nav-h: 74px; }
  .n-nav__brand img { height: 34px; }
  .n-nav.is-scrolled { --nav-h: 66px; }
  .n-x__sticky { padding-top: 105px; gap: 32px; }
  .n-x__copy h1 { font-size: clamp(60px,14.3vw,80px); margin: 23px 0; }
  .n-x__copy .n-lead { font-size: 14px; line-height: 1.8; max-width: 41ch; }
  .n-x__copy .n-eyebrow { font-size: 8px; }
  .n-x__copy .n-hero__actions { gap: 22px; flex-direction: row; align-items: center; }
  .n-x__copy .n-hero__actions .n-btn { width: auto; font-size: 12px; padding-inline: 18px; }
  .n-x__copy .n-hero__actions .n-link { font-size: 12px; }
  .n-x__copy .n-hero__trust { padding-top: 20px; margin-top: 28px; }
  .n-hero__trust ul { gap: 12px; }
  .n-hero__trust li { font-size: 9px; }
  .n-studio__heading { font-size: 7px; }
  .n-x__frame { height: 420px; }
  .n-x__hud-top { padding: 17px; }
  .n-x__hud-title { left: 17px; top: 35px; font-size: 11px !important; }
  .n-x__status { font-size: 6px; padding: 4px 6px; }
  .n-x__hud-bottom { padding: 12px; gap: 8px; }
  .n-x__tool { width: 29px; height: 31px; font-size: 10px; }
  .n-x__readout { padding: 7px; }
  .n-x__readout .n-mono { font-size: 6px; }
  .n-x__readout b { font-size: 13px; }
  .n-x__bar { width: 75px; }
  .n-x__tabs { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .n-x__tab, .n-x__tab.is-active { height: 64px; gap: 7px; }
  .n-x__tab:nth-child(n+4) { border-top: 1px solid var(--line); }
  .n-x__tab:nth-child(4) { border-left: 0; }
  .n-x__tab span, .n-x__tab.is-active span { font-size: 10px; }
  .n-studio__caption { font-size: 10px; line-height: 1.6; }
  .n-studio__caption > span:last-child { display: none; }
  .n-x__outro { margin-top: 15px; }
  .n-x__outro a { font-size: 9px; gap: 7px; }
  .n-x__outro .n-mono { font-size: 9px; }
  .n-x__toolhint { top: 62px; }
  .n-marquee__label { font-size: 8px; }
  .n-marquee__item { width: 135px; }
  .n-metrics__grid > div { padding-block: 26px; }
  .n-metrics strong { font-size: 44px; }
  .n-metrics p { font-size: 10px; max-width: 21ch; }
  .n-head h2, .n-split h2 { font-size: 36px; }
  .n-head > p { font-size: 13px; }
  .n-spec-grid { grid-template-columns: 1fr; gap: 16px; }
  .n-spec { min-height: 0; padding: 22px; }
  .n-spec__media { min-height: 150px; }
  .n-spec__media img { max-height: 155px; }
  .n-spec__body p { min-height: 0; }
  .n-portfolio-foot { flex-direction: column; align-items: start; gap: 14px; }
  .n-story { margin-inline: 10px; border-radius: 10px; }
  .n-story .n-container { padding-inline: 24px; }
  .n-timeline-card { padding: 24px 18px; }
  .n-timeline-card__foot { grid-template-columns: 1fr 1fr; }
  .n-certs__list { grid-template-columns: 1fr 1fr; gap: 18px 10px; }
  .n-certs__list li { flex-direction: row; align-items: center; padding: 0; }
  .n-certs__logo, .n-certs__logo img { max-width: 34px; }
  .n-cta { padding: 34px 26px; }
  .n-cta h2 { font-size: 35px; }
  .n-cta__actions { max-width: 100%; }
  .n-footer__top { grid-template-columns: 1fr 1fr; gap: 32px 20px; }
  .n-footer__brand, .n-footer__contact { grid-column: 1 / -1; }
  .n-footer__wordmark { font-size: 22vw; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .n-marquee__track { animation: none; }
  .n-live::after { animation: none; }
  .n-spec, .n-x__hotspots { transition: none; }
}
@media (max-width: 360px) {
  .n-x__copy h1 { font-size: 53px; }
  .n-x__hud-bottom { padding: 10px; }
  .n-x__readout { grid-template-columns: 1fr; }
  .n-x__readout [data-readout-label] { display: none; }
  .n-x__bar { width: 60px; }
  .n-x__tab span, .n-x__tab.is-active span { font-size: 9px; }
  .n-x__outro { align-items: start; }
  .n-x__outro a { max-width: 58%; text-align: right; }
}
