/* A quiet, physical field book for the chapter 03 → 04 transition. */
.fc-book,
.fc-book * {
  box-sizing: border-box;
}

.fc-book {
  position: absolute;
  top: 0;
  left: 0;
  width: 540px;
  height: 856px;
  visibility: hidden;
  pointer-events: none;
  transform-style: preserve-3d;
  color: #151715;
  font-family: var(--sans, "Microsoft YaHei", "PingFang SC", sans-serif);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  --fc-paper: #eeece4;
  --fc-ink: #151715;
  --fc-red: #df432f;
  --fc-muted: #62665f;
  --fc-rule: #15171535;
  --fc-metal: #b39a62;
}

.fc-book-volume {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
}

.fc-book-back,
.fc-book-block,
.fc-book-page,
.fc-book-leaf,
.fc-book-cover,
.fc-book-spine {
  position: absolute;
}

.fc-book-back {
  inset: 0;
  z-index: 0;
  overflow: hidden;
  border: 1px solid #151715;
  border-radius: 7px 9px 9px 7px;
  background: var(--fc-ink);
  box-shadow: 13px 9px 0 #15171522, 19px 15px 28px #15171535;
  transform: translateZ(-18px);
}

.fc-book-back::before {
  position: absolute;
  inset: 24px 20px 24px 35px;
  border: 1px solid #eeece424;
  content: "";
}

.fc-book-back::after {
  position: absolute;
  top: 34px;
  bottom: 34px;
  left: 25px;
  width: 5px;
  background: var(--fc-red);
  content: "";
}

.fc-book-block {
  inset: 9px 4px 10px 20px;
  z-index: 1;
  border: 1px solid #d5d2c8;
  border-radius: 3px 6px 6px 3px;
  background:
    repeating-linear-gradient(to bottom, #f8f7f1 0 3px, #d9d6cd 3px 4px),
    #f8f7f1;
  box-shadow: 5px 4px 0 #d8d5cb, 10px 7px 0 #c9c6bc, 14px 10px 20px #15171525;
  transform: translateZ(-8px);
}

.fc-book-block::before,
.fc-book-block::after {
  position: absolute;
  content: "";
  background: #e5e2d9;
}

.fc-book-block::before {
  top: 5px;
  right: 0;
  bottom: 5px;
  width: 5px;
  border-left: 1px solid #c8c5bc;
}

.fc-book-block::after {
  right: 7px;
  bottom: 0;
  left: 8px;
  height: 5px;
  border-top: 1px solid #c8c5bc;
}

.fc-book-page {
  inset: 12px 17px 13px 25px;
  z-index: 2;
  overflow: hidden;
  padding: 45px 40px 38px 49px;
  border: 1px solid #d8d5cb;
  border-radius: 2px 5px 5px 2px;
  background: var(--fc-paper);
  box-shadow: 0 3px 12px #15171514;
  transform: translateZ(-1px);
}

.fc-book-page::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 7px;
  background: var(--fc-red);
  content: "";
}

.fc-book-page-head,
.fc-book-page-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  color: var(--fc-muted);
  font-family: var(--mono, "Consolas", monospace);
  font-size: 10px;
  letter-spacing: .07em;
}

.fc-book-page-head strong {
  color: var(--fc-ink);
  font-family: var(--sans, "Microsoft YaHei", sans-serif);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
}

.fc-book-page-rule {
  height: 1px;
  margin-top: 18px;
  background: #15171570;
}

.fc-book-page-kicker {
  margin: 47px 0 10px;
  color: var(--fc-red);
  font-family: var(--mono, "Consolas", monospace);
  font-size: 10px;
  letter-spacing: .12em;
}

.fc-book-page-title {
  margin: 0;
  font-size: 34px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.07em;
}

.fc-book-page-title span {
  color: var(--fc-red);
}

.fc-book-page-deck {
  margin: 12px 0 27px;
  color: var(--fc-muted);
  font-size: 12px;
  line-height: 1.8;
  letter-spacing: .03em;
}

.fc-book-contents {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: fc-book-contents;
}

.fc-book-contents li {
  position: relative;
  min-height: 70px;
  padding: 15px 0 13px 39px;
  border-top: 1px solid var(--fc-rule);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: -.015em;
  counter-increment: fc-book-contents;
}

.fc-book-contents li::before {
  position: absolute;
  top: 17px;
  left: 0;
  color: var(--fc-red);
  content: "0" counter(fc-book-contents);
  font-family: var(--mono, "Consolas", monospace);
  font-size: 10px;
  letter-spacing: .08em;
}

.fc-book-page-foot {
  position: absolute;
  right: 40px;
  bottom: 25px;
  left: 49px;
  padding-top: 11px;
  border-top: 1px solid var(--fc-rule);
  font-size: 9px;
}

.fc-book-page > *,
.fc-book-leaf-face > * {
  opacity: var(--book-print-opacity, 1);
}

.fc-book-leaf {
  inset: 13px 17px 14px 25px;
  z-index: 3;
  overflow: visible;
  transform-origin: left center;
  transform-style: preserve-3d;
}

.fc-book-leaf-1 {
  transform: rotateY(var(--book-leaf-1, 0deg)) translateZ(5px);
}

.fc-book-leaf-2 {
  transform: rotateY(var(--book-leaf-2, 0deg)) translateZ(8px);
}

.fc-book-leaf-3 {
  transform: rotateY(var(--book-leaf-3, 0deg)) translateZ(11px);
}

.fc-book-leaf-face {
  position: absolute;
  inset: 0;
  overflow: hidden;
  padding: 40px 38px 35px 47px;
  border: 1px solid #d8d5cb;
  border-radius: 2px 5px 5px 2px;
  background: #f4f2eb;
  backface-visibility: hidden;
}

.fc-book-leaf-face::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 6px;
  background: #df432f;
  content: "";
}

.fc-book-leaf-front {
  box-shadow: 2px 2px 9px #15171515;
  transform: translateZ(.5px);
}

.fc-book-leaf-back {
  background: #e7e4db;
  transform: rotateY(180deg) translateZ(.5px);
}

.fc-book-leaf-label {
  display: flex;
  justify-content: space-between;
  color: var(--fc-muted);
  font-family: var(--mono, "Consolas", monospace);
  font-size: 9px;
  letter-spacing: .1em;
}

.fc-book-leaf-label b {
  color: var(--fc-red);
  font-weight: 500;
}

.fc-book-leaf-title {
  margin-top: 55px;
  color: var(--fc-ink);
  font-size: 25px;
  font-weight: 750;
  line-height: 1.4;
  letter-spacing: -.055em;
}

.fc-book-leaf-lines {
  display: grid;
  gap: 12px;
  margin-top: 23px;
}

.fc-book-leaf-lines i {
  display: block;
  height: 1px;
  background: #15171525;
}

.fc-book-leaf-lines i:nth-child(2n) { width: 83%; }
.fc-book-leaf-lines i:nth-child(3n) { width: 93%; }

.fc-book-leaf-note {
  position: absolute;
  right: 38px;
  bottom: 31px;
  left: 47px;
  padding-top: 11px;
  border-top: 1px solid #15171535;
  color: var(--fc-muted);
  font-size: 10px;
  line-height: 1.7;
}

.fc-book-cover {
  inset: 0;
  z-index: 5;
  transform-origin: left center;
  transform-style: preserve-3d;
  transform: rotateY(var(--book-open, 0deg)) translateZ(16px);
  opacity: var(--book-cover-opacity, 1);
}
.fc-book-leaf { opacity: var(--book-cover-opacity, 1); }

.fc-book-cover-face {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border: 1px solid #151715;
  border-radius: 7px 9px 9px 7px;
  backface-visibility: hidden;
}

.fc-book-cover-front {
  padding: 38px 37px 36px 43px;
  background: linear-gradient(118deg, #eb5c42 0%, #df432f 36%, #cb3828 100%);
  box-shadow: 8px 5px 14px #15171528;
  transform: translateZ(1px);
}

.fc-book-cover-front::before {
  position: absolute;
  inset: 19px;
  border: 1px solid #15171526;
  content: "";
}

.fc-book-cover-front::after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 13px;
  background: var(--fc-red);
  content: "";
}

.fc-book-cover-meta,
.fc-book-cover-foot {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--fc-muted);
  font-family: var(--mono, "Consolas", monospace);
  font-size: 10px;
  letter-spacing: .1em;
}

.fc-book-cover-meta strong {
  color: var(--fc-paper);
  font-size: 11px;
  font-weight: 600;
}

.fc-book-cover-rule {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 1px;
  margin-top: 27px;
  background: #15171568;
}

.fc-book-cover-title {
  position: absolute;
  top: 254px;
  left: 47px;
  z-index: 1;
  margin: 0;
  color: var(--fc-ink);
  font-size: 105px;
  font-weight: 850;
  line-height: .98;
  letter-spacing: -.105em;
}

.fc-book-cover-title span {
  display: block;
  color: transparent;
  -webkit-text-stroke: 2px var(--fc-ink);
}

.fc-book-cover-deck {
  position: absolute;
  top: 506px;
  left: 51px;
  z-index: 1;
  max-width: 340px;
  margin: 0;
  color: #3f251e;
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: .025em;
}

.fc-book-cover-index {
  position: absolute;
  top: 218px;
  right: 43px;
  z-index: 1;
  color: var(--fc-paper);
  font-family: var(--mono, "Consolas", monospace);
  font-size: 10px;
  letter-spacing: .14em;
  writing-mode: vertical-rl;
}

.fc-book-cover-foot {
  position: absolute;
  right: 42px;
  bottom: 39px;
  left: 48px;
  padding-top: 13px;
  border-top: 1px solid #15171555;
  color: var(--fc-ink);
  font-size: 9px;
}

.fc-book-chip {
  position: absolute;
  right: 70px;
  bottom: 140px;
  z-index: 2;
  display: grid;
  width: 136px;
  height: 108px;
  place-items: center;
  border: 1px solid #927c4f;
  border-radius: 5px;
  background: linear-gradient(135deg,#fff0c5,#c8b47d 35%,#f2de9f 66%,#85724e);
  color: #806b42;
}

.fc-book-chip::before,
.fc-book-chip::after {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 5px;
  border-right: 1px solid #927c4f;
  border-left: 1px solid #927c4f;
  content: "";
}

.fc-book-chip::before { left: 28%; width: 44%; top: 25%; bottom: 25%; border: 2px solid #806b42; border-radius: 5px; }
.fc-book-chip::after { left: 0; right: 0; top: 50%; bottom: auto; width: 100%; height: 1px; border: 0; background: #806b42; }

.fc-book-cover-inside {
  padding: 42px 39px;
  background: #e8e5dc;
  color: var(--fc-ink);
  transform: rotateY(180deg) translateZ(1px);
}

.fc-book-cover-inside::before {
  position: absolute;
  inset: 18px;
  border: 1px solid #15171528;
  content: "";
}

.fc-book-inside-label {
  position: relative;
  z-index: 1;
  color: var(--fc-red);
  font-family: var(--mono, "Consolas", monospace);
  font-size: 10px;
  letter-spacing: .12em;
}

.fc-book-inside-statement {
  position: absolute;
  top: 282px;
  left: 49px;
  z-index: 1;
  margin: 0;
  font-size: 32px;
  font-weight: 750;
  line-height: 1.65;
  letter-spacing: -.06em;
}

.fc-book-inside-statement span { color: var(--fc-red); }

.fc-book-inside-mark {
  position: absolute;
  right: 42px;
  bottom: 43px;
  left: 48px;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  padding-top: 13px;
  border-top: 1px solid #15171545;
  color: var(--fc-muted);
  font-family: var(--mono, "Consolas", monospace);
  font-size: 9px;
  letter-spacing: .07em;
}

.fc-book-spine {
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 6;
  width: 22px;
  border-radius: 6px 0 0 6px;
  background: linear-gradient(90deg, #b93425, #df432f 42%, #b93425);
  box-shadow: inset -1px 0 #15171538, inset 1px 0 #eeece455;
  transform: translateZ(17px);
}

.fc-book-spine::before {
  position: absolute;
  top: 31px;
  bottom: 31px;
  left: 10px;
  width: 1px;
  background: #eeece46b;
  content: "";
}

.fc-book-spine-mark {
  position: absolute;
  top: 88px;
  left: 6px;
  color: #eeece4;
  font-family: var(--mono, "Consolas", monospace);
  font-size: 7px;
  letter-spacing: .12em;
  writing-mode: vertical-rl;
}

/* The transforming cover inherits the physical card's red and metal finish. */
.fc-book{--fc-red:#903b2c;--fc-metal:#dac59b}
.fc-book-cover-front{border-color:#c09a72;color:#e5d1ac;background:radial-gradient(ellipse 105% 100% at 0% 3%,#ca665043,transparent 67%),linear-gradient(116deg,#a34b39 0%,#933b2d 31%,#71281f 63%,#4e1b16 100%);box-shadow:inset 0 0 0 1px #f0cfa542,8px 5px 14px #15171538}
.fc-book-cover-front::before{inset:0;border:0;background:url('assets/card-micrograin.svg');background-size:180px 180px;mix-blend-mode:soft-light;opacity:.48}
.fc-book-cover-front::after{background:linear-gradient(90deg,#321b13,#b28258 40%,#572e20);width:7px}
.fc-book-cover-meta,.fc-book-cover-foot{color:#d6b98b}
.fc-book-cover-meta strong{color:#f0dfbb}
.fc-book-cover-rule,.fc-book-cover-foot{border-color:#e1bc8350}
.fc-book-cover-rule{background:#e1bc8350}
.fc-book-cover-title{color:#e5d3af;text-shadow:0 1px 1px #301a11}
.fc-book-cover-title span{-webkit-text-stroke-color:#e5d3af}
.fc-book-cover-deck{color:#d3b58b}
.fc-book-chip{overflow:hidden;border:0;border-radius:7px;background:transparent;box-shadow:1px 2px 0 #4b3924,2px 3px 5px #301a1140}
.fc-book-chip::before,.fc-book-chip::after{display:none}
.fc-book-spine{background:linear-gradient(90deg,#54291f,#8e3b2c 42%,#58251c);box-shadow:inset -1px 0 #1c10098a,inset 1px 0 #e6c49469}
