/* neerajbhatyal.com — book reader (chapter pages). Builds on styles.css tokens. */

/* ---------- reading modes (applied to the reading area only) ---------- */
.bk-layout {
  --r-bg: transparent;
  --r-text: #DCE0E8;
  --r-strong: var(--text);
  --r-head: var(--text);
  --r-muted: var(--muted);
  --r-line: var(--border);
  --r-panel: var(--surface);
  --r-panel-2: var(--surface-2);
  --r-link: var(--lime);
  --r-accent: var(--lime);
  --r-font: var(--font-body);
}
html[data-reader="light"] .bk-layout {
  --r-bg: #FAFAF7; --r-text: #23262E; --r-strong: #0B0D12; --r-head: #0B0D12; --r-muted: #4F5562;
  --r-line: #E2E2DC; --r-panel: #FFFFFF; --r-panel-2: #F1F0EA; --r-link: #4A2FD6; --r-accent: #4A2FD6;
}
html[data-reader="sepia"] .bk-layout {
  --r-bg: #F4ECD8; --r-text: #3B2F1E; --r-strong: #24190B; --r-head: #24190B; --r-muted: #6A5A41;
  --r-line: #E0D3B4; --r-panel: #FBF5E6; --r-panel-2: #EDE2C6; --r-link: #8A3B12; --r-accent: #8A3B12;
}
html[data-reader="light"] .bk-layout,
html[data-reader="sepia"] .bk-layout {
  background: var(--r-bg); border-radius: var(--r-xl); margin-top: 32px; margin-bottom: 32px;
  padding-top: 48px; padding-bottom: 48px;
}

/* ---------- top progress bar ---------- */
.bk-progress { position: fixed; inset: 0 0 auto 0; height: 4px; z-index: 50; background: transparent; }
.bk-progress i { display: block; height: 100%; width: 0; background: var(--lime); box-shadow: 0 0 12px rgba(198, 244, 50, .6); }

/* ---------- hero ---------- */
.bk-hero { position: relative; overflow: hidden; padding: 56px 0 64px; border-bottom: 1px solid #1E2330; }
.bk-hero .glow--violet { opacity: .3; }
.bk-hero--cyan .glow--violet { background: var(--cyan); opacity: .22; }
.bk-hero--lime .glow--violet { background: var(--lime); opacity: .16; }
.bk-hero--coral .glow--violet { background: var(--coral); opacity: .2; }
.bk-hero--amber .glow--violet { background: var(--amber); opacity: .18; }
.bk-hero__inner { position: relative; }
.bk-hero__big {
  position: absolute; right: 2%; top: 50%; transform: translateY(-50%);
  font-family: var(--font-display); font-weight: 800; font-size: clamp(140px, 22vw, 320px); line-height: 1;
  color: transparent; -webkit-text-stroke: 2px rgba(242, 244, 248, .09); pointer-events: none; user-select: none;
}
.bk-hero__kicker { margin-top: 8px; font-family: var(--font-mono); font-size: 14px; font-weight: 600; color: var(--lime); letter-spacing: .06em; }
.bk-hero__kicker span { color: var(--faint); font-weight: 400; }
.bk-hero--cyan .bk-hero__kicker { color: var(--cyan); }
.bk-hero--coral .bk-hero__kicker { color: var(--coral); }
.bk-hero--amber .bk-hero__kicker { color: var(--amber); }
.bk-hero--violet .bk-hero__kicker { color: #A996FF; }
.bk-hero h1 { margin-top: 14px; max-width: 900px; font-weight: 800; font-size: clamp(32px, 4.6vw, 60px); line-height: 1.06; }
.bk-hero__meta { margin-top: 26px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; font-size: 15px; color: var(--faint); }
.bk-dl { display: inline-flex; align-items: center; gap: 8px; color: var(--text-2); text-decoration: none; font-weight: 600; }
.bk-dl:hover { color: var(--lime); }
.bk-theme { display: inline-flex; padding: 4px; border-radius: var(--r-pill); background: var(--surface); border: 1px solid var(--border); }
.bk-theme button {
  min-height: 36px; padding: 0 14px; border: 0; border-radius: var(--r-pill); background: transparent;
  color: var(--muted); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer;
}
.bk-theme button[aria-pressed="true"] { background: var(--lime); color: var(--ink); }

/* ---------- layout ---------- */
.bk-layout { display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; padding-top: 56px; padding-bottom: 96px; }
.bk-side { flex: 0 0 260px; position: sticky; top: 20px; max-height: calc(100vh - 40px); overflow-y: auto; display: grid; gap: 22px; padding-right: 4px; }
.bk-article { flex: 1 1 600px; min-width: 0; max-width: 780px; }

.bk-side__book { display: flex; gap: 14px; align-items: center; text-decoration: none; color: var(--r-head); padding: 12px; border-radius: var(--r-md); background: var(--r-panel); border: 1px solid var(--r-line); }
.bk-side__book img { width: 52px; height: auto; border-radius: 3px 6px 6px 3px; box-shadow: 0 8px 18px rgba(0, 0, 0, .35); }
.bk-side__book span { font-weight: 700; font-size: 14px; line-height: 1.3; }
.bk-side__book small { display: block; margin-top: 4px; font-weight: 600; font-size: 12px; color: var(--r-link); }
.bk-side__book:hover { color: var(--r-head); border-color: var(--border-2); }
.bk-side__progress { display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; align-items: center; font-size: 12px; color: var(--r-muted); }
.bk-side__progress span { grid-column: 1 / -1; font-family: var(--font-mono); }
.bk-side__progress b { font-family: var(--font-mono); color: var(--r-head); }
.bk-meter { height: 6px; border-radius: 3px; background: var(--r-line); overflow: hidden; }
.bk-meter i { display: block; height: 100%; background: var(--r-accent); border-radius: 3px; }
.bk-side__title { font-family: var(--font-mono); font-size: 13px; color: var(--r-accent); margin-bottom: 10px; }
.bk-side__toc ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--r-line); }
.bk-side__toc a { display: block; padding: 7px 0 7px 14px; margin-left: -1px; border-left: 2px solid transparent; font-size: 14px; line-height: 1.4; color: var(--r-muted); text-decoration: none; }
.bk-side__toc a b { font-family: var(--font-mono); font-weight: 600; font-size: 12px; color: var(--r-head); margin-right: 4px; }
.bk-side__toc a:hover { color: var(--r-head); }
.bk-side__toc a.is-active { color: var(--r-head); border-left-color: var(--r-accent); }

@media (max-width: 1023px) {
  .bk-side { position: static; flex-basis: 100%; max-height: none; overflow: visible; }
  .bk-side__toc { display: none; }
  .bk-layout { gap: 28px; padding-top: 32px; }
}

/* ---------- prose ---------- */
.bk-prose { max-width: none; font-family: var(--r-font); font-size: 18.5px; line-height: 1.75; color: var(--r-text); }
.bk-prose > * + * { margin-top: 1.05em; }
.bk-prose strong { color: var(--r-strong); }
.bk-prose a { color: var(--r-link); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.bk-prose h2 { margin-top: 2.4em; font-size: clamp(24px, 2.6vw, 30px); line-height: 1.2; color: var(--r-head); scroll-margin-top: 24px; }
.bk-prose h3 { margin-top: 1.9em; font-size: 21px; color: var(--r-head); scroll-margin-top: 24px; }
.bk-prose h4 { margin-top: 1.6em; font-family: var(--font-body); font-size: 18px; font-weight: 700; letter-spacing: 0; color: var(--r-head); }
.bk-num { display: inline-block; margin-right: 6px; padding: 2px 10px; border-radius: 8px; font-family: var(--font-mono); font-size: .62em; font-weight: 600; vertical-align: .2em; background: var(--r-panel-2); color: var(--r-accent); }
.bk-prose ul, .bk-prose ol { padding-left: 1.3em; }
.bk-prose li + li { margin-top: .45em; }
.bk-prose li::marker { color: var(--r-accent); }
.bk-prose code { font-size: .85em; background: var(--r-panel-2); color: var(--r-strong); }

.bk-prose .bk-lede { font-size: 1.2em; line-height: 1.6; color: var(--r-head); }
.bk-box .bk-lede { font-size: 1em; color: inherit; }

/* tables */
.bk-prose .tbl { border-color: var(--r-line); background: var(--r-panel); }
.bk-prose .tbl table { font-size: 15.5px; }
.bk-prose .tbl th { background: var(--r-panel-2); color: var(--r-head); white-space: normal; }
.bk-prose .tbl td { border-color: var(--r-line); }
.bk-prose .tbl th, .bk-prose .tbl td { border-bottom-color: var(--r-line); }
.bk-prose .tbl tbody tr:nth-child(even) td { background: color-mix(in srgb, var(--r-panel-2) 45%, transparent); }

/* figures */
.bk-fig { margin: 2.2em 0 !important; }
.bk-fig__frame { padding: clamp(10px, 2vw, 22px); border-radius: var(--r-lg); background: #FFFFFF; border: 1px solid var(--r-line); box-shadow: 0 24px 48px rgba(0, 0, 0, .28); }
.bk-fig img { width: 100%; height: auto; }
.bk-fig figcaption { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; font-size: 15px; color: var(--r-muted); }
.bk-fig figcaption span { font-family: var(--font-mono); font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: var(--r-pill); background: var(--r-panel-2); color: var(--r-accent); }

/* pull quotes */
.bk-quote { position: relative; margin: 2em 0 !important; padding: 28px 28px 28px 76px; border-radius: var(--r-lg); background: var(--r-panel); border: 1px solid var(--r-line); }
.bk-quote__mark { position: absolute; left: 24px; top: 26px; color: var(--violet); }
.bk-quote p { font-family: var(--font-display); font-size: clamp(18px, 2vw, 22px); line-height: 1.4; letter-spacing: -0.01em; color: var(--r-head); }
.bk-quote p strong { font-weight: 700; color: inherit; }
.bk-quote p + p { margin-top: .6em; }

/* special section panels */
.bk-box { margin: 2.4em 0 !important; padding: clamp(22px, 3vw, 34px); border-radius: var(--r-xl); }
.bk-box > * + * { margin-top: 1em; }
.bk-box h2 { margin-top: 4px !important; }
.bk-box .bk-num { display: none; }
.bk-box__kicker { font-family: var(--font-mono); font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.bk-box--purpose { background: var(--violet); color: #F1EEFF; }
.bk-box--purpose h2, .bk-box--purpose strong { color: #FFFFFF; }
.bk-box--purpose .bk-box__kicker { color: var(--lime); }
.bk-box--purpose a { color: #FFFFFF; }
.bk-box--case { background: var(--r-panel); border: 1px solid var(--r-line); border-top: 6px solid var(--amber); }
.bk-box--case .bk-box__kicker { color: #C98A00; }
html:not([data-reader]) .bk-box--case .bk-box__kicker,
html[data-reader="dark"] .bk-box--case .bk-box__kicker { color: var(--amber); }
.bk-box--takeaways { background: var(--lime); color: #1A1F0A; }
.bk-box--takeaways h2, .bk-box--takeaways strong { color: var(--ink); }
.bk-box--takeaways .bk-box__kicker { color: #3D4A12; }
.bk-box--takeaways li::marker { color: var(--ink); font-weight: 700; }
.bk-box--takeaways a { color: var(--ink); }
.bk-box--reflection { background: var(--r-panel-2); border: 1px dashed var(--border-2); }
.bk-box--reflection .bk-box__kicker { color: var(--coral); }
.bk-box--reflection li::marker { color: var(--coral); }

/* ---------- part pages ---------- */
.bk-part-h { margin-top: 56px; margin-bottom: 20px; font-size: 26px; color: var(--r-head); }
.bk-chgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 16px; }
.bk-chcard { display: flex; flex-direction: column; gap: 8px; padding: 22px; border-radius: var(--r-lg); background: var(--r-panel); border: 1px solid var(--r-line); text-decoration: none; color: var(--r-head); transition: transform .15s ease, border-color .15s ease; }
.bk-chcard:hover { color: var(--r-head); transform: translateY(-2px); border-color: var(--border-2); }
.bk-chcard__num { font-family: var(--font-display); font-weight: 800; font-size: 30px; color: var(--r-accent); line-height: 1; }
.bk-chcard__title { font-weight: 700; font-size: 17px; line-height: 1.35; }
.bk-chcard__meta { margin-top: auto; font-size: 14px; color: var(--r-muted); }

/* ---------- pager ---------- */
.bk-pager { margin-top: 64px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 16px; }
.bk-nav { display: flex; flex-direction: column; gap: 6px; padding: 22px 24px; border-radius: var(--r-lg); text-decoration: none; transition: transform .15s ease; }
.bk-nav:hover { transform: translateY(-2px); }
.bk-nav--prev { background: var(--r-panel); border: 1px solid var(--r-line); color: var(--r-head); }
.bk-nav--prev:hover { color: var(--r-head); }
.bk-nav--next { background: var(--violet); color: #FFFFFF; text-align: right; align-items: flex-end; }
.bk-nav--next:hover { color: #FFFFFF; }
.bk-nav__dir { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 13px; font-weight: 600; opacity: .85; }
.bk-nav__label { font-size: 13px; font-weight: 700; opacity: .8; }
.bk-nav__title { font-family: var(--font-display); font-weight: 700; font-size: 18px; line-height: 1.25; }
.bk-end { margin-top: 28px; font-size: 15px; color: var(--r-muted); }
.bk-end a { color: var(--r-link); }

/* ---------- print ---------- */
@media print {
  .bk-progress, .bk-side, .bk-pager, .bk-end, .bk-theme, .bk-dl, .bk-hero__big { display: none !important; }
  .bk-hero { padding: 0 0 12pt; border: 0; }
  .bk-layout { --r-text: #111; --r-head: #000; --r-strong: #000; --r-muted: #444; --r-line: #ccc; --r-panel: #fff; --r-panel-2: #f2f2f2; --r-link: #000; --r-accent: #333; padding: 0; background: none !important; }
  .bk-box--purpose, .bk-box--takeaways { background: #f2f2f2 !important; color: #111 !important; }
  .bk-box--purpose h2, .bk-box--takeaways h2 { color: #000 !important; }
}
