@font-face {
  font-family: "Atkinson Hyperlegible Next";
  src: url(/fonts/AtkinsonHyperlegibleNext-VariableFont_wght.ttf) format(truetype) tech(variations);
  font-weight: 200 800;
  font-display: swap; }

@font-face {
  font-family: "Atkinson Hyperlegible Next";
  src: url(/fonts/AtkinsonHyperlegibleNext-Italic-VariableFont_wght.ttf) format(truetype) tech(variations);
  font-weight: 200 800;
  font-style: italic;
  font-display: swap; }

@font-face {
  font-family: "Noto Sans JP";
  src: url(/fonts/NotoSansJP-VariableFont_wght.ttf) format(truetype) tech(variations);
  font-weight: 100 900;
  font-display: swap; }

:root {
  --fallback-text-color: #000000;
  --theme-color: #8000b3;
  --image-border-color: #8000b3; }

@media (prefers-color-scheme: dark) {
  :root {
    --fallback-text-color: #fbfbfe;
    --theme-color: #d040ff;
    --image-border-color: #ab52c8; } }

body {
  margin: 30px auto;
  max-width: 650px;
  line-height: 1.6;
  font-size: 20px;
  padding: 0 10px;
  font-family: "Atkinson Hyperlegible Next", "Noto Sans JP", sans;
  text-align: justify; }

h1, h2, h3, h4 {
  line-height: 1.2;
  text-align: center; }

header, #info {
  text-align: center; }

header {
  margin-bottom: 10px; }
  header h1 {
    margin-top: 10px;
    margin-bottom: 0; }
  header svg path {
    stroke: var(--theme-color); }

#name-ja {
  font-weight: bold;
  font-size: 32px;
  margin-bottom: 10px; }

#job-title {
  font-size: 24px; }

#info {
  margin-bottom: 30px; }
  #info div {
    margin-top: 10px;
    margin-bottom: 10px; }

#etacsufbo svg {
  fill: var(--fallback-text-color);
  display: block;
  margin: auto; }

#portfolio {
  border-top: 1px dotted var(--theme-color);
  margin-top: 30px;
  padding-top: 10px; }

#portfolio-section-header {
  margin-bottom: 35px; }

.portfolio-item {
  margin-bottom: 60px;
  position: relative; }
  .portfolio-item + .portfolio-item::before {
    content: "";
    width: 80%;
    height: 0;
    border-bottom: 1px dotted var(--theme-color);
    position: absolute;
    top: -25px;
    left: 10%; }

.portfolio-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0 0.5em;
  text-align: center;
  margin-bottom: 15px; }

.portfolio-title {
  font-weight: bold; }

.portfolio-subtitle::before {
  content: "("; }

.portfolio-subtitle::after {
  content: ")"; }

.portfolio-body {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px; }

.portfolio-text {
  min-width: calc(min(300px, 90%));
  flex-basis: 50%;
  flex-grow: 100;
  margin-bottom: -10px; }
  .portfolio-text > p:first-child {
    margin-top: 0; }
  .portfolio-text > p:last-child {
    margin-bottom: 0; }

.portfolio-image {
  flex-basis: 250px;
  max-height: 360px;
  min-width: 0;
  flex-grow: 1;
  display: flex;
  justify-content: center;
  align-items: center; }
  .portfolio-image > * {
    display: block;
    line-height: 0;
    border-radius: 15px;
    border: 3px solid var(--image-border-color);
    overflow: hidden; }
  .portfolio-image img {
    max-width: 100%;
    max-height: 360px; }
