/* @font-face {
  font-family: 'music';
  src: url('music.woff2');
} */
--root {
  --var-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1)
}
* {
  box-sizing: border-box;
  font-family: sans-serif;
}
body {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: space-between;
  height: 100dvh;
  padding: 24px;
  overflow: hidden;
}
.canvas {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  height: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  position: relative;
}
canvas,
[data-input] {
  position: absolute;
  aspect-ratio: 1;
  max-width: 100%;
  max-height: 100%;
  position: absolute;
  inset: 0;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
canvas {
  border: 1px solid rgba(17,17,26,0.25);
  border-radius: 8px;
  display: block;
  box-shadow: 0px 4px 16px rgba(17,17,26,0.1), 0px 8px 32px rgba(17,17,26,0.05);
  image-rendering: crisp-edges;
  image-rendering: -webkit-optimize-contrast;
  transition: all .2s linear;
}
[data-input] {
  aspect-ratio: 1;
  outline: none;
  border: none;
  z-index: 1;
  text-align: center;
  width: 100%;
  height: 100%;
  opacity: 1;
  font-size: 15vmin;
  background: none;
  color: transparent;
  caret-color: black;
}
[data-input]:active + .canvas canvas,
[data-input]:focus + .canvas canvas,
[data-input]:hover + .canvas canvas {
  border: 1px solid rgba(17,17,26,.5);
  box-shadow: 0px 0px 16px rgba(17,17,26,0.05),
  0px 0px 0px rgba(17,17,26,0.1)
}
header, footer {
  position: relative;
  z-index: 4;
  width: 100%;
}
header {
  display: flex;
  justify-content: center;
  align-items: end;
  margin-bottom: 48px;
}
footer {
  text-align: center;
  margin-top: 48px;
}
footer button {
  background: none;
  border-radius: 100px;
  border: none;
  padding: 16px 32px;
  border: 1px solid rgba(17,17,26,0.25);
  color: inherit;
  font-size: 16px;
}
main {
  flex: 1;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.color-picker {
  display: flex;
  gap: 12px;
  border: 1px solid rgba(17,17,26,0.25);
  padding: 12px 18px;
  border-radius: 100px;
  box-shadow: 0px 1px 0px rgba(17,17,26,0.1),
  0px 4px 16px rgba(17,17,26,0.01),
  0px 8px 32px rgba(17,17,26,0.02);
}
.color-picker input {
  display: none;
}
.color-picker label {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
  display: inline-block;
  border: 1px solid rgba(17,17,26,0.25);
  transition: border 0.2s ease-in-out;
}
.color-picker label:hover,
.color-picker label:active {
  border: 1px solid rgba(17,17,26,0.25);
}
[data-color="white"] + label { background: white; }
[data-color="black"] + label { background: black; }
[data-color="red"] + label { background: red; }

.color-picker input:checked + label {
  outline: 3px solid hsl(207, 100%, 70%);
  border: 1px solid rgba(17,17,26,1);
  outline-offset: 2px;
}