/* /assets/css/physics/astro-physics/how-greenhouse-effect-energy-balance-works-explained.css — 本页专属样式（en/zh 共用）
   依赖 /assets/css/style.css（设计令牌 + .part/.tag 骨架 + 外壳态 + prefers-reduced-motion 兜底）。
   图形类样式自图解源文件 svgs/done/physics-40-how-greenhouse-effect-energy-balance-works-explained.html 内联样式并入驻此
   （页面禁止内联 <style>）。规则按 body[data-topic="greenhouse-effect"] 作用域限定，
   避免与同类目其它 physics 页面同名类冲突；动画由 #stage 的 .is-running 驱动。 */

/* ============ 图形文字 ============ */
body[data-topic="greenhouse-effect"] .svg-title{fill:#16202c;font-family:var(--mono);font-size:17px;font-weight:600;letter-spacing:.08em;}
body[data-topic="greenhouse-effect"] .svg-sub{fill:#5b6472;font-family:var(--sans);font-size:12.5px;}
body[data-topic="greenhouse-effect"] .tag{fill:#334155;font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:.01em;}
body[data-topic="greenhouse-effect"] .tag-sm{fill:#5b6472;font-family:var(--sans);font-size:12px;}

/* ============ 太阳 ============ */
body[data-topic="greenhouse-effect"] .sun-disc{fill:#f59e0b;stroke:#b45309;stroke-width:2.5;}
body[data-topic="greenhouse-effect"] .sun-ray{stroke:#f59e0b;stroke-width:4;stroke-linecap:round;}
body[data-topic="greenhouse-effect"] .part.is-active .sun-disc{fill:#fbbf24;stroke:#92400e;}

/* ============ 入射阳光 / 反射光 ============ */
body[data-topic="greenhouse-effect"] .sunbeam{fill:none;stroke:#d97706;stroke-width:6;stroke-linecap:round;stroke-dasharray:16 12;}
body[data-topic="greenhouse-effect"] .reflect-beam{fill:none;stroke:#fbbf24;stroke-width:4.5;stroke-linecap:round;stroke-dasharray:13 10;}
body[data-topic="greenhouse-effect"] .part.is-active .sunbeam{stroke:#b45309;stroke-width:7;}
body[data-topic="greenhouse-effect"] .part.is-active .reflect-beam{stroke:#92400e;stroke-width:6;}

/* ============ 红外辐射 / 反向辐射 ============ */
body[data-topic="greenhouse-effect"] .ir-ray{fill:none;stroke:#dc2626;stroke-width:5;stroke-linecap:round;stroke-dasharray:14 10;}
body[data-topic="greenhouse-effect"] .back-ray{fill:none;stroke:#f97316;stroke-width:5;stroke-linecap:round;stroke-dasharray:12 10;}
body[data-topic="greenhouse-effect"] .part.is-active .ir-ray{stroke:#b91c1c;stroke-width:6;}
body[data-topic="greenhouse-effect"] .part.is-active .back-ray{stroke:#c2410c;stroke-width:6;}

/* ============ 大气层 ============ */
body[data-topic="greenhouse-effect"] .atm-band{fill:#cfe0f5;fill-opacity:.6;stroke:#93b4dd;stroke-width:2;stroke-dasharray:10 8;}
body[data-topic="greenhouse-effect"] .part.is-active .atm-band{fill-opacity:.85;stroke:#1d4ed8;stroke-width:2.4;}

/* ============ 温室气体分子 ============ */
body[data-topic="greenhouse-effect"] .mol-a{fill:#8b5cf6;stroke:#5b21b6;stroke-width:1.6;}
body[data-topic="greenhouse-effect"] .mol-b{fill:#c4b5fd;stroke:#5b21b6;stroke-width:1.6;}
body[data-topic="greenhouse-effect"] .mol-bond{stroke:#5b21b6;stroke-width:2;}
body[data-topic="greenhouse-effect"] .part.is-active .mol-a{fill:#a78bfa;stroke:#4c1d95;}
body[data-topic="greenhouse-effect"] .part.is-active .mol-b{fill:#ddd6fe;stroke:#4c1d95;}

/* ============ 地表 ============ */
body[data-topic="greenhouse-effect"] .ground{fill:#b7c9dd;stroke:#7c8ba1;stroke-width:2;}
body[data-topic="greenhouse-effect"] .part.is-active .ground{fill:#cfe3fb;stroke:#1d4ed8;stroke-width:2.4;}

/* ============ 高亮发光 ============ */
body[data-topic="greenhouse-effect"] .part.is-active{filter:drop-shadow(0 0 12px rgba(29,78,216,.45));}

/* ============ 动画（由 #stage 的 .is-running 驱动） ============ */
body[data-topic="greenhouse-effect"] .is-running .sunbeam{animation:gh-sunflow 1s linear infinite;}
body[data-topic="greenhouse-effect"] .is-running .reflect-beam{animation:gh-sunflow 1.3s linear infinite;}
body[data-topic="greenhouse-effect"] .is-running .ir-ray{animation:gh-irflow 1.1s linear infinite;}
body[data-topic="greenhouse-effect"] .is-running .back-ray{animation:gh-irflow 1.4s linear infinite;}
body[data-topic="greenhouse-effect"] .is-running .sun-ray{transform-box:fill-box;transform-origin:center;animation:gh-glow 3s ease-in-out infinite;}
@keyframes gh-sunflow{to{stroke-dashoffset:-56}}
@keyframes gh-irflow{to{stroke-dashoffset:-48}}
@keyframes gh-glow{0%,100%{opacity:.7}50%{opacity:1}}