/* BOOKS STYLES: isolated inside #pageMount.chronos-books; derived from verified book LAB v0.3.
   DO NOT copy global body, header or footer styles to the live site. */
/* Integrated book content has no independent viewport; global body owns page height. */
body.route-active #pageMount.chronos-books { width: 100%; min-width: 0; min-height: 0; flex: 1 1 auto; }
#pageMount.chronos-books > .read-zone { width: 100%; min-height: 0; }
#pageMount.chronos-books > .page { min-height: 0; }
#pageMount.chronos-books .back-to-top { z-index: 1100; }
@media (max-width: 680px) { #pageMount.chronos-books .back-to-top { bottom: calc(92px + env(safe-area-inset-bottom, 0px)); } }
.chronos-books{
    color-scheme: dark;
    --void: #101119;
    --graphite: #1A1B2C;
    --graphite2: #23253b;
    --line: #2c2f4a;
    --line-soft: #1e2035;
    --signal: #E8B15A;
    --architect: #6b78a8;
    --ash: #9aa0b8;
    --ash-dim: #565b76;
    --white: #eef0f8;
    --paper: #d9dcea;
    --font-signal: ui-monospace, "JetBrains Mono", "Cascadia Code", Menlo, Consolas, monospace;
    --font-body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --font-read: "PT Serif", Georgia, "Noto Serif", "Times New Roman", serif;
    --read-size: 19px;
  }
.chronos-books, .chronos-books *{ box-sizing: border-box; }
.chronos-books {
    margin: 0;
    background: var(--void);
    color: var(--ash);
    background-image: radial-gradient(70% 30% at 50% 0%, rgba(107,120,168,.10), transparent 70%);
    font: 15px/1.6 var(--font-body);
    -webkit-font-smoothing: antialiased;
    /* No min-height:100dvh or nested display:flex. */
  }
.chronos-books a{ color: inherit; }
.chronos-books a:focus-visible, .chronos-books button:focus-visible{ outline: 2px solid var(--signal); outline-offset: 3px; border-radius: 3px; }
.chronos-books .topbar{ display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px 22px; padding-block: 18px; padding-inline: clamp(16px, 5vw, 48px); }
.chronos-books .brand{ font-family: var(--font-signal); font-size: 14px; letter-spacing: .18em; text-decoration: none; }
.chronos-books .brand b{ color: var(--signal); font-weight: 600; }
.chronos-books .nav{ display: flex; gap: clamp(14px, 3vw, 28px); flex-wrap: wrap; font-size: 14px; }
.chronos-books .nav a{ color: var(--ash-dim); text-decoration: none; }
.chronos-books .nav a.on{ color: var(--ash); }
.chronos-books .page{ width: min(700px, 100%); margin: 0 auto; padding-inline: clamp(16px, 5vw, 32px); padding-block: 34px 48px; } /* v0.5: та же колонка, что у .reader — текст не «прыгает» при переходе каталог → рассказ */
.chronos-books .crumbs{ font-family: var(--font-signal); font-size: 12.5px; letter-spacing: .08em; color: var(--ash-dim); }
.chronos-books .crumbs a{ text-decoration: none; color: var(--ash-dim); }
.chronos-books .crumbs a:hover{ color: var(--ash); }
.chronos-books .world{ position: relative; margin-top: 18px; padding-block: 22px 26px; padding-inline: 4px; }
.chronos-books .world h1{ font-family: var(--font-signal); font-weight: 600; color: var(--signal); font-size: clamp(30px, 7vw, 46px); letter-spacing: .06em; margin: 0 0 6px; display: inline-block; }
.chronos-books .world .genre{ font-family: var(--font-signal); font-size: 13px; color: var(--ash-dim); letter-spacing: .04em; }
.chronos-books .world .about{ max-width: 58ch; margin: 16px 0 0; font-size: 16px; color: var(--ash); }
.chronos-books .world .state{ margin-top: 14px; font-family: var(--font-signal); font-size: 12.5px; color: var(--architect); letter-spacing: .04em; }
.chronos-books .sect{ font-family: var(--font-signal); color: var(--signal); letter-spacing: .12em; font-size: 13px; margin: 36px 0 12px; text-transform: uppercase; }
.chronos-books .tracks{ list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line-soft); }
.chronos-books .tracks li{ display: flex; justify-content: space-between; gap: 14px; padding-block: 11px; border-bottom: 1px solid var(--line-soft); }
.chronos-books .tracks .t{ color: var(--ash); min-width: 0; }
.chronos-books .tracks .w{ font-family: var(--font-signal); font-size: 12.5px; color: var(--ash-dim); white-space: nowrap; }
.chronos-books .tiny{ font-size: 12.5px; color: var(--ash-dim); margin: 8px 0 0; }
.chronos-books .part{ margin-top: 26px; }
.chronos-books .part-h{ display: flex; align-items: baseline; gap: 10px 14px; flex-wrap: wrap; margin-bottom: 4px; }
.chronos-books .part-h .n{ font-family: var(--font-signal); font-size: 12px; color: var(--ash-dim); letter-spacing: .12em; }
.chronos-books .part-h .name{ font-family: var(--font-signal); font-size: 15px; color: var(--white); letter-spacing: .08em; }
.chronos-books .part-sub{ font-size: 13.5px; color: var(--ash-dim); margin: 0 0 8px; }
.chronos-books .stories{ list-style: none; margin: 0; padding: 0; counter-reset: s; }
.chronos-books .stories li{ border-bottom: 1px solid var(--line-soft); }
.chronos-books .stories a{ display: grid; grid-template-columns: 2.2em 1fr auto; gap: 12px; align-items: baseline; padding-block: 12px; padding-inline: 2px; text-decoration: none; }
.chronos-books .stories a:hover .ttl{ color: var(--signal); }
.chronos-books .stories .no{ font-family: var(--font-signal); font-size: 12.5px; color: var(--ash-dim); font-variant-numeric: tabular-nums; }
.chronos-books .stories .ttl{ font-family: var(--font-read); font-size: 17.5px; color: var(--paper); transition: color .2s; min-width: 0; }
.chronos-books .stories .min{ font-family: var(--font-signal); font-size: 12px; color: var(--ash-dim); white-space: nowrap; font-variant-numeric: tabular-nums; }
.chronos-books .stories li.here .ttl{ color: var(--signal); }
.chronos-books .read-zone{
    --rz-bg: var(--void); --rz-text: var(--paper); --rz-title: var(--white);
    --rz-meta: var(--ash-dim); --rz-by: var(--ash); --rz-cycle: var(--architect);
    --rz-rule: var(--line-soft); --rz-ctl: var(--line); --rz-ctl-on-bg: var(--ash); --rz-ctl-on-fg: var(--void);
    --rz-accent: var(--signal); --rz-prog: var(--signal);
    background: var(--rz-bg); color: var(--rz-text);
    transition: background-color .35s ease, color .35s ease;
  }
.chronos-books .read-zone[data-read-theme="light"]{
    --rz-bg: #E9E4D8; --rz-text: #1A1B2C; --rz-title: #1A1B2C;
    --rz-meta: #5d6074; --rz-by: #33364a; --rz-cycle: #4a578a;
    --rz-rule: #d3ccbc; --rz-ctl: #c4bcab; --rz-ctl-on-bg: #1A1B2C; --rz-ctl-on-fg: #E9E4D8;
    --rz-accent: #8a5a12; --rz-prog: #b07a28;
    color-scheme: light;
  }
.chronos-books .read-zone[data-read-theme="light"] [data-thread]{
    --thread-cold: #5a6798; --thread-ash: #6b6f86; --thread-dim: #9a9cab;
    --thread-gold: #b07a28; --thread-gold-hi: #c98f35;
  }
@media  (prefers-reduced-motion: reduce)  {.chronos-books .read-zone{ transition: none; }}
.chronos-books .progress{ position: sticky; top: env(safe-area-inset-top, 0px); height: 2px; z-index: 5; background: transparent; }
.chronos-books .progress i{ display: block; height: 100%; width: 0; background: var(--rz-prog); opacity: .85; }
.chronos-books .reader{ width: min(700px, 100%); margin: 0 auto; padding-inline: clamp(16px, 5vw, 32px); padding-block: 34px 40px; }
.chronos-books .r-head{ display: grid; gap: 8px; margin-bottom: 30px; }
.chronos-books .r-cycle{ font-family: var(--font-signal); font-size: 12.5px; letter-spacing: .1em; color: var(--rz-cycle); text-transform: uppercase; }
.chronos-books .r-title{ font-family: var(--font-read); font-weight: 700; color: var(--rz-title); font-size: clamp(28px, 6.5vw, 40px); line-height: 1.2; margin: 0; text-wrap: balance; }
.chronos-books .r-meta{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; font-family: var(--font-signal); font-size: 12.5px; color: var(--rz-meta); }
.chronos-books .r-meta .by{ color: var(--rz-by); }
.chronos-books .r-tools{ display: inline-flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.chronos-books .sizes{ display: inline-flex; gap: 4px; }
.chronos-books .sizes button{ font: 600 12px var(--font-signal); color: var(--rz-by); background: transparent; border: 1px solid var(--rz-ctl); border-radius: 8px; padding: 5px 10px; cursor: pointer; min-width: 40px; }
.chronos-books .sizes button[aria-pressed="true"]{ color: var(--rz-ctl-on-fg); background: var(--rz-ctl-on-bg); border-color: var(--rz-ctl-on-bg); }
.chronos-books .sizes button:focus-visible{ outline-color: var(--rz-accent); }
.chronos-books .text{ font-family: var(--font-read); font-size: var(--read-size); line-height: 1.68; color: var(--rz-text); max-width: 34em; }
.chronos-books .text p{ margin: 0 0 1.05em; hyphens: auto; -webkit-hyphens: auto; }
.chronos-books .text p.dlg{ margin-bottom: .55em; }
.chronos-books .text p.short{ text-indent: 0; }
.chronos-books .end-mark{ margin-top: 26px; }
.chronos-books .support{ margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--rz-rule); display: grid; gap: 12px; }
.chronos-books .support p{ margin: 0; color: var(--rz-by); max-width: 52ch; }
.chronos-books .read-zone .btn{ color: var(--rz-accent); border-color: var(--rz-accent); }
.chronos-books .read-zone .btn:hover{ background: var(--rz-accent); color: var(--rz-bg); }
.chronos-books .read-zone .btn.ghost{ color: var(--rz-by); border-color: var(--rz-ctl); }
.chronos-books .read-zone .btn.ghost:hover{ background: var(--rz-ctl); color: var(--rz-title); }
.chronos-books .support .row{ display: flex; flex-wrap: wrap; gap: 10px; }
.chronos-books .btn{ display: inline-block; font-family: var(--font-signal); font-size: 13.5px; letter-spacing: .04em; color: var(--signal); border: 1px solid var(--signal); border-radius: 24px; padding: 10px 22px; text-decoration: none; transition: background .2s, color .2s; }
.chronos-books .btn:hover{ background: var(--signal); color: var(--void); }
.chronos-books .btn.ghost{ color: var(--ash); border-color: var(--line); }
.chronos-books .btn.ghost:hover{ background: var(--line); color: var(--white); }
.chronos-books .nextprev{ display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-top: 34px; font-family: var(--font-signal); font-size: 13px; }
.chronos-books .nextprev a{ text-decoration: none; color: var(--rz-meta); }
.chronos-books .nextprev a:hover{ color: var(--rz-accent); }
.chronos-books .nextprev .nx{ margin-left: auto; text-align: right; }
.chronos-books .nextprev small{ display: block; font-size: 11.5px; letter-spacing: .1em; }
.chronos-books .nextprev span{ color: var(--rz-by); font-family: var(--font-read); font-size: 16px; }
.chronos-books .mini{ position: sticky; bottom: 0; z-index: 6; display: flex; align-items: center; gap: 12px; padding-inline: clamp(16px, 5vw, 32px); padding-block: 10px calc(10px + env(safe-area-inset-bottom, 0px)); background: rgba(16,17,25,.94); border-top: 1px solid var(--line); backdrop-filter: blur(6px); }
.chronos-books .mini .dot{ width: 7px; height: 7px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 9px var(--signal); flex: none; }
.chronos-books .mini .tx{ font-family: var(--font-signal); font-size: 12.5px; color: var(--ash); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chronos-books .mini .tx b{ color: var(--ash-dim); font-weight: 400; }
.chronos-books .mini .pl{ margin-left: auto; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--signal); display: grid; place-items: center; color: var(--signal); font-size: 12px; }
.chronos-books footer{ text-align: center; padding-block: 26px; font-family: var(--font-signal); font-size: 12px; color: var(--ash-dim); }
.chronos-books .text h3.sec{ font-family: var(--font-signal); font-weight: 600; font-size: .78em; letter-spacing: .14em; text-transform: uppercase; color: var(--rz-cycle); margin: 2.4em 0 1.2em; }
.chronos-books .text hr.sep{ border: 0; margin: 1.8em 0; text-align: center; height: 1em; }
.chronos-books .text hr.sep::after{ content: "· · ·"; color: var(--rz-meta); letter-spacing: .4em; font-family: var(--font-signal); font-size: .8em; }
.chronos-books .text blockquote.epi{ margin: 0 0 2em; padding: 0; color: var(--rz-by); }
.chronos-books .text blockquote.epi p{ margin: 0 0 .2em; }
.chronos-books .text p.sys{ font-family: var(--font-signal); font-size: .78em; letter-spacing: .06em; line-height: 1.55; color: var(--rz-cycle); margin-bottom: .35em; }
.chronos-books .text p.sys strong{ font-weight: 500; }
.chronos-books .text p.sys + p:not(.sys){ margin-top: 1.1em; }
.chronos-books .r-sub{ font-family: var(--font-signal); font-size: 12.5px; color: var(--rz-meta); letter-spacing: .06em; }
.chronos-books .cover{ margin: 0 0 26px; }
.chronos-books .cover img{ display: block; width: 100%; max-width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 10px; background: var(--rz-rule); }
@media  (min-width: 760px)  {.chronos-books .cover img{ aspect-ratio: 2 / 3; max-width: 340px; }}
.chronos-books .stories a.has-thumb{ grid-template-columns: 2.2em 40px 1fr auto; }
.chronos-books .stories .thumb{ width: 40px; height: 60px; object-fit: cover; border-radius: 4px; align-self: center; }
.chronos-books .nextprev .pv{ text-align: left; }
.chronos-books .support .credit{ font-size: 12.5px; color: var(--rz-meta); margin: 4px 0 0; }
.chronos-books .back-to-top{
    position: fixed;
    right: clamp(14px, 3vw, 30px);
    bottom: calc(84px + env(safe-area-inset-bottom, 0px));
    z-index: 20;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid rgba(232, 177, 90, .72);
    border-radius: 50%;
    background: rgba(26, 27, 44, .95);
    color: var(--signal);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .32);
    font: 600 25px/1 var(--font-signal);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
  }
.chronos-books .back-to-top.is-visible{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
.chronos-books .back-to-top:hover{ background: #282a42; }
.chronos-books .back-to-top:focus-visible{ outline: 2px solid var(--signal); outline-offset: 3px; }
@media  (max-width: 680px)  {.chronos-books .back-to-top{ right: 14px; width: 42px; height: 42px; font-size: 22px; }}
@media  (prefers-reduced-motion: reduce)  {.chronos-books .back-to-top{ transition: none; }}

/* LAB v0.4: book reading content remains a normal block inside site shell. */
body.route-active #pageMount.chronos-books .reader { max-width: 100%; }
body.route-active #pageMount.chronos-books .read-zone { overflow-wrap: break-word; }

/* RADIO CHRONOS LAB v0.8: shared background in dark mode. */
#pageMount.chronos-books {
  background: transparent;
}
#pageMount.chronos-books .read-zone:not([data-read-theme="light"]) {
  background: transparent;
}
