/* Approved homepage composition; shared forest brand tokens live in tokens.css. */
.forest-home { display:grid; grid-template-columns:minmax(0,1fr); }
.forest-home > main { grid-area:1 / 1; min-width:0; }
.forest-opening { background:var(--forest-night); }
.forest-scene { position:relative; isolation:isolate; min-height:var(--forest-scene-height); display:grid; grid-template-columns:minmax(0,1fr) 160px; align-items:center; padding:110px var(--forest-gutter) 24px; gap:24px; grid-template-rows:1fr auto; background:var(--forest-night); }
/* B 圖的蟲體中心約在原圖寬度 54%；窄螢幕沿用同一焦點裁切。 */
.forest-hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:54% top; z-index:0; }
.forest-scene::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,rgba(3,17,8,.88),rgba(3,17,8,.7) 25%,rgba(3,17,8,.08) 49%,transparent 72%,rgba(3,17,8,.4)); }
.forest-hero-content { position:relative; z-index:2; max-width:500px; padding-bottom:12px; }
.forest-eyebrow { margin:0 0 12px; color:var(--forest-gold); font:400 11px/1.6 Georgia,serif; letter-spacing:.26em; text-transform:uppercase; }
.forest-hero-content h1 { margin:0 0 8px; font:500 clamp(36px,3.5vw,56px)/1.5 var(--forest-serif); letter-spacing:.1em; color:var(--forest-gold); }
.forest-subtitle { margin:0 0 22px; color:var(--forest-gold); font:400 18px/1.8 var(--forest-serif); letter-spacing:.22em; }
.forest-intro { margin:0 0 26px; color:var(--forest-cream); font:400 15px/1.9 var(--forest-serif); letter-spacing:.04em; }
.forest-marginalia { position:relative; z-index:2; align-self:stretch; display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end; text-align:right; padding-block:28px; }
.forest-marginalia p { margin:0; color:var(--forest-cream); font:400 14px/1.65 var(--forest-serif); letter-spacing:.07em; }
.forest-marginalia p::after { content:""; display:block; width:72px; border-bottom:1px solid var(--forest-hairline); margin:18px 0 0 auto; }
.forest-index { display:flex; flex-direction:column; gap:4px; }
.forest-index a { display:flex; align-items:center; justify-content:flex-end; gap:10px; min-height:44px; min-width:76px; color:var(--forest-muted); font:400 16px Georgia,serif; letter-spacing:.12em; text-decoration:none; }
.forest-index a:first-child { color:var(--forest-cream); }
.forest-index a:first-child::after { content:""; width:40px; border-bottom:1px solid var(--forest-gold); }
.forest-index a:hover { color:var(--forest-gold); text-decoration:underline; }
.forest-home .home-section-heading h2,.forest-home .atlas-entry-option h3,.forest-home .home-articles h3 { font-family:var(--forest-serif); }
#featured-species,#field-notes { scroll-margin-top:calc(var(--header-h) + 24px); }
@media(max-width:1199.98px) {
 .forest-hero-content { max-width:440px; }
}
@media(max-width:991.98px) {
 .forest-scene { min-height:calc(var(--header-h) + min(105vw,560px) + 32px); padding:calc(var(--header-h) + 36px) 0 0; display:flex; flex-direction:column; align-items:stretch; gap:0; background:var(--forest-night); }
 .forest-scene::before { display:block; background:linear-gradient(90deg,rgba(3,17,8,.86),rgba(3,17,8,.65) 48%,rgba(3,17,8,.06) 86%),linear-gradient(180deg,rgba(3,17,8,.3),transparent 55%,rgba(3,17,8,.85)); }
 .forest-hero-content { display:flex; flex-direction:column; align-items:flex-start; width:100%; min-height:0; max-width:none; padding:0 var(--forest-gutter) 28px; }
 .forest-hero-content .forest-intro { max-width:28em; }
 .forest-search { margin-top:4px; }
 .forest-hero-content h1 { font-size:clamp(30px,5vw,44px); letter-spacing:.1em; }
 .forest-marginalia { position:relative; inset:auto; margin-top:auto; padding:12px var(--forest-gutter); width:100%; min-height:64px; flex-direction:row; align-items:center; }
 .forest-marginalia > p { font-size:12px; }
 .forest-marginalia > p::after { display:none; }
 .forest-marginalia > p:last-child { display:none; }
 .forest-index { flex-direction:row; gap:8px; }
 .forest-index a { min-width:32px; font-size:14px; }
 .forest-index a:first-child::after { display:none; }
}
@media(max-width:575.98px) {
 .forest-scene { padding-top:calc(var(--header-h) + 24px); }
 .forest-eyebrow { font-size:10px; margin-bottom:10px; letter-spacing:.18em; }
 .forest-hero-content h1 { font-size:clamp(28px,7.7vw,38px); margin-bottom:8px; letter-spacing:.05em; }
 .forest-subtitle { font-size:15px; letter-spacing:.12em; margin-bottom:16px; }
 .forest-hero-content .forest-intro { font-size:14px; max-width:18em; margin-bottom:20px; }
}
.forest-stats { position:relative; z-index:2; grid-column:1 / -1; width:100%; padding:16px 0; background:rgba(5,21,10,.55); border-top:1px solid var(--forest-hairline); }
.forest-stats > .container { width:100%; max-width:none; padding:0; }
.forest-stats .row { border-block:0; padding-block:0; }
.forest-stats .row > div + div { border-left:1px solid var(--editorial-line); }
.forest-stats .stat-item { padding:0 16px; text-align:left; }
.forest-stats .stat-value { color:var(--editorial-ink); font:400 2rem/1.2 var(--font-serif); }
.forest-stats .stat-label { display:block; color:var(--editorial-muted); font-size:.8125rem; font-weight:400; margin-top:8px; }
.stats-source { margin:12px 0 0; text-align:right; font-size:.8125rem; }
[data-rolling-number] { display:inline-flex; vertical-align:top; }
/* Only the moving digit window is clipped; no editorial text is clipped. */
.stat-digit-window { display:inline-block; width:1ch; height:1.2em; overflow:hidden; }
.stat-digit-track,.stat-digit { display:block; } .stat-digit { height:1.2em; line-height:1.2; }
@media(max-width:991.98px) { .forest-stats { padding:16px var(--forest-gutter); } }
@media(max-width:575.98px) { .forest-stats .stat-item { padding:0 8px; } .forest-stats .stat-value { font-size:26px; } .forest-stats .stat-label { font-size:11px; margin-top:4px; } .forest-stats .stats-source { font-size:11px; } }
#atlas { scroll-margin-top:calc(var(--header-h) + 24px); }
.home-section-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:16px; border-bottom:1px solid var(--editorial-ink); padding-bottom:12px; margin-bottom:26px; }
.home-section-heading h2 { font-size:1.75rem; margin:0; }
.home-section-number { font:400 2.25rem/1 var(--font-serif); }
.home-section-heading > :last-child { text-decoration:none; margin:0 0 0 auto; font-size:.8125rem; }
.atlas-entry-options { display:grid; gap:32px; margin:0 0 40px; }
.atlas-entry-option { display:flex; flex-direction:column; min-width:0; color:var(--editorial-ink); text-decoration:none; border-bottom:0; padding-bottom:20px; }
@media(max-width:991.98px) { .atlas-entry-option:not(:last-child) { border-bottom:1px solid var(--editorial-line); } }
.atlas-entry-option img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; margin-bottom:20px; }
.atlas-photo-credits { margin:0 0 24px; }
.atlas-entry-caption { display:flex; flex-direction:column; }
.atlas-entry-kicker { font-size:.75rem; letter-spacing:.14em; margin-bottom:8px; }
.atlas-entry-option h3 { font-size:1.75rem; }
.atlas-entry-option p { font-size:1rem; margin:0; }
.atlas-entry-action { display:flex; justify-content:space-between; min-height:44px; align-items:center; font-size:.875rem; }
.atlas-entry-option:hover h3 { text-decoration:underline; text-underline-offset:.2em; }
.home-category-index { display:grid; gap:24px; }
.category-card { display:grid; grid-template-columns:100px minmax(0,1fr); gap:20px; text-decoration:none; align-items:center; border-top:1px solid var(--editorial-line); padding-top:20px; }
.category-card > img { width:100%; height:100px; object-fit:contain; }
.category-overlay h3 { margin:0 0 4px; font-size:1.25rem; }
.category-overlay span { color:var(--editorial-muted); font:italic 1rem var(--font-serif); overflow-wrap:anywhere; }
.home-specimens { position:relative; display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 72px)/4); gap:24px; overflow-x:auto; scroll-snap-type:x proximity; padding:4px 4px 16px; }
.home-specimen { min-width:0; scroll-snap-align:start; }
.home-specimen-card { border-top:0; padding-top:12px; }
.home-specimen-card h3 { font-size:1.25rem; line-height:1.5; margin-bottom:8px; }
.home-specimen-card h3 a { color:var(--editorial-ink); text-decoration:none; }
.home-specimen-card h3 a:hover { text-decoration:underline; }
.home-specimen-card .sci-name { overflow-wrap:anywhere; font-size:1rem; margin-bottom:12px; }
.home-specimen-image { position:relative; margin-bottom:16px; }
.home-specimen-image > a { display:block; aspect-ratio:1; }
.home-specimen-image img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; }

.home-specimen-link { text-decoration:none; min-height:44px; display:flex; align-items:center; justify-content:space-between; font-size:.875rem; }
@media(max-width:991.98px) {
 .home-specimens { grid-auto-columns:calc((100% - 24px)/2); }
}
@media(max-width:575.98px) {
 .home-specimens { grid-auto-columns:76%; gap:16px; }
 .home-specimen-card h3 { font-size:1.125rem; }
}
.home-articles { display:grid; gap:32px; }
.home-articles > * { min-width:0; }
.home-article-lead img { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; background:var(--editorial-paper); }
.home-article-meta { font-size:.8125rem; margin:20px 0 10px; letter-spacing:.06em; }
.home-article-lead h3 { font-size:clamp(1.75rem,2.6vw,2.25rem); }
.home-articles h3 a { color:var(--editorial-ink); text-decoration:none; }
.home-articles h3 a:hover { text-decoration:underline; }
.home-article-row { padding:0 0 20px; border-bottom:1px solid var(--editorial-line); }
.home-article-row + .home-article-row { padding-top:12px; }
.home-article-row h3 { font-size:1.25rem; }
.home-article-row p:last-child { font-size:1rem; }
@media(min-width:992px) {
 .atlas-entry-options { grid-template-columns:5fr 4fr 3fr; align-items:start; }
 .atlas-entry-option:nth-child(2) { padding-top:32px; } .atlas-entry-option:nth-child(3) { padding-top:64px; }
 .home-category-index { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .home-articles { grid-template-columns:7fr 5fr; gap:64px; }
}
