/* Multi-mind novel. Dark broadcast chrome, cream manuscript, big type. */

.page-novel .novel-wrap { max-width: 48rem; margin: 0 auto; }

.page-novel .page-head > p:not(.kicker) {
  font-family: "Special Elite", "Courier New", monospace;
  font-size: clamp(1.2rem, 2.8vw, 1.5rem);
  line-height: 1.45;
  text-align: center;
  color: #f7f0e4;
}

.novel-desk {
  margin-top: .35rem;
  padding: clamp(1rem, 3vw, 1.5rem) clamp(.7rem, 2.4vw, 1.2rem) clamp(1.3rem, 3vw, 1.8rem);
  background:
    radial-gradient(ellipse at 50% 0%, rgba(120, 86, 48, .35), transparent 55%),
    linear-gradient(180deg, #4a3828 0%, #2a1e14 42%, #1a120c 100%);
  border: 1px solid rgba(228, 208, 164, .28);
  box-shadow: inset 0 1px 0 rgba(255, 236, 210, .12);
}

.novel-machine { max-width: 40rem; margin: 0 auto; }

.novel-platen {
  display: flex;
  align-items: center;
  gap: .55rem;
  min-height: 2.75rem;
  padding: .45rem .7rem;
  background: linear-gradient(180deg, #6a6156 0%, #2c2822 16%, #12100e 58%, #3a342c 100%);
  border-radius: .4rem .4rem 0 0;
  box-shadow: 0 .4rem 0 #090807, inset 0 1px 0 rgba(255, 255, 255, .28);
}

.novel-knob {
  width: 1.2rem;
  height: 1.2rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 32%, #f4e7cc, #c4a15a 42%, #5a3e16 78%);
  box-shadow: inset 0 0 0 2px #3d2c12;
}

.novel-scale {
  flex: 1;
  height: .7rem;
  background: repeating-linear-gradient(90deg, rgba(232, 220, 196, .7) 0 1px, transparent 1px .7rem);
  opacity: .7;
}

.novel-lever {
  position: relative;
  width: .45rem;
  height: 1.65rem;
  flex: 0 0 auto;
  margin-right: .35rem;
  background: linear-gradient(90deg, #efe4cc, #b7a78a);
  border-radius: .15rem;
}

.novel-lever::after {
  content: "";
  position: absolute;
  top: -.4rem;
  right: -.2rem;
  width: .95rem;
  height: .48rem;
  background: linear-gradient(180deg, #f3e7cf, #c4b498);
  border-radius: .12rem;
}

.novel-paper {
  position: relative;
  color: #1c140e;
  color-scheme: light;
  background-color: #f4ead6;
  background-image:
    radial-gradient(ellipse at 15% 0%, rgba(255, 255, 255, .5), transparent 42%),
    linear-gradient(90deg, transparent 1.25rem, rgba(168, 52, 42, .55) 1.25rem, rgba(168, 52, 42, .55) 1.36rem, transparent 1.36rem);
  font-family: "Special Elite", "Courier New", monospace;
  font-size: clamp(1.28rem, 3.3vw, 1.55rem);
  line-height: 1.45;
  padding: 1.15rem 1rem 1.2rem 1.85rem;
  box-shadow: 0 16px 30px rgba(0, 0, 0, .35);
}

.novel-paper.is-leaving {
  animation: novel-drop .5s ease forwards;
}

.novel-paper.is-fresh {
  animation: novel-fresh .45s ease;
}

@keyframes novel-drop {
  to { transform: translateY(2.2rem) rotate(-1.4deg) scale(.97); opacity: .15; }
}

@keyframes novel-fresh {
  from { transform: translateY(-.6rem); opacity: .35; }
  to { transform: none; opacity: 1; }
}

.novel-kicker-ink {
  margin: 0;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: clamp(1rem, 2.4vw, 1.15rem);
  color: #5c4632;
}

.novel-open-title {
  margin: .2rem 0 .35rem;
  font-family: "Special Elite", "Courier New", monospace;
  font-weight: 400;
  font-size: clamp(1.7rem, 4.5vw, 2.35rem);
  line-height: 1.15;
  color: #1c140e;
  text-transform: none;
  letter-spacing: 0;
}

.novel-rule,
.novel-meter {
  margin: 0 0 .75rem;
  font-size: clamp(1.15rem, 2.8vw, 1.4rem);
  line-height: 1.4;
  color: #3a2c20;
}

.novel-field-label {
  display: block;
  margin: 0 0 .25rem;
  font-size: clamp(1.15rem, 2.8vw, 1.35rem);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #3a2c20;
}

.novel-draft {
  display: block;
  width: 100%;
  height: calc(2.15rem * 7);
  margin: 0;
  padding: .15rem .1rem 0;
  border: 0;
  border-radius: 0;
  resize: none;
  overflow: hidden;
  background: transparent;
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent calc(2.15rem - 1px),
    rgba(40, 70, 110, .28) calc(2.15rem - 1px),
    rgba(40, 70, 110, .28) 2.15rem
  );
  color: #1a140e;
  caret-color: #1a140e;
  font: inherit;
  font-size: clamp(1.35rem, 3.5vw, 1.7rem);
  line-height: 2.15rem;
  box-shadow: none;
}

.novel-draft::placeholder { color: #8a7564; opacity: 1; }

.novel-draft:focus {
  outline: 3px solid #1a140e;
  outline-offset: 3px;
}

.novel-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  max-width: 40rem;
  margin: 1rem auto 0;
}

body.broadcast-lite.page-novel .novel-actions .btn.btn {
  flex: 1 1 14rem;
  justify-content: center;
  font-family: "Special Elite", "Courier New", monospace;
  font-size: clamp(1.2rem, 3vw, 1.45rem);
  letter-spacing: .02em;
  text-transform: none;
  min-height: 3.6rem;
  padding: 1rem 1.2rem;
}

body.broadcast-lite.page-novel .novel-actions .btn.btn:disabled {
  opacity: .5;
  cursor: not-allowed;
}

body.broadcast-lite.page-novel .novel-actions .btn[hidden] { display: none; }

.novel-block {
  max-width: 40rem;
  margin: .85rem auto 0;
  padding: 1rem 1.1rem;
  background: #3d1c18;
  color: #f8f1e6;
  font-family: "Special Elite", "Courier New", monospace;
  font-size: clamp(1.3rem, 3.2vw, 1.6rem);
  line-height: 1.35;
  text-align: center;
}

.novel-block[hidden] { display: none; }

.novel-caption {
  max-width: 40rem;
  margin: .85rem auto 0;
  padding: 1rem 1.1rem;
  background: #f4ead6;
  color: #1c140e;
  font-family: "Special Elite", "Courier New", monospace;
  font-size: clamp(1.3rem, 3.3vw, 1.65rem);
  line-height: 1.4;
}

.novel-caption[hidden] { display: none; }

.novel-stack-wrap {
  max-width: 40rem;
  margin: 1.4rem auto 0;
}

.novel-stack-title {
  margin: 0 0 .35rem;
  font-family: "Special Elite", "Courier New", monospace;
  font-weight: 400;
  font-size: clamp(1.6rem, 4vw, 2.1rem);
  color: #f6efe2;
  text-transform: none;
  letter-spacing: 0;
  text-align: center;
}

.novel-stack-lead {
  margin: 0 0 .9rem;
  text-align: center;
  font-family: "Special Elite", "Courier New", monospace;
  font-size: clamp(1.15rem, 2.8vw, 1.35rem);
  line-height: 1.4;
  color: #f4ecdf;
}

.novel-pile { position: relative; padding-bottom: .4rem; }

.novel-sheet {
  display: block;
  width: 100%;
  margin: -2.6rem 0 0;
  padding: .85rem .9rem .85rem 1.5rem;
  text-align: left;
  color: #1c140e;
  color-scheme: light;
  font-family: "Special Elite", "Courier New", monospace;
  font-size: clamp(1.15rem, 2.8vw, 1.35rem);
  line-height: 1.35;
  background:
    linear-gradient(90deg, transparent 1rem, rgba(168, 52, 42, .45) 1rem, rgba(168, 52, 42, .45) 1.1rem, transparent 1.1rem),
    #f3e6cf;
  border: 0;
  border-radius: 0;
  box-shadow: 0 10px 18px rgba(0, 0, 0, .28);
  cursor: pointer;
  transform: rotate(calc((var(--i) - 1) * .35deg));
  min-height: 7.2rem;
  overflow: hidden;
}

.novel-sheet:first-child { margin-top: 0; }

.novel-sheet-no {
  display: block;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: clamp(1.05rem, 2.4vw, 1.2rem);
  color: #6a3a32;
}

.novel-sheet-peek { display: block; margin-top: .25rem; }

.novel-sheet-full {
  display: none;
  margin-top: .45rem;
  font-size: clamp(1.25rem, 3vw, 1.5rem);
  line-height: 1.4;
}

.novel-sheet.is-open {
  margin-top: .75rem;
  margin-bottom: .75rem;
  min-height: 0;
  overflow: visible;
  z-index: 1;
  position: relative;
  transform: none;
  outline: 3px solid #1a140e;
}

.novel-sheet.is-open .novel-sheet-peek { display: none; }
.novel-sheet.is-open .novel-sheet-full { display: block; }

.novel-sheet:focus-visible {
  outline: 3px solid #f6efe2;
  outline-offset: 3px;
}

.novel-honest {
  max-width: 40rem;
  margin: 1.15rem auto 0;
  text-align: center;
  font-family: "Special Elite", "Courier New", monospace;
  font-size: clamp(1.15rem, 2.8vw, 1.35rem);
  line-height: 1.45;
  color: #f4ecdf;
}

@media (max-width: 640px) {
  .novel-paper { padding: 1rem .75rem 1rem 1.45rem; }
  .novel-sheet { margin-top: -2.1rem; }
  body.broadcast-lite.page-novel .novel-actions .btn.btn { flex-basis: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .novel-paper.is-leaving,
  .novel-paper.is-fresh { animation: none; }
  .novel-sheet { transform: none; }
}
