.page-products {
  --wb-panel: rgba(20, 20, 34, .72);
  --wb-hair: rgba(122, 127, 154, .2);
  --wb-hair-strong: rgba(122, 127, 154, .38);
  position: relative;
  overflow-x: clip;
  background: var(--wk-night);
}

.page-products h2 {
  font-size: clamp(1.6rem, 4.6vw, 2.9rem);
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: -.02em;
  color: var(--wk-mist);
  margin: .45rem 0 1rem;
}

.page-products h3 {
  font-size: 1.06rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--wk-mist);
  margin: 0 0 .5rem;
}

.page-products p {
  color: rgba(244, 245, 255, .78);
}

.page-products figure {
  margin: 0;
}

.page-products img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: var(--wk-radius);
  border: 1px solid var(--wb-hair);
}

.page-products a {
  color: var(--wk-green);
}

.page-products a.wk-btn {
  color: inherit;
}

/* ---------- hero ---------- */

.wb-hero {
  position: relative;
  padding: clamp(2rem, 6vw, 3.6rem) 0 clamp(2rem, 6vw, 3.4rem);
  background:
    radial-gradient(120% 92% at 90% 2%, rgba(108, 59, 255, .44), transparent 58%),
    radial-gradient(72% 60% at 4% 104%, rgba(57, 255, 136, .14), transparent 62%),
    linear-gradient(178deg, var(--wk-night) 0%, var(--wk-deep) 62%, #150C2C 100%);
  border-bottom: 1px solid var(--wb-hair);
}

.wb-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0 auto;
  width: min(46vw, 26rem);
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--wk-green) 55%, var(--wk-yellow));
  opacity: .8;
}

.wb-hero__title {
  font-size: clamp(2.1rem, 8vw, 4.9rem);
  font-weight: 900;
  line-height: .98;
  letter-spacing: -.035em;
  margin: .5rem 0 1.1rem;
  max-width: 20ch;
  background: linear-gradient(102deg, var(--wk-mist) 28%, #C6B4FF 64%, var(--wk-green) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.wb-hero__lead {
  max-width: 62ch;
}

.wb-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  margin: 1.6rem 0 0;
}

.wb-figures {
  list-style: none;
  padding: 0;
  margin: 2.2rem 0 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--wb-hair);
  border: 1px solid var(--wb-hair);
  border-radius: var(--wk-radius);
  overflow: hidden;
}

.wb-figures li {
  background: var(--wb-panel);
  padding: 1rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: .15rem;
}

.wb-figures strong {
  font-family: var(--wk-font-mono);
  font-weight: 700;
  font-size: clamp(1.5rem, 5.4vw, 2rem);
  letter-spacing: -.02em;
  color: var(--wk-green);
}

.wb-figures span {
  font-family: var(--wk-font-mono);
  font-size: .72rem;
  letter-spacing: .08em;
  color: var(--wk-steel);
}

/* ---------- anchor rail ---------- */

.wb-anchorbar {
  border-bottom: 1px solid var(--wb-hair);
  background: rgba(10, 10, 18, .9);
}

.wb-anchorbar__inner {
  display: flex;
  gap: .5rem;
  overflow-x: auto;
  padding: .85rem 0;
  scrollbar-width: none;
}

.wb-anchorbar__inner::-webkit-scrollbar {
  display: none;
}

.wb-anchorbar a {
  flex: 0 0 auto;
  font-family: var(--wk-font-mono);
  font-size: .74rem;
  letter-spacing: .07em;
  text-decoration: none;
  color: var(--wk-steel);
  border: 1px solid var(--wb-hair);
  border-radius: 999px;
  padding: .42rem .9rem;
  transition: color .25s var(--wk-ease), background .25s var(--wk-ease), border-color .25s var(--wk-ease);
}

.wb-anchorbar a:hover,
.wb-anchorbar a:focus-visible {
  color: var(--wk-night);
  background: var(--wk-yellow);
  border-color: var(--wk-yellow);
}

/* ---------- 01 eval ---------- */

.wb-eval__grid {
  display: grid;
  gap: 1.8rem;
}

.wb-eval__media img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.wb-checklist {
  list-style: none;
  padding: 0;
  margin: 1.4rem 0 0;
  display: grid;
  gap: .6rem;
}

.wb-checklist li {
  position: relative;
  padding-left: 1.5rem;
  font-size: .95rem;
  color: rgba(244, 245, 255, .8);
  line-height: 1.7;
}

.wb-checklist li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: .62rem;
  height: .62rem;
  border-radius: 2px;
  background: var(--wk-green);
  box-shadow: 0 0 12px rgba(57, 255, 136, .55);
}

.wb-note {
  margin-top: 1.1rem;
  font-size: .88rem;
  color: var(--wk-steel);
}

.wb-note a {
  color: var(--wk-yellow);
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 233, 59, .45);
}

.wb-metrics {
  list-style: none;
  padding: 0;
  margin: 2.4rem 0 0;
  display: grid;
  gap: .9rem;
}

.wb-metric {
  position: relative;
  padding: 1.15rem 1.05rem 1.6rem;
  background: var(--wb-panel);
  border: 1px solid var(--wb-hair);
  border-radius: var(--wk-radius-sm);
  overflow: hidden;
  transition: transform .3s var(--wk-ease), border-color .3s var(--wk-ease);
}

.wb-metric:hover {
  transform: translateY(-4px);
  border-color: var(--wk-hair-strong);
}

.wb-metric::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 3px;
  background: linear-gradient(90deg, var(--wk-purple), var(--wk-green));
  opacity: .7;
}

.wb-metric__no {
  display: block;
  font-family: var(--wk-font-mono);
  font-size: .72rem;
  letter-spacing: .1em;
  color: var(--wk-orange);
  margin-bottom: .35rem;
}

.wb-metric strong {
  display: block;
  font-size: 1.02rem;
  color: var(--wk-mist);
  margin-bottom: .3rem;
}

.wb-metric p {
  margin: 0;
  font-size: .88rem;
  line-height: 1.65;
}

/* ---------- 02 team ---------- */

.wb-team {
  background: linear-gradient(180deg, var(--wk-night) 0%, #120C24 50%, var(--wk-night) 100%);
  border-top: 1px solid var(--wb-hair);
  border-bottom: 1px solid var(--wb-hair);
}

.wb-team__head {
  max-width: 66ch;
}

.wb-team__body {
  display: grid;
  gap: 1.6rem;
  margin-top: 2rem;
}

.wb-team__panel {
  padding: 1.5rem 1.3rem;
  background: var(--wb-panel);
  border: 1px solid var(--wb-hair);
  border-radius: var(--wk-radius);
  border-left: 2px solid var(--wk-purple);
}

.wb-panel__label {
  margin: 0 0 .9rem;
  font-family: var(--wk-font-mono);
  font-size: .74rem;
  letter-spacing: .1em;
  color: var(--wk-steel);
}

.wb-dims {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.wb-dims li {
  font-family: var(--wk-font-mono);
  font-size: .78rem;
  letter-spacing: .04em;
  color: var(--wk-mist);
  background: rgba(108, 59, 255, .14);
  border: 1px solid var(--wb-hair-strong);
  border-radius: 999px;
  padding: .4rem .85rem;
}

.wb-panel__foot {
  margin: 1.1rem 0 0;
  font-size: .9rem;
  line-height: 1.7;
}

.wb-team__quick {
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--wb-hair);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .6rem;
}

.wb-team__quick .wk-mono {
  color: var(--wk-green);
  font-size: .76rem;
  letter-spacing: .08em;
}

.wb-team__quick span:last-child {
  font-size: .9rem;
  color: rgba(244, 245, 255, .78);
}

.wb-team__media img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

/* ---------- 03 shots ---------- */

.wb-shots__grid {
  display: grid;
  gap: 1.8rem;
}

.wb-shots__media img {
  width: 100%;
  aspect-ratio: 10 / 7;
  object-fit: cover;
}

.wb-pulse {
  list-style: none;
  padding: 0;
  margin: 1.4rem 0 0;
  display: grid;
  gap: .7rem;
}

.wb-pulse li {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  font-size: .95rem;
  line-height: 1.7;
  color: rgba(244, 245, 255, .82);
}

.wb-dot {
  flex: 0 0 auto;
  width: .5rem;
  height: .5rem;
  margin-top: .62em;
  border-radius: 50%;
  background: var(--wk-green);
  box-shadow: 0 0 0 0 rgba(57, 255, 136, .55);
  animation: wb-pulse 2.4s var(--wk-ease) infinite;
}

@keyframes wb-pulse {
  0% { box-shadow: 0 0 0 0 rgba(57, 255, 136, .55); }
  70% { box-shadow: 0 0 0 .5rem rgba(57, 255, 136, 0); }
  100% { box-shadow: 0 0 0 0 rgba(57, 255, 136, 0); }
}

.wb-refresh {
  margin-top: 1.5rem;
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .9rem 1rem;
  border: 1px solid var(--wb-hair);
  border-radius: var(--wk-radius-sm);
  background: rgba(20, 20, 34, .6);
}

.wb-refresh .wk-mono {
  font-size: .74rem;
  letter-spacing: .08em;
  color: var(--wk-steel);
}

.wb-refresh__val {
  color: var(--wk-yellow) !important;
}

.wb-refresh__track {
  flex: 1;
  height: 4px;
  border-radius: 999px;
  background: rgba(122, 127, 154, .2);
  overflow: hidden;
}

.wb-refresh__track i {
  display: block;
  height: 100%;
  width: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--wk-purple), var(--wk-green));
  transform-origin: left center;
  animation: wb-sweep 6s var(--wk-ease) infinite;
}

@keyframes wb-sweep {
  0% { transform: scaleX(.08); }
  70% { transform: scaleX(1); }
  100% { transform: scaleX(1); opacity: .35; }
}

/* ---------- 04 screens ---------- */

.wb-screens__head {
  max-width: 64ch;
}

.wb-screens__media {
  margin-top: 2rem;
}

.wb-screens__media img {
  width: 100%;
  aspect-ratio: 14 / 9;
  object-fit: cover;
}

.wb-steps {
  list-style: none;
  padding: 0;
  margin: 1.8rem 0 0;
  display: grid;
  gap: .9rem;
  counter-reset: wb-step;
}

.wb-steps li {
  position: relative;
  padding: 1.15rem 1.1rem;
  background: linear-gradient(150deg, rgba(46, 26, 94, .5), rgba(20, 20, 34, .7));
  border: 1px solid var(--wb-hair);
  border-radius: var(--wk-radius-sm);
}

.wb-steps__no {
  display: block;
  font-family: var(--wk-font-mono);
  font-size: .72rem;
  letter-spacing: .1em;
  color: var(--wk-green);
  margin-bottom: .35rem;
}

.wb-steps li p {
  margin: 0;
  font-size: .9rem;
  line-height: 1.7;
}

/* ---------- 05 scenes ---------- */

.wb-scenes {
  background: linear-gradient(180deg, var(--wk-night), #100A22 60%, var(--wk-night));
  border-top: 1px solid var(--wb-hair);
}

.wb-scenes__head {
  max-width: 58ch;
}

.wb-filter {
  margin-top: 1.6rem;
}

.wb-scenegrid {
  list-style: none;
  padding: 0;
  margin: 1.6rem 0 0;
  display: grid;
  gap: .9rem;
}

.wb-scene {
  padding: 1.3rem 1.2rem;
  background: var(--wb-panel);
  border: 1px solid var(--wb-hair);
  border-top: 2px solid transparent;
  border-radius: var(--wk-radius);
  transition: transform .3s var(--wk-ease), border-color .3s var(--wk-ease), background .3s var(--wk-ease);
}

.wb-scene:hover {
  transform: translateY(-4px);
  border-top-color: var(--wk-green);
  background: rgba(28, 22, 50, .8);
}

.wb-scene[hidden],
.wb-scene.is-hidden {
  display: none;
}

.wb-scene__tag {
  margin: 0 0 .55rem;
  font-family: var(--wk-font-mono);
  font-size: .72rem;
  letter-spacing: .1em;
  color: var(--wk-orange);
}

.wb-scene p:last-child {
  margin: 0;
  font-size: .9rem;
  line-height: 1.72;
}

/* ---------- 06 version ---------- */

.wb-version__grid {
  display: grid;
  gap: 1.8rem;
}

.wb-updates {
  list-style: none;
  padding: 0;
  margin: 1.6rem 0 0;
}

.wb-updates li {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "key val"
    "desc desc";
  gap: .2rem .9rem;
  padding: .95rem 0;
  border-bottom: 1px dashed var(--wb-hair);
}

.wb-updates__key {
  grid-area: key;
  font-size: .98rem;
  font-weight: 700;
  color: var(--wk-mist);
}

.wb-updates__val {
  grid-area: val;
  justify-self: start;
  font-family: var(--wk-font-mono);
  font-size: .76rem;
  letter-spacing: .06em;
  color: var(--wk-night);
  background: var(--wk-green);
  border-radius: 999px;
  padding: .18rem .6rem;
}

.wb-updates__desc {
  grid-area: desc;
  font-size: .86rem;
  color: var(--wk-steel);
  line-height: 1.65;
}

.wb-version__media img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

/* ---------- cta ---------- */

.wb-cta__inner {
  position: relative;
  overflow: hidden;
  padding: clamp(1.7rem, 6vw, 3.2rem);
  border: 1px solid var(--wb-hair-strong);
  border-radius: calc(var(--wk-radius) + 8px);
  background: linear-gradient(122deg, var(--wk-deep) 0%, var(--wk-gradient) 46%, rgba(108, 59, 255, .42) 100%);
}

.wb-cta__inner::before {
  content: "";
  position: absolute;
  inset: -45% -12% auto auto;
  width: min(60vw, 22rem);
  height: min(60vw, 22rem);
  background: radial-gradient(circle, rgba(57, 255, 136, .22), transparent 62%);
  pointer-events: none;
}

.wb-cta__inner h2 {
  position: relative;
  max-width: 30ch;
}

.wb-cta__inner p {
  position: relative;
  max-width: 58ch;
  margin: 0 0 1.5rem;
}

.wb-cta__actions {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
}

/* ---------- responsive ---------- */

@media (min-width: 48rem) {
  .wb-figures {
    grid-template-columns: repeat(4, 1fr);
  }

  .wb-metrics {
    grid-template-columns: repeat(4, 1fr);
  }

  .wb-scenegrid {
    grid-template-columns: repeat(2, 1fr);
  }

  .wb-steps {
    grid-template-columns: repeat(3, 1fr);
  }

  .wb-team__body {
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 2.4rem;
  }
}

@media (min-width: 56rem) {
  .wb-eval__grid {
    grid-template-columns: 1.05fr .95fr;
    gap: 3rem;
    align-items: center;
  }

  .wb-shots__grid {
    grid-template-columns: .88fr 1fr;
    gap: 2.8rem;
    align-items: center;
  }

  .wb-version__grid {
    grid-template-columns: 1fr .82fr;
    gap: 2.8rem;
    align-items: center;
  }
}

@media (min-width: 70rem) {
  .wb-scenegrid {
    grid-template-columns: repeat(4, 1fr);
  }

  .wb-hero {
    padding-top: clamp(2.4rem, 5vw, 4.2rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .wb-dot,
  .wb-refresh__track i {
    animation: none;
  }

  .wb-metric,
  .wb-scene {
    transition: none;
  }
}

.page-products {
  --wk-hair-strong: currentColor;
}
