.vz-blueprint {
  background-image:
    linear-gradient(rgba(96,165,250,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(96,165,250,.08) 1px, transparent 1px),
    radial-gradient(circle at 20% 10%, rgba(59,130,246,.16), transparent 30%);
  background-size: 34px 34px, 34px 34px, auto;
}
.vz-accent-ring { position: relative; }
.vz-accent-ring::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(59,130,246,.9), rgba(34,211,238,.15), rgba(167,139,250,.55));
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
}
.vz-corner-lines::after {
  content: "";
  position: absolute;
  right: 18px;
  top: 18px;
  width: 86px;
  height: 86px;
  border-top: 1px solid rgba(96,165,250,.55);
  border-right: 1px solid rgba(96,165,250,.55);
  opacity: .72;
}
.vz-ribbon {
  position: absolute;
  right: -34px;
  top: 18px;
  transform: rotate(35deg);
  width: 130px;
  text-align: center;
  padding: 4px 0;
  background: var(--vz-accent);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}
.vz-grain::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .08;
  pointer-events: none;
  background-image: url("../img/patterns/noise.svg");
}
