:root {
  color-scheme: light;
  --paper: #fbf7eb;
  --paper-strong: #f2ead4;
  --ink: #292823;
  --muted: #6e695d;
  --gold: #9b761f;
  --gold-bright: #d4b24d;
  --gold-soft: #d8bd69;
  --purple: #5b2d68;
  --purple-deep: #3b1947;
  --purple-soft: #eee4f1;
  --line: #d8c9d8;
  --card: rgba(255,255,255,.72);
  --shadow: 0 14px 34px rgba(59,25,71,.10);
  font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Songti SC", SimSun, serif;
}
* { box-sizing: border-box; }
html { background: var(--paper); color: var(--ink); line-height: 1.8; }
body { margin: 0; min-height: 100vh; }
body { background: radial-gradient(circle at 92% 0%, rgba(91,45,104,.14), transparent 32rem), radial-gradient(circle at 8% 0%, rgba(216,189,105,.18), transparent 30rem), linear-gradient(180deg, #fffdf9 0, var(--paper) 32rem); }
a { color: var(--purple); text-decoration-color: color-mix(in srgb,var(--gold) 70%,transparent); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--purple-deep); text-decoration-color: var(--gold); }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 10; background: white; padding: .5rem 1rem; }
.site-header { backdrop-filter: blur(12px); background: rgba(255,253,249,.94); border-bottom: 1px solid var(--gold-soft); border-top: 4px solid var(--purple); box-shadow: 0 8px 24px rgba(59,25,71,.07); padding: 1rem clamp(1rem, 4vw, 3rem) 1.15rem; position: sticky; top: 0; z-index: 5; }
.site-title { display: inline-block; color: var(--purple-deep); font-size: clamp(1.2rem, 3vw, 1.65rem); font-weight: 700; text-decoration: none; }
.site-header nav { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin-top: .75rem; }
.site-header nav a { border: 1px solid transparent; border-radius: 999px; color: var(--muted); font-family: system-ui, sans-serif; font-size: .94rem; padding: .3rem .7rem; text-decoration: none; }
.site-header nav a:hover { background: var(--purple-soft); border-color: color-mix(in srgb,var(--purple) 35%,var(--line)); color: var(--purple-deep); }
.page-shell { margin: 0 auto; padding: clamp(1.5rem, 5vw, 4.5rem) 0; width: min(100% - 2rem, 1160px); }
.page-detail article { margin: 0 auto; max-width: 820px; }
.article-header { background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(238,228,241,.72) 58%, rgba(242,234,212,.78)); border: 1px solid var(--gold-soft); border-left: .35rem solid var(--purple); border-radius: 1rem; box-shadow: var(--shadow); margin-bottom: 1.5rem; padding: clamp(1.25rem, 4vw, 2.4rem); }
h1, h2, h3, h4 { line-height: 1.35; text-wrap: balance; }
h1 { color: var(--purple-deep); font-size: clamp(2rem, 7vw, 3.4rem); margin: 0 0 1rem; }
h2 { color: var(--purple-deep); font-size: clamp(1.45rem, 4vw, 2rem); margin-top: 2.4em; }
h3 { font-size: 1.25rem; margin-top: 2em; }
.article-meta, .tags { color: var(--muted); font-family: system-ui, sans-serif; font-size: .9rem; }
.tags { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: .8rem 0 0; padding: 0; }
.tags li { background: var(--paper-strong); border: 1px solid var(--line); border-radius: 999px; padding: .1rem .65rem; }
.prose p, .prose li { max-width: 70ch; }
.prose > main, .prose > main > main { display: contents; }
.content-section { background: linear-gradient(145deg,var(--card),rgba(238,228,241,.36)); border: 1px solid var(--line); border-radius: 1rem; box-shadow: var(--shadow); margin: 1rem 0; padding: clamp(1rem, 3vw, 2rem); }
.content-section > :first-child { margin-top: 0; }
.page-listing .prose h2 { border-bottom: 1px solid var(--line); margin: 0 0 1rem; padding-bottom: .65rem; }
.card-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); margin: 1rem 0; }
.home-grid { align-items: start; display: grid; gap: 1rem; grid-auto-flow: row dense; grid-auto-rows: 1px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-grid > * { align-self: start; }
.home-grid .content-section { margin: 0; }
.home-hero { grid-column: 1 / -1; text-align: center; }
.home-card { min-width: 0; }
.card-shell { min-width: 0; }
.category-group, .article-card, .category-card, .info-card { background: linear-gradient(145deg,var(--reader-surface,#fff),color-mix(in srgb,var(--purple-soft) 42%,var(--reader-surface,#fff))); border: 1px solid var(--reader-line,var(--line)); border-radius: .8rem; box-shadow: 0 7px 20px rgba(59,25,71,.08); color:var(--reader-ink,var(--ink)); display: block; padding: 1rem; text-decoration: none; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.category-group:hover, .article-card:hover, .category-card:hover, .info-card:hover { border-color: var(--gold); box-shadow: 0 14px 30px rgba(59,25,71,.16); transform: translateY(-3px); }
.category-group h3, .article-card h3, .category-card h3, .info-card h3 { margin: 0 0 .65rem; }
.category-title-link { color: var(--ink); text-decoration: none; }
.page-library-landing .card-grid { align-items:start; display:grid; gap:1rem; grid-template-columns:repeat(3,minmax(0,1fr)); }
.page-library-landing .category-group { border: 1px solid var(--gold-soft); border-top: .3rem solid var(--purple); min-height: 100%; }
.page-library-landing .category-title-link { background: linear-gradient(120deg,var(--purple),var(--purple-deep)); border: 1px solid color-mix(in srgb,var(--gold-bright) 70%,transparent); border-radius: .55rem; color: #fff8df; display: block; font-weight: 700; padding: .7rem .85rem; transition: background .16s ease, transform .16s ease; }
.page-library-landing .category-title-link:hover { background: linear-gradient(120deg,var(--purple-deep),#74417f); color: #fff3be; transform: translateY(-1px); }
.page-library-landing .category-chip, .page-library-landing .resource-chip { background: var(--paper-strong); border-color: var(--gold-soft); color: var(--ink); }
.page-library-landing .category-chip:hover, .page-library-landing .resource-chip:hover { background: var(--purple); border-color: var(--purple); color: #fff; }
.page-library-landing .library-featured-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.page-library-landing .library-featured-header h2 { border:0; margin:0; padding:0; }
.library-featured-controls { display:flex; gap:.5rem; flex-shrink:0; }
.library-featured-controls[hidden] { display:none; }
.library-featured-controls button { background:var(--reader-surface,#fff); border:1px solid var(--gold-soft); border-radius:50%; color:var(--reader-ink,var(--purple)); cursor:pointer; width:2.75rem; height:2.75rem; font-size:1.3rem; }
.library-featured-controls button:disabled { opacity:.35; cursor:default; }
.library-featured-track { display:flex; align-items:flex-start; gap:1rem; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--gold-soft) transparent; padding:.3rem .1rem 1rem; }
.page-library-landing .library-featured-card { flex:0 0 clamp(270px,32%,360px); min-width:0; min-height:0; margin:0; padding:1rem; border:1px solid var(--gold-soft); border-top:.3rem solid var(--purple); border-radius:.8rem; background:linear-gradient(145deg,var(--reader-surface,#fff),color-mix(in srgb,var(--purple-soft) 42%,var(--reader-surface,#fff))); scroll-snap-align:start; }
.page-library-landing .library-featured-card h3, .page-library-landing .library-featured-card h2 { font-size:1.25rem; line-height:1.35; margin:0 0 .65rem; border:0; padding:0; }
.page-library-landing .library-featured-card h3 *, .page-library-landing .library-featured-card h2 * { font-size:inherit; }
.page-library-landing .library-featured-card h3 a * { color:inherit; }
.page-library-landing .library-featured-card.library-independent-block h2 { background:linear-gradient(120deg,var(--gold-bright),var(--gold)); border:1px solid var(--gold-soft); border-radius:.55rem; color:var(--purple-deep); display:block; font-weight:700; padding:.7rem .85rem; }
.page-library-landing .library-featured-card.library-independent-block h2:hover { background:linear-gradient(120deg,#e2c766,var(--gold-bright)); color:var(--purple-deep); }
.page-library-landing .library-featured-card p { font-size:.95rem; line-height:1.7; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; overflow:hidden; }
.library-featured-track:focus-visible, .library-featured-controls button:focus-visible { outline:3px solid var(--purple); outline-offset:3px; }
@media (max-width:600px) { .page-library-landing .library-featured-card { flex-basis:85%; } }
.category-group > div:last-of-type, .resource-links { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .8rem; }
.category-chip, .resource-chip { background: var(--paper-strong); border: 1px solid var(--line); border-radius: 999px; display: inline-flex; font-family: system-ui, sans-serif; font-size: .86rem; line-height: 1.35; padding: .35rem .7rem; text-decoration: none; }
.action-link { background: linear-gradient(110deg,var(--purple),var(--purple-deep)); border: 1px solid var(--gold-soft); border-radius: 999px; color: white; display: inline-flex; font-family: system-ui, sans-serif; font-weight: 700; margin-top: .75rem; padding: .45rem .9rem; text-decoration: none; }
.action-link:hover { background: var(--gold); color: white; }
.article-card span { color: var(--muted); font-family: system-ui, sans-serif; font-size: .82rem; }
.page-listing .prose > p { color: var(--muted); }
.prose blockquote { border-left: 3px solid var(--gold); color: #514b3f; margin-left: 0; padding: .2rem 0 .2rem 1.2rem; }
.prose table { border-collapse: collapse; display: block; max-width: 100%; overflow-x: auto; }
.prose th, .prose td { border: 1px solid var(--line); padding: .5rem .7rem; text-align: left; }
.prose pre { background: #eee6d2; overflow-x: auto; padding: 1rem; }
.search-label { display: block; margin: 1rem 0 .4rem; }
.search-input { background: var(--reader-surface,#fff); border: 1px solid var(--reader-line,var(--line)); border-radius: .25rem; color: var(--reader-ink,var(--ink)); font: inherit; padding: .7rem .8rem; width: 100%; }
.search-results { padding-left: 1.4rem; }
.search-results li { border-bottom: 1px solid var(--line); padding: 1rem 0; }
.search-results p { color: var(--muted); margin: .2rem 0 0; }
.site-footer { border-top: 3px solid var(--purple); color: var(--muted); font-family: system-ui, sans-serif; font-size: .85rem; padding: 1.5rem; text-align: center; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:.35rem .55rem; margin:0 0 1.2rem; color:var(--muted); font-family:system-ui,sans-serif; font-size:.9rem; }
.breadcrumbs a { color:var(--muted); text-decoration:none; }
.breadcrumbs a:hover { color:var(--gold); text-decoration:underline; }
.collection-children,.collection-articles { margin:1rem 0 2rem; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--line); margin-bottom:1rem; padding-bottom:.75rem; }
.section-heading h2,.section-heading p { margin:0; }
.category-grid,.article-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.article-grid .article-card { display:flex; flex-direction:column; min-height:8.5rem; }
.article-grid .article-card--detailed { min-height:15.5rem; padding:1.2rem; }
.article-card__collection { color:var(--purple); font-family:system-ui,sans-serif; font-size:.78rem; font-weight:700; letter-spacing:.02em; margin:0 0 .55rem; }
.article-card__excerpt { color:var(--muted); display:-webkit-box; font-family:system-ui,sans-serif; font-size:.92rem; line-height:1.65; margin:.1rem 0 1rem; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.article-card__footer { align-items:center; border-top:1px solid color-mix(in srgb,var(--reader-line,var(--line)) 72%,transparent); color:var(--muted); display:flex; font-family:system-ui,sans-serif; font-size:.82rem; gap:.65rem; justify-content:space-between; margin-top:auto; padding-top:.75rem; }
.article-card__footer time { color:inherit; display:block; font:inherit; margin:0; }
.collection-tools { display:grid; grid-template-columns:minmax(0,2fr) minmax(10rem,1fr); gap:1rem; margin:1rem 0; }
.collection-tools label { color:var(--muted); display:grid; gap:.35rem; font-family:system-ui,sans-serif; font-size:.9rem; }
.collection-tools input,.collection-tools select { background:var(--reader-surface,#fff); border:1px solid var(--reader-line,var(--line)); border-radius:.5rem; color:var(--reader-ink,var(--ink)); font:inherit; min-height:2.8rem; padding:.6rem .75rem; width:100%; }
.filter-count { color:var(--muted); font-family:system-ui,sans-serif; min-height:1.4em; }
.pagination { align-items:center; display:flex; justify-content:space-between; gap:1rem; margin:1.2rem 0; font-family:system-ui,sans-serif; }
.pagination p { color:var(--muted); margin:0; white-space:nowrap; }
.pagination > div { align-items:center; display:flex; flex-wrap:wrap; gap:.35rem; justify-content:flex-end; }
.page-action,.page-number { background:var(--reader-surface,#fff); border:1px solid var(--reader-line,var(--line)); border-radius:.4rem; color:var(--reader-ink,var(--ink)); display:inline-flex; min-height:2.25rem; min-width:2.25rem; align-items:center; justify-content:center; padding:.35rem .65rem; text-decoration:none; }
button.page-action { font:inherit; cursor:pointer; }
.page-number.current { background:var(--purple); border-color:var(--gold-soft); color:#fff; }
.page-action.disabled,button.page-action:disabled { opacity:.45; cursor:not-allowed; }
.pagination-gap { color:var(--muted); padding:.25rem; }
.independent-promo { background:linear-gradient(135deg,#f3d982 0%,#c7a23a 72%,#6b3975 145%); border:1px solid var(--purple); border-radius:.75rem; box-shadow:0 10px 24px rgba(59,25,71,.16); overflow:hidden; padding:0!important; }
.independent-promo > a { color:#30230a; display:block; text-decoration:none; }
.independent-promo.has-cover > a { display:grid; grid-template-columns:7rem 1fr; }
.independent-promo img { height:100%; object-fit:cover; width:100%; }
.independent-promo div { align-self:center; padding:.85rem 1rem; }
.independent-promo h2 { font-size:1.2rem; margin:.05rem 0 .25rem; }
.independent-promo p { line-height:1.5; margin:.15rem 0; }
.independent-promo strong { display:block; font-family:var(--sans); font-size:.82rem; margin-top:.35rem; }
.independent-promo--compact { margin:0 0 1.25rem; max-width:38rem; }
.independent-promo--compact img { max-height:8rem; }
.independent-cover-panel,.independent-intro-panel,.independent-audio-library { border:1px solid var(--reader-line,var(--line)); border-radius:1rem; box-shadow:var(--shadow); margin:0 0 1rem; overflow:hidden; }
.independent-cover-panel { background:var(--reader-surface,#fff); padding:clamp(.65rem,2vw,1.25rem); }
.independent-cover-panel img { border-radius:.65rem; display:block; height:auto; object-fit:contain; width:100%; }
.independent-intro-panel { background:var(--reader-surface,#fff); color:var(--reader-ink,#292823); padding:clamp(1.5rem,5vw,3rem); }
.independent-intro-panel p { margin:.4rem 0; max-width:72ch; }
.independent-intro-panel .eyebrow { color:var(--reader-accent,#9b761f); }
.independent-audio-library { background:var(--reader-surface,#fff); padding:clamp(1rem,3vw,2rem); }
.independent-audio-library ol { display:grid; gap:.85rem; grid-template-columns:repeat(2,minmax(0,1fr)); list-style:none; margin:0; padding:0; }
.independent-audio-card { background:var(--reader-surface-soft,#fffaf0); border:1px solid var(--reader-line,var(--line)); border-radius:.75rem; padding:1rem; }
.independent-audio-card h3 { font-size:1.05em; margin:0 0 .7rem; }
.independent-audio-card audio { display:block; width:100%; }
.audio-download { border:1px solid var(--reader-line,var(--line)); border-radius:999px; display:inline-flex; font-family:system-ui,sans-serif; font-size:.88rem; margin-top:.7rem; padding:.35rem .8rem; text-decoration:none; }
.independent-directory { margin:1rem 0 2rem; }
.reader-toolbar { align-items:center; background:var(--reader-surface,#fff); border:1px solid var(--reader-line,var(--line)); border-radius:.75rem; box-shadow:var(--shadow); display:flex; flex-wrap:wrap; gap:.55rem; justify-content:flex-end; margin:0 0 1rem; padding:.65rem; position:sticky; top:7.7rem; z-index:4; }
.reader-toolbar button,.reader-toolbar output { align-items:center; background:transparent; border:1px solid var(--reader-line,var(--line)); border-radius:999px; color:var(--reader-ink,var(--ink)); display:inline-flex; font:600 .86rem system-ui,sans-serif; justify-content:center; min-height:2.35rem; padding:.35rem .8rem; }
.reader-toolbar button { cursor:pointer; }
.reader-toolbar button:hover,.reader-toolbar button[aria-pressed="true"] { background:var(--reader-accent,#9b761f); border-color:var(--reader-accent,#9b761f); color:var(--reader-accent-ink,#fff); }
.reader-backgrounds button[aria-pressed="true"]::before { content:"✓"; font-weight:800; margin-right:.25rem; }
.reader-font-controls,.reader-backgrounds { display:inline-flex; gap:.3rem; }
.reader-font-controls output { min-width:2.8rem; }
.reader-page { --reader-bg:#fff; --reader-surface:#fff; --reader-surface-soft:#fffaf0; --reader-ink:#292823; --reader-muted:#6e695d; --reader-line:#d9ceb2; --reader-accent:#9b761f; --reader-accent-ink:#fff; background:var(--reader-bg); color:var(--reader-ink); }
:root[data-reader-background="gold"] .reader-page { --reader-bg:#e6c65b; --reader-surface:#f8e8ad; --reader-surface-soft:#f5dea0; --reader-ink:#352707; --reader-muted:#70571b; --reader-line:#aa8120; --reader-accent:#74540d; }
:root[data-reader-background="indigo"] .reader-page { color-scheme:dark; --reader-bg:#2f1938; --reader-surface:#4a2855; --reader-surface-soft:#563160; --reader-ink:#fff9ea; --reader-muted:#e2d7e5; --reader-line:#8a6290; --reader-accent:#e2bc55; --reader-accent-ink:#2f1938; }
:root[data-reader-mode="dark"] .reader-page { color-scheme:dark; --reader-bg:#171714; --reader-surface:#211f1b; --reader-surface-soft:#2b2822; --reader-ink:#eee9df; --reader-muted:#aaa298; --reader-line:#484136; --reader-accent:#d1ad55; --reader-accent-ink:#171714; }
.reader-page .site-header { background:color-mix(in srgb,var(--reader-bg) 92%,transparent); border-color:var(--reader-line); }
.reader-page .site-title,.reader-page .site-header nav a,.reader-page .breadcrumbs,.reader-page .breadcrumbs a { color:var(--reader-ink); }
.reader-page .article-header,.reader-page .content-section,.reader-page .reader-toolbar { background:var(--reader-surface); border-color:var(--reader-line); }
.reader-page .article-header,.reader-page .page-shell,.reader-page .prose,.reader-page .site-footer { color:var(--reader-ink); }
.reader-page .reader-content { font-size:var(--reader-font-size,18px); }
.reader-page .site-footer { border-color:var(--reader-line); }
.page-independent-article .article-header { margin-bottom:1rem; padding:clamp(1.5rem,5vw,3.5rem); }
.page-independent-article .article-header h1 { font-size:clamp(2rem,5.5vw,4.6rem); line-height:1.5; margin:0; }
.library-independent-block { align-self:stretch; background:linear-gradient(135deg,#f3d982 0%,#b58b21 76%,#673272 145%); border:1px solid var(--purple); border-radius:.8rem; box-shadow:0 9px 22px rgba(59,25,71,.16); color:#30230a; display:flex; flex-direction:column; justify-content:center; min-width:0; padding:1.15rem; text-decoration:none; }
.library-independent-block:hover { box-shadow:0 12px 28px rgba(103,75,12,.25); transform:translateY(-2px); }
.library-independent-block h2 { font-size:1.2rem; margin:.05rem 0 .25rem; }
.library-independent-block p { line-height:1.5; margin:.15rem 0; }
.library-independent-block strong { display:block; font-family:system-ui,sans-serif; font-size:.82rem; margin-top:.35rem; }
.independent-search { color:var(--muted); display:grid; gap:.4rem; font-family:system-ui,sans-serif; margin:1rem 0; }
.independent-search input { background:var(--reader-surface,#fff); border:1px solid var(--reader-line,var(--line)); border-radius:.5rem; color:var(--reader-ink,var(--ink)); font:inherit; padding:.75rem; width:100%; }
.independent-directory { overflow:hidden; }
.independent-catalogue { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; list-style:none; margin:0; padding:0; }
.independent-catalogue li { display:flex; min-width:0; }
.independent-catalogue a { align-items:start; background:linear-gradient(145deg,var(--reader-surface,#fff) 0%,var(--reader-surface-soft,#fffaf0) 100%); border:1px solid var(--reader-line,#d5b85f); border-radius:.85rem; box-shadow:0 6px 18px rgba(73,57,23,.07); color:var(--reader-ink,var(--ink)); display:grid; gap:1rem; grid-template-columns:3.35rem minmax(0,1fr); min-height:7rem; padding:1.15rem; text-decoration:none; transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; width:100%; }
.independent-catalogue a:hover,.independent-catalogue a:focus-visible { border-color:var(--reader-accent,#9f7a1b); box-shadow:0 14px 30px rgba(39,29,8,.15); outline:none; transform:translateY(-2px); }
.independent-number { align-items:center; background:color-mix(in srgb,var(--reader-accent,#9f7a1b) 12%,transparent); border:1px solid color-mix(in srgb,var(--reader-accent,#9f7a1b) 35%,transparent); border-radius:999px; color:var(--reader-accent,#8a6816); display:inline-flex; font-family:ui-monospace,monospace; font-size:.78em; justify-content:center; min-height:2.15rem; padding:.3rem .5rem; }
.independent-identity { display:grid; gap:.3rem; min-width:0; }
.independent-identity strong,.independent-identity b { font-size:1.16em; line-height:1.35; }
.independent-identity small { color:var(--reader-muted,var(--muted)); font-family:system-ui,sans-serif; font-size:.82em; line-height:1.55; }
.page-detail .reader-content > .breadcrumbs ~ * p { line-height:1.95; margin:0 0 1.25em; }
.page-detail .reader-content > .breadcrumbs ~ * p:last-child { margin-bottom:0; }
.page-detail .reader-content .source-paragraph-break { border:0; height:1.25em; margin:0; }
.independent-article-body { color:var(--reader-ink); }
.independent-article-body p { line-height:1.95; margin:0 0 1.25em; }
.independent-article-body p:last-child { margin-bottom:0; }
.custom-content-block,.custom-image-block { background:var(--reader-surface,#fff); border:1px solid var(--reader-line,var(--line)); border-radius:.8rem; margin:1rem 0; padding:clamp(1rem,3vw,2rem); }
.custom-image-block img { border-radius:.6rem; display:block; height:auto; margin:0 auto; max-height:75vh; max-width:100%; object-fit:contain; }
.custom-image-caption { color:var(--reader-muted,var(--muted)); font-family:system-ui,sans-serif; font-size:.9em; margin:.8rem auto 0; max-width:72ch; text-align:center; }
.custom-video-block { margin-inline:auto; max-width:72rem; overflow:hidden; }
.custom-video-block video[hidden] { display:none; }
.custom-video-launch { aspect-ratio:16 / 9; background:linear-gradient(145deg,#392c1a,#17130e); border:1px solid #b79844; border-radius:.6rem; cursor:pointer; display:block; max-width:100%; overflow:hidden; padding:0; position:relative; width:100%; }
.custom-video-launch img { display:block; height:100%; inset:0; object-fit:cover; position:absolute; width:100%; }
.custom-video-launch::after { background:linear-gradient(transparent 50%,rgba(0,0,0,.65)); content:""; inset:0; pointer-events:none; position:absolute; }
.custom-video-play { align-items:center; background:#e1bf59; border:2px solid #fff1b6; border-radius:50%; box-shadow:0 4px 24px rgba(0,0,0,.35); color:#302313; display:flex; font:700 clamp(1.25rem,3vw,2rem)/1 system-ui,sans-serif; height:clamp(3.5rem,7vw,5rem); justify-content:center; left:50%; padding-left:.15em; position:absolute; top:50%; transform:translate(-50%,-50%); width:clamp(3.5rem,7vw,5rem); z-index:1; }
.custom-video-play-label { bottom:1rem; color:#fff; font:700 1rem/1.4 system-ui,sans-serif; left:0; position:absolute; text-align:center; text-shadow:0 1px 4px #000; width:100%; z-index:1; }
.custom-video-launch:hover .custom-video-play { background:#f0d67e; }
.custom-video-launch:focus-visible { outline:3px solid #c7a64d; outline-offset:4px; }
html.video-viewer-open { overflow:hidden; }
.custom-video-block video { aspect-ratio:16 / 9; background:#15130f; border-radius:.6rem; display:block; height:auto; margin:0 auto; max-height:min(75vh,42rem); max-width:100%; object-fit:contain; width:100%; }
.custom-video-expand { background:var(--reader-accent,#9b761f); border:1px solid var(--reader-accent,#9b761f); border-radius:999px; color:var(--reader-accent-ink,#fff); cursor:pointer; display:block; font-family:system-ui,sans-serif; font-weight:700; margin:.75rem auto 0; padding:.55rem 1rem; }
.custom-video-expand:hover,.custom-video-expand:focus-visible { filter:brightness(.92); outline:2px solid color-mix(in srgb,var(--reader-accent,#9b761f) 45%,transparent); outline-offset:2px; }
.custom-video-dialog { background:var(--reader-surface,#fff); border:1px solid var(--reader-line,var(--line)); border-radius:.85rem; box-shadow:0 24px 80px rgba(0,0,0,.45); margin:auto; max-height:94vh; max-height:94dvh; max-width:calc(100vw - 2rem); padding:clamp(.6rem,2vw,1.2rem); width:min(calc(100vw - 2rem),calc(167vh - 8rem)); width:min(calc(100vw - 2rem),calc(167dvh - 8rem)); }
.custom-video-dialog::backdrop { background:rgba(12,10,8,.78); }
.custom-video-dialog video { background:#15130f; border-radius:.55rem; display:block; height:auto; max-height:calc(94vh - 4.5rem); max-width:100%; object-fit:contain; width:100%; }
.custom-video-dialog-close { background:transparent; border:1px solid var(--reader-line,var(--line)); border-radius:999px; color:var(--reader-ink,var(--ink)); cursor:pointer; display:block; font-family:system-ui,sans-serif; margin:0 0 .6rem auto; padding:.4rem .85rem; }
.custom-video-dialog-close:hover,.custom-video-dialog-close:focus-visible { background:var(--reader-surface-soft,#fffaf0); outline:2px solid color-mix(in srgb,var(--reader-accent,#9b761f) 45%,transparent); outline-offset:2px; }
.custom-video-caption { color:var(--reader-muted,var(--muted)); font-family:system-ui,sans-serif; font-size:.9em; margin:.8rem auto 0; max-width:72ch; text-align:center; }
.custom-video-dialog-with-next video { max-height:calc(94vh - 12rem); max-height:calc(94dvh - 12rem); }
.custom-video-dialog-with-next { overflow-y:auto; }
.custom-video-dialog-actions { color:var(--reader-ink,var(--ink)); font-family:system-ui,sans-serif; padding-top:.5rem; text-align:center; }
.custom-video-ended { font-size:.95rem; margin:.4rem 0; }
.custom-video-share { font-family:system-ui,sans-serif; text-align:center; }
.custom-video-share [data-video-ui] { display:block; font-size:.9rem; margin:.5rem 0; }
.custom-video-next { text-align:center; }
.mituo-intro { text-align:center; }
.custom-button { background:var(--reader-accent,#9b761f); border:1px solid var(--reader-accent,#9b761f); border-radius:999px; color:var(--reader-accent-ink,#fff); display:inline-flex; font-family:system-ui,sans-serif; font-weight:700; justify-content:center; margin:.35rem .35rem .35rem 0; padding:.65rem 1.1rem; text-decoration:none; }
.custom-button:hover { filter:brightness(.9); color:var(--reader-accent-ink,#fff); }
.custom-block-link { color:inherit; display:block; text-decoration:none; }
.custom-block-link:hover > .custom-content-block { border-color:var(--reader-accent,#9b761f); box-shadow:0 12px 28px rgba(73,57,23,.14); transform:translateY(-2px); }
.contact-page-layout { display:grid; gap:1rem; }
.contact-page-layout > .custom-content-block { margin:0; }
.contact-hero { background:linear-gradient(140deg,#23345d 0%,#3f5688 100%); border-color:#6076a4; box-shadow:0 18px 44px rgba(32,45,79,.2); color:#f8f4e8; padding-block:clamp(2rem,6vw,4.5rem); }
.contact-hero h2 { color:#fff; font-size:clamp(1.8rem,4vw,3rem); margin:.4rem 0 1rem; }
.contact-hero p:last-child { margin-inline:auto; max-width:42rem; }
.contact-kicker,.contact-method-label { font-family:system-ui,sans-serif; font-size:.78rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.contact-methods > h2 { margin-top:.25rem; }
.contact-method-grid { display:grid; gap:.85rem; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:1.35rem; }
.contact-method { background:color-mix(in srgb,var(--reader-accent,#9b761f) 7%,var(--reader-surface,#fff)); border:1px solid var(--reader-line,var(--line)); border-radius:.75rem; min-width:0; padding:1.1rem; }
.contact-method h3 { font-size:1.08em; margin:.35rem 0 .6rem; }
.contact-method p:last-child { color:var(--reader-muted,var(--muted)); margin-bottom:0; }
.contact-method-label { color:var(--reader-accent,#9b761f); margin:0; }
.contact-note { box-shadow:0 12px 30px rgba(123,91,12,.12); }
.contact-social-panel { background:linear-gradient(145deg,color-mix(in srgb,var(--purple-soft) 48%,var(--reader-surface,#fff)),var(--reader-surface,#fff)); border-color:var(--gold-soft); overflow:hidden; }
.contact-social-layout { align-items:stretch; display:grid; gap:1rem; grid-template-columns:minmax(14rem,.9fr) minmax(0,1fr); }
.contact-social-intro { align-self:center; padding:clamp(.35rem,2vw,1rem); }
.contact-social-intro h2 { font-size:clamp(1.65rem,3vw,2.35rem); margin:.45rem 0 .8rem; }
.contact-social-intro > p:last-child { color:var(--reader-muted,var(--muted)); margin-bottom:0; }
.contact-social-card { background:var(--reader-surface,#fff); border:1px solid var(--reader-line,var(--line)); border-radius:1rem; box-shadow:0 10px 26px rgba(59,25,71,.09); min-width:0; padding:clamp(1rem,2.4vw,1.5rem); }
.contact-social-brand { align-items:center; display:flex; gap:.7rem; }
.contact-social-brand h3 { color:var(--reader-ink,var(--ink)); font-family:system-ui,sans-serif; font-size:1.28rem; margin:0; }
.contact-social-mark { align-items:center; background:#63be68; border-radius:50%; color:#fff; display:inline-flex; font-family:system-ui,sans-serif; font-size:.85rem; font-weight:900; height:2rem; justify-content:center; width:2rem; }
.contact-social-qr { align-items:center; aspect-ratio:4/5; background:#fff; border:1px solid var(--reader-line,var(--line)); border-radius:.8rem; cursor:zoom-in; display:flex; justify-content:center; margin:1rem auto .75rem; max-width:18rem; overflow:hidden; padding:.65rem; width:100%; }
.contact-social-qr img { display:block; height:100%; margin:0; object-fit:contain; width:100%; }
.contact-social-qr:focus-visible { outline:3px solid var(--purple); outline-offset:3px; }
.contact-social-id { background:color-mix(in srgb,var(--reader-line,var(--line)) 28%,var(--reader-surface,#fff)); border-radius:.65rem; color:var(--reader-ink,var(--ink)); font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:clamp(1rem,2vw,1.2rem); font-weight:700; margin:1rem 0 .75rem; overflow-wrap:anywhere; padding:.7rem .8rem; }
.contact-social-actions { display:grid; gap:.6rem; grid-template-columns:1fr; }
.contact-social-actions p { margin:0; max-width:none; }
.contact-copy-button,.contact-open-button { align-items:center; border-radius:.75rem; display:flex; font-family:system-ui,sans-serif; font-weight:800; justify-content:center; min-height:3.25rem; padding:.7rem 1rem; text-align:center; text-decoration:none; transition:background .16s ease,box-shadow .16s ease,transform .16s ease; width:100%; }
.contact-copy-button { background:var(--reader-surface,#fff); border:1px solid var(--reader-line,var(--line)); color:var(--reader-ink,var(--ink)); }
.contact-open-button,.contact-copy-button-primary { background:#63be68; border:1px solid #58ae5e; color:#fff; }
.contact-copy-button:hover,.contact-copy-button:focus-visible { background:var(--purple-soft); border-color:var(--purple); color:var(--purple-deep); outline:2px solid color-mix(in srgb,var(--purple) 32%,transparent); outline-offset:2px; transform:translateY(-1px); }
.contact-open-button:hover,.contact-open-button:focus-visible,.contact-copy-button-primary:hover,.contact-copy-button-primary:focus-visible { background:#4da955; box-shadow:0 9px 20px rgba(55,137,62,.22); color:#fff; outline:2px solid color-mix(in srgb,#63be68 42%,transparent); outline-offset:2px; transform:translateY(-1px); }
.contact-copy-button.is-copied { background:var(--purple); border-color:var(--purple); }
.contact-social-help { color:var(--reader-muted,var(--muted)); font-family:system-ui,sans-serif; font-size:.9rem; margin-bottom:0; }
.rt-size-xs { font-size:.78em; }
.rt-size-sm { font-size:.9em; }
.rt-size-md { font-size:1em; }
.rt-size-lg { font-size:1.2em; }
.rt-size-xl { font-size:1.5em; }
.rt-size-xxl { font-size:1.9em; }
.rt-color-ink { color:var(--reader-ink,#292823); }
.rt-color-gold { color:var(--reader-accent,#9b761f); }
.rt-align-left { text-align:left; }
.rt-align-center { text-align:center; }
.rt-align-right { text-align:right; }
.rt-align-justify { text-align:justify; }
.rt-surface-white { background:#fff; color:#292823; }
.rt-surface-gold { background:#e6c65b; border-color:#a47d1d; color:#352707; }
.rt-surface-indigo { background:linear-gradient(135deg,var(--purple),var(--purple-deep)); border-color:var(--gold-soft); color:#fff9ea; }
.rt-table-striped tbody tr:nth-child(even) { background:color-mix(in srgb,var(--reader-accent,#9b761f) 8%,transparent); }
.independent-article-body p,.independent-article-body li { font-size:inherit; }
@media (max-width:900px) { .category-grid,.article-grid,.page-library-landing .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) {
  .category-grid,.article-grid,.page-library-landing .card-grid,.collection-tools,.independent-catalogue,.independent-promo.has-cover > a,.independent-audio-library ol,.contact-method-grid,.contact-social-layout { grid-template-columns:1fr; }
  .independent-promo img { max-height:15rem; }
  .pagination,.section-heading { align-items:flex-start; flex-direction:column; }
  .pagination > div { justify-content:flex-start; }
}
@media (max-width: 560px) {
  .site-header { position: static; }
  .site-header nav { align-items: stretch; flex-direction: column; }
  .site-header nav a { padding: .2rem 0; }
  .content-section, .article-header { border-radius: .7rem; }
  .home-grid { grid-auto-flow: row; grid-auto-rows: auto; grid-template-columns: 1fr; }
  .reader-toolbar { justify-content:flex-start; position:static; }
  .reader-backgrounds { flex-basis:100%; }
}
@media print {
  .site-header nav, .skip-link, .site-footer, .reader-toolbar { display: none; }
  html { background: white; }
  .page-shell { width: 100%; }
}
