body {
    background-color: whitesmoke;
    color: dimgray;
    margin: 0;
}

a {
    background-color: whitesmoke;
    color: dimgray;
}

.wrapper {
    min-height: calc(100vh - 3ex);
}

header {
    text-align: center;
    padding: 3ex 0;
    margin: 0 auto;
    font-size: 30px;
    font-style: normal;
    font-weight: 700;
}

header > a > p {
    font-size: initial;
}

.title-link {
    text-decoration: none;
    color: dimgray;
}

.title-link:hover {
    text-decoration: none;
    color: darkgray;
}

#topimage {
    margin: 3ex auto;
}

.main-image {
    position: relative;
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    margin: auto;
}

#profile-row {
    margin: 3ex auto 0 auto;
}

#profile-name {
    font-size: larger;
    margin-bottom: 1rem;
}

.add-mail {
    font-size: small;
}

.profile {
    margin: 3ex auto;
}

.profile > p {
    margin-top: 0;
    margin-bottom: 1rem;
}

.profile > ul {
    list-style: outside;
    margin: 0 0 1.5rem 1.5rem;
}

.below-list {
    margin-bottom: 0.2rem !important;
}

.indent {
    margin-left: 1.5rem;
}

blockquote {
  margin: 0;
}

blockquote p {
  padding: 15px;
  background: #eee;
  border-radius: 5px;
}

blockquote p::before {
  content: '\201C';
}

blockquote p::after {
  content: '\201D';
}

.portrait {
    position: relative;
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

figcaption {
    font-size: small;
    text-align: center;
}

#publications {
    margin: 0 auto;
}

.pub-list > ul, ol {
    list-style: outside;
    margin: 0 0 1.5rem 1.5rem;
}

.pub-list > ol {
    list-style: decimal;
    margin: 0 0 1.5rem 2.5rem;
}

#links {
    margin: 3ex 0 5ex 0;
}

ul.link-list {
    padding-inline-start: 0;
    justify-content: center;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    margin: auto;
}

ul.link-list > li {
    margin: 5px 10px;
    width: 200px;
    text-align: center;
    display: table;
}

ul.link-list > li > a {
    background-color: silver;
    margin: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 10px;
    box-sizing: border-box;
    text-decoration: none;
    font-weight: 500;
    color: darkslategray;
    display: table-cell;
    vertical-align: middle;
    font-family: "IBM Plex Mono Medium";
}

ul.link-list > li > a:hover {
    background-color: darkgray;
}

.container {
    margin: 0 auto;
    margin-top: 0px;
    margin-right: auto;
    margin-bottom: 0px;
    margin-left: auto;
    padding: 0;
}

.row {
    box-sizing: border-box;
    padding-bottom: 0;
    margin: 0 auto 0;
}

footer {
    position: relative;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 3ex;
    text-align: center;
}

#footer-copyright {
    font-size: 14px;
    color: #222222;
    text-align: center;
    padding: auto 10px 10px;
    margin: 0 auto 1rem;
    line-height: 3ex;
}

/* fonts */
@font-face {
  font-family: "IBM Plex Mono";
  src:
      url("https://www.sota-kaneko.com/fonts/IBMPlexMono-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "IBM Plex Mono Light";
  src:
      url("https://www.sota-kaneko.com/fonts/IBMPlexMono-Light.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: "IBM Plex Mono Bold";
  src:
      url("https://www.sota-kaneko.com/fonts/IBMPlexMono-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: "IBM Plex Mono SemiBold";
  src:
      url("https://www.sota-kaneko.com/fonts/IBMPlexMono-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
}

@font-face {
  font-family: "IBM Plex Mono Medium";
  src:
      url("https://www.sota-kaneko.com/fonts/IBMPlexMono-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
}

html * {
    font-family: "IBM Plex Mono";
    line-height: 1.3;
    filter: grayscale(100%);
}

h1 {
    font-family: "IBM Plex Mono SemiBold";
}

h2 {
    font-family: "IBM Plex Mono Bold";
}

h3 {
    font-family: "IBM Plex Mono SemiBold";
    border-top: 2px dashed dimgray;
}

h4 {
    font-family: "IBM Plex Mono Medium";
}
