@font-face { font-family: "Tiro Devanagari Sanskrit"; src: url("../assets/fonts/TiroDevanagariSanskrit-Regular.ttf") format("truetype"); font-weight: 400; font-style: normal; }
@font-face { font-family: "Tiro Kannada"; src: url("../assets/fonts/TiroKannada-Regular.ttf") format("truetype"); font-weight: 400; font-style: normal; }
* { box-sizing: border-box; }
body { margin: 0; color: #3d3027; background: #f4ead6; font-family: "Tiro Kannada", serif; line-height: 1.8; }
a { color: #742d29; text-underline-offset: .2em; }
a:focus-visible { outline: 3px solid #742d29; outline-offset: 4px; }
.reader { max-width: 960px; margin: auto; padding: 24px; }
h1 { font-size: clamp(24px, 5vw, 36px); font-weight: 400; }
.cover { width: min(420px, 100%); margin: 24px auto; }
.cover img { display: block; width: 100%; height: auto; }
.chapter { min-height: 70vh; max-width: 740px; margin: 24px auto; padding: 32px; background: #fffaf0; }
.chapter:empty { min-height: 70vh; }
.chapter p { font-size: 19px; }
[lang|="sa"] { line-height: 2; }
@media (max-width: 480px) { .reader { padding: 16px; } .chapter { padding: 20px; } }
@media print { .reader { padding: 0; } .cover, .chapter { break-after: page; } }

.frontmatter { max-width: 820px; margin: 32px auto; padding: 32px; background: #fffaf0; }
.devotional { text-align: center; }
.ganesha { display: block; max-width: 100%; max-height: 500px; margin: 24px auto; }
.pair { margin: 28px 0; break-inside: avoid; }
p[lang|="sa"] { font-family: "Tiro Kannada", serif; font-size: 21px; }
.sanskrit-source { margin: 20px auto; max-width: 100%; }
.sanskrit-source img { display: block; width: 100%; height: auto; }
table { width: 100%; border-collapse: collapse; font-size: 16px; }
th, td { border-bottom: 1px solid #d6cbb8; text-align: left; padding: 9px 8px; vertical-align: top; }
th { font-weight: 400; color: #742d29; }
td:first-child, td:last-child { white-space: nowrap; font-family: "Kohinoor Devanagari", "Noto Serif Devanagari", serif; }
td:first-child { width: 50px; } td:last-child { width: 110px; }
.group th { padding-top: 24px; font-size: 22px; }
@media(max-width:600px) { .frontmatter { padding: 18px 12px; } table { font-size: 14px; } th, td { padding: 8px 3px; } td:first-child, td:last-child { width: auto; } }
@media print { .frontmatter { break-before: page; padding: 0; } thead { display: table-header-group; } tr { break-inside: avoid; } }

.source-facsimile, .devotional-illustration { margin: 0 0 28px; }
.source-facsimile img, .devotional-illustration img { display: block; width: 100%; height: auto; }
.source-page + .source-page { margin-top: 48px; }
.meaning p { font-size: 18px; margin: 0 0 18px; }
.unit { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 16px; break-inside: avoid; }
.num { color: #742d29; padding-top: 3px; font-family: "Tiro Kannada", serif; overflow-wrap: anywhere; }
.reading-uncertain { text-decoration: none; cursor: help; }
.end { text-align: center; margin-top: 24px; }
.caption { text-align: center; font-size: 21px; }
@media(max-width:600px) { .unit { grid-template-columns: 32px minmax(0,1fr); gap: 8px; } .chapter { padding: 18px 12px; } }

.unit[data-unit="ಆವಾಹನೆ"] { display: block; }
.unit[data-unit="ಆವಾಹನೆ"] .num { display: none; }

.unit[data-fragment="true"] .num { white-space: nowrap; font-size: 14px; }

.text-page-scan, .source-facsimile, .sanskrit-source { display: none; }

[lang|="sa"], .meaning .sanskrit-verse { font-family: "Tiro Kannada", serif; font-size: 21px; line-height: 1.9; }
.verse-pair { min-width: 0; }
.sanskrit-verse { white-space: pre-line; margin: 0 0 14px; }

/* Sanskrit language in Kannada script; meaning follows in a quieter text size. */
p[lang="sa-Knda"], .meaning .sanskrit-verse {
  font-family: "Tiro Kannada", serif;
  color: #742d29;
  font-size: 21px;
  line-height: 2.05;
  overflow-wrap: anywhere;
  margin: 0 0 16px;
}
.verse-pair { padding-bottom: 18px; }
.verse-pair > p[lang="kn"] { color: #3d3027; line-height: 1.9; }
@media (max-width: 375px) {
  .reader { padding: 12px; }
  .unit { grid-template-columns: 27px minmax(0, 1fr); gap: 8px; }
  p[lang="sa-Knda"], .meaning .sanskrit-verse { font-size: 20px; }
}
@media (prefers-color-scheme: dark) {
  body { color: #f1e6d2; background: #201b17; }
  .chapter, .frontmatter { background: #2b241e; }
  p[lang="sa-Knda"], .meaning .sanskrit-verse, .num { color: #f0b3a0; }
  .verse-pair > p[lang="kn"] { color: #f1e6d2; }
  th { color: #f0b3a0; }
  th, td { border-bottom-color: #66584b; }
}
.frontmatter p, .chapter p, .frontmatter h1, .frontmatter th, .frontmatter td:nth-child(2) { overflow-wrap: anywhere; }

.verse-group { margin: 36px 0 56px; }
.group-slokas .unit { margin-bottom: 12px; }
.entry-text { min-width: 0; }
.group-divider { border: 0; border-top: 1px solid #cbb9a0; margin: 20px 0 24px; }
.group-meanings p[lang="kn"] { color: #3d3027; line-height: 1.9; }
.partial-label { display: block; font-size: 13px; margin-bottom: 18px; }
@media (prefers-color-scheme: dark) {
  .group-divider { border-top-color: #66584b; }
  .group-meanings p[lang="kn"] { color: #f1e6d2; }
}
