
:root{--bg:#f7efe0;--paper:#fffdf6;--ink:#3a2c1c;--ink2:#6f5f47;
--acc:#b26a1b;--acc2:#8a5410;--line:#e7dcc4;--box:#fdf6e0;--boxline:#ecd9a8}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
font-family:Georgia,'Times New Roman',serif;line-height:1.8;font-size:17px}
a{color:var(--acc2)}
header.site{position:sticky;top:0;z-index:20;background:var(--hdr,rgba(247,239,224,.94));
backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
header.site .in{max-width:1060px;margin:0 auto;padding:10px 20px;display:flex;
align-items:center;gap:18px;flex-wrap:wrap}
header.site .brand{font-size:20px;font-weight:bold;color:var(--ink);
text-decoration:none;white-space:nowrap}
header.site nav{margin-left:auto;display:flex;gap:16px;flex-wrap:wrap;
justify-content:flex-end}
@media(max-width:760px){
header.site .in{flex-direction:column;align-items:center;gap:2px;padding:8px 12px}
header.site .brand{white-space:normal;text-align:center;font-size:19px}
header.site nav{margin:0;justify-content:center}
}
header.site nav a{color:var(--ink);text-decoration:none;font-size:15.5px}
header.site nav a:hover{color:var(--acc)}
.wrap{max-width:1060px;margin:0 auto;padding:0 20px}
.hero{text-align:center;padding:44px 0 8px}
.hero h1{font-size:clamp(34px,6vw,54px);line-height:1.2;margin:0 0 6px}
.hero .rule{width:64px;height:3px;background:var(--acc);margin:14px auto;border-radius:2px}
.hero .tag{color:var(--ink2);font-size:18px;max-width:620px;margin:0 auto 22px}
.hero img{width:100%;max-height:430px;object-fit:cover;border-radius:18px;
border:1px solid var(--line);display:block}
.searchbar{max-width:540px;margin:22px auto 4px;display:flex;background:var(--paper);
border:1px solid var(--line);border-radius:999px;padding:5px;
box-shadow:0 2px 10px rgba(90,64,20,.07)}
.searchbar input{flex:1;border:0;outline:0;background:transparent;padding:9px 16px;
font:inherit;font-size:16px;color:var(--ink);min-width:0}
.searchbar button{border:0;background:var(--acc);color:#fff;border-radius:999px;
padding:9px 22px;font:inherit;font-size:16px;cursor:pointer}
.searchbar button:hover{background:var(--acc2)}
h2.blk{font-size:27px;margin:38px 0 4px}
.blk-rule{width:52px;height:3px;background:var(--acc);border-radius:2px;margin-bottom:18px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;
padding:20px;display:flex;gap:16px;text-decoration:none;color:var(--ink);
align-items:center}
.card:hover{border-color:var(--acc)}
.card img.art{width:128px;height:104px;object-fit:cover;border-radius:10px;flex:0 0 128px}
.card .lotus{width:22px;height:22px}
.card h3{margin:2px 0 2px;font-size:23px}
.card .cnt{color:var(--ink2);font-size:15px}
.card .go{color:var(--acc);font-size:15.5px;margin-top:4px}
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.feat a{background:var(--paper);border:1px solid var(--line);border-radius:12px;
padding:14px 16px;text-decoration:none;color:var(--ink);display:block}
.feat a:hover{border-color:var(--acc)}
.feat .fc{color:var(--acc);font-size:13.5px;letter-spacing:.04em;text-transform:uppercase}
.feat .ft{font-size:18px;line-height:1.45;margin-top:2px}
.quote{text-align:center;font-style:italic;color:var(--ink2);font-size:19px;
margin:46px auto 8px;max-width:560px}
footer.site{border-top:1px solid var(--line);margin-top:54px;padding:22px 0 40px;
color:var(--ink2);font-size:14.5px;text-align:center}
.list{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.item{background:var(--paper);border:1px solid var(--line);border-radius:12px;
padding:14px 18px;display:flex;gap:16px;text-decoration:none;color:var(--ink);
align-items:flex-start}
.item:hover{border-color:var(--acc)}
.item .no{font-size:20px;color:var(--acc);min-width:34px;text-align:right;line-height:1.5}
.item .t{font-size:19px;line-height:1.4}
.item .m{color:var(--ink2);font-size:14px}
.item .s{color:var(--ink2);font-size:15px;line-height:1.55;margin-top:2px;
display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.crumb{font-size:14.5px;color:var(--ink2);margin:22px 0 4px}
.crumb a{color:var(--ink2);text-decoration:none}
.crumb a:hover{color:var(--acc)}
.read{max-width:760px;margin:0 auto}
.read h1{font-size:clamp(28px,4.6vw,38px);line-height:1.25;margin:2px 0 4px}
.read .pli{color:var(--ink2);font-style:italic;margin-bottom:14px}
.read .lead{font-size:calc(var(--rfs,18px) + .5px);line-height:1.75}
.practice{background:var(--box);border:1px solid var(--boxline);border-radius:14px;
padding:16px 20px 8px;margin:20px 0 26px}
.practice .ph{display:flex;align-items:center;gap:9px;color:var(--acc);
font-size:20px;font-weight:bold;margin-bottom:4px}
.practice .ph img{width:24px;height:24px}
.practice p{font-size:calc(var(--rfs,18px) - 1.5px)}
.read h2.sec{font-size:22px;margin:30px 0 8px;color:var(--ink)}
.read p{margin:0 0 14px;font-size:var(--rfs,18px);line-height:1.85}
.verse{background:var(--versebg,#fbf4e0);border-left:3px solid var(--acc);border-radius:0 12px 12px 0;
padding:14px 18px;margin:0 0 8px;font-style:italic;font-size:calc(var(--rfs,18px) - .5px);line-height:1.8}
h3.nghia{color:var(--acc);font-size:22px;margin:16px 0 4px}
p.gloss{color:#54452c}
.pager{display:flex;gap:12px;margin:40px 0 6px;flex-wrap:wrap}
.pager a{flex:1;min-width:200px;background:var(--paper);border:1px solid var(--line);
border-radius:12px;padding:12px 16px;text-decoration:none;color:var(--ink)}
.pager a:hover{border-color:var(--acc)}
.pager .dir{color:var(--acc);font-size:14px}
.pager .tt{font-size:17px;line-height:1.4}
.pager a.next{text-align:right}
.results{margin-top:14px}
.results .item .snip{color:var(--ink2);font-size:15px;line-height:1.55;margin-top:2px}
.results .item .snip b{color:var(--ink);background:var(--hl,#f3e3ba)}
#q{width:100%}
.big-search{max-width:640px;margin:26px auto 0}
.status{color:var(--ink2);font-size:15px;margin-top:12px;text-align:center}
@media(max-width:640px){
 header.site .brand{font-size:17px}
 header.site nav{gap:10px} header.site nav a{font-size:14px}
 .card{flex-direction:column;align-items:flex-start}
 .card img.art{width:100%;height:150px;flex:none}
 .read p{font-size:17px}
}
/* ==== app shell (PWA) ==== */
.tabbar{display:none}
header.site .hsearch{display:none}
@media(max-width:860px){
 header.site nav{display:none}
 header.site .in{flex-direction:row;justify-content:flex-start;gap:10px}
 header.site .brand{text-align:left}
 header.site .hsearch{display:block;margin-left:auto;color:var(--ink)}
 body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
 .tabbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;
 left:0;right:0;bottom:0;z-index:50;background:var(--paper);
 border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
 .tabbar a{display:flex;flex-direction:column;align-items:center;gap:1px;
 padding:7px 0 5px;color:var(--ink2);text-decoration:none;font-size:11.5px;line-height:1.3}
 .tabbar a svg{width:23px;height:23px}
 .tabbar a.on{color:var(--acc);font-weight:bold}
}
#rprog{position:fixed;top:0;left:0;height:3px;width:0;background:var(--acc);z-index:80}
.rtools{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:55;
 display:flex;gap:2px;background:var(--paper);border:1px solid var(--line);
 border-radius:999px;padding:4px;box-shadow:0 4px 18px rgba(90,64,20,.16)}
@media(max-width:860px){.rtools{bottom:calc(74px + env(safe-area-inset-bottom))}}
.rtools button{border:0;background:transparent;color:var(--ink);font:inherit;
 font-size:14.5px;padding:7px 12px;border-radius:999px;cursor:pointer;white-space:nowrap}
.rtools button:hover{background:var(--bg)}
.rtools button.on{color:var(--acc);font-weight:bold}
.toast{position:fixed;left:50%;transform:translateX(-50%);z-index:90;
 bottom:calc(140px + env(safe-area-inset-bottom));background:var(--ink);color:var(--bg);
 padding:10px 16px;border-radius:10px;font-size:15px;box-shadow:0 6px 20px rgba(0,0,0,.25);
 display:flex;gap:14px;align-items:center;width:max-content;max-width:92vw;line-height:1.45}
.toast span{flex:1;min-width:0}
.toast button{background:transparent;border:0;color:#f0c987;font:inherit;cursor:pointer;
 font-weight:bold;white-space:nowrap;flex:none}
@media(min-width:861px){.toast{bottom:84px}}
.cont-item{display:flex;gap:12px;align-items:center;background:var(--paper);
 border:1px solid var(--line);border-radius:12px;padding:12px 16px;
 text-decoration:none;color:var(--ink);margin-bottom:10px}
a.cont-item:hover{border-color:var(--acc)}
.cont-item .ct{flex:1;min-width:0}
.cont-item .ct .t{font-size:17.5px;line-height:1.35}
.cont-item .ct .m{color:var(--ink2);font-size:13.5px}
.pbar{display:block;height:5px;background:var(--line);border-radius:3px;
 margin-top:6px;overflow:hidden}
.pbar i{display:block;height:100%;background:var(--acc)}
.cont-item .pct{color:var(--acc);font-size:14px;white-space:nowrap}
.cont-item .rm{border:0;background:transparent;color:var(--ink2);font-size:19px;
 cursor:pointer;padding:4px 8px;text-decoration:none}
.empty-note{color:var(--ink2);font-size:16px;background:var(--paper);
 border:1px dashed var(--line);border-radius:12px;padding:18px;text-align:center}
html[data-theme="night"]{--bg:#171310;--paper:#221a13;--ink:#ece0c9;
 --ink2:#b3a184;--line:#3b2f21;--box:#2b2113;--boxline:#54401d;
 --hdr:rgba(23,19,15,.93);--versebg:#261d12;--hl:#5c4718}
html[data-theme="night"] .hero img,html[data-theme="night"] .card img.art{filter:brightness(.88)}
html[data-theme="night"] .searchbar input{color:var(--ink)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{overflow-x:clip}
@supports not (overflow:clip){html,body{overflow-x:hidden}}
.install{display:flex;gap:16px;align-items:center;background:var(--paper);
 border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-top:26px;
 text-align:left}
.install .iic{flex:0 0 auto;color:var(--acc)}
.install .itx{flex:1;min-width:0}
.install .itx .tt{font-size:19px;line-height:1.3}
.install .itx .td{color:var(--ink2);font-size:14.5px;margin-top:2px;line-height:1.45}
.ibtn{background:var(--acc);color:#fff4e0;border:0;border-radius:999px;
 padding:11px 20px;font:inherit;font-size:15.5px;font-weight:bold;cursor:pointer;
 white-space:nowrap}
.glink{display:inline-block;margin-top:6px;color:var(--acc);font-size:14.5px;
 background:none;border:0;padding:0;cursor:pointer;font:inherit;
 text-decoration:underline}
@media(max-width:480px){.install{flex-wrap:wrap}.install .ibtn{width:100%}}
.finstall{margin-top:12px;background:none;border:1px solid var(--line);
 color:var(--ink);border-radius:999px;padding:7px 16px;font:inherit;
 font-size:14.5px;cursor:pointer}
html.is-app .install,html.is-app .finstall{display:none}
.ovl{position:fixed;inset:0;background:rgba(32,22,8,.52);z-index:120;
 display:flex;align-items:flex-end;justify-content:center}
.ovl[hidden]{display:none}
.sheet{position:relative;background:var(--paper);color:var(--ink);width:100%;max-width:560px;
 max-height:88vh;overflow:auto;border-radius:18px 18px 0 0;padding:20px 20px 30px}
@media(min-width:861px){.ovl{align-items:center}.sheet{border-radius:18px}}
.sheet h3{margin:0 0 4px;font-size:21px}
.sheet .sub{color:var(--ink2);font-size:14.5px;line-height:1.5}
.ig-block{display:none;border:1px solid var(--line);border-radius:12px;
 padding:12px 14px;margin-top:12px}
.ig-block.hot{display:block;border-color:var(--acc);background:var(--box)}
.ig-btn{display:block;width:100%;margin-top:14px;background:var(--acc);color:#fff4e0;
 border:0;border-radius:999px;padding:12px;font:inherit;font-size:16px;
 font-weight:bold;cursor:pointer}
.ig-x{position:absolute;top:8px;right:10px;background:none;border:0;font-size:18px;
 line-height:1;color:var(--ink2);cursor:pointer;padding:8px}
.ig-block .ih{font-weight:bold;font-size:16px;margin-bottom:4px}
.ig-block ol{margin:4px 0 2px;padding-left:20px;font-size:15px;line-height:1.55}
.ig-block .it{font-size:15px;line-height:1.55}
.ig-close{margin-top:16px;width:100%;background:var(--acc);color:#fff4e0;
 border:0;border-radius:999px;padding:12px;font:inherit;font-size:16px;
 font-weight:bold;cursor:pointer}
