/* Design values and context palettes. Change a value here, not in a page. */
:root {
 --forest-night:#09180f; --forest-panel:#102219; --forest-cream:#eee7cf;
 --forest-gold:#d6c998; --forest-muted:#bebfa9; --forest-hairline:rgba(214,201,152,.28);
 --forest-serif:"Noto Serif TC","PMingLiU","Songti TC",Georgia,serif;
 --forest-gutter:clamp(24px,4.7vw,88px);
 --forest-scene-height:max(680px,100svh);
 --surface-sage:#e9ede3; --surface-ochre:#f2ead6; --surface-clay:#f5e8e2;
 /* Reading palette: values stay here; shared components assign surface roles. */
 --reading-canvas:#ffffff; --reading-paper:#ffffff; --reading-support:#e5ebe1;
 --reading-ink:#30332f; --reading-muted:#5c6259; --reading-rule:#ced2c7;
 --reading-accent:#875c24; --reading-highlight:#f2ead6;
 --reading-accent-rgb:135,92,36; --reading-highlight-rgb:242,234,214;
 --font-heading:var(--forest-serif);
 --editorial-paper:#ffffff; --editorial-white:#ffffff; --editorial-ink:#263429;
 --editorial-muted:#60675b; --editorial-line:#d1d2c3; --editorial-forest:#40583c;
 --editorial-amber:#B98732; --editorial-danger:#8D3B2F; --editorial-success:#315C45;
 --font-sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei","Segoe UI",system-ui,sans-serif;
 --font-serif:Georgia,"Noto Serif TC","Times New Roman",serif;
 --page-title-space:clamp(24px,2.5vw,36px); --page-content-space:clamp(20px,2vw,28px);
 --section-space:clamp(32px,4vw,56px); --section-tight-space:clamp(24px,3vw,40px);
 --catalogue-gap:clamp(12px,2vw,24px); --catalogue-card-min:208px;
 --header-h:77px; --control-min:44px; --control-pad-y:9px; --control-pad-x:12px;
 --header-icon-size:44px; --header-icon-slot:20px; --header-icon-gap:8px;
 /* Compatibility aliases for existing page CSS; no second theme. */
 --forest-950:var(--editorial-ink); --forest-900:var(--editorial-forest); --forest-800:var(--editorial-forest);
 --forest-700:var(--editorial-forest); --forest-600:var(--editorial-success);
 --moss-500:var(--editorial-muted); --moss-300:var(--editorial-line);
 --earth-800:#49382C; --earth-600:#725743; --amber-500:var(--editorial-amber); --amber-300:#DFBC6B; --amber-text:#79571D;
 --sand-100:var(--editorial-paper); --mist-50:var(--editorial-paper); --surface:var(--editorial-white);
 --text-main:var(--editorial-ink); --text-muted:var(--editorial-muted); --text-muted-aa:var(--editorial-muted); --border-soft:var(--editorial-line);
 --nature-moss:var(--editorial-muted); --nature-clay:var(--editorial-muted); --nature-ochre:var(--amber-text);
 --nature-sage:var(--editorial-paper); --nature-fern:var(--editorial-paper); --nature-linen:var(--editorial-paper); --nature-bark:var(--editorial-paper);
 --radius-sm:2px; --radius:2px; --radius-lg:2px; --shadow-sm:none; --shadow-md:none;
 --bs-body-bg:var(--editorial-paper); --bs-body-color:var(--editorial-ink); --bs-border-color:var(--editorial-line);
 --bs-primary:#40583c; --bs-primary-rgb:64,88,60; --bs-success-rgb:49,92,69; --bs-danger-rgb:141,59,47;
 --bs-info-rgb:96,103,91; --bs-warning-rgb:185,135,50; --bs-light-rgb:255,255,255; --bs-white-rgb:255,255,255; --bs-secondary-color:var(--editorial-muted); --bs-secondary-color-rgb:96,103,91;
 --bs-primary-text-emphasis:var(--editorial-forest); --bs-primary-bg-subtle:var(--editorial-paper); --bs-primary-border-subtle:var(--editorial-line);
 --bs-code-color:var(--earth-600);
 --bs-border-radius:2px; --bs-border-radius-lg:2px; --bs-border-radius-sm:2px;
}
/* Shared inner-page palette; the approved home composition and forest shell
   keep their own context. Compatibility aliases must resolve in this scope. */
body:not(.forest-home) {
 --editorial-paper:var(--reading-canvas); --editorial-white:var(--reading-paper);
 --editorial-ink:var(--reading-ink); --editorial-muted:var(--reading-muted);
 --editorial-line:var(--reading-rule); --editorial-amber:var(--reading-accent);
 --text-main:var(--reading-ink); --text-muted:var(--reading-muted); --text-muted-aa:var(--reading-muted);
 --surface:var(--reading-paper); --surface-sage:var(--reading-support); --border-soft:var(--reading-rule);
 --sand-100:var(--reading-canvas); --mist-50:var(--reading-canvas);
 --nature-sage:var(--reading-support); --nature-fern:var(--reading-support);
 --nature-linen:var(--reading-paper); --nature-bark:var(--reading-canvas);
 --bs-body-bg:var(--reading-canvas); --bs-body-color:var(--reading-ink); --bs-border-color:var(--reading-rule);
 --bs-light-rgb:255,255,255; --bs-white-rgb:255,255,255;
 --bs-secondary-color:var(--reading-muted); --bs-secondary-color-rgb:92,98,89;
 color:var(--reading-ink); background:var(--reading-canvas);
}
/* Dark forest shell, shared by public, account and contribution layouts.
   Local aliases also theme nested Bootstrap dropdowns and notifications. */
.site-header,.site-footer,.forest-opening {
 --editorial-paper:var(--forest-night); --editorial-white:var(--forest-panel);
 --editorial-ink:var(--forest-cream); --editorial-muted:var(--forest-muted);
 --editorial-line:var(--forest-hairline); --editorial-forest:var(--forest-gold);
 --text-main:var(--forest-cream); --text-muted:var(--forest-muted); --text-muted-aa:var(--forest-muted);
 --bs-secondary-color:var(--forest-muted); --bs-secondary-color-rgb:190,191,169;
 color:var(--forest-cream);
}

@media(max-width:991.98px) { :root { --forest-gutter:24px; } }
@media(max-width:575.98px) { :root { --forest-gutter:16px; } }
