: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;
}
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;}
.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{
  overflow-x:hidden;
  overflow-x:clip;
  scroll-behavior:smooth;
}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:Georgia, 'Times New Roman', serif;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  min-height:100svh;
  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;
}
@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{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;}
}

#shell{display:block;}
#main{margin-left:0; padding:0 0 80px;}

#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;
}
#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:'Source Sans 3','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:'Fraunces',Georgia,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:Georgia,serif; font-size:0.875rem; width:100%;
  appearance:none; -webkit-appearance:none;
}
#searchInput::-webkit-search-cancel-button,
#searchInput::-webkit-search-decoration{-webkit-appearance:none; display:none;}
#searchInput::placeholder{color:#9FB8D4; font-family:'Source Sans 3','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:'Source Sans 3','Inter',sans-serif;
  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);}

.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);}
.icon-moon{display:none;}
html[data-theme="light"] .icon-sun{display:none;}
html[data-theme="light"] .icon-moon{display:block;}

.page-head{padding:40px 40px 0; max-width:1080px; margin:0 auto;}
.breadcrumb{
  font-family:'Source Sans 3','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:'Source Sans 3','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{
  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:'Source Sans 3','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 h1{
  font-family:'Fraunces',Georgia,serif; font-size:clamp(2rem,5.2vw,3.25rem);
  color:var(--gold); margin:0 0 10px; line-height:1.25;
}
.h1-en{
  display:block; font-family:'Source Sans 3','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:'Source Sans 3','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:'Source Sans 3','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:Georgia,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:'Source Sans 3','Inter',sans-serif;
  font-style:normal; font-size:0.75rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold); font-weight:700;
}

.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);}
.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:'Fraunces',Georgia,serif; font-size:1.625rem; color:var(--cream); margin:0 0 6px;}
.tc-en{
  font-family:'Source Sans 3','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:'Source Sans 3','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:'Source Sans 3','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;}
}

.books-section{margin-bottom:44px;
  scroll-margin-top:calc(var(--uecf-header-h) + var(--uecf-subbar-h, 76px) + 12px);}
.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;
}
@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:'Source Sans 3','Inter',sans-serif; font-size:0.6875rem; font-weight:700;
  letter-spacing:.12em; color:var(--gold); margin-bottom:4px;
}
.bk-te{
  font-family:'Fraunces',Georgia,serif; font-size:1.0625rem; line-height:1.35;
  color:var(--cream); transition:color .15s ease;
}
.bk-en{font-family:'Source Sans 3','Inter',sans-serif; font-size:0.78125rem; color:var(--ink-soft); font-weight:500;}
.bk-ch{
  font-family:'Source Sans 3','Inter',sans-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:Georgia,serif; font-size:0.9375rem; color:var(--ink-faint);
}
.no-results.show{display:block;}
.search-status{
  font-family:'Source Sans 3','Inter',sans-serif; font-size:0.78125rem; color:var(--ink-faint);
  margin:0 0 20px; min-height:1em;
}

.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:'Source Sans 3','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:'Fraunces',Georgia,serif; font-size:0.9375rem; color:var(--cream); display:block;}
.stat-en{
  font-family:'Source Sans 3','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{
  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:'Source Sans 3','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;
}

.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;
}

@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;}
}
@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;}
}
@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;}
}
