:root {
  --ink: #202018;
  --yellow: #ffdf3b;
  --pink: #f6a8c6;
  --cream: #fff7e6;
  --orange: #ff914d;
  --brown: #6b3c24;
}
* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  min-height: 100%;
  background: var(--yellow);
  color: var(--ink);
  font-family:
    -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei',
    sans-serif;
  -webkit-font-smoothing: antialiased;
}
body {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}
.stage {
  min-height: 100vh;
  padding: 0 20px;
  background-image:
    radial-gradient(rgba(32, 32, 24, 0.085) 0.7px, transparent 0.8px),
    repeating-linear-gradient(
      102deg,
      transparent 0 17px,
      rgba(255, 255, 255, 0.055) 18px 19px
    );
  background-size:
    8px 8px,
    31px 31px;
}
.sheet {
  position: relative;
  max-width: 600px;
  margin: 0 auto;
}
.masthead {
  display: flex;
  justify-content: space-between;
  padding: 20px 0 14px;
  border-bottom: 2px solid var(--ink);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.07em;
}
.cover,
.intro,
.complete {
  min-height: calc(100vh - 108px);
  display: flex;
  flex-direction: column;
  padding: 30px 0 22px;
}
.eyebrow {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.13em;
}
.cover h1,
.intro h1,
.result-title,
.type-name,
.card h3 {
  font-family: 'Kaiti SC', 'STKaiti', cursive;
  font-weight: 800;
}
.cover h1 {
  font-size: 72px;
  line-height: 1.03;
  letter-spacing: -4px;
  margin: 30px 0 22px;
}
.cover h1 em {
  font-style: normal;
  background: var(--pink);
  padding: 2px 9px;
}
.cover h2 {
  font-size: 28px;
  margin: 0 0 10px;
  font-family: 'Kaiti SC', 'STKaiti', cursive;
}
.cover-note {
  font-size: 16px;
  border-top: 1px solid var(--ink);
  padding-top: 14px;
  max-width: 360px;
}
.cover-spacer {
  height: 32px;
}
.button {
  width: 100%;
  border: 2px solid var(--ink);
  border-radius: 5px;
  background: var(--ink);
  color: var(--cream);
  font-size: 17px;
  font-weight: 700;
  padding: 17px 20px;
  text-align: left;
  box-shadow: 4px 4px 0 rgba(255, 247, 230, 0.55);
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
}
.button:active {
  transform: translate(3px, 3px);
  box-shadow: 1px 1px 0 rgba(255, 247, 230, 0.55);
}
.button span {
  float: right;
  font-size: 22px;
}
.secondary {
  border: 0;
  background: transparent;
  padding: 13px 0;
  font-size: 14px;
  font-weight: 700;
}
.intro h1 {
  font-size: 39px;
  line-height: 1.22;
  margin: 22px 0;
  padding: 18px 16px;
  background: var(--cream);
  border: 2px solid var(--ink);
  box-shadow: 6px 6px 0 var(--ink);
}
.intro p {
  font-size: 16px;
  line-height: 1.65;
  margin: 0 0 8px;
}
.intro .button,
.complete .button {
  margin-top: auto;
}
.question {
  padding: 10px 0 22px;
}
.nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  font-weight: 700;
}
.progress {
  height: 5px;
  border: 1px solid var(--ink);
  background: rgba(255, 255, 255, 0.3);
  margin: 7px 0 22px;
}
.progress i {
  display: block;
  height: 100%;
  background: var(--ink);
}
.question .eyebrow {
  display: inline-block;
  padding: 6px 9px;
  border: 1px solid var(--ink);
  background: var(--cream);
}
.question h1 {
  font-family: 'Kaiti SC', 'STKaiti', cursive;
  font-size: 31px;
  line-height: 1.24;
  margin: 9px 0 12px;
}
.question-copy {
  font-size: 16px;
  line-height: 1.62;
  margin: 8px 0;
}
.option {
  display: flex;
  width: 100%;
  border: 1.5px solid var(--ink);
  border-radius: 5px;
  background: rgba(255, 247, 230, 0.58);
  box-shadow: 3px 3px 0 rgba(32, 32, 24, 0.8);
  padding: 12px;
  margin: 9px 0;
  text-align: left;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.5;
  transition:
    transform 0.12s ease,
    box-shadow 0.12s ease;
}
.option:active {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 var(--ink);
}
.option.selected {
  background: var(--ink);
  color: var(--cream);
  box-shadow: 3px 3px 0 var(--cream);
}
.option-letter {
  display: block;
  min-width: 31px;
  font-family: 'Kaiti SC', 'STKaiti', cursive;
  font-size: 21px;
}
.question-foot {
  margin-top: 16px;
}
.question-foot small {
  display: block;
  margin: 0 0 11px;
}
.cream {
  background-color: var(--cream);
}
.pink {
  background-color: var(--pink);
}
.orange {
  background-color: var(--orange);
}
.complete h1 {
  font-size: 38px;
  line-height: 1.22;
  margin: 20px 0;
}
.complete .ten {
  width: max-content;
  font-family: 'Kaiti SC', 'STKaiti', cursive;
  font-size: 86px;
  line-height: 1;
  background: var(--pink);
  border: 2px solid var(--ink);
  padding: 4px 14px;
  box-shadow: 7px 7px 0 var(--ink);
}
.result {
  padding: 20px 0;
}
.manual {
  position: relative;
  overflow: hidden;
  background-color: var(--cream);
  background-image: radial-gradient(
    rgba(32, 32, 24, 0.09) 0.7px,
    transparent 0.8px
  );
  background-size: 8px 8px;
  border: 2px solid var(--ink);
  box-shadow: 7px 7px 0 var(--ink);
  padding: 20px 18px 18px;
}
.manual:after {
  content: 'PERSONAL EDITION';
  position: absolute;
  right: -37px;
  top: 46px;
  transform: rotate(90deg);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.14em;
}
.result-title {
  font-size: 45px;
  line-height: 0.94;
  letter-spacing: -1.5px;
  margin: 18px 0 12px;
}
.type-lead {
  text-align: center;
  margin: 15px 0 7px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.type-name {
  text-align: center;
  font-size: 40px;
  line-height: 1.12;
  margin: 0 0 7px;
}
.type-summary {
  text-align: center;
  font-size: 16px;
  line-height: 1.55;
  margin: 0 auto;
  max-width: 460px;
}
.archetype-art {
  display: block;
  width: 196px;
  max-width: 100%;
  height: 196px;
  object-fit: contain;
  margin: 2px auto 0;
}
.manual-intro {
  border-top: 2px solid var(--ink);
  padding-top: 13px;
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
}
.manual-traits {
  margin-top: 12px;
  border-top: 1px solid var(--ink);
  padding-top: 10px;
}
.traits-label {
  display: block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  margin-bottom: 7px;
}
.manual-trait {
  display: grid;
  grid-template-columns: minmax(112px, 0.8fr) minmax(0, 1.4fr);
  gap: 10px;
  padding: 7px 0;
  border-top: 1px dashed rgba(32, 32, 24, 0.35);
  align-items: start;
}
.manual-trait strong {
  font-family: 'Kaiti SC', 'STKaiti', cursive;
  font-size: 18px;
}
.manual-trait span {
  font-size: 12px;
  line-height: 1.5;
}
.dots {
  float: right;
  margin-top: -23px;
}
.dots i {
  display: inline-block;
  width: 10px;
  height: 10px;
  border: 1px solid var(--ink);
  border-radius: 50%;
  margin-left: 4px;
}
.dots i.on {
  background: var(--ink);
}
.card {
  position: relative;
  border: 2px solid var(--ink);
  box-shadow: 5px 5px 0 var(--ink);
  padding: 18px;
  margin: 20px 5px 18px 0;
  background-image: radial-gradient(
    rgba(32, 32, 24, 0.075) 0.65px,
    transparent 0.8px
  );
  background-size: 9px 9px;
}
.card:nth-of-type(even) {
  margin-left: 5px;
  margin-right: 0;
}
.card:after {
  content: 'READ ME';
  position: absolute;
  right: 13px;
  bottom: -10px;
  border: 1px solid var(--ink);
  background: var(--yellow);
  padding: 4px 8px;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.card-top {
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--ink);
  padding-bottom: 9px;
  font-size: 12px;
  font-weight: 800;
}
.card-top .dots {
  float: none;
  margin: -2px 0 0 auto;
}
.card-dim {
  font-size: 12px;
  letter-spacing: 0.04em;
  margin: 17px 0 4px;
}
.card h3 {
  font-size: 29px;
  line-height: 1.2;
  margin: 19px 0 13px;
}
.card p {
  font-size: 15px;
  line-height: 1.72;
  margin: 0 0 10px;
  white-space: pre-line;
}
.actions {
  text-align: center;
  padding: 13px 0;
}
.actions p {
  font-size: 14px;
  margin: 12px 0 17px;
}
.foot {
  padding: 17px 0 24px;
  font-size: 10px;
  letter-spacing: 0.07em;
  display: flex;
  justify-content: space-between;
}
.hidden-note {
  font-weight: 700;
  font-size: 17px;
  line-height: 1.7;
}
.hidden-list {
  border-top: 1px solid var(--ink);
  padding-top: 12px;
  margin-top: 20px;
}
.hidden-list p {
  line-height: 1.7;
  margin: 0 0 12px;
}
@media (max-width: 360px) {
  .stage {
    padding: 0 15px;
  }
  .cover h1 {
    font-size: 62px;
  }
  .result-title {
    font-size: 40px;
  }
  .type-name {
    font-size: 34px;
  }
  .manual-trait {
    grid-template-columns: 1fr;
  }
  .manual-trait span {
    font-size: 13px;
  }
}
