/* 具象诗景层：盖住旧主题弱动效 */
.theme-layer.poem-scene-host {
  background: #0b1c2e;
  overflow: hidden;
}

.poem-scene {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.poem-scene svg {
  width: 100%;
  height: 100%;
  display: block;
}

.poem-scene .veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.42));
  z-index: 5;
}

/* —— 通用部件动画 —— */
@keyframes ps-rise { from { transform: translateY(12%); opacity: .4; } to { transform: none; opacity: 1; } }
@keyframes ps-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes ps-drift-x { from { transform: translateX(-8%); } to { transform: translateX(8%); } }
@keyframes ps-flow { from { transform: translateX(0); } to { transform: translateX(-20%); } }
@keyframes ps-rain { from { transform: translateY(-20%); } to { transform: translateY(120%); } }
@keyframes ps-climb { 0% { transform: translate(0, 0); } 50% { transform: translate(6px, -28px); } 100% { transform: translate(12px, -56px); } }
@keyframes ps-breathe { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.04); } }
@keyframes ps-flap { 0%,100% { transform: rotate(-8deg); } 50% { transform: rotate(12deg); } }
@keyframes ps-ripple { 0% { transform: scale(.6); opacity: .55; } 100% { transform: scale(1.8); opacity: 0; } }
@keyframes ps-glow { 0%,100% { opacity: .55; } 50% { opacity: 1; } }
@keyframes ps-sway { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } }
@keyframes ps-boat { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(18px) translateY(-4px); } }
@keyframes ps-waterfall { from { transform: translateY(-10%); opacity: .7; } to { transform: translateY(10%); opacity: 1; } }
@keyframes ps-petal-fall {
  0% { transform: translate3d(0,-10%,0) rotate(0); opacity: 0; }
  15% { opacity: 1; }
  100% { transform: translate3d(40px,110vh,0) rotate(240deg); opacity: .2; }
}

.ps-anim-float { animation: ps-float 4s ease-in-out infinite; }
.ps-anim-sway { transform-origin: bottom center; animation: ps-sway 3.5s ease-in-out infinite; }
.ps-anim-glow { animation: ps-glow 3s ease-in-out infinite; }
.ps-anim-climb { animation: ps-climb 6s ease-in-out infinite alternate; }
.ps-anim-breathe { transform-box: fill-box; transform-origin: center bottom; animation: ps-breathe 3.2s ease-in-out infinite; }
.ps-anim-flap { transform-box: fill-box; transform-origin: center; animation: ps-flap 0.7s ease-in-out infinite; }
.ps-anim-boat { animation: ps-boat 5s ease-in-out infinite; }
.ps-anim-waterfall { animation: ps-waterfall 1.2s linear infinite; }
.ps-anim-flow { animation: ps-flow 8s linear infinite; }

.ps-raindrop {
  animation: ps-rain linear infinite;
  opacity: .55;
}

.ps-petal {
  position: absolute;
  width: 12px;
  height: 16px;
  border-radius: 70% 0 70% 0;
  background: #ff7aa2;
  animation: ps-petal-fall linear infinite;
  z-index: 4;
}

.scene-caption {
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: 6.5rem;
  z-index: 6;
  text-align: center;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  opacity: 0.72;
  text-shadow: 0 2px 10px rgba(0,0,0,.45);
}
