/* First-principles route: measured blue, graphite and signal orange. */
body.book-dyl {
  --ink: #1b2937;
  --muted: #647586;
  --line: #cbd8e2;
  --paper: #fbfdff;
  --mist: #eef4f8;
  --brand: #1769a8;
  --brand-strong: #0c3e68;
  --brand-soft: #dcecf7;
  --accent: #ef744f;
  --accent-soft: #fff0e9;
  --blue: #2f80c8;
  --blue-soft: #e3f1fb;
  --shadow: 0 18px 46px rgba(12, 62, 104, 0.14);
  --stage: #0c1721;
  --stage-ink: #f4f7f8;
  --stage-muted: rgba(244, 247, 248, 0.68);
  --stage-line: rgba(244, 247, 248, 0.2);
  --stage-accent: #f2b84b;
  --stage-acid: #c7db83;
  --stage-secondary: #1769a8;
  --stage-surface: #fbfdff;
  --stage-surface-strong: #e8f2f8;
  --stage-surface-line: #cbd8e2;
  background: #eef4f8;
}

body.book-dyl::before {
  background:
    repeating-linear-gradient(90deg, rgba(23, 105, 168, 0.05) 0 1px, transparent 1px 52px),
    repeating-linear-gradient(0deg, rgba(239, 116, 79, 0.035) 0 1px, transparent 1px 52px);
  opacity: 0.72;
}

body.book-dyl .brand-mark {
  color: #f2b84b;
  border-color: #f2b84b;
  box-shadow: 5px 5px 0 #ef744f;
}

body.book-dyl .hero-band::before {
  content: "FACT / 01";
}

body.book-dyl .hero-band::after {
  content: "F=0";
  color: transparent;
  -webkit-text-stroke-color: rgba(242, 184, 75, 0.2);
}

body.book-dyl .book-preview::after {
  content: "SOURCE / 10P";
}

body.book-dyl .hero-band .primary-button,
body.book-dyl .primary-button {
  box-shadow: 5px 5px 0 #ef744f;
}

body.book-dyl .hero-band .primary-button:hover,
body.book-dyl .primary-button:hover {
  box-shadow: 1px 1px 0 #ef744f;
}

body.book-dyl .stat::before,
body.book-dyl .course-item::before,
body.book-dyl .practice-item::before,
body.book-dyl .paper-card::before,
body.book-dyl .progress-bar span,
body.book-dyl .quiz-meter span {
  background: #ef744f;
}

body.book-dyl .hero-grid h1,
body.book-dyl .focus-card h2,
body.book-dyl .stat strong {
  letter-spacing: 0;
}

body.book-dyl .section:nth-of-type(odd) {
  background: rgba(255, 255, 255, 0.62);
}

@media (max-width: 720px) {
  body.book-dyl .hero-band::after {
    font-size: 180px;
  }
}
