.demo__canvas {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  container-type: inline-size;
  font-family: var(--font-body);
  line-height: 1.15;
}

.demo__info {
  display: grid;
  gap: 0.35rem;
  padding-top: 1rem;
}

.demo__badge {
  justify-self: start;
  padding: 0.15em 0.6em;
  background: var(--orange);
  color: var(--black);
  font-size: var(--text-eyebrow);
  font-weight: 600;
}

.demo__name {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.03em;
}

.demo--identity {
  display: grid;
  grid-template-columns: 7fr 5fr;
  background: var(--ivory);
  color: var(--black);
}

.demo--identity .mark {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2.5cqw;
  padding: 5cqw;
}

.demo--identity svg {
  width: 13cqw;
  height: 13cqw;
}

.demo--identity .demo__name {
  font-size: 9.5cqw;
  line-height: 1;
  color: var(--cobalt);
}

.demo--identity .specs {
  display: grid;
  grid-template-rows: repeat(4, 1fr);
}

.demo--identity .chip {
  display: flex;
  align-items: flex-end;
  padding: 1.5cqw 2.5cqw;
  font-size: max(10px, 2.2cqw);
  font-weight: 600;
}

.chip--cobalt { background: var(--cobalt); color: var(--ivory); }
.chip--orange { background: var(--orange); color: var(--black); }
.chip--black { background: var(--black); color: var(--ivory); }
.chip--type { font-family: var(--font-display); background: var(--ivory); border-left: 1px solid var(--black); }

.demo--web {
  background: var(--cobalt);
}

.demo--web .browser {
  position: absolute;
  left: 6cqw;
  top: 8cqw;
  width: 72cqw;
  height: 100%;
  background: var(--ivory);
  color: var(--black);
}

.demo--web .browser__bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.8cqw 3cqw;
  border-bottom: 1px solid var(--black);
  font-size: max(10px, 1.8cqw);
}

.demo--web .browser__bar .demo__name {
  font-size: max(12px, 2.6cqw);
  color: var(--cobalt);
}

.demo--web .browser__bar span + span {
  font-weight: 500;
}

.demo--web .browser__hero {
  padding: 5cqw 3cqw;
}

.demo--web .browser__title {
  max-width: 13em;
  margin-bottom: 2.5cqw;
  font-family: var(--font-display);
  font-size: 5cqw;
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.02em;
}

.demo--web .demo-button {
  display: inline-block;
  padding: 1.1cqw 2cqw;
  background: var(--orange);
  font-size: max(10px, 1.9cqw);
  font-weight: 600;
}

.demo--web .phone {
  position: absolute;
  right: 5cqw;
  bottom: 4cqw;
  width: 24cqw;
  height: 42cqw;
  padding: 1.2cqw;
  background: var(--black);
  border-radius: 3cqw;
}

.demo--web .phone__screen {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  padding: 3cqw 2.4cqw;
  background: var(--orange);
  border-radius: 2cqw;
  color: var(--black);
}

.demo--web .phone .demo__name {
  font-size: max(11px, 2.4cqw);
}

.demo--web .phone__title {
  font-family: var(--font-display);
  font-size: max(13px, 3.2cqw);
  font-weight: 700;
  line-height: 1.05;
}

.demo--social {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5cqw;
  align-items: center;
  padding: 0 4cqw;
  background: var(--orange);
}

.post {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  aspect-ratio: 4 / 5;
  padding: 2.4cqw;
  font-size: max(10px, 1.9cqw);
  font-weight: 500;
}

.post strong {
  font-family: var(--font-display);
  font-size: 4.3cqw;
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.02em;
}

.post--cobalt { background: var(--cobalt); color: var(--ivory); transform: translateY(-3cqw); }
.post--ivory { background: var(--ivory); color: var(--black); transform: translateY(3cqw); }
.post--black { background: var(--black); color: var(--ivory); transform: translateY(-1.5cqw); }

.demo--stationery {
  background: var(--ivory);
  color: var(--black);
}

.demo--stationery .sheet {
  position: absolute;
  left: 7cqw;
  top: 6cqw;
  width: 42cqw;
  height: 100%;
  padding: 4cqw;
  background: #fff;
  box-shadow: 0 1cqw 3cqw rgb(20 20 20 / 0.18);
}

.demo--stationery .sheet .demo__name {
  display: block;
  margin-bottom: 4cqw;
  font-size: max(13px, 3.6cqw);
  color: var(--cobalt);
}

.demo--stationery .sheet i {
  display: block;
  height: 0.7cqw;
  margin-bottom: 1.8cqw;
  background: var(--black);
  opacity: 0.2;
}

.demo--stationery .sheet i:nth-child(3n) {
  width: 70%;
}

.biz-card {
  position: absolute;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 40cqw;
  aspect-ratio: 9 / 5;
  padding: 2.2cqw 2.6cqw;
  font-size: max(10px, 1.8cqw);
  box-shadow: 0 1cqw 3cqw rgb(20 20 20 / 0.25);
}

.biz-card--front {
  right: 7cqw;
  top: 8cqw;
  background: var(--cobalt);
  color: var(--ivory);
}

.biz-card--front .demo__name {
  font-size: max(14px, 4.6cqw);
}

.biz-card--back {
  right: 11cqw;
  top: 33cqw;
  background: var(--orange);
  color: var(--black);
}

.biz-card--back strong {
  font-size: max(11px, 2.2cqw);
}

@container (max-width: 420px) {
  .browser__bar span + span {
    display: none;
  }

  .post span {
    display: none;
  }

  .post {
    justify-content: flex-end;
  }

  .biz-card--front span:not(.demo__name) {
    display: none;
  }
}
