/* NIP Home module: extracted from the homepage renderer. */
.nip8-home .nip8-hero {
  --nip-hero-ease: cubic-bezier(.25, 1, .36, 1);
  position: relative;
  height: 500px;
  min-height: 500px;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(ellipse at 80% 24%,rgba(137,224,255,.34) 0,rgba(65,183,244,.12) 27%,rgba(5,116,211,0) 53%),
    radial-gradient(ellipse at 12% 92%,rgba(0,54,131,.34) 0,rgba(0,75,159,.12) 34%,rgba(0,75,159,0) 57%),
    linear-gradient(116deg,#0674cf 0%,#078bec 46%,#2ba9f5 100%);
  background-size: 118% 118%,122% 122%,115% 115%;
  background-position: 0 50%,0 50%,0 50%;
  touch-action: pan-y;
  isolation: isolate;
}
.nip8-home .nip8-hero::before,
.nip8-home .nip8-hero::after {
  position: absolute;
  z-index: 0;
  content: "";
  pointer-events: none;
  will-change: transform,opacity;
}
.nip8-home .nip8-hero::before {
  inset: -18%;
  background:
    linear-gradient(112deg,rgba(255,255,255,.08),transparent 28%,transparent 68%,rgba(180,232,255,.07)),
    repeating-linear-gradient(122deg,rgba(255,255,255,.032) 0 1px,transparent 1px 74px);
  opacity: .58;
  transform: translate3d(-2%,0,0);
}
.nip8-home .nip8-hero::after {
  right: -8%;
  bottom: -38%;
  width: 55%;
  height: 68%;
  border: 1px solid rgba(222,246,255,.2);
  border-radius: 50%;
  box-shadow:
    0 0 0 42px rgba(189,231,255,.025),
    0 0 110px rgba(13,91,173,.2);
  opacity: .9;
  transform: rotate(-9deg);
}
.nip8-home .nip8-hero-track {
  position: relative;
  z-index: 1;
  display: flex;
  width: 300%;
  height: 100%;
  transform: translate3d(0,0,0);
  transition: transform 950ms var(--nip-hero-ease);
  will-change: transform;
}
.nip8-home .nip8-hero[data-active-slide="1"] .nip8-hero-track {
  transform: translate3d(0,0,0);
}
.nip8-home .nip8-hero[data-active-slide="2"] .nip8-hero-track {
  transform: translate3d(-33.333333%,0,0);
}
.nip8-home .nip8-hero[data-active-slide="3"] .nip8-hero-track {
  transform: translate3d(-66.666667%,0,0);
}
.nip8-home .nip8-hero.is-dragging .nip8-hero-track {
  transition: none;
}
.nip8-home .nip8-hero-slide {
  position: relative;
  flex: 0 0 33.333333%;
  min-width: 33.333333%;
  height: 500px;
  min-height: 500px;
  overflow: hidden;
  background: transparent;
}
.nip8-home .nip8-hero-slide .nip8-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(300px, .8fr) minmax(460px, 1.2fr);
  align-items: center;
  gap: 24px;
  height: 500px;
  min-height: 500px;
  padding: 20px 0 28px;
}
.nip8-home .nip8-hero-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  max-width: 520px;
  min-height: 320px;
  margin-left: clamp(24px,3.2vw,64px);
  padding-top: 8px;
}
.nip8-home .nip8-hero-copy--two {
  margin-left: clamp(24px, 3vw, 56px);
  transform: translateY(-56px);
}
.nip8-home .nip8-hero-copy--two .nip8-hero-subcopy {
  margin-top: 14px;
  font-size: 15.5px;
  line-height: 1.45;
}
.nip8-home .nip8-hero-copy h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(48px,3.8vw,62px);
  font-weight: 750;
  line-height: 1.14;
  letter-spacing: -.04em;
}
.nip8-home .nip8-hero-title-line {
  display: block;
}
.nip8-home .nip8-hero-title-line--small {
  display: block;
  margin: .08em 0 .04em;
  font-size: .48em;
  font-weight: 750;
  line-height: 1;
  letter-spacing: -.02em;
}
.nip8-home .nip8-hero-rule {
  display: block;
  width: 108px;
  height: 4px;
  margin-top: 20px;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  transform-origin: left center;
}
.nip8-home .nip8-hero-subcopy {
  display: block;
  max-width: 480px;
  margin: 16px 0 0;
  color: rgba(255,255,255,.95);
  font-size: clamp(15.5px,1.02vw,18.5px);
  font-weight: 400;
  line-height: 1.5;
}
.nip8-home .nip8-hero-subcopy strong {
  color: #fff;
  font-weight: 750;
}
.nip8-home .nip8-hero figure {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-width: 0;
  margin: 0;
  overflow: visible;
  will-change: transform,opacity;
}
/* [NIP 2026-09-06] 1 rule duy nhat cho hinh anh ca 3 slide (thay cho 3 rule rieng le truoc day)
   de dam bao kich thuoc dong nhat va de bao tri. Ty le luoi: cot chu 40% / cot hinh 60%
   (xem .nip8-hero-grid grid-template-columns ben tren). */
.nip8-home .nip8-hero figure img {
  display: block;
  width: 100%;
  max-width: 660px;
  height: auto;
  max-height: 440px;
  object-fit: contain;
  filter: none;
}
/* [NIP 2026-09-06] Slide 2: rieng slide nay duoc phong to chieu cao them 30% so voi
   rule chung o tren (~244px -> ~317px, tuc anh se rong ra ~858px de giu dung ty le goc, khong bi meo).
   Slide 1 va 3 giu nguyen theo rule chung. figure co overflow:visible nen anh duoc
   phep tran nhe ra ngoai cot luoi neu can. */
.nip8-home .nip8-hero-slide--two figure img {
  width: auto;
  height: 317px;
  max-width: none;
  max-height: none;
  object-fit: contain;
  filter: none;
}
.nip8-home .nip8-hero-dots {
  position: absolute;
  z-index: 10;
  left: 50%;
  bottom: 18px;
  display: flex;
  align-items: center;
  width: max-content;
  gap: 8px;
  padding: 5px 10px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  background: rgba(0,61,126,.32);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transform: translateX(-50%);
  pointer-events: auto;
}
.nip8-home .nip8-hero-dot {
  position: relative;
  width: 28px;
  min-width: 28px;
  max-width: 28px;
  height: 28px;
  min-height: 28px;
  max-height: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  appearance: none;
  background: transparent;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  touch-action: manipulation;
}
.nip8-home .nip8-hero-dot::before {
  content: "";
  position: absolute;
  inset: -8px;
}
.nip8-home .nip8-hero-dot::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.8);
  background: rgba(255,255,255,.2);
  transition: width .3s cubic-bezier(.22,1,.36,1), border-radius .3s ease, background .3s ease, box-shadow .3s ease;
}
.nip8-home .nip8-hero-dot:hover::after {
  border-color: #fff;
  background: rgba(255,255,255,.5);
}
.nip8-home .nip8-hero-dot[aria-current="true"]::after {
  width: 28px;
  border-radius: 999px;
  border-color: #fff;
  background: #fff;
  box-shadow: 0 0 8px rgba(255,255,255,.6);
}
@media (prefers-reduced-motion: no-preference) {
  .nip8-home .nip8-hero {
    animation: nipHeroColorFlow 18s ease-in-out infinite alternate;
  }
  .nip8-home .nip8-hero::before {
    animation: nipHeroVectorPlane 16s ease-in-out infinite alternate;
  }
  .nip8-home .nip8-hero::after {
    animation: nipHeroDepthOrbit 15s ease-in-out infinite alternate;
  }
  /* Default hidden state for all slide content */
  .nip8-home .nip8-hero-slide .nip8-hero-copy > *,
  .nip8-home .nip8-hero-slide figure {
    opacity: 0;
  }
  .nip8-home .nip8-hero-slide--two .nip8-hero-copy h2 {
    opacity: 1;
  }
  .nip8-home .nip8-hero-slide--two .nip8-hero-title-line {
    opacity: 0;
  }
  /* Sequenced entrance: only trigger when slide is active AND revealed after slide transition */
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--one h2 {
    animation: nipHeroCopyLeft .68s cubic-bezier(.2, .8, .2, 1) 0s both;
  }
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy .nip8-hero-rule {
    animation: nipHeroRule .45s cubic-bezier(.2, .8, .2, 1) .15s both;
  }
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--one .nip8-hero-subcopy {
    animation: nipHeroRise .55s cubic-bezier(.2, .8, .2, 1) .25s both;
  }
  .nip8-home .nip8-hero-slide.is-active.is-revealed figure {
    animation: nipHeroMachineIn .85s cubic-bezier(.2, .8, .2, 1) .12s both;
  }
  .nip8-home .nip8-hero-slide--two .nip8-hero-copy h2,
  .nip8-home .nip8-hero-slide--three .nip8-hero-copy h2 {
    opacity: 1;
  }
  .nip8-home .nip8-hero-slide--two .nip8-hero-title-line,
  .nip8-home .nip8-hero-slide--three .nip8-hero-title-line {
    opacity: 0;
  }
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--two .nip8-hero-title-line:nth-child(1),
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--three .nip8-hero-title-line:nth-child(1) {
    animation: nipHeroCopyLeft .62s cubic-bezier(.2, .8, .2, 1) 0s both;
  }
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--two .nip8-hero-title-line:nth-child(2),
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--three .nip8-hero-title-line:nth-child(2) {
    animation: nipHeroCopyRight .62s cubic-bezier(.2, .8, .2, 1) .08s both;
  }
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--two .nip8-hero-title-line:nth-child(3),
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--three .nip8-hero-title-line:nth-child(3) {
    animation: nipHeroCopyLeft .62s cubic-bezier(.2, .8, .2, 1) .14s both;
  }
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--two .nip8-hero-title-line:nth-child(4),
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--three .nip8-hero-title-line:nth-child(4) {
    animation: nipHeroCopyRight .62s cubic-bezier(.2, .8, .2, 1) .2s both;
  }
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--two .nip8-hero-rule,
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--three .nip8-hero-rule {
    animation: nipHeroRule .45s cubic-bezier(.2, .8, .2, 1) .25s both;
  }
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--two .nip8-hero-subcopy,
  .nip8-home .nip8-hero-slide.is-active.is-revealed .nip8-hero-copy--three .nip8-hero-subcopy {
    animation: nipHeroRise .55s cubic-bezier(.2, .8, .2, 1) .32s both;
  }
}
@keyframes nipHeroCopyLeft {
  from { opacity: 0; transform: translate3d(-32px,0,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes nipHeroCopyRight {
  from { opacity: 0; transform: translate3d(30px,0,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes nipHeroRise {
  from { opacity: 0; transform: translate3d(0,18px,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes nipHeroRule {
  from { opacity: 0; transform: scaleX(0); }
  to { opacity: 1; transform: scaleX(1); }
}
@keyframes nipHeroMachineIn {
  from { opacity: 0; transform: translate3d(45px,0,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes nipHeroColorFlow {
  from { background-position: 0 48%,0 52%,0 50%; }
  to { background-position: 8% 44%,-6% 56%,7% 50%; }
}
@keyframes nipHeroVectorPlane {
  from { opacity: .48; transform: translate3d(-2%,1%,0); }
  to { opacity: .68; transform: translate3d(3%,-1.5%,0); }
}
@keyframes nipHeroDepthOrbit {
  from { opacity: .72; transform: translate3d(-2%,2%,0) rotate(-9deg) scale(.97); }
  to { opacity: .94; transform: translate3d(4%,-3%,0) rotate(-5deg) scale(1.04); }
}
/* [NIP 2026-09-06] Tablet (768-1080px): cot luoi toi thieu 340px+460px vuot qua be ngang
   khung chua -> anh bi tran & cat mat. Cho 2 cot co gian tu do va gioi han anh trong cot. */
@media (min-width: 768px) and (max-width: 1080px) {
  .nip8-home .nip8-hero-slide .nip8-hero-grid {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 16px;
  }
  .nip8-home .nip8-hero-copy,
  .nip8-home .nip8-hero-copy--two {
    margin-left: clamp(16px, 2.4vw, 32px);
    max-width: 100%;
    transform: none;
  }
  .nip8-home .nip8-hero-copy.nip8-hero-copy--one h2 {
    font-size: clamp(34px, 4.6vw, 46px);
  }
  .nip8-home .nip8-hero-copy h2 {
    font-size: clamp(30px, 4.1vw, 42px);
  }
  .nip8-home .nip8-hero figure {
    justify-content: center;
    overflow: visible;
  }
  .nip8-home .nip8-hero figure img,
  .nip8-home .nip8-hero-slide--one figure img,
  .nip8-home .nip8-hero-slide--two figure img,
  .nip8-home .nip8-hero-slide--three figure img {
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: 320px;
    object-fit: contain;
    object-position: center;
    filter: none;
  }
}
@media (max-width: 767px) {
  .nip8-home .nip8-hero {
    --nip-hero-mobile-height: clamp(500px,66svh,560px);
    height: var(--nip-hero-mobile-height);
    min-height: var(--nip-hero-mobile-height);
  }
  .nip8-home .nip8-hero-slide,
  .nip8-home .nip8-hero-slide .nip8-hero-grid {
    height: 100%;
    min-height: 0;
  }
  .nip8-home .nip8-hero-slide .nip8-hero-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0,1fr);
    align-content: start;
    gap: 8px;
    padding: 24px 18px 48px;
  }
  .nip8-home .nip8-hero-copy,
  .nip8-home .nip8-hero-copy--two {
    min-height: 0;
    max-width: 100%;
    margin-left: 0;
    padding-top: 0;
    transform: none;
  }
  .nip8-home .nip8-hero-copy.nip8-hero-copy--one h2 {
    font-size: clamp(38px,11.2vw,48px);
    line-height: 1.16;
  }
  .nip8-home .nip8-hero-copy h2 {
    font-size: clamp(34px,9.8vw,42px);
    line-height: 1.16;
  }
  .nip8-home .nip8-hero-title-line--small {
    margin: .07em 0 .04em;
  }
  .nip8-home .nip8-hero-rule {
    width: 92px;
    height: 3px;
    margin-top: 17px;
  }
  .nip8-home .nip8-hero-subcopy {
    max-width: 100%;
    margin-top: 8px;
    font-size: 13.5px;
    line-height: 1.42;
  }
  .nip8-home .nip8-hero figure {
    display: flex;
    align-self: end;
    align-items: center;
    justify-content: center;
    width: 86%;
    height: 190px;
    margin: 0 auto 20px;
    overflow: visible;
  }
  .nip8-home .nip8-hero figure img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
  }
  .nip8-home .nip8-hero-slide--two figure {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .nip8-home .nip8-hero-slide--two figure img {
    height: 100%;
    width: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
    transform: none;
  }
  .nip8-home .nip8-hero-slide--three figure img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
  }
  .nip8-home .nip8-hero-dots {
    bottom: 12px;
  }
  .nip8-home .nip8-hero::before {
    inset: -24%;
  }
  .nip8-home .nip8-hero::after {
    right: -43%;
    bottom: -15%;
    width: 112%;
    height: 48%;
  }
  @media (prefers-reduced-motion: no-preference) {
    .nip8-home .nip8-hero-slide.is-active.is-revealed figure {
      animation-name: nipHeroMachineInMobile;
    }
  }
}
@keyframes nipHeroMachineInMobile {
  from { opacity: 0; transform: translate3d(32px,0,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@media (prefers-reduced-motion: reduce) {
  .nip8-home .nip8-hero,
  .nip8-home .nip8-hero-track,
  .nip8-home .nip8-hero-dot::after {
    animation: none;
    transition: none;
  }
  .nip8-home .nip8-hero::before,
  .nip8-home .nip8-hero::after {
    animation: none;
  }
}

.nip8-home .nip8-hero-h1{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* Service grid. */
.nip8-services .nip8-shell { width: min(1240px, calc(100% - 48px)); margin: 0 auto; }
.nip8-service-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 230px;
  gap: 16px;
  width: 100%;
}
.nip8-service-grid > a {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 14px;
  background: #eef6fc;
  color: #fff;
  text-decoration: none;
  min-height: 0;
}
.nip8-service-card.nip8-card-2x2 {
  grid-column: span 2;
  grid-row: span 2;
}
.nip8-service-card.nip8-card-2x1 {
  grid-column: span 2;
  grid-row: span 1;
}
.nip8-service-card.nip8-card-1x1 {
  grid-column: span 1;
  grid-row: span 1;
}
.nip8-service-grid h3 {
  position: absolute;
  z-index: 2;
  left: 25px;
  bottom: 23px;
  font-size: 21px;
  font-weight: 700;
  letter-spacing: -0.045em;
  color: #fff;
  margin: 0;
  text-shadow: 0 1px 3px rgba(0, 20, 50, 0.42);
}
@media (max-width: 767px) {
  .nip8-services .nip8-shell { width: calc(100% - 28px); }
  .nip8-service-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 180px;
    gap: 10px;
  }
  .nip8-service-card.nip8-card-2x2 {
    grid-column: span 2;
    grid-row: span 2;
  }
  .nip8-service-card.nip8-card-2x1 {
    grid-column: span 2;
    grid-row: span 1;
  }
  .nip8-service-card.nip8-card-1x1 {
    grid-column: span 1;
    grid-row: span 1;
  }
  .nip8-service-grid h3 {
    left: 16px;
    bottom: 15px;
    font-size: 18px;
  }
}

/* Migrated homepage styles formerly duplicated in style.css. */
/* Source: nip-homepage-v5 | ID: nip-commerce-v8-style */
.nip5-scope{--nip8-blue:#0195ff;--nip8-deep:#0003ff;--nip8-ink:#062b51;--nip8-line:#d8e7f4;--nip8-wash:#f4f9fd}.nip6-nav-actions>a:first-child:before{content:'↗'}.nip6-nav-actions>a:last-child{padding:9px 16px;border:1px solid var(--nip8-deep);border-radius:9px;color:var(--nip8-deep)}.nip6-nav-actions>a:last-child:before{content:'↗';font-size:15px}.nip8-home{color:var(--nip8-ink);background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Be Vietnam Pro",sans-serif}.nip8-shell{width:min(1240px,calc(100% - 48px));margin:auto}.nip8-home h1,.nip8-home h2,.nip8-home h3{margin:0;color:inherit;font-family:inherit}.nip8-services header p,.nip8-capability p,.nip8-work header p,.nip8-final p{margin:0 0 14px;color:#b8dcff;font-size:11px;font-weight:850;letter-spacing:.14em}.nip8-capability a,.nip8-final a{display:inline-flex;align-items:center;justify-content:center;width:max-content;min-height:48px;margin-top:28px;padding:0 20px;border-radius:8px;background:#fff;color:var(--nip8-deep);text-decoration:none;font-size:14px;font-weight:850}.nip8-services,.nip8-work{padding:86px 0}.nip8-services header,.nip8-work header{display:flex;align-items:end;justify-content:space-between;margin-bottom:34px}.nip8-services header p,.nip8-work header p{color:var(--nip8-blue)}.nip8-services h2,.nip8-work h2,.nip8-capability h2,.nip8-final h2{font-size:clamp(34px,3.5vw,54px);line-height:1;letter-spacing:-.065em}.nip8-service-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:250px 250px;gap:16px}.nip8-service-grid>a{position:relative;display:block;overflow:hidden;border-radius:14px;background:#eef6fc;color:#fff;text-decoration:none}.nip8-service-grid>a:first-child{grid-row:span 2}.nip8-service-grid figure{position:absolute;inset:0;margin:0}.nip8-service-grid img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s cubic-bezier(.2,.75,.2,1)}.nip8-service-grid>a:hover img,.nip8-work-grid a:hover img{transform:scale(1.04)}.nip8-service-grid figure:after{position:absolute;inset:0;content:'';background:linear-gradient(0deg,rgba(0,26,80,.74),rgba(0,26,80,.03) 66%)}.nip8-service-grid h3{position:absolute;z-index:2;left:25px;bottom:23px;font-size:clamp(21px,2vw,30px);letter-spacing:-.045em}.nip8-capability{padding:76px 0;background:var(--nip8-wash)}.nip8-capability-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:88px;align-items:center}.nip8-capability p{color:var(--nip8-blue)}.nip8-capability a{margin-top:24px;background:var(--nip8-deep);color:#fff}.nip8-capability ol{margin:0;padding:0;list-style:none;border-top:1px solid #cbdfee}.nip8-capability li{display:grid;grid-template-columns:180px 1fr;padding:25px 0;border-bottom:1px solid #cbdfee}.nip8-capability strong{font-size:20px;letter-spacing:-.03em}.nip8-capability span{color:#52738e;font-size:15px}.nip8-work-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:16px}.nip8-work-grid a{position:relative;display:block;min-height:330px;overflow:hidden;border-radius:14px;background:#edf6fc;color:#fff;text-decoration:none}.nip8-work-grid img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transition:transform .45s cubic-bezier(.2,.75,.2,1)}.nip8-work-grid a:after{position:absolute;inset:0;content:'';background:linear-gradient(0deg,rgba(0,23,73,.76),rgba(0,23,73,0) 58%)}.nip8-work-grid h3{position:absolute;z-index:2;left:22px;bottom:20px;font-size:23px;letter-spacing:-.04em}.nip8-final{padding:80px 0;background:linear-gradient(120deg,#000f66,#0037b1)}.nip8-final .nip8-shell{display:flex;flex-direction:column;align-items:flex-start}.nip8-final h2{max-width:730px;color:#fff}.nip8-final a{color:var(--nip8-deep)}
		@media(max-width:767px){.nip8-shell{width:calc(100% - 28px)}.nip8-services,.nip8-work{padding:60px 0}.nip8-services header,.nip8-work header{display:block;margin-bottom:25px}.nip8-service-grid{display:block}.nip8-service-grid>a{min-height:220px;margin-bottom:12px}.nip8-service-grid>a:first-child{min-height:285px}.nip8-service-grid h3{left:20px;bottom:18px}.nip8-capability{padding:57px 0}.nip8-capability-grid{grid-template-columns:1fr;gap:35px}.nip8-capability li{grid-template-columns:1fr;gap:7px;padding:19px 0}.nip8-capability strong{font-size:19px}.nip8-work-grid{display:block}.nip8-work-grid a{min-height:275px;margin-bottom:12px}.nip8-final{padding:58px 0 82px}.nip8-final h2{font-size:35px}}


/* Source: nip-homepage-v5 | ID: nip-commerce-v9-surface-style */
.home #content.content-area{padding:0}.home #content .row-main{width:100%;max-width:none}.home #content .row-main>.col{padding:0}.nip8-work{position:relative;isolation:isolate;overflow:hidden}.nip8-work{padding:88px 0;background:linear-gradient(122deg,#001a75,#003db4 61%,#018eea)}.nip8-work:before{position:absolute;z-index:-1;content:'';width:68vw;height:68vw;border-radius:50%;background:radial-gradient(circle,rgba(168,222,255,.27),rgba(168,222,255,0) 68%);animation:nip8-drift 18s ease-in-out infinite alternate}.nip8-work:before{left:-27vw;bottom:-44vw}.nip8-work:after{position:absolute;z-index:-1;content:'';width:82vw;height:35vw;border:1px solid rgba(195,231,255,.2);border-left-color:transparent;border-radius:50%;transform:rotate(-13deg)}.nip8-work:after{left:-23vw;top:-23vw;transform:rotate(23deg)}.nip8-work .nip8-shell{position:relative;z-index:1}.nip8-services header{display:block;margin-bottom:32px}.nip8-service-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:230px;grid-template-rows:none}.nip8-service-grid>a,.nip8-service-grid>a:first-child{min-height:0;grid-row:auto}.nip8-service-grid>a:nth-child(7n+1){grid-column:span 2;grid-row:span 2}.nip8-service-grid>a:nth-child(7n+4){grid-column:span 2}.nip8-service-grid h3{font-size:clamp(19px,1.8vw,28px)}.nip8-work header p{color:#b8dcff}.nip8-work h2{color:#fff}.nip8-work-grid a{background:#0d64bf;border:1px solid rgba(255,255,255,.18)}.nip8-final{padding:64px 0 76px;background:#fff}.nip8-final p{color:var(--nip8-blue)}.nip8-final h2{color:var(--nip8-ink)}.nip8-final a{background:var(--nip8-deep);color:#fff}.nip8-final .nip8-shell{align-items:flex-start}@keyframes nip8-drift{0%{transform:translate3d(-2%,1%,0) scale(.96);opacity:.7}100%{transform:translate3d(4%,-3%,0) scale(1.05);opacity:1}}
		@media(max-width:767px){.nip8-work{padding:60px 0}.nip8-service-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:180px;gap:10px}.nip8-service-grid>a,.nip8-service-grid>a:first-child{min-height:0;margin:0}.nip8-service-grid>a:nth-child(7n+1){grid-column:span 2;grid-row:span 2}.nip8-service-grid>a:nth-child(7n+4){grid-column:span 2}.nip8-service-grid h3{left:16px;bottom:15px;font-size:18px}.nip8-work-grid a{margin-bottom:12px}.nip8-final{padding:52px 0 82px}}
		@media(prefers-reduced-motion:reduce){.nip8-work:before{animation:none}}


/* Source: nip-homepage-v5 | ID: nip-commerce-v11-capability-style */
.nip11-capability{padding:96px 0;background:#f4f9fd}.nip11-capability .nip8-shell{display:grid;grid-template-columns:.86fr 1.14fr;gap:100px;align-items:start}.nip11-capability header p{margin:0 0 14px;color:var(--nip8-blue);font-size:11px;font-weight:850;letter-spacing:.14em}.nip11-capability header h2{font-size:clamp(36px,3.6vw,56px);line-height:1;letter-spacing:-.065em}.nip11-capability header>span{display:block;max-width:390px;margin-top:24px;color:#55748e;font-size:15px;line-height:1.65}.nip11-capability ol{margin:0;padding:0;list-style:none;border-top:1px solid #c8dceb}.nip11-capability li{display:grid;grid-template-columns:76px 1fr;gap:24px;padding:29px 0;border-bottom:1px solid #c8dceb}.nip11-capability li b{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:#fff;color:var(--nip8-deep);font-size:12px;letter-spacing:.04em;box-shadow:0 8px 18px rgba(0,64,150,.09)}.nip11-capability li h3{font-size:22px;line-height:1.15;letter-spacing:-.035em}.nip11-capability li p{margin:8px 0 0;color:#55748e;font-size:14px;line-height:1.6}.nip11-capability li:hover b{background:var(--nip8-deep);color:#fff;transform:translateY(-2px)}.nip11-capability li b{transition:background .2s ease,color .2s ease,transform .2s ease}
		@media(max-width:767px){.nip11-capability{padding:60px 0}.nip11-capability .nip8-shell{display:block}.nip11-capability header>span{margin-top:18px;font-size:14px}.nip11-capability ol{margin-top:34px}.nip11-capability li{grid-template-columns:54px 1fr;gap:12px;padding:21px 0}.nip11-capability li b{width:38px;height:38px}.nip11-capability li h3{font-size:19px}.nip11-capability li p{font-size:13px}}


/* Source: nip-homepage-v5 | ID: nip-commerce-v16-machine-banner-style */
.nip16-machine{padding:48px 0;background:#f4f9fd}.nip16-machine-grid{position:relative}.nip16-machine-stage{position:relative;isolation:isolate;min-height:404px;overflow:hidden;border:1px solid #e1e6e8;border-radius:18px;background:linear-gradient(120deg,#f7f8f8 0%,#fff 48%,#edf0f1 100%);box-shadow:0 16px 30px rgba(0,48,94,.07)}.nip16-machine-stage:before,.nip16-machine-stage:after{position:absolute;z-index:-1;content:"";border:1px solid rgba(0,86,156,.1);border-radius:50%;pointer-events:none}.nip16-machine-stage:before{width:610px;height:610px;right:-240px;top:-435px}.nip16-machine-stage:after{width:440px;height:440px;left:-285px;bottom:-340px}.nip16-machine-mark{position:absolute;z-index:-1;right:28%;bottom:-5px;width:min(360px,32%);height:auto;opacity:.16;filter:grayscale(1) contrast(.74) brightness(.72);transform:rotate(-5deg);transform-origin:center;pointer-events:none}.nip16-machine-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;width:50%;min-height:404px;padding:32px 0;text-align:center}.nip16-machine-copy p{margin:0 0 14px;color:#aa8127;font-size:10px;font-weight:850;letter-spacing:.18em}.nip16-machine-copy h2{margin:0;color:var(--nip8-deep);font-size:clamp(34px,3.2vw,47px);line-height:.98;letter-spacing:-.07em}.nip16-machine-copy h2 small{color:#39749d;font-size:.68em;font-weight:750;letter-spacing:-.055em}.nip16-machine-copy h2 b{display:block;margin-top:5px;color:#007dcc;font-size:1.57em;font-weight:900;letter-spacing:-.095em}.nip16-machine-copy span{display:block;max-width:none;margin-top:19px;color:#526b7e;font-size:14px;font-weight:600;line-height:1.55;white-space:nowrap}.nip16-machine figure{position:absolute;z-index:1;top:-16px;right:-98px;bottom:-28px;display:flex;align-items:center;justify-content:center;width:61%;margin:0}.nip16-machine figure:before{position:absolute;content:"";width:58%;height:23px;bottom:48px;border-radius:50%;background:rgba(34,55,73,.19);filter:blur(10px)}.nip16-machine figure img{position:relative;z-index:1;display:block;width:920px;max-width:none;height:auto;filter:drop-shadow(0 20px 17px rgba(26,43,57,.2));animation:nip16-machine-enter 8s ease-in-out infinite alternate}@keyframes nip16-machine-enter{from{transform:translateX(0) translateY(0)}to{transform:translateX(-7px) translateY(-3px)}}
		@media(max-width:1023px){.nip16-machine-stage{min-height:356px}.nip16-machine-copy{width:52%;min-height:356px}.nip16-machine-copy span{white-space:normal}.nip16-machine figure{right:-150px;width:63%}.nip16-machine figure img{width:760px}.nip16-machine-mark{right:21%;width:270px}}
		@media(max-width:767px){.nip16-machine{padding:36px 0}.nip16-machine-stage{min-height:0;border-radius:14px}.nip16-machine-copy{width:auto;min-height:0;padding:38px 25px 2px;text-align:center}.nip16-machine-copy h2{font-size:34px}.nip16-machine-copy span{max-width:300px;margin:14px auto 0;font-size:13px;white-space:normal}.nip16-machine figure{position:relative;top:auto;right:auto;bottom:auto;width:100%;height:318px;margin:0}.nip16-machine figure img{width:580px}.nip16-machine figure:before{bottom:25px}.nip16-machine-mark{right:-12px;bottom:8px;width:215px;opacity:.13;transform:rotate(-5deg)}}
		@media(prefers-reduced-motion:reduce){.nip16-machine figure img{animation:none}}


/* --- nip_hpv8_styles --- */
.nip5-scope{--nip8-blue:#0195ff;--nip8-deep:#0003ff;--nip8-ink:#062b51;--nip8-line:#d8e7f4;--nip8-wash:#f4f9fd}.nip6-nav-actions>a:first-child:before{content:'↗'}.nip6-nav-actions>a:last-child{padding:9px 16px;border:1px solid var(--nip8-deep);border-radius:9px;color:var(--nip8-deep)}.nip6-nav-actions>a:last-child:before{content:'↗';font-size:15px}.nip8-home{color:var(--nip8-ink);background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Be Vietnam Pro",sans-serif}.nip8-shell{width:min(1240px,calc(100% - 48px));margin:auto}.nip8-home h1,.nip8-home h2,.nip8-home h3{margin:0;color:inherit;font-family:inherit}.nip8-services header p,.nip8-capability p,.nip8-work header p,.nip8-final p{margin:0 0 14px;color:#b8dcff;font-size:11px;font-weight:850;letter-spacing:.14em}.nip8-capability a,.nip8-final a{display:inline-flex;align-items:center;justify-content:center;width:max-content;min-height:48px;margin-top:28px;padding:0 20px;border-radius:8px;background:#fff;color:var(--nip8-deep);text-decoration:none;font-size:14px;font-weight:850}.nip8-services,.nip8-work{padding:86px 0}.nip8-services header,.nip8-work header{display:flex;align-items:end;justify-content:space-between;margin-bottom:34px}.nip8-services header p,.nip8-work header p{color:var(--nip8-blue)}.nip8-services h2,.nip8-work h2,.nip8-capability h2,.nip8-final h2{font-size:clamp(34px,3.5vw,54px);line-height:1;letter-spacing:-.065em}.nip8-service-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:250px 250px;gap:16px}.nip8-service-grid>a{position:relative;display:block;overflow:hidden;border-radius:14px;background:#eef6fc;color:#fff;text-decoration:none}.nip8-service-grid>a:first-child{grid-row:span 2}.nip8-service-grid figure{position:absolute;inset:0;margin:0}.nip8-service-grid img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s cubic-bezier(.2,.75,.2,1)}.nip8-service-grid>a:hover img,.nip8-work-grid a:hover img{transform:scale(1.04)}.nip8-service-grid figure:after{position:absolute;inset:0;content:'';background:linear-gradient(0deg,rgba(0,26,80,.74),rgba(0,26,80,.03) 66%)}.nip8-service-grid h3{position:absolute;z-index:2;left:25px;bottom:23px;font-size:clamp(21px,2vw,30px);letter-spacing:-.045em}.nip8-capability{padding:76px 0;background:var(--nip8-wash)}.nip8-capability-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:88px;align-items:center}.nip8-capability p{color:var(--nip8-blue)}.nip8-capability a{margin-top:24px;background:var(--nip8-deep);color:#fff}.nip8-capability ol{margin:0;padding:0;list-style:none;border-top:1px solid #cbdfee}.nip8-capability li{display:grid;grid-template-columns:180px 1fr;padding:25px 0;border-bottom:1px solid #cbdfee}.nip8-capability strong{font-size:20px;letter-spacing:-.03em}.nip8-capability span{color:#52738e;font-size:15px}.nip8-work-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:16px}.nip8-work-grid a{position:relative;display:block;min-height:330px;overflow:hidden;border-radius:14px;background:#edf6fc;color:#fff;text-decoration:none}.nip8-work-grid img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transition:transform .45s cubic-bezier(.2,.75,.2,1)}.nip8-work-grid a:after{position:absolute;inset:0;content:'';background:linear-gradient(0deg,rgba(0,23,73,.76),rgba(0,23,73,0) 58%)}.nip8-work-grid h3{position:absolute;z-index:2;left:22px;bottom:20px;font-size:23px;letter-spacing:-.04em}.nip8-final{padding:80px 0;background:linear-gradient(120deg,#000f66,#0037b1)}.nip8-final .nip8-shell{display:flex;flex-direction:column;align-items:flex-start}.nip8-final h2{max-width:730px;color:#fff}.nip8-final a{color:var(--nip8-deep)}
		@media(max-width:767px){.nip8-shell{width:calc(100% - 28px)}.nip8-services,.nip8-work{padding:60px 0}.nip8-services header,.nip8-work header{display:block;margin-bottom:25px}.nip8-service-grid{display:block}.nip8-service-grid>a{min-height:220px;margin-bottom:12px}.nip8-service-grid>a:first-child{min-height:285px}.nip8-service-grid h3{left:20px;bottom:18px}.nip8-capability{padding:57px 0}.nip8-capability-grid{grid-template-columns:1fr;gap:35px}.nip8-capability li{grid-template-columns:1fr;gap:7px;padding:19px 0}.nip8-capability strong{font-size:19px}.nip8-work-grid{display:block}.nip8-work-grid a{min-height:275px;margin-bottom:12px}.nip8-final{padding:58px 0 82px}.nip8-final h2{font-size:35px}}

/* --- nip_hpv9_surface_styles --- */
.home #content.content-area{padding:0}.home #content .row-main{width:100%;max-width:none}.home #content .row-main>.col{padding:0}.nip8-work{position:relative;isolation:isolate;overflow:hidden}.nip8-work{padding:88px 0;background:linear-gradient(122deg,#001a75,#003db4 61%,#018eea)}.nip8-work:before{position:absolute;z-index:-1;content:'';width:68vw;height:68vw;border-radius:50%;background:radial-gradient(circle,rgba(168,222,255,.27),rgba(168,222,255,0) 68%);animation:nip8-drift 18s ease-in-out infinite alternate}.nip8-work:before{left:-27vw;bottom:-44vw}.nip8-work:after{position:absolute;z-index:-1;content:'';width:82vw;height:35vw;border:1px solid rgba(195,231,255,.2);border-left-color:transparent;border-radius:50%;transform:rotate(-13deg)}.nip8-work:after{left:-23vw;top:-23vw;transform:rotate(23deg)}.nip8-work .nip8-shell{position:relative;z-index:1}.nip8-services header{display:block;margin-bottom:32px}.nip8-service-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:230px;grid-template-rows:none}.nip8-service-grid>a,.nip8-service-grid>a:first-child{min-height:0;grid-row:auto}.nip8-service-grid>a:nth-child(7n+1){grid-column:span 2;grid-row:span 2}.nip8-service-grid>a:nth-child(7n+4){grid-column:span 2}.nip8-service-grid h3{font-size:clamp(19px,1.8vw,28px)}.nip8-work header p{color:#b8dcff}.nip8-work h2{color:#fff}.nip8-work-grid a{background:#0d64bf;border:1px solid rgba(255,255,255,.18)}.nip8-final{padding:64px 0 76px;background:#fff}.nip8-final p{color:var(--nip8-blue)}.nip8-final h2{color:var(--nip8-ink)}.nip8-final a{background:var(--nip8-deep);color:#fff}.nip8-final .nip8-shell{align-items:flex-start}@keyframes nip8-drift{0%{transform:translate3d(-2%,1%,0) scale(.96);opacity:.7}100%{transform:translate3d(4%,-3%,0) scale(1.05);opacity:1}}
		@media(max-width:767px){.nip8-work{padding:60px 0}.nip8-service-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:180px;gap:10px}.nip8-service-grid>a,.nip8-service-grid>a:first-child{min-height:0;margin:0}.nip8-service-grid>a:nth-child(7n+1){grid-column:span 2;grid-row:span 2}.nip8-service-grid>a:nth-child(7n+4){grid-column:span 2}.nip8-service-grid h3{left:16px;bottom:15px;font-size:18px}.nip8-work-grid a{margin-bottom:12px}.nip8-final{padding:52px 0 82px}}
		@media(prefers-reduced-motion:reduce){.nip8-work:before{animation:none}}

/* --- nip_hpv11_capability_styles --- */
.nip11-capability{padding:96px 0;background:#f4f9fd}.nip11-capability .nip8-shell{display:grid;grid-template-columns:.86fr 1.14fr;gap:100px;align-items:start}.nip11-capability header p{margin:0 0 14px;color:var(--nip8-blue);font-size:11px;font-weight:850;letter-spacing:.14em}.nip11-capability header h2{font-size:clamp(36px,3.6vw,56px);line-height:1;letter-spacing:-.065em}.nip11-capability header>span{display:block;max-width:390px;margin-top:24px;color:#55748e;font-size:15px;line-height:1.65}.nip11-capability ol{margin:0;padding:0;list-style:none;border-top:1px solid #c8dceb}.nip11-capability li{display:grid;grid-template-columns:76px 1fr;gap:24px;padding:29px 0;border-bottom:1px solid #c8dceb}.nip11-capability li b{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:#fff;color:var(--nip8-deep);font-size:12px;letter-spacing:.04em;box-shadow:0 8px 18px rgba(0,64,150,.09)}.nip11-capability li h3{font-size:22px;line-height:1.15;letter-spacing:-.035em}.nip11-capability li p{margin:8px 0 0;color:#55748e;font-size:14px;line-height:1.6}.nip11-capability li:hover b{background:var(--nip8-deep);color:#fff;transform:translateY(-2px)}.nip11-capability li b{transition:background .2s ease,color .2s ease,transform .2s ease}
		@media(max-width:767px){.nip11-capability{padding:60px 0}.nip11-capability .nip8-shell{display:block}.nip11-capability header>span{margin-top:18px;font-size:14px}.nip11-capability ol{margin-top:34px}.nip11-capability li{grid-template-columns:54px 1fr;gap:12px;padding:21px 0}.nip11-capability li b{width:38px;height:38px}.nip11-capability li h3{font-size:19px}.nip11-capability li p{font-size:13px}}

/* --- nip_hpv16_machine_banner_styles --- */
.nip16-machine{padding:48px 0;background:#f4f9fd}.nip16-machine-grid{position:relative}.nip16-machine-stage{position:relative;isolation:isolate;min-height:404px;overflow:hidden;border:1px solid #e1e6e8;border-radius:18px;background:linear-gradient(120deg,#f7f8f8 0%,#fff 48%,#edf0f1 100%);box-shadow:0 16px 30px rgba(0,48,94,.07)}.nip16-machine-stage:before,.nip16-machine-stage:after{position:absolute;z-index:-1;content:"";border:1px solid rgba(0,86,156,.1);border-radius:50%;pointer-events:none}.nip16-machine-stage:before{width:610px;height:610px;right:-240px;top:-435px}.nip16-machine-stage:after{width:440px;height:440px;left:-285px;bottom:-340px}.nip16-machine-mark{position:absolute;z-index:-1;right:28%;bottom:-5px;width:min(360px,32%);height:auto;opacity:.16;filter:grayscale(1) contrast(.74) brightness(.72);transform:rotate(-5deg);transform-origin:center;pointer-events:none}.nip16-machine-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;width:50%;min-height:404px;padding:32px 0;text-align:center}.nip16-machine-copy p{margin:0 0 14px;color:#aa8127;font-size:10px;font-weight:850;letter-spacing:.18em}.nip16-machine-copy h2{margin:0;color:var(--nip8-deep);font-size:clamp(34px,3.2vw,47px);line-height:.98;letter-spacing:-.07em}.nip16-machine-copy h2 small{color:#39749d;font-size:.68em;font-weight:750;letter-spacing:-.055em}.nip16-machine-copy h2 b{display:block;margin-top:5px;color:#007dcc;font-size:1.57em;font-weight:900;letter-spacing:-.095em}.nip16-machine-copy span{display:block;max-width:none;margin-top:19px;color:#526b7e;font-size:14px;font-weight:600;line-height:1.55;white-space:nowrap}.nip16-machine figure{position:absolute;z-index:1;top:-16px;right:-98px;bottom:-28px;display:flex;align-items:center;justify-content:center;width:61%;margin:0}.nip16-machine figure:before{position:absolute;content:"";width:58%;height:23px;bottom:48px;border-radius:50%;background:rgba(34,55,73,.19);filter:blur(10px)}.nip16-machine figure img{position:relative;z-index:1;display:block;width:920px;max-width:none;height:auto;filter:drop-shadow(0 20px 17px rgba(26,43,57,.2));animation:nip16-machine-enter 8s ease-in-out infinite alternate}@keyframes nip16-machine-enter{from{transform:translateX(0) translateY(0)}to{transform:translateX(-7px) translateY(-3px)}}
		@media(max-width:1023px){.nip16-machine-stage{min-height:356px}.nip16-machine-copy{width:52%;min-height:356px}.nip16-machine-copy span{white-space:normal}.nip16-machine figure{right:-150px;width:63%}.nip16-machine figure img{width:760px}.nip16-machine-mark{right:21%;width:270px}}
		@media(max-width:767px){.nip16-machine{padding:36px 0}.nip16-machine-stage{min-height:0;border-radius:14px}.nip16-machine-copy{width:auto;min-height:0;padding:38px 25px 2px;text-align:center}.nip16-machine-copy h2{font-size:34px}.nip16-machine-copy span{max-width:300px;margin:14px auto 0;font-size:13px;white-space:normal}.nip16-machine figure{position:relative;top:auto;right:auto;bottom:auto;width:100%;height:318px;margin:0}.nip16-machine figure img{width:580px}.nip16-machine figure:before{bottom:25px}.nip16-machine-mark{right:-12px;bottom:8px;width:215px;opacity:.13;transform:rotate(-5deg)}}
		@media(prefers-reduced-motion:reduce){.nip16-machine figure img{animation:none}}

