:root {
  --color-brand: #06165e;
  --color-text: #333333;
  --color-line: #aaaaaa;
}

html {
  font-size: 62.5%;
}

body {
  color: var(--color-text);
  font-family:
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    "Yu Gothic",
    "Yu Gothic UI",
    Meiryo,
    sans-serif;
}

main {
  position: relative;
  z-index: 2;
}

.container {
  align-items: flex-start;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0px auto;
  max-width: 840px;
  min-height: 100vh;
  padding: 48px 0px;
  position: relative;
  width: calc(100% - 48px);
  z-index: 2;
}

.container p {
  font-size: 1.4rem;
  line-height: 1.8;
}
.container p a {
  text-decoration: underline;
}
.container p a:hover {
  text-decoration: none;
}

.introduction {
  height: 100vh;
  height: 100lvh;
  position: sticky;
  top: 0px;
}
.introduction__inner {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: 100vh;
  transition: all 500ms ease;
  justify-content: center;
}
.introduction__inner[aria-hidden="true"] {
  filter: blur(2px);
  opacity: 0.1;
}
.introduction__name {
  color: var(--color-brand);
  font-size: 4.8vw;
  line-height: 1;
  margin-top: 0.5em;
}
@media (min-width: 1000px) {
  .introduction__name {
    font-size: 4.8rem;
  }
  .introduction__inner[aria-hidden="true"] {
    filter: blur(1px);
  }
}

.logo {
  font-size: 2.0rem;
  margin: 0;
  max-width: 160px;
  width: 16vw;
}
.logo img {
  height: auto;
  width: 100%;
  vertical-align: top;
}


.letter__title {
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.4;
  word-break: keep-all;
}
.letter__text {
  margin-top: 24px;
}
.letter__text p:not(:first-child) {
  margin-top: 1.5em;
}

.portfolio__title {
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.4;
  word-break: keep-all;
}
.portfolio__text {
  margin-top: 24px;
}

.company__title {
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.4;
  word-break: keep-all;
}
.company__information {
  display: flex;
  flex-wrap: wrap;
  font-size: 1.4rem;
  line-height: 1.8;
  margin-top: 24px;
}
.company__information dt {
  flex: 0 0 5.5em;
}
.company__information dd {
  border-left: 1px solid var(--color-line);
  flex: 1 0 calc(100% - 5.5em);
  padding-left: 2em;
}
.company__information dd:not(:last-child) {
  margin-bottom: 20px;
}

.profile__title {
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.4;
  word-break: keep-all;
}
.profile__information {
  column-gap: 24px;
  display: flex;
  margin-top: 24px;
}
.profile__information p:not(:first-child) {
  margin-top: 1.5em;
}
.profile__image {
  display: block;
  flex: 0 0 200px;
  order: 3;
  width: 200px;
}
@media (max-width: 767px) {
  .profile__information {
    display: block;
  }
  .profile__image {
    flex-basis: 100px;
    margin-bottom: 24px;
    width: 100px;
  }
}

.contact__title {
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.4;
  word-break: keep-all;
}
.contact__text {
  margin-top: 24px;
}


.faq__title {
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.4;
  word-break: keep-all;
}
.faq__list {
  margin-top: 24px;
}
.faq__list > li {
  list-style: none;
}
.faq__list > li:not(:first-child) {
  margin-top: 24px;
}
.faq__question {
  font-size: 1.4rem;
  font-weight: 600;
}
.faq__question + p {
  margin-top: 8px;
}


.background {
  background: radial-gradient(farthest-corner at center, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.05) 100%);
  height: 100vh;
  left: 0px;
  position: fixed;
  top: 0px;
  width: 100%;
  z-index: 1;
}

