:root {
  --w: 1180px;
  --paper: #ffffff;
  --paper-2: #f7f8f5;
  --paper-3: #e9eee6;
  --card: #ffffff;
  --line: #e7e8e3;
  --line-2: #d7dad3;
  --ink: #282b29;
  --ink-2: #424743;
  --ink-3: #737773;
  --ink-4: #9a9e99;
  --navy: #282b29;
  --navy-2: #303633;
  --navy-3: #171b26;
  --red: #bd386a;
  --red-2: #a82e5d;
  --red-soft: #bd386a12;
  --red-line: #bd386a42;
  --serif: "Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;
  --sans: "Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;
  --sh-1: 0 1px 2px #171b2608;
  --sh-2: 0 14px 34px #171b2612;
  --sh-3: 0 24px 54px #171b261c;
}

body {
  background: var(--paper);
  color: var(--ink);
  font-size: 15.5px;
  line-height: 1.72;
}

.band {
  color: var(--ink);
  background: #fffffff2;
  border-bottom: 1px solid var(--line);
  box-shadow: 0 1px 0 #171b2605;
}

.band__row { height: 72px; }
.band__logo { background: var(--red); border-radius: 9px; padding: 3px; }
.band__name { color: var(--ink); font-size: 18px; }
.band__roman { color: var(--ink-4); }
.band__link { color: var(--ink-2); }
.band__link:hover { color: var(--red); background: var(--red-soft); }
.band__link--key,
.band__link--key:hover { color: #fff; background: var(--red); box-shadow: none; }

.cover {
  color: var(--ink);
  background: var(--paper-2);
  min-height: 570px;
  max-width: var(--w);
  margin: 26px auto 0;
  border: 1px solid var(--line);
  border-radius: 15px;
  overflow: hidden;
}

.cover--short { min-height: 390px; }
.cover__pic {
  left: auto;
  right: 0;
  width: 48%;
  object-position: center;
}
.cover__veil {
  left: auto;
  right: 0;
  width: 52%;
  background: linear-gradient(90deg, var(--paper-2), #f7f8f51a 28%, #171b2644 100%);
}
.cover__body { padding: 70px 54% 70px 40px; }
.cover--short .cover__body { padding: 56px 54% 48px 40px; }
.cover__kicker { color: var(--red); }
.cover__h1 { color: var(--ink); font-size: clamp(36px, 5vw, 61px); }
.cover--short .cover__h1 { font-size: clamp(30px, 4vw, 46px); }
.cover__h1 em { color: var(--red); }
.cover__lede { color: var(--ink-3); }
.cover__act { border-radius: 7px; padding: 12px 20px; }
.cover__act--key { background: var(--red); box-shadow: none; }
.cover__act--ghost { color: var(--ink); background: #fff; border: 1px solid var(--line-2); }
.cover__act--ghost:hover { background: var(--paper-3); }
.cover__credit { color: #fff; }

.spine { top: 72px; background: #fffffff2; }
.chapter { padding: 72px 0; }
.chapter--tone { background: var(--paper-2); }
.chapter--ink { background: var(--navy-3); }
.mast__kicker { letter-spacing: .08em; }
.mast__title { font-size: clamp(26px, 3vw, 38px); }

.ledger__card,
.folio__card,
.mark,
.who__card,
.clock__card,
.scene__item,
.hazard,
.route__step,
.drill__block,
.qanda__item,
.type-block,
.aside-note,
.tally,
.atlas__card--plain {
  border-color: var(--line);
  box-shadow: var(--sh-1);
}

.ledger__card { border-top: 1px solid var(--line); }
.folio__card:hover,
.mark:hover,
.who__card:hover { border-color: var(--red-line); box-shadow: var(--sh-2); }
.folio__tag,
.scene__chip,
.who__label { color: var(--red); background: var(--red-soft); }
.folio__pic img,
.snap img { filter: saturate(.92) contrast(.96); }

.atlas__card {
  background: linear-gradient(145deg, #303633, #171b26);
  border: 1px solid #ffffff14;
}
.scene__grade,
.route__no,
.ledger__num,
.mark__no,
.floor__tag { color: var(--red); }
.gauge__fill { background: var(--red); }
.qanda__q { color: var(--ink); }

.floor {
  background: var(--paper-2);
  color: var(--ink);
  border-top: 1px solid var(--line);
}
.floor__name { color: var(--ink); }
.floor__desk,
.floor__notice,
.floor__legal,
.floor__copy { color: var(--ink-3); }
.floor__jump { color: var(--ink-2); border-color: var(--line); }

@media (max-width: 760px) {
  .band__row { height: 62px; }
  .band__burger span { background: var(--ink); }
  .band__nav { background: #fff; border-color: var(--line); }
  .band__link { color: var(--ink-2); }
  .band__link--key { color: #fff; }
  .cover,
  .cover--short {
    min-height: 620px;
    margin: 12px 12px 0;
    align-items: flex-start;
  }
  .cover__pic {
    top: auto;
    bottom: 0;
    width: 100%;
    height: 42%;
  }
  .cover__veil {
    top: auto;
    bottom: 0;
    width: 100%;
    height: 48%;
    background: linear-gradient(180deg, var(--paper-2), #f7f8f500 55%);
  }
  .cover__body,
  .cover--short .cover__body { padding: 44px 24px 280px; }
  .cover__h1 { font-size: 34px; }
  .cover__lede { font-size: 14px; }
  .spine { top: 62px; }
  .chapter { padding: 54px 0; }
}
