@charset "utf-8";

/*
 * WZJS hero assembly scene
 * One real delivered website grows out of a project brief, then remains in
 * its completed state. The scene is deliberately open and pictorial: no
 * dashboard shell and no row of wireframe cards.
 */

.page-independent-site .inner-hero {
  min-height: clamp(720px, 92vh, 820px);
  padding: 118px 0 56px;
}

.page-independent-site .inner-hero-layout {
  grid-template-columns: minmax(0, 1.02fr) minmax(470px, .92fr);
  gap: clamp(38px, 4.6vw, 70px);
  min-height: 545px;
}

.page-independent-site .inner-hero-copy { align-self: center; }

.wz-assembly {
  --wz-blue: #009fe8;
  --wz-deep: #007fbd;
  --wz-sky: #87d0f4;
  --wz-ink: #292627;
  --wz-night: #1f2c32;
  --wz-muted: #6e7a82;
  position: relative;
  align-self: center;
  justify-self: end;
  width: min(100%, 575px);
  min-height: 530px;
  margin-right: 58px;
  isolation: isolate;
}

.wz-assembly::before,
.wz-assembly::after,
.wz-assembly-aura {
  position: absolute;
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.wz-assembly::before {
  z-index: -3;
  top: 45%;
  left: 52%;
  width: 590px;
  height: 590px;
  background: radial-gradient(circle, rgba(255, 255, 255, .92) 0 35%, rgba(234, 247, 253, .58) 55%, rgba(234, 247, 253, 0) 73%);
  transform: translate(-50%, -50%) scale(.92);
}

.wz-assembly::after {
  z-index: -2;
  top: 45%;
  left: 52%;
  width: 475px;
  height: 475px;
  border: 1px solid rgba(0, 159, 232, .10);
  box-shadow: 0 0 0 55px rgba(0, 159, 232, .025), 0 0 0 110px rgba(0, 159, 232, .014);
  transform: translate(-50%, -50%);
}

.wz-assembly-aura {
  z-index: -1;
  top: 47px;
  right: 7px;
  width: 192px;
  height: 192px;
  background: radial-gradient(circle, rgba(0, 159, 232, .18), rgba(0, 159, 232, 0) 68%);
  filter: blur(8px);
}

.wz-assembly-brief {
  position: absolute;
  z-index: 7;
  top: 0;
  left: 2px;
  display: grid;
  min-width: 205px;
  padding: 15px 19px 16px;
  border-radius: 18px;
  color: #fff;
  background: var(--wz-night);
  box-shadow: 0 18px 42px rgba(29, 47, 56, .20);
}

.wz-assembly-brief::after {
  position: absolute;
  right: 15px;
  bottom: -7px;
  width: 14px;
  height: 14px;
  background: var(--wz-night);
  content: "";
  transform: rotate(45deg);
}

.wz-assembly-brief > span,
.wz-assembly-delivery small {
  color: var(--wz-sky);
  font-family: var(--utility, "Helvetica Neue", Arial, sans-serif);
  font-size: 7px;
  font-weight: 780;
  letter-spacing: .16em;
}

.wz-assembly-brief strong {
  margin-top: 7px;
  font-size: 15px;
  letter-spacing: -.025em;
}

.wz-assembly-brief small {
  margin-top: 5px;
  color: #a8bbc4;
  font-size: 8px;
}

.wz-assembly-blueprint {
  position: absolute;
  z-index: 0;
  top: 94px;
  right: 50px;
  width: 78%;
  height: 338px;
  overflow: hidden;
  border-radius: 24px 24px 64px 24px;
  background:
    linear-gradient(rgba(255, 255, 255, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .055) 1px, transparent 1px),
    linear-gradient(145deg, #087eb1, #006a9d 72%);
  background-size: 25px 25px, 25px 25px, auto;
  box-shadow: 0 24px 58px rgba(0, 110, 160, .18);
  transform: rotate(-5.5deg) translate(-24px, 10px);
  transform-origin: 70% 70%;
}

.wz-assembly-blueprint::before {
  position: absolute;
  top: 54px;
  left: 42px;
  width: 48%;
  height: 84px;
  border-radius: 7px;
  background: rgba(255, 255, 255, .08);
  box-shadow: 0 112px 0 rgba(255, 255, 255, .055);
  content: "";
}

.wz-assembly-blueprint > span {
  position: absolute;
  top: 24px;
  left: 28px;
  color: rgba(255, 255, 255, .58);
  font-size: 7px;
  font-weight: 760;
  letter-spacing: .16em;
}

.wz-assembly-blueprint > i {
  position: absolute;
  right: 32px;
  width: 25%;
  height: 4px;
  border-radius: 99px;
  background: rgba(255, 255, 255, .15);
}

.wz-assembly-blueprint > i:nth-of-type(1) { top: 78px; }
.wz-assembly-blueprint > i:nth-of-type(2) { top: 99px; width: 19%; }
.wz-assembly-blueprint > i:nth-of-type(3) { top: 191px; }
.wz-assembly-blueprint > i:nth-of-type(4) { top: 212px; width: 15%; }

.wz-assembly-browser {
  position: absolute;
  z-index: 3;
  top: 84px;
  right: 0;
  width: calc(100% - 54px);
  height: 354px;
  margin: 0;
  overflow: hidden;
  border-radius: 23px 23px 66px 23px;
  background: #fff;
  box-shadow: 0 35px 72px rgba(30, 53, 63, .22);
  transform-origin: 70% 80%;
}

.wz-assembly-browser > header {
  display: grid;
  grid-template-columns: repeat(3, 5px) minmax(0, 1fr) auto;
  gap: 6px;
  align-items: center;
  height: 34px;
  padding: 0 13px;
  background: #f4f8fa;
}

.wz-assembly-browser > header > i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #c4d0d5;
}

.wz-assembly-browser > header > i:first-child { background: var(--wz-blue); }

.wz-assembly-browser > header > span {
  margin-left: 5px;
  color: #839097;
  font-family: var(--utility, "Helvetica Neue", Arial, sans-serif);
  font-size: 7px;
}

.wz-assembly-browser > header > b {
  color: var(--wz-deep);
  font-size: 6px;
  letter-spacing: .14em;
}

.wz-assembly-browser figure {
  position: relative;
  height: calc(100% - 34px);
  margin: 0;
  overflow: hidden;
  background: #e9f5fa;
}

.wz-assembly-browser figure::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 48%, rgba(8, 20, 26, .72) 100%);
  content: "";
  pointer-events: none;
}

.wz-assembly-browser img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: saturate(1) contrast(1.02);
  transform: scale(1.015);
}

.wz-assembly-browser figcaption {
  position: absolute;
  z-index: 2;
  right: 25px;
  bottom: 21px;
  left: 25px;
  color: #fff;
}

.wz-assembly-browser figcaption span {
  color: #8fdcff;
  font-family: var(--utility, "Helvetica Neue", Arial, sans-serif);
  font-size: 6px;
  font-weight: 780;
  letter-spacing: .15em;
}

.wz-assembly-browser figcaption b {
  display: block;
  max-width: 360px;
  margin-top: 6px;
  font-size: 14px;
  font-weight: 650;
  letter-spacing: -.025em;
  line-height: 1.4;
}

.wz-assembly-mobile {
  position: absolute;
  z-index: 5;
  top: 239px;
  left: 7px;
  width: 112px;
  height: 205px;
  padding: 7px;
  overflow: hidden;
  border: 4px solid #fff;
  border-radius: 24px 24px 36px 24px;
  background: #f4f8fa;
  box-shadow: 0 23px 52px rgba(30, 50, 59, .24);
}

.wz-assembly-mobile > span {
  position: absolute;
  z-index: 2;
  top: 9px;
  left: 50%;
  width: 30px;
  height: 5px;
  border-radius: 99px;
  background: rgba(20, 31, 36, .76);
  transform: translateX(-50%);
}

.wz-assembly-mobile img {
  width: 100%;
  height: 100%;
  border-radius: 16px 16px 28px 16px;
  object-fit: cover;
  object-position: 14% top;
}

.wz-assembly-chip {
  position: absolute;
  z-index: 6;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-width: 152px;
  padding: 10px 14px 10px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 15px 38px rgba(34, 57, 66, .16);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.wz-assembly-chip > svg {
  width: 32px;
  height: 32px;
  padding: 7px;
  border-radius: 50%;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wz-assembly-chip > span { display: grid; gap: 2px; }
.wz-assembly-chip b { color: var(--wz-ink); font-size: 10px; line-height: 1.25; }
.wz-assembly-chip small { color: #819097; font-size: 7px; line-height: 1.25; }

.wz-chip-path {
  top: 124px;
  left: -22px;
  color: var(--wz-blue);
}

.wz-chip-path > svg { background: #eaf8fe; }

.wz-chip-growth {
  z-index: 7;
  top: 61px;
  right: -13px;
  color: #fff;
  background: var(--wz-blue);
}

.wz-chip-growth b { color: #fff; }
.wz-chip-growth small { color: rgba(255, 255, 255, .74); }
.wz-chip-growth > svg { background: rgba(255, 255, 255, .13); }

.wz-assembly-delivery {
  position: absolute;
  z-index: 7;
  right: 12px;
  bottom: 39px;
  display: grid;
  grid-template-columns: 39px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-width: 310px;
  padding: 14px 18px 14px 14px;
  border-radius: 20px;
  color: #fff;
  background: var(--wz-night);
  box-shadow: 0 21px 48px rgba(27, 45, 53, .23);
}

.wz-delivery-icon {
  display: grid;
  width: 39px;
  height: 39px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--wz-blue);
}

.wz-delivery-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wz-assembly-delivery > span:last-child { display: grid; gap: 4px; }
.wz-assembly-delivery b { font-size: 11px; letter-spacing: -.01em; }

.wz-assembly-note {
  position: absolute;
  z-index: 2;
  bottom: 0;
  left: 5px;
  margin: 0;
  color: #75858c;
  font-family: var(--utility, "Helvetica Neue", Arial, sans-serif);
  font-size: 8px;
  letter-spacing: .04em;
}

.wz-assembly-note > span { color: var(--wz-deep); font-weight: 780; }

/* One restrained assembly sequence. JS adds is-running once and never loops. */
.wz-assembly.is-ready::before { opacity: 0; transform: translate(-50%, -50%) scale(.75); }
.wz-assembly.is-ready::after { opacity: 0; transform: translate(-50%, -50%) scale(.83); }
.wz-assembly.is-ready .wz-assembly-brief { opacity: 0; transform: translateY(-12px); }
.wz-assembly.is-ready .wz-assembly-blueprint { opacity: 0; transform: rotate(-11deg) translate(-44px, 27px) scale(.88); }
.wz-assembly.is-ready .wz-assembly-browser { opacity: 0; transform: translate(24px, 12px) scale(.91); }
.wz-assembly.is-ready .wz-assembly-mobile { opacity: 0; transform: translate(-18px, 18px) rotate(-7deg) scale(.9); }
.wz-assembly.is-ready .wz-assembly-chip { opacity: 0; transform: scale(.82); }
.wz-assembly.is-ready .wz-assembly-delivery { opacity: 0; transform: translateY(13px) scale(.94); }
.wz-assembly.is-ready .wz-assembly-note { opacity: 0; }

.wz-assembly.is-running::before {
  opacity: 1;
  transform: translate(-50%, -50%) scale(.92);
  transition: opacity .8s ease, transform 1s cubic-bezier(.2, .75, .25, 1);
}

.wz-assembly.is-running::after {
  opacity: 1;
  transform: translate(-50%, -50%);
  transition: opacity .9s ease .16s, transform 1.1s cubic-bezier(.2, .75, .25, 1) .16s;
}

.wz-assembly.is-running .wz-assembly-brief {
  opacity: 1;
  transform: none;
  transition: opacity .48s ease .18s, transform .62s cubic-bezier(.2, .78, .25, 1) .18s;
}

.wz-assembly.is-running .wz-assembly-blueprint {
  opacity: 1;
  transform: rotate(-5.5deg) translate(-24px, 10px);
  transition: opacity .58s ease .58s, transform .88s cubic-bezier(.2, .78, .25, 1) .58s;
}

.wz-assembly.is-running .wz-assembly-browser {
  opacity: 1;
  transform: none;
  transition: opacity .62s ease 1.08s, transform .92s cubic-bezier(.16, .82, .26, 1) 1.08s;
}

.wz-assembly.is-running .wz-chip-path {
  opacity: 1;
  transform: none;
  transition: opacity .38s ease 1.56s, transform .58s cubic-bezier(.2, .84, .24, 1.2) 1.56s;
}

.wz-assembly.is-running .wz-chip-growth {
  opacity: 1;
  transform: none;
  transition: opacity .38s ease 1.94s, transform .58s cubic-bezier(.2, .84, .24, 1.2) 1.94s;
}

.wz-assembly.is-running .wz-assembly-mobile {
  opacity: 1;
  transform: none;
  transition: opacity .42s ease 2.22s, transform .68s cubic-bezier(.2, .84, .24, 1.08) 2.22s;
}

.wz-assembly.is-running .wz-assembly-delivery {
  opacity: 1;
  transform: none;
  transition: opacity .42s ease 2.62s, transform .68s cubic-bezier(.2, .82, .24, 1.05) 2.62s;
}

.wz-assembly.is-running .wz-assembly-note {
  opacity: 1;
  transition: opacity .42s ease 2.75s;
}

.wz-assembly.is-complete .wz-assembly-browser > header > b { color: var(--wz-blue); }
.wz-assembly.is-complete .wz-delivery-icon { box-shadow: 0 0 0 7px rgba(0, 159, 232, .13); }

@media (max-width: 1180px) and (min-width: 1081px) {
  .page-independent-site .inner-hero-layout {
    grid-template-columns: minmax(0, 1fr) minmax(425px, .84fr);
    gap: 32px;
  }
  .wz-assembly { width: 100%; min-height: 500px; margin-right: 58px; }
  .wz-assembly-browser { width: calc(100% - 39px); height: 330px; }
  .wz-assembly-blueprint { height: 316px; }
  .wz-assembly-mobile { top: 225px; width: 102px; height: 187px; }
  .wz-assembly-delivery { bottom: 37px; min-width: 280px; }
}

@media (max-width: 1080px) {
  .page-independent-site .inner-hero {
    min-height: 0;
    padding: 116px 0 64px;
  }
  .page-independent-site .inner-hero-layout { grid-template-columns: 1fr; gap: 42px; min-height: 0; }
  .wz-assembly { justify-self: center; width: min(690px, calc(100% - 36px)); min-height: 520px; margin: 0; }
  .wz-assembly-browser { height: 350px; }
  .wz-assembly-browser figcaption { left: 88px; bottom: 68px; }
}

@media (max-width: 720px) {
  .page-independent-site .inner-hero { padding: 104px 0 20px; }
  .page-independent-site .inner-hero-layout { gap: 28px !important; }
  .page-independent-site .inner-hero h1 {
    font-size: clamp(34px, 9.2vw, 43px) !important;
    letter-spacing: -.07em !important;
    line-height: 1.1 !important;
  }
  .page-independent-site .inner-hero-copy > p:not(.eyebrow) {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
  }
  .page-independent-site .hero-actions { grid-template-columns: minmax(0, 1fr) auto; }
  .page-independent-site .hero-actions {
    display: flex !important;
    flex-wrap: nowrap;
  }
  .page-independent-site .hero-actions .button { width: auto !important; min-width: 0; }
  .page-independent-site .hero-actions .button-primary { flex: 1 1 auto; }
  .page-independent-site .hero-actions .button-ghost { flex: 0 0 54px; min-width: 54px; padding: 0 17px; font-size: 0; }
  .page-independent-site .hero-actions .button-ghost::before { content: "流程"; font-size: 11px; }
  .page-independent-site .hero-actions .button-ghost span { font-size: 14px; }

  .wz-assembly {
    justify-self: start;
    width: calc(100% - 8px);
    min-height: 344px;
    margin: 0 0 0 8px;
  }
  .wz-assembly::before { top: 46%; left: 53%; width: 390px; height: 390px; }
  .wz-assembly::after { top: 46%; left: 53%; width: 310px; height: 310px; box-shadow: 0 0 0 32px rgba(0, 159, 232, .025), 0 0 0 64px rgba(0, 159, 232, .014); }
  .wz-assembly-aura { top: 23px; right: 0; width: 125px; height: 125px; }
  .wz-assembly-brief { top: 0; left: -4px; min-width: 154px; padding: 10px 13px 11px; border-radius: 14px; }
  .wz-assembly-brief strong { margin-top: 4px; font-size: 12px; }
  .wz-assembly-brief small { display: none; }
  .wz-assembly-brief > span { font-size: 8px; }
  .wz-assembly-blueprint { top: 58px; right: 26px; width: 80%; height: 225px; border-radius: 18px 18px 48px 18px; background-size: 18px 18px, 18px 18px, auto; transform: rotate(-4deg) translate(-14px, 8px); }
  .wz-assembly-browser { top: 54px; right: 0; width: calc(100% - 31px); height: 235px; border-radius: 17px 17px 48px 17px; box-shadow: 0 24px 52px rgba(30, 53, 63, .20); }
  .wz-assembly-browser > header { height: 25px; grid-template-columns: repeat(3, 4px) minmax(0, 1fr) auto; padding: 0 9px; }
  .wz-assembly-browser > header > i { width: 4px; height: 4px; }
  .wz-assembly-browser > header > span { font-size: 9px; }
  .wz-assembly-browser > header > b { font-size: 8px; }
  .wz-assembly-browser figure { height: calc(100% - 25px); }
  .wz-assembly-browser figcaption { right: 15px; bottom: 56px; left: 50px; }
  .wz-assembly-browser figcaption span { font-size: 8px; }
  .wz-assembly-browser figcaption b { max-width: 230px; margin-top: 4px; font-size: 12px; }
  .wz-assembly-mobile { top: 157px; left: -5px; width: 73px; height: 134px; padding: 4px; border-width: 3px; border-radius: 16px 16px 24px 16px; }
  .wz-assembly-mobile > span { top: 6px; width: 20px; height: 3px; }
  .wz-assembly-mobile img { border-radius: 10px 10px 17px 10px; }
  .wz-assembly-chip { grid-template-columns: 24px minmax(0, 1fr); gap: 7px; min-width: 115px; padding: 7px 10px 7px 7px; }
  .wz-assembly-chip > svg { width: 24px; height: 24px; padding: 5px; }
  .wz-assembly-chip b { font-size: 11px; }
  .wz-assembly-chip small { display: none; }
  .wz-chip-path { top: 75px; left: -11px; }
  .wz-chip-growth { top: 31px; right: 43px; }
  .wz-assembly-delivery { right: 42px; bottom: 27px; grid-template-columns: 31px minmax(0, 1fr); gap: 9px; min-width: 236px; padding: 10px 12px 10px 10px; border-radius: 15px; }
  .wz-delivery-icon { width: 31px; height: 31px; }
  .wz-delivery-icon svg { width: 17px; height: 17px; }
  .wz-assembly-delivery small { display: none; }
  .wz-assembly-delivery b { font-size: 11px; }
  .wz-assembly-note { bottom: 0; left: 0; font-size: 10px; }
  .wz-assembly.is-ready .wz-assembly-blueprint { transform: rotate(-9deg) translate(-27px, 17px) scale(.9); }
  .wz-assembly.is-running .wz-assembly-blueprint { transform: rotate(-4deg) translate(-14px, 8px); }

  .page-independent-site .snk-contact-dock {
    right: 14px;
    bottom: 20px;
    width: 48px;
    height: 48px;
  }
  .page-independent-site .snk-contact-dock-toggle {
    width: 48px;
    min-width: 48px;
    min-height: 48px;
    padding: 11px;
    border-radius: 50%;
  }
  .page-independent-site .snk-contact-dock-toggle img { width: 26px; height: 26px; }
  .page-independent-site .snk-contact-dock-toggle span,
  .page-independent-site .snk-contact-dock-toggle small { display: none; }
  .page-independent-site .snk-contact-panel { bottom: 82px; }
}

@media (max-width: 390px) {
  .wz-assembly { width: calc(100% - 4px); margin-left: 4px; }
  .wz-chip-growth { right: 39px; }
}

@media (prefers-reduced-motion: reduce) {
  .wz-assembly,
  .wz-assembly *,
  .wz-assembly::before,
  .wz-assembly::after,
  .wz-assembly *::before,
  .wz-assembly *::after {
    animation: none !important;
    transition: none !important;
  }
}
