/* वाल्मीकिरामायणम् — a study edition.
   Palette: paper, ink, hiṅgula (rubrication red), indigo (the grammatical layer). */

:root{
  --paper:#FBF8F3;
  --paper-sunk:#F3EEE4;
  --ink:#2A231B;
  --ink-2:#554B3F;
  --ink-3:#8A7E6E;
  --hingula:#C0331C;
  --indigo:#33456B;
  --rule:#E5DCCC;
  --rule-firm:#CDC0A9;

  --deva:"Tiro Devanagari Sanskrit","Noto Serif Devanagari",Georgia,serif;
  --latin:"Gentium Book Plus","Gentium Plus",Georgia,serif;

  --read:20px;
  --measure:36em;
  color-scheme:light;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--latin);font-size:17px;line-height:1.65;
  padding-top:env(safe-area-inset-top,0px);
}
:lang(sa),.deva{font-family:var(--deva)}
img{max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--hingula);outline-offset:3px}

.page{max-width:55rem;margin:0 auto;padding:0 clamp(18px,5vw,40px)}

/* ---------- masthead ---------- */
/* a double rule, echoing the pothī fore-edge rule on the mūla block */
.masthead{position:sticky;top:0;z-index:30;background:var(--paper);
  border-bottom:1px solid var(--rule-firm)}
.masthead::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;
  background:var(--rule);pointer-events:none}
.masthead-in{max-width:55rem;margin:0 auto;padding:13px clamp(18px,5vw,40px);
  display:flex;align-items:baseline;gap:16px}

.sitename{font-family:var(--deva);font-size:21px;line-height:1.2;text-decoration:none;
  color:var(--ink);white-space:nowrap;display:inline-flex;align-items:baseline}
.sitename .mangala{color:var(--hingula);font-size:.72em;margin-right:9px;
  transform:translateY(-.06em)}
.sitename:hover{color:var(--hingula)}

.here{font-family:var(--deva);color:var(--ink-3);font-size:15px;flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding-left:16px;border-left:1px solid var(--rule)}

.reader-tools{margin-left:auto;display:inline-flex;align-items:baseline;flex:none;
  border:1px solid var(--rule);border-radius:2px;overflow:hidden}
.tool{font-family:var(--deva);line-height:1;background:none;border:0;color:var(--ink-3);
  cursor:pointer;padding:7px 12px;transition:color .12s,background .12s}
.tool.sm{font-size:13px}
.tool.lg{font-size:19px}
.tool + .tool{border-left:1px solid var(--rule)}
.tool:hover{color:var(--hingula);background:var(--paper-sunk)}
.tool:active{background:var(--rule)}

/* ---------- shared ---------- */
.rubric{font-family:var(--deva);font-weight:400;font-size:17px;color:var(--hingula);
  margin:0 0 14px}
.rubric::after{content:"";display:block;width:100%;height:1px;background:var(--rule);
  margin-top:9px}

/* ---------- home ---------- */
.home{padding-bottom:10px}
.opening{padding:clamp(36px,6vw,64px) 0 clamp(34px,5vw,52px);
  border-bottom:1px solid var(--rule)}

/* a colour plate facing the title page, as in a printed edition */
.frontispiece{display:grid;grid-template-columns:minmax(190px,258px) 1fr;
  gap:clamp(26px,5vw,58px);align-items:center}
.plate{margin:0}
.plate img{display:block;width:100%;height:auto;border:1px solid var(--rule-firm)}
.plate figcaption{font-family:var(--deva);font-size:14px;color:var(--ink-3);
  margin-top:11px;line-height:1.5}
.plate figcaption span{display:block;font-family:var(--latin);font-size:12.5px;
  color:var(--ink-3);opacity:.8}

.opening-text{min-width:0}
.sitetitle{font-family:var(--deva);font-weight:400;font-size:clamp(15px,2.1vw,17px);
  color:var(--ink-3);margin:0 0 clamp(18px,3vw,28px)}
.opening-verse{font-family:var(--deva);font-weight:400;margin:0;color:var(--ink);
  font-size:clamp(18px,2.35vw,26px);line-height:1.9;text-wrap:pretty}
.opening-note{font-family:var(--deva);color:var(--ink-3);font-size:15px;
  margin:clamp(20px,3.5vw,30px) 0 0}
.opening-note a{color:var(--hingula);text-decoration-thickness:1px;text-underline-offset:4px}

.premise{padding:34px 0 8px;max-width:40rem}
.premise .sa{font-family:var(--deva);font-size:19px;line-height:1.95;margin:0 0 10px}
.premise .en{color:var(--ink-3);font-size:16px;margin:0}

.contents{padding:38px 0 12px}
.kanda-list{border-top:1px solid var(--rule)}
a.kanda{display:grid;grid-template-columns:7.5rem 1fr auto;grid-template-areas:
  "ord name tally" "ord gist tally";gap:0 18px;padding:18px 0 17px;
  border-bottom:1px solid var(--rule);text-decoration:none;position:relative}
a.kanda:hover{background:var(--paper-sunk)}
a.kanda .ord{grid-area:ord;font-family:var(--deva);color:var(--ink-3);font-size:15px;
  padding-top:5px}
a.kanda .name{grid-area:name;font-family:var(--deva);font-size:26px;line-height:1.35;
  display:flex;align-items:baseline;gap:11px;flex-wrap:wrap}
a.kanda .name em{font-family:var(--latin);font-style:normal;font-size:14px;color:var(--ink-3)}
a.kanda .gist{grid-area:gist;font-family:var(--deva);color:var(--ink-2);font-size:16px;
  line-height:1.7}
a.kanda .tally{grid-area:tally;font-family:var(--deva);color:var(--ink-3);font-size:16px;
  align-self:center;white-space:nowrap}
a.kanda .tally .done{color:var(--hingula)}
a.kanda .tally .none{color:var(--ink-3);opacity:.6}
a.kanda .bar{position:absolute;left:0;right:0;bottom:-1px;height:1px}
a.kanda .bar i{display:block;height:100%;background:var(--hingula)}
a.kanda.soon .name{color:var(--ink-2)}
a.kanda.soon .bar i{background:var(--rule-firm)}

/* ---------- kanda page ---------- */
.kanda-head{padding:clamp(40px,7vw,68px) 0 26px}
.kanda-head h1{font-family:var(--deva);font-weight:400;font-size:clamp(32px,6vw,52px);
  margin:0;line-height:1.25}
.kanda-head .translit{font-size:15px;color:var(--ink-3);margin:6px 0 0}
.kanda-head .gist{font-family:var(--deva);font-size:19px;color:var(--ink-2);
  margin:16px 0 0;max-width:34em}

.ready{padding:20px 0 6px}
.ready-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.ready-list a{display:grid;grid-template-columns:3.2rem 1fr;gap:4px 16px;
  padding:15px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.ready-list a:hover{background:var(--paper-sunk)}
.ready-list .num{font-family:var(--deva);color:var(--hingula);font-size:21px;
  grid-row:1 / span 2;text-align:right}
.ready-list .t{font-family:var(--deva);font-size:22px}
.ready-list .d{font-family:var(--deva);font-size:16px;color:var(--ink-3)}

.index{padding:30px 0 50px}
.sarga-index{display:grid;grid-template-columns:repeat(auto-fill,minmax(3.1rem,1fr));
  border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.sarga-index a,.sarga-index span{font-family:var(--deva);font-size:17px;
  display:flex;align-items:center;justify-content:center;aspect-ratio:1.5/1;
  border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.sarga-index a{color:var(--hingula);text-decoration:none}
.sarga-index a:hover{background:var(--hingula);color:var(--paper)}
.sarga-index span{color:var(--ink-3);opacity:.45}

/* ---------- sarga page ---------- */
.sarga-head{padding:clamp(38px,7vw,64px) 0 30px;border-bottom:1px solid var(--rule)}
.locator{font-family:var(--deva);font-size:15px;color:var(--ink-3);margin:0 0 14px}
.locator a{color:var(--ink-3);text-decoration-thickness:1px;text-underline-offset:3px}
.locator a:hover{color:var(--hingula)}
.sarga-head h1{font-family:var(--deva);font-weight:400;font-size:clamp(32px,6.4vw,54px);
  margin:0;line-height:1.22}
.sarga-head .subtitle{font-family:var(--deva);font-size:clamp(18px,2.6vw,22px);
  color:var(--ink-2);margin:10px 0 0}
.sarga-head .abstract{font-family:var(--deva);font-size:19px;line-height:1.95;
  color:var(--ink-2);margin:24px 0 0;max-width:var(--measure)}
.views{display:flex;gap:26px;margin:0;padding:16px 0 0;border-bottom:1px solid var(--rule);
  position:sticky;top:46px;background:var(--paper);z-index:20;overflow-x:auto}
.views button{font-family:var(--deva);font-size:17px;background:none;border:0;
  color:var(--ink-3);cursor:pointer;padding:0 0 12px;border-bottom:2px solid transparent;
  white-space:nowrap}
.views button:hover{color:var(--ink)}
.views button[aria-selected="true"]{color:var(--hingula);border-bottom-color:var(--hingula)}

.toc{padding:30px 0 8px;max-width:var(--measure)}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.toc li{counter-increment:t;display:flex;align-items:baseline;gap:10px;padding:5px 0}
.toc li::before{content:counter(t,devanagari);font-family:var(--deva);color:var(--ink-3);
  font-size:14px;min-width:1.4rem}
.toc a{font-family:var(--deva);font-size:17px;text-decoration:none;color:var(--ink-2)}
.toc a:hover{color:var(--hingula)}
.toc .tv{font-family:var(--deva);font-size:13px;color:var(--ink-3);margin-left:auto;
  padding-left:14px;white-space:nowrap}

.movement{padding:46px 0 10px;scroll-margin-top:96px}
.movement h2{font-family:var(--deva);font-weight:400;font-size:clamp(21px,3.2vw,26px);
  margin:0 0 22px;line-height:1.45;display:flex;gap:14px;align-items:baseline;
  max-width:var(--measure)}
.movement h2 .mnum{color:var(--hingula);font-size:17px;flex:none}

/* the pothī text-block: double rule at the fore-edge, numerals hanging outside */
.mula{border-left:3px double var(--rule-firm);padding:4px 0 4px 0;margin:0 0 26px}
p.shloka{display:grid;grid-template-columns:2.9rem 1fr;align-items:start;gap:0 4px;
  margin:0;padding:11px 0}
p.shloka + p.shloka{border-top:1px solid var(--rule)}
p.shloka .vn{font-family:var(--deva);font-size:14px;color:var(--hingula);
  text-align:center;padding-top:.55em}
p.shloka .vt{font-family:var(--deva);font-size:calc(var(--read) + 4px);line-height:1.9;
  color:var(--ink)}

.gloss{max-width:var(--measure);padding-left:2.9rem}
.gloss p{font-family:var(--deva);font-size:calc(var(--read) - 1px);line-height:2.0;margin:0;
  color:var(--ink-2)}

.sarga-colophon{font-family:var(--deva);font-size:17px;color:var(--hingula);
  text-align:center;margin:52px 0 0;padding-top:26px;border-top:1px solid var(--rule)}

/* ---------- padavivaranam ---------- */
.pada{padding:54px 0 10px}
.pada .lede{font-family:var(--deva);color:var(--ink-3);font-size:16px;margin:-6px 0 20px}
.filter{display:flex;align-items:baseline;gap:14px;margin:0 0 6px;flex-wrap:wrap}
.filter input{font-family:var(--deva);font-size:16px;padding:9px 0;flex:1;min-width:15rem;
  background:none;color:var(--ink);border:0;border-bottom:1px solid var(--rule-firm)}
.filter input::placeholder{color:var(--ink-3);opacity:.75}
.filter input:focus{outline:0;border-bottom-color:var(--hingula)}
.filter #pada-count{font-family:var(--deva);font-size:14px;color:var(--ink-3)}

.entries{margin-top:8px}
.entry{padding:22px 0;border-bottom:1px solid var(--rule)}
.entry .lemma{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.entry .w{font-family:var(--deva);font-size:26px;color:var(--ink)}
.entry .loc{font-family:var(--deva);font-size:13px;color:var(--hingula)}
.entry .sense{font-family:var(--deva);font-size:17px;color:var(--ink-2);margin-left:auto;
  text-align:right}
.entry dl{display:grid;grid-template-columns:5.6rem 1fr;gap:7px 16px;margin:0;
  max-width:46em}
.entry dt{font-family:var(--deva);font-size:14px;color:var(--indigo);padding-top:3px}
.entry dd{font-family:var(--deva);font-size:16.5px;line-height:1.8;margin:0;color:var(--ink-2)}

/* ---------- apparatus + pager ---------- */
.pager{display:flex;gap:1px;margin:56px 0 70px;border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule)}
.pager a,.pager span{flex:1;padding:20px 0;text-decoration:none;display:block}
.pager .next{text-align:right}
.pager .dir{display:block;font-family:var(--deva);font-size:13px;color:var(--ink-3);
  margin-bottom:5px}
.pager .ttl{font-family:var(--deva);font-size:19px;color:var(--hingula)}
.pager a:hover .ttl{text-decoration:underline;text-underline-offset:4px}
.pager .empty{font-family:var(--deva);font-size:13px;color:var(--ink-3);opacity:.5;
  align-self:center}

/* ---------- colofon ---------- */
.colofon{border-top:1px solid var(--rule);background:var(--paper-sunk);
  padding:40px 0 calc(46px + env(safe-area-inset-bottom,0px))}
.colofon-in{max-width:55rem;margin:0 auto;padding:0 clamp(18px,5vw,40px)}
.seal{font-family:var(--deva);color:var(--hingula);font-size:17px;margin:0 0 16px}
.colofon p{font-family:var(--deva);font-size:15.5px;line-height:1.9;color:var(--ink-3);margin:0 0 10px}
.colofon .en{font-family:var(--latin);font-size:15px;line-height:1.7}
.colofon a{color:var(--hingula)}

/* ---------- view filtering ---------- */
.hidden{display:none!important}
#sarga[data-view="mula"] .gloss,
#sarga[data-view="mula"] .toc,
#sarga[data-view="bhavartha"] .mula{display:none}
#sarga[data-view="mula"] .movement h2{margin-bottom:14px}
#sarga[data-view="bhavartha"] .gloss{padding-left:0}

@media (max-width:780px){
  .frontispiece{grid-template-columns:1fr;gap:26px;justify-items:center;text-align:center}
  .plate{max-width:270px}
  .plate figcaption{text-align:center}
}
@media (max-width:640px){
  :root{--read:18px}
  .page{padding:0 18px}
  a.kanda{grid-template-columns:1fr auto;grid-template-areas:"name tally" "gist gist";gap:6px 12px}
  a.kanda .ord{display:none}
  .gloss{padding-left:0}
  .gloss p{text-align:left}
  p.shloka{grid-template-columns:2.2rem 1fr}
  .entry .sense{margin-left:0;text-align:left;width:100%}
  .entry dl{grid-template-columns:1fr;gap:2px}
  .entry dt{padding-top:9px}
  .views{gap:18px;top:44px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
