@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Oswald:wght@200..700&display=swap");
@media (max-width: 567px) {
  html {
    font-size: 2.5vw;
  }
}
@media (min-width: 568px) {
  html {
    font-size: 1.4285714286vw;
  }
}
@media (min-width: 1400px) {
  html {
    font-size: 20px;
  }
}
html body {
  all: unset;
  position: relative;
  display: grid;
  grid-template-areas: "title sns" "menu menu";
  justify-content: center;
  margin-bottom: 5em;
  font-family: "Noto sans", "Noto Sans JP", sans-serif;
  line-height: 1.5;
}
html body * {
  all: unset;
}
html body img {
  vertical-align: bottom;
}
html body h1 {
  margin: 5em 0 4em;
  grid-area: title;
}
html body h1 img {
  width: 24em;
}
html body ul {
  grid-area: menu;
  display: grid;
  grid-gap: 1em;
}
@media (max-width: 567px) {
  html body ul {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 568px) {
  html body ul {
    grid-template-columns: repeat(3, 1fr);
  }
}
html body ul li {
  display: grid;
  overflow: hidden;
  aspect-ratio: 3/4;
  border-radius: 1em;
  width: 18em;
}
html body ul li a {
  display: grid;
  grid-row-gap: 1.2em;
  position: relative;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  color: white;
  cursor: pointer;
  align-content: center;
  padding: 1.2em;
}
html body ul li a .name {
  display: grid;
  font-size: 1.9em;
}
html body ul li a .name small {
  font-size: 47%;
  font-family: "Oswald";
  letter-spacing: 0.045em;
}
html body ul li a .link img {
  width: 6.8em;
}
html body ul li a .bg {
  overflow: hidden;
  position: absolute;
  z-index: -1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: black;
}
html body ul li a .bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 600ms;
  opacity: 0.6;
}
@media (min-width: 568px) {
  html body ul li a:hover .bg img {
    opacity: 1;
    transform: scale(1.1);
  }
}
html body .sns {
  position: absolute;
  right: 0;
  top: 1em;
  grid-area: sns;
  display: flex;
  column-gap: 1em;
}
@media (max-width: 567px) {
  html body .sns {
    font-size: 1.4em;
  }
}
@media (min-width: 568px) {
  html body .sns {
    font-size: 1.2em;
  }
}
@media (min-width: 568px) {
  html body .sns {
    font-size: 1.2em;
  }
}
html body .sns a img {
  width: auto;
  height: 1.4em;
}
html body .sns a img[src*=x] {
  transform: scale(0.95);
}
html body .sns a img[src*=facebook] {
  transform: scale(1.05);
}
