body {
  &.demo-page {
    margin: 0;
    padding: 24px;
    font-family: sans-serif;
    min-height: 100vh;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  &.demo-page--full {
    padding: 0;
    justify-content: flex-start;
    align-items: stretch;
    background: #fff;
  }
}

.demo-page {
  > .demo-list,
  > .sample,
  > .gradient-text,
  > .mask-transition,
  > .sprite-animation,
  > .canvas-demo,
  > .svg-demo {
    width: 100%;
    max-width: 960px;
  }

  > .sample {
    justify-content: center;
  }

  > .canvas-demo {
    text-align: center;

    &.canvas-demo--full {
      position: relative;
      max-width: none;
      height: 100vh;
      text-align: inherit;
    }
  }

  > .sprite-animation {
    display: flex;
    justify-content: center;
  }
}

.canvas-demo--full {
  canvas {
    display: block;
    width: 100%;
    height: 100%;
  }
}

.canvas-demo__hint {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
  pointer-events: none;
  user-select: none;
}
