:root {
  color-scheme: dark;
  --background-color: #222;
  --text1: #eee;
  --text2: #aaa;
  --link: #eee;
  --wash: #ffffff1a;
  --page-padding: clamp(12px, 5dvw, 48px);
  --content-width: 512px;
  --font-size: 15px;
  --line-height: 24px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html,
body {
  position: relative;
}

body {
  font-family: Satoshi, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-weight: 400;
  font-size: var(--font-size);
  font-variant: tabular-nums;
  line-height: 1.6;
  padding: 0 var(--page-padding);
  color: var(--text2);
  background-color: var(--background-color);
}

a {
  color: var(--text1);
  -webkit-tap-highlight-color: transparent;
  text-decoration: none;
}

a:focus-visible {
  outline: 2px solid var(--text1);
  outline-offset: 3px;
}

::selection {
  background: var(--text1);
  color: var(--background-color);
}

.detail {
  padding: var(--page-padding) 0;
  min-height: 100dvh;
}

.portrait-box {
  width: 120px;
  margin: 28px 0 0;
  padding: 8px;
  border: 1px solid var(--wash);
  background: var(--wash);
  overflow: hidden;
  transform: rotate(-3deg);
}

.portrait {
  display: block;
  width: 100%;
  height: 120px;
  object-fit: cover;
  object-position: center top;
  transform: scale(1.7);
  transform-origin: center 20%;
}

.detail h1 {
  max-width: var(--content-width);
  margin: 0 0 18px;
  color: var(--text1);
  font-size: var(--font-size);
  font-weight: 400;
  line-height: var(--line-height);
}

.limit {
  max-width: var(--content-width);
}

.detail p {
  margin-bottom: 18px;
  color: var(--text1);
  line-height: var(--line-height);
}

.detail p a {
  border-bottom: 1px solid var(--text1);
  color: var(--link);
}

.detail p a:hover,
.detail p a:active {
  color: var(--text2);
}

.back {
  margin-bottom: 28px;
}

.back a {
  border-bottom: 1px solid var(--text1);
  color: var(--link);
}

.back a:hover,
.back a:active {
  color: var(--text2);
}

.job {
  margin-bottom: 0;
  padding: 28px 0;
  border-top: 1px solid var(--wash, #ffffff1a);
}

.job:last-child {
  padding-bottom: 0;
}

.job h2 {
  margin: 0 0 4px;
  color: var(--text1);
  font-size: var(--font-size);
  font-weight: 500;
  line-height: var(--line-height);
}

.job-meta {
  margin-bottom: 12px;
  color: var(--text2);
  line-height: var(--line-height);
}

.job ul {
  padding-left: 1.15em;
  color: var(--text1);
  line-height: var(--line-height);
}

.job li {
  margin-bottom: 10px;
  list-style: disc;
}

.job li:last-child {
  margin-bottom: 0;
}
