@charset "UTF-8";
/*
 * Resources
 *
 * Your CSS reset needs text-size-adjust (probably):
 * https://kilianvalkhof.com/2022/css-html/your-css-reset-needs-text-size-adjust-probably/
 *
 * Normalize.css:
 * https://github.com/necolas/normalize.css/blob/master/normalize.css
 *
 * Sanitize.css:
 * https://csstools.github.io/sanitize.css/
 *
 * Reboot:
 * https://github.com/twbs/bootstrap/blob/main/scss/_reboot.scss#L58
 *
 * A Modern CSS Reset:
 * https://piccalil.li/blog/a-modern-css-reset/
 *
 * The New CSS Reset:
 * https://elad2412.github.io/the-new-css-reset/
 *
 * Josh Comeau’s CSS Reset:
 * https://www.joshwcomeau.com/css/custom-css-reset/
 *
 * CSS Remedy:
 * https://github.com/jensimmons/cssremedy/
 *
 * Open Props normalize:
 * https://open-props.style/
 *
 * Destyle.css:
 * https://github.com/nicolas-cusan/destyle.css
 */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  -ms-text-size-adjust: none;
      text-size-adjust: none; }

p {
  -webkit-margin-before: 0;
          margin-block-start: 0;
  -webkit-margin-after: 0;
          margin-block-end: 0; }

html, body {
  width: 100%;
  margin: 0;
  text-align: left;
  overflow-x: hidden; }

html {
  font-size: 62.5%;
  /* 10px, for ease of calculating scales with em */
  font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "MS Gothic", "ＭＳ ゴシック"; }

body {
  display: block;
  background-color: #e7cbab;
  color: #333;
  font-size: 1.6rem;
  line-height: 1.875;
  /* 3 / 1.6 */
  word-break: auto-phrase; }

ul {
  -webkit-margin-before: 0;
          margin-block-start: 0;
  -webkit-margin-after: 0;
          margin-block-end: 0;
  -webkit-padding-start: 2em;
          padding-inline-start: 2em; }

img, picture {
  max-width: 100%;
  display: block; }

/*
  Try to follow the typographic scale:
  https://spencermortensen.com/articles/typographic-scale/

  Given f_i = f_0 * r ^ (i/n) and:

  - n = 3
  - r = 1.5625
  - f_0 = 1.6
*/
h1 {
  font-size: 2.5rem;
  line-height: 1.2;
  /* 3 divided by 2.5 */ }

h2 {
  font-size: 2.1544rem;
  line-height: 1.3925;
  /* 3 divided by 2.1544 */
  margin-block: 1.5rem; }

h3 {
  font-size: 1.8566rem;
  line-height: 1.6159;
  /* 3 divided by 1.8566 */
  margin-block: 1.5rem; }

p {
  text-indent: 1em;
  text-align: justify;
  text-justify: inter-character; }

a {
  color: #3366CC; }

a:focus, a:hover {
  color: #ff0000; }

figure {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0; }

dd {
  -webkit-margin-start: 1em;
          margin-inline-start: 1em; }

.green-arrow {
  background-image: url("../images/link_g.jpg");
  background-repeat: no-repeat;
  background-position: 0 0.6rem;
  padding-left: calc(max(1.5em, 25px));
  /* at least as wide as the icon */ }

.yellow-arrow {
  background-image: url("../images/link_y.jpg");
  background-repeat: no-repeat;
  background-position: 0 0.6rem;
  padding-left: calc(max(1.5em, 25px));
  /* at least as wide as the icon */ }

p.asterisk {
  position: relative;
  padding-inline: 2em;
  margin-block: 2em;
  text-indent: 0; }
  p.asterisk::before {
    content: "＊";
    font-weight: bold;
    color: #ff825e;
    position: absolute;
    left: 0;
    top: 0; }

.bold {
  font-weight: bold; }

.center-block {
  display: block;
  width: 100%;
  text-align: center; }
  .center-block > img {
    display: inline; }

.fit {
  width: 100%; }

.heading-icon {
  background-image: url("../images/midashi.jpg");
  background-repeat: no-repeat;
  background-position: 0 0.7rem;
  margin-left: -20px;
  padding-left: 20px; }

.indent {
  margin-left: calc(max(1.5em, 25px));
  /* match padding in .link-icon */ }

.no-text-indent {
  text-indent: 0; }

.inset {
  margin: 3rem 2.5rem; }
  .inset > :first-child {
    margin-top: 0; }
  .inset > :last-child {
    margin-bottom: 0; }

ul.no-bullets {
  list-style-type: none; }

.plain {
  text-decoration: none; }

.text-right {
  text-align: right; }

.wrapper {
  max-width: 75rem;
  min-height: 100vh;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  background-color: #fff;
  -webkit-box-shadow: 10px 0px 10px rgba(0, 0, 0, 0.2), -10px 0px 10px rgba(0, 0, 0, 0.2);
          box-shadow: 10px 0px 10px rgba(0, 0, 0, 0.2), -10px 0px 10px rgba(0, 0, 0, 0.2); }

.back-button {
  display: block;
  margin-top: 6rem;
  width: 100%;
  height: 3rem;
  text-align: center; }
  .back-button > img {
    display: inline; }

@media (min-width: 35em) {
  dl.dl-inline {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: auto 1fr;
    grid-template-columns: auto 1fr;
    /* Shrink term, expand definition */
    gap: 0.5em 2em;
    /* Spacing between rows and columns, respectively */
    align-items: center;
    /* Vertically center row content */ }
    dl.dl-inline dt {
      position: relative;
      text-align: right;
      font-weight: bold; }
    dl.dl-inline:not(.no-colon) dt::after {
      content: "：";
      position: absolute;
      top: 50%;
      /* Center vertically */
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%);
      /* Shift up by half its height */
      left: 100%;
      /* Position to the right of the term */
      margin-left: 0.5em;
      /* Push the colon into the gap between columns */ }
    dl.dl-inline dd {
      margin: 0;
      /* Remove default margins */ } }

.gallery-fit {
  display: -ms-grid;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(225px, 1fr));
  margin: 15px 0; }

.gallery-fill {
  display: -ms-grid;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(225px, 1fr));
  margin: 15px 0; }

.home {
  flex-grow: 1;
  display: -ms-grid;
  display: grid;
  gap: 20px;
  -ms-grid-columns: .45fr .55fr;
  grid-template-columns: .45fr .55fr;
  padding: 0 10px;
  background-image: url("../images/td_backimage.jpg");
  background-repeat: no-repeat;
  background-position: right bottom; }
  @media (max-width: 35em) {
    .home {
      /* 560px by default */
      -ms-grid-columns: 1fr;
      grid-template-columns: 1fr; } }
.faculty-info {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0 2rem;
  margin-block: 3rem; }

.faculty-name {
  flex: 0 0 5em;
  order: 1;
  font-size: 2.4rem;
  line-height: 1.25;
  margin-block: 0; }

.faculty-position {
  flex: 0 0 10em;
  order: 2;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.6667;
  margin-block: 0; }

.faculty-email {
  flex: 0 0 16em;
  order: 3;
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 2.1429;
  margin-block: 0; }

footer {
  position: relative;
  font-size: 1.2975rem;
  line-height: 0.5;
  /* Vertically align text */
  display: flex;
  align-items: center;
  /* Show above the site wrapper */
  z-index: 1;
  height: 62px;
  /* Height of footer_bg.jpg */ }
  footer address {
    flex-grow: 1;
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1em;
    font-style: normal;
    font-weight: bold;
    margin-inline: 5px;
    z-index: 2;
    /* Show above the background image */ }
    footer address span {
      flex: 0 0 auto;
      white-space: nowrap; }
  footer img {
    position: absolute;
    /* Show behind text */
    top: 0;
    height: 62px;
    /* Height of footer_bg.jpg */ }

nav ul {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 3rem;
  -webkit-padding-start: 0;
          padding-inline-start: 0; }

nav a {
  font-weight: bold;
  text-decoration: none; }
