
/* ---------- UECF site header + primary navigation (shared across pages) ---------- */
:root{
  --uecf-ink:#101B31;
  --uecf-gold:#C79A3D;
  --uecf-gold-soft:#E4C685;
  --uecf-cream:#FAF6EC;
  --uecf-header-h:76px;
  --uecf-subbar-h:76px; /* fallback until JS measures #sidebar */
  --uecf-max:1200px;
  --uecf-font-display:Georgia, 'Times New Roman', serif;
  --uecf-font-body:'Inter', system-ui, -apple-system, sans-serif;
}
.skip-link{
  position:absolute; left:-999px; top:0; z-index:200;
  background:var(--uecf-gold); color:var(--uecf-ink);
  padding:10px 18px; font-weight:700; border-radius:0 0 6px 0;
  font-family:var(--uecf-font-body);
}
.skip-link:focus{left:0;}

header.site-header{
  background:var(--uecf-ink); color:var(--uecf-cream);
  position:sticky; top:0; z-index:100;
  border-bottom:3px solid var(--uecf-gold);
  box-shadow:0 4px 20px rgba(0,0,0,.15);
  font-family:var(--uecf-font-body);
}
header.site-header .header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 24px; max-width:var(--uecf-max); margin:0 auto;
}
header.site-header .brand{
  display:flex; align-items:center; gap:16px;
  color:var(--uecf-cream); text-decoration:none;
}
header.site-header .brand:hover{text-decoration:none;}
header.site-header .brand-logo-img{
  width:50px; height:50px; flex:none; display:block; object-fit:contain;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));
}
header.site-header .brand-text{display:flex; flex-direction:column; line-height:1.2;}
header.site-header .brand-text .full{
  font-family:var(--uecf-font-display); font-size:1.15rem; font-weight:700;
  color:var(--uecf-cream); letter-spacing:-.01em;
}
header.site-header .brand-text .sub{
  font-size:.75rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--uecf-gold-soft); font-weight:600;
}

header.site-header nav.primary-nav{display:flex;}
header.site-header nav.primary-nav ul{
  display:flex; gap:4px; flex-wrap:wrap; align-items:center;
  margin:0; padding:0; list-style:none;
}
header.site-header nav.primary-nav a,
header.site-header nav.primary-nav button{
  color:var(--uecf-cream); font-size:.9rem; font-weight:600;
  padding:10px 14px; display:block; border-radius:4px;
  background:none; border:none; font-family:inherit; cursor:pointer;
  transition:all .2s ease; white-space:nowrap;
}
header.site-header nav.primary-nav a:hover,
header.site-header nav.primary-nav button:hover{
  background:rgba(228,198,133,.15); text-decoration:none; color:var(--uecf-gold-soft);
}
header.site-header .nav-toggle{
  display:none; background:none; border:1px solid rgba(228,198,133,.5);
  color:var(--uecf-cream); padding:8px 12px; border-radius:6px;
  font-size:1rem; cursor:pointer; font-family:var(--uecf-font-body);
}
@media (max-width:992px){
  header.site-header nav.primary-nav{
    position:absolute; top:100%; left:0; right:0; background:var(--uecf-ink);
    flex-direction:column; max-height:0; overflow:hidden;
    transition:max-height .3s ease; border-bottom:1px solid rgba(228,198,133,.25);
  }
  header.site-header nav.primary-nav.open{max-height:600px;}
  header.site-header nav.primary-nav ul{
    flex-direction:column; align-items:stretch; padding:8px 24px 16px;
  }
  header.site-header .nav-toggle{display:block;}
}

/* ---------- Mobile-only auto-hiding chrome (<=768px) ----------
   Desktop (>768px) sticky header is intentionally unchanged.
   JS toggles .header-visible / .header-hidden on header + #sidebar. */
@media (max-width:768px){
  header.site-header{
    position:fixed;
    top:0; left:0; right:0; width:100%;
    transition:transform 0.25s ease;
    will-change:transform;
  }
  header.site-header.header-visible{
    transform:translateY(0);
  }
  header.site-header.header-hidden{
    transform:translateY(-100%);
    pointer-events:none;
  }
  /* Reserve space so content does not jump under the fixed chrome. */
  body{padding-top:calc(var(--uecf-header-h) + var(--uecf-subbar-h));}
}
@media (max-width:768px) and (prefers-reduced-motion:reduce){
  header.site-header{
    transition:none;
  }
}
/* Belt-and-suspenders: never apply hide transforms on desktop. */
@media (min-width:769px){
  header.site-header.header-visible,
  header.site-header.header-hidden{
    transform:none !important;
    pointer-events:auto !important;
  }
}

:root{
  --paper:#101B31;
  --paper-2:#182642;
  --paper-3:#20304F;
  --ink:#D7E0EC;
  --ink-soft:#EDE4CE;
  --ink-faint:#8FA4BE;
  --maroon:#C9A45C;
  --gold:#C9A45C;
  --gold-soft:#DCC28C;
  --gold-line:#C9A45C;
  --cream:#EDE4CE;
  --rule:#28395A;
  --shadow: rgba(0,0,0,0.45);
  --focus-ring:#DCC28C;
}
/* Light mode keeps the same gold/ink family as the dark default. */
html[data-theme="light"]{
  --paper:#FAF6EC;
  --paper-2:#FFFFFF;
  --paper-3:#F1E9D6;
  --ink:#1E2A44;
  --ink-soft:#3C4A66;
  --ink-faint:#5C6579;
  --maroon:#8A6516;
  --gold:#8A6516;
  --gold-soft:#B08D3C;
  --gold-line:#C79A3D;
  --cream:#101B31;
  --rule:#E0D5BC;
  --shadow: rgba(16,27,49,0.10);
  --focus-ring:#6B4E0C;
}

*{box-sizing:border-box;}
/* visually hidden, still read by screen readers */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
html,body{margin:0; padding:0; max-width:100%;}
html{
  /* `clip` does not create a scroll container, so the two sticky bars keep
     working; `hidden` first as the fallback for Safari < 16. */
  overflow-x:hidden;
  overflow-x:clip;
  scroll-behavior:smooth;
}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Tiro Tamil', 'Noto Serif Tamil', Georgia, serif;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  min-height:100svh;   /* 100vh includes the collapsing mobile URL bar */
  background-image:
    radial-gradient(circle at 100% 0%, rgba(201,164,92,0.05), transparent 45%),
    radial-gradient(circle at 0% 100%, rgba(31,92,87,0.05), transparent 45%);
  background-attachment:scroll;
}
/* Fixed attachment repaints a full-viewport gradient every scroll frame and
   is broken on iOS; opt in only for real pointers. */
@media (hover:hover) and (pointer:fine){
  body{background-attachment:fixed;}
}
::selection{background:var(--gold-soft); color:var(--paper);}
a{color:inherit; text-decoration:none;}
/* :focus base so Safari < 15.4 still shows an indicator; :focus-visible
   supersedes it where supported. --focus-ring meets 3:1 in both themes. */
:focus{outline:2px solid var(--focus-ring); outline-offset:2px; border-radius:4px;}
@supports selector(:focus-visible){
  :focus{outline:none;}
  :focus-visible{outline:2px solid var(--focus-ring); outline-offset:2px; border-radius:4px;}
}

/* ---------- layout shell ---------- */
#shell{display:block;}
#main{margin-left:0; padding:0 0 80px;}

/* ---------- library bar (sticky sub-header, same as chapter pages) ---------- */
#sidebar{
  width:100%;
  background:var(--uecf-ink);
  color:#D6E4F0;
  display:flex; flex-direction:row; align-items:center; flex-wrap:wrap;
  position:sticky; top:var(--uecf-header-h);
  overflow:visible; z-index:40;
  border-bottom:1px solid var(--rule);
  box-shadow:0 2px 14px rgba(0,0,0,0.18);
  padding:10px 20px; gap:18px;
}

/* Mobile-only: library bar slides with the site header (auto-hide chrome). */
@media (max-width:768px){
  #sidebar{
    position:fixed;
    top:var(--uecf-header-h);
    left:0; right:0; width:100%;
    transition:transform 0.25s ease;
    will-change:transform;
  }
  #sidebar.header-visible{
    transform:translateY(0);
  }
  /* Slide up by header height + own height so the whole top chrome clears the viewport. */
  #sidebar.header-hidden{
    transform:translateY(calc(-1 * (var(--uecf-header-h) + 100%)));
    pointer-events:none;
  }
}
@media (max-width:768px) and (prefers-reduced-motion:reduce){
  #sidebar{
    transition:none;
  }
}
@media (min-width:769px){
  #sidebar.header-visible,
  #sidebar.header-hidden{
    transform:none !important;
    pointer-events:auto !important;
  }
}

#sidebar .brand{display:flex; align-items:center; flex-shrink:0;}
.brand-mark{display:flex; align-items:center; gap:10px;}
.brand-mark svg{flex-shrink:0;}
.brand-eyebrow{
  font-family:'Inter',sans-serif; font-size:0.625rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--uecf-gold-soft); font-weight:600;
}
.brand-title{font-family:'Noto Sans Tamil',sans-serif; font-size:1.125rem; line-height:1.2; color:#fff; margin:0;}

.search-wrap{position:relative; flex:1 1 260px; min-width:160px;}
.search-box{
  display:flex; align-items:center; gap:8px;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.38);
  border-radius:6px; padding:9px 12px;
}
.search-box:focus-within{border-color:var(--uecf-gold-soft);}
.search-box svg{flex-shrink:0; opacity:.7;}
#searchInput{
  background:none; border:none; outline:none; color:#fff;
  font-family:'Tiro Tamil',serif; font-size:0.875rem; width:100%;
  appearance:none; -webkit-appearance:none;
}
/* Safari draws its own clear button; #searchClear replaces it. */
#searchInput::-webkit-search-cancel-button,
#searchInput::-webkit-search-decoration{-webkit-appearance:none; display:none;}
#searchInput::placeholder{color:#9FB8D4; font-family:'Inter',sans-serif; font-size:0.8125rem;}
.search-clear{
  background:none; border:none; color:#9FB8D4; cursor:pointer; padding:0;
  display:none; line-height:1; font-size:1rem; font-family:'Inter',sans-serif;
  /* WCAG 2.2 SC 2.5.8 - 28x28 hit area, negative margin keeps the visual size */
  width:28px; height:28px; border-radius:50%; flex-shrink:0;
  align-items:center; justify-content:center; margin:-4px -4px -4px 0;
}
.search-clear.show{display:flex;}
.search-clear:hover{color:var(--uecf-gold-soft);}

/* display options live in the sticky bar */
.bar-tools{display:flex; gap:8px; flex:0 0 auto;}
.tool-btn{
  width:34px; height:34px; border-radius:50%;
  border:1px solid rgba(255,255,255,0.40);
  background:rgba(255,255,255,0.06);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:#E9F0F8; flex-shrink:0; padding:0;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.tool-btn:hover{border-color:var(--uecf-gold-soft); color:var(--uecf-gold-soft); background:rgba(228,198,133,.12);}
/* one theme icon visible per mode */
.icon-moon{display:none;}
html[data-theme="light"] .icon-sun{display:none;}
html[data-theme="light"] .icon-moon{display:block;}

/* ---------- page head ---------- */
.page-head{padding:40px 40px 0; max-width:1080px; margin:0 auto;}
.breadcrumb{
  font-family:'Inter',sans-serif; font-size:0.78125rem; color:var(--ink-faint);
  display:flex; align-items:center; gap:8px; margin-bottom:18px; flex-wrap:wrap;
}
.breadcrumb a{color:var(--maroon); font-weight:600;}
.breadcrumb a:hover{text-decoration:underline;}
.rule-double{border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); height:3px; margin:0 0 30px;}
.section-label{
  font-family:'Inter',sans-serif; font-size:0.78125rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-faint); font-weight:700;
  margin:0 0 14px; display:flex; align-items:center; gap:10px;
}
.section-label::after{content:""; flex:1; height:1px; background:var(--rule);}
.wrap{max-width:1080px; margin:0 auto; padding:0 40px 40px;}

/* ---------- hero ---------- */
.hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(circle at 12% 12%, rgba(201,164,92,0.16), transparent 55%),
    radial-gradient(circle at 88% 90%, rgba(201,164,92,0.10), transparent 60%),
    linear-gradient(160deg, var(--paper-3), var(--paper-2) 70%);
  border:1px solid var(--rule); border-top:3px solid var(--gold-line);
  border-radius:10px; box-shadow:0 18px 50px var(--shadow);
  padding:56px 48px 52px; text-align:center;
}
.hero::after{
  content:""; position:absolute; inset:14px; border:1px solid var(--rule);
  border-radius:6px; pointer-events:none; opacity:.55;
}
.hero-eyebrow{
  font-family:'Inter',sans-serif; font-size:0.6875rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold); font-weight:700;
  display:flex; align-items:center; justify-content:center; gap:9px; margin-bottom:16px;
}
.hero-eyebrow span.bk{font-size:1.0625rem;}
.hero h1{
  font-family:'Noto Sans Tamil',sans-serif; font-size:clamp(2rem,5.2vw,3.25rem);
  color:var(--gold); margin:0 0 10px;
  /* Telugu stacks vowel signs above and below; 1.22 clipped them at the
     top of the clamp range. */
  line-height:1.35;
}
.h1-en{
  display:block; font-family:'Inter',sans-serif; font-weight:600;
  font-size:clamp(0.875rem,1.8vw,1.1875rem); letter-spacing:.06em;
  color:var(--gold-soft); margin-top:6px;
}
.hero-sub{
  font-family:'Inter',sans-serif; font-size:clamp(0.8125rem,1.6vw,0.9375rem);
  color:var(--ink-soft); letter-spacing:.04em; margin:0 0 6px;
}
.hero-word{
  font-family:'Inter',sans-serif; font-style:italic; font-size:0.8125rem;
  color:var(--ink-faint); letter-spacing:.08em; margin:0 0 26px;
}
.hero-divider{
  width:120px; height:1px; margin:0 auto 26px;
  background:linear-gradient(90deg,transparent,var(--gold-line),transparent);
}
blockquote.hero-verse{
  margin:0 auto; max-width:640px;
  font-family:'Tiro Tamil',serif; font-style:italic;
  font-size:clamp(1.0625rem,2.3vw,1.375rem); line-height:1.9; color:var(--cream);
}
figure.hero-quote{margin:0;}
.hero-quote figcaption cite{
  display:block; margin-top:14px; font-family:'Inter',sans-serif;
  font-style:normal; font-size:0.75rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold); font-weight:700;
}

/* ---------- testament cards ---------- */
.testaments{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:20px; margin:34px 0 44px;
}
.testament-card{
  display:block; background:var(--paper-2);
  border:1px solid var(--rule); border-radius:10px;
  padding:30px 28px; box-shadow:0 10px 30px var(--shadow);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  position:relative; overflow:hidden;
}
.testament-card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--gold-line); opacity:.75;
}
@media (hover:hover) and (pointer:fine){
  .testament-card:hover{
    transform:translateY(-4px); box-shadow:0 22px 46px var(--shadow);
    border-color:var(--gold-line);
  }
}
.testament-card:focus-within{border-color:var(--gold-line);}
/* The heading holds the real link; ::after stretches its hit area over the
   whole card so the card stays clickable without wrapping a heading in <a>. */
.tc-link{color:inherit; text-decoration:none;}
.tc-link::after{content:""; position:absolute; inset:0; z-index:1;}
.tc-icon{font-size:1.625rem; line-height:1; display:block; margin-bottom:14px;}
.tc-te{font-family:'Noto Sans Tamil',sans-serif; font-size:1.625rem; color:var(--cream); margin:0 0 6px;}
.tc-en{
  font-family:'Inter',sans-serif; font-size:0.75rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-faint); font-weight:700; margin:0 0 18px;
}
.tc-meta{
  display:flex; align-items:baseline; gap:8px;
  font-family:'Inter',sans-serif; font-size:0.8125rem; color:var(--ink-soft);
}
.tc-meta b{font-size:1.625rem; color:var(--gold); font-weight:700; line-height:1;}
.tc-go{
  margin-top:20px; display:inline-flex; align-items:center; gap:7px;
  font-family:'Inter',sans-serif; font-size:0.78125rem; font-weight:600; color:var(--maroon);
}
@media (hover:hover) and (pointer:fine){
  .testament-card:hover .tc-go{text-decoration:underline;}
}

/* ---------- book grid ---------- */
/* Both sticky bars are measured at runtime (see syncBarHeights); the 76px
   fallback only applies before the first measurement. */
.books-section{margin-bottom:44px;
  scroll-margin-top:calc(var(--uecf-header-h) + var(--uecf-subbar-h, 76px) + 12px);}
/* SC 2.4.11 - keep a focused card clear of the sticky bars */
.book-card,.testament-card,.stat{
  scroll-margin-top:calc(var(--uecf-header-h) + var(--uecf-subbar-h, 76px) + 12px);}
.book-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px;
}
.book-card{
  display:flex; flex-direction:column; gap:3px;
  background:var(--paper-2); border:1px solid var(--rule); border-radius:8px;
  padding:16px 18px 15px;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
/* Hover lift only where there is a real pointer; on touch it stuck until
   the next tap. */
@media (hover:hover) and (pointer:fine){
  .book-card:hover{
    transform:translateY(-3px); border-color:var(--gold-line);
    box-shadow:0 12px 26px var(--shadow);
  }
  .book-card:hover .bk-te{color:var(--gold);}
}
.book-card:focus-within{border-color:var(--gold-line);}
.bk-num{
  font-family:'Inter',sans-serif; font-size:0.6875rem; font-weight:700;
  letter-spacing:.12em; color:var(--gold); margin-bottom:4px;
}
.bk-te{
  font-family:'Noto Sans Tamil',sans-serif; font-size:1.0625rem; line-height:1.35;
  color:var(--cream); transition:color .15s ease;
}
.bk-en{font-family:'Inter',sans-serif; font-size:0.78125rem; color:var(--ink-soft); font-weight:500;}
.bk-ch{
  font-family:'Tiro Tamil',serif; font-size:0.75rem; color:var(--ink-faint); margin-top:6px;
}
.book-card[hidden]{display:none;}
.books-section[hidden]{display:none;}
.no-results{
  display:none; padding:26px 20px; text-align:center;
  border:1px dashed var(--rule); border-radius:8px;
  font-family:'Tiro Tamil',serif; font-size:0.9375rem; color:var(--ink-faint);
}
.no-results.show{display:block;}
.search-status{
  font-family:'Inter',sans-serif; font-size:0.78125rem; color:var(--ink-faint);
  margin:0 0 20px; min-height:1em;
}

/* ---------- statistics ---------- */
.stats{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px;
  margin-bottom:44px;
}
.stat{
  background:var(--paper-2); border:1px solid var(--rule); border-radius:8px;
  padding:22px 18px; text-align:center;
  box-shadow:0 8px 22px var(--shadow);
}
.stat-num{
  font-family:'Inter',sans-serif; font-size:1.875rem; font-weight:700;
  color:var(--gold); line-height:1; display:block; margin-bottom:8px;
}
.stat-te{font-family:'Noto Sans Tamil',sans-serif; font-size:0.9375rem; color:var(--cream); display:block;}
.stat-en{
  font-family:'Inter',sans-serif; font-size:0.75rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-faint); font-weight:600; display:block; margin-top:4px;
}

/* ---------- features ---------- */
.features{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:10px 26px; list-style:none; padding:0; margin:0 0 40px;
}
.features li{
  display:flex; align-items:flex-start; gap:10px;
  font-family:'Inter',sans-serif; font-size:0.84375rem; color:var(--ink-soft);
}
.features li::before{
  content:"✔"; color:var(--gold); font-size:0.8125rem; line-height:1.4; flex-shrink:0;
}

/* ---------- small round icon buttons (page actions) ---------- */
.icon-btn{
  width:36px; height:36px; border-radius:50%; border:1px solid var(--rule);
  background:var(--paper-2); display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:var(--ink-soft); flex-shrink:0; padding:0;
  transition:border-color .15s ease, color .15s ease;
}
.icon-btn:hover{border-color:var(--gold-line); color:var(--maroon);}
.page-actions{
  max-width:1080px; margin:0 auto; padding:0 40px 50px;
  display:flex; gap:10px; justify-content:flex-end;
}

/* ---------- footer ---------- */
footer.site-footer{
  border-top:3px solid var(--gold-line);
  background:var(--uecf-ink); color:var(--uecf-cream);
  font-family:var(--uecf-font-body);
  padding:30px 24px;
}
.footer-inner{max-width:980px; margin:0 auto; text-align:center;}
.footer-inner a{color:var(--uecf-gold-soft); font-weight:600;}
.footer-inner a:hover{text-decoration:underline;}
.footer-inner p{margin:0 0 8px; font-size:0.84375rem;}
.footer-inner p:last-child{margin-bottom:0; color:#9FB8D4; font-size:0.75rem;}

/* ---------- mobile ---------- */
@media (max-width: 880px){
  #sidebar{padding:10px 14px; gap:10px;}
  .brand-title{font-size:1rem;}
  .search-wrap{order:3; width:100%; flex:1 1 100%;}
  .page-head{padding:26px 20px 0;}
  .wrap,.page-actions{padding-left:20px; padding-right:20px;}
  .hero{padding:36px 22px 34px;}
  .hero::after{inset:9px;}
  .testament-card{padding:24px 20px;}
  .book-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px;}
  .bk-te{font-size:1rem;}
}
/* Two 150px columns leave Telugu book names badly wrapped under ~400px. */
@media (max-width:400px){
  .book-grid{grid-template-columns:1fr;}
  .page-head{padding:22px 14px 0;}
  .wrap,.page-actions{padding-left:14px; padding-right:14px;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
}

/* ---------- print ---------- */
@media print{
  header.site-header,#sidebar,.breadcrumb,.page-actions,footer.site-footer{display:none !important;}
  body{background:#fff; color:#000;}
  .hero,.testament-card,.book-card,.stat{box-shadow:none; border:1px solid #999; background:#fff;}
  .hero h1,.bk-te,.tc-te,.stat-num{color:#000;}
}


/* ---------- shared extras ---------- */
.alt-index{
  font-family:'Inter',sans-serif; font-size:0.78125rem; color:var(--ink-faint);
  margin:-8px 0 20px; min-height:1em;
}
.alt-index a{color:var(--maroon); font-weight:600;}
.alt-index a:hover{text-decoration:underline;}
header.site-header .header-inner{position:relative;}

/* ---------- chapter page extras (from 1_reference) ---------- */
:root{ --verse-size: 19px; --teal:#C9A45C; --teal-tint:#182642; --radius:3px; }
.search-results{
  position:absolute; left:0; right:0; top:100%;
  background:var(--paper); color:var(--ink);
  border-radius:0 0 8px 8px;
  box-shadow:0 18px 40px rgba(0,0,0,0.35);
  max-height:60vh; overflow-y:auto;
  display:none; z-index:60;
  border:1px solid var(--rule); border-top:none;
}
.search-results.open{display:block;}
.sr-item{
  display:flex; align-items:baseline; gap:10px;
  padding:10px 14px; border-bottom:1px solid var(--rule);
  cursor:pointer; font-size:14px; width:100%; text-align:left;
  background:none; border-left:none; border-right:none; border-top:none;
  color:inherit; font-family:inherit;
}
.sr-item:last-child{border-bottom:none;}
.sr-item:hover,.sr-item:focus-visible{background:var(--paper-2);}
.sr-num{
  font-family:'Inter',sans-serif; font-weight:700; font-size:11.5px;
  color:var(--gold); flex-shrink:0; min-width:26px; text-align:left;
}
.sr-title{flex:1; font-family:'Tiro Tamil',serif; text-align:left;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.sr-empty{padding:16px 14px; font-family:'Inter',sans-serif; font-size:13px; color:var(--ink-faint);}
.page-head h1{
  font-family:'Noto Sans Tamil',sans-serif; font-size:clamp(30px,4.4vw,44px);
  color:var(--gold); margin:0 0 8px; line-height:1.35;
}
.cat-en-line{font-family:'Inter',sans-serif; font-size:13px; color:var(--ink-faint); margin-bottom:22px;}
.chapters{max-width:980px; margin:0 auto; padding:0 40px 34px;}
.chap-grid{display:flex; flex-wrap:wrap; gap:6px;}
.chap-chip{
  min-width:40px; padding:8px 10px; border-radius:6px;
  background:var(--paper-2); border:1px solid var(--rule);
  font-family:'Inter',sans-serif; font-size:13px; font-weight:600;
  color:var(--ink); text-align:center; cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, color .15s ease;
}
.chap-chip:hover{
  transform:translateY(-2px); box-shadow:0 10px 22px var(--shadow);
  border-color:var(--gold-line); color:var(--gold);
}
.chap-chip.is-current{
  background:var(--gold-line); border-color:var(--gold-line);
  color:var(--uecf-ink); cursor:default;
}
.chapter-nav-row{
  max-width:980px; margin:0 auto; padding:0 40px 30px;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  font-family:'Inter',sans-serif; font-size:13px;
}
.nv{
  display:flex; align-items:center; gap:8px; color:var(--maroon); font-weight:600;
  padding:9px 14px; border:1px solid var(--rule); border-radius:6px;
  background:var(--paper-2);
  transition:border-color .15s ease, transform .15s ease;
}
.nv:hover{border-color:var(--gold-line); transform:translateY(-1px);}
.nv[aria-hidden="true"]{visibility:hidden; pointer-events:none;}
.song-detail{max-width:980px; margin:0 auto; padding:0 40px 40px;}
.sd-card{
  background:var(--paper-2); border:1px solid var(--rule); border-radius:10px;
  padding:44px 48px; box-shadow:0 18px 50px var(--shadow); position:relative;
}
.sd-top{display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:6px;}
.sd-medallion{
  width:56px; height:56px; border-radius:50%; border:2px solid var(--gold-line);
  display:flex; align-items:center; justify-content:center;
  font-family:'Noto Sans Tamil',sans-serif; font-size:20px; color:var(--maroon);
  background:var(--paper-2); flex-shrink:0;
}
.sd-title{
  font-family:'Noto Sans Tamil',sans-serif; font-size:clamp(24px,3.2vw,32px);
  color:var(--cream); line-height:1.3; margin:0 0 10px;
}
.sd-meta{
  display:flex; gap:10px 22px; flex-wrap:wrap; font-family:'Inter',sans-serif;
  font-size:12.5px; color:var(--ink-soft); margin-bottom:26px;
}
.sd-meta b{color:var(--ink); font-weight:600;}
.sd-meta .divider{color:var(--rule);}
.textBody{font-family:'Tiro Tamil','Noto Serif Tamil',Georgia,serif; font-size:var(--verse-size); line-height:1.95; color:var(--ink);}
.verse-block{margin:0 0 14px; scroll-margin-top:150px;}
.verse-block:last-child{margin-bottom:0;}
.v-num{
  font-family:'Inter',sans-serif; font-size:.62em; font-weight:700;
  color:var(--gold); vertical-align:.45em; margin-inline-end:.5em;
  scroll-margin-top:150px;
}
.verse-block:first-of-type::first-letter{
  float:left; font-size:300%; line-height:100%;
  margin-right:9px; padding:4px 8px 0 3px;
  color:var(--gold); font-family:Georgia, 'Tiro Tamil', serif;
}
.verse-block.is-hit{
  background:var(--paper-3); border-radius:6px;
  box-shadow:0 0 0 6px var(--paper-3);
  transition:background .4s ease, box-shadow .4s ease;
}
@media (max-width: 880px){
  .chapters,.chapter-nav-row,.song-detail{padding-left:20px; padding-right:20px;}
  .sd-card{padding:26px 20px;}
}
@media print{
  .chapters,.chapter-nav-row{display:none !important;}
  .sd-card{box-shadow:none; border:none; padding:0; background:#fff;}
  .sd-title,.v-num{color:#000;}
}
