@font-face {
  font-family: 'Bahnschrift';
  src: url('fonts/Bahnschrift-400.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: block;
}

@font-face {
  font-family: 'afra';
  src: url('fonts/afra.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: block;
}

@font-face {
  font-family: 'yekan';
  src: url('fonts/yekan.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: block;
}
html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  background: #1a1a1a;
  overflow: hidden;
}

#viewport {
  position: relative;
  width: 100%;
  height: 100%;
}

#stage {
  position: absolute;
  left: 0;
  top: 0;
  transform-origin: 0 0;
  background: #fff;
}

.slide {
  position: absolute;
  inset: 0;
  display: none;
  overflow: hidden;
}

.slide.active {
  display: block;
}

.slide .bg {
  position: absolute;
  inset: 0;
}

.shp {
  position: absolute;
}

.shp .geom {
  position: absolute;
  inset: 0;
}

.shp a {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.grp-inner {
  position: absolute;
  transform-origin: 0 0;
}

.cell {
  position: absolute;
  box-sizing: border-box;
  overflow: hidden;
}

.cell .cellbg {
  position: absolute;
  inset: 0;
}

.txt-l {
  position: absolute;
  overflow: visible;
}

.txt-l .run {
  position: absolute;
  white-space: pre;
}

.txt {
  position: absolute;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow: hidden;
  white-space: pre-wrap;
  word-wrap: break-word;
}

.txt p {
  margin: 0;
  line-height: 1.2;
}
