/* نبض دارك — مشهدُ المحاكاة: مزجٌ بين لقطاتٍ لغرفةٍ واحدة.
 *
 * أربعةُ متغيّراتٍ تقود المشهد، تُضبَط من demo.js على الغلاف:
 *   --ceil  شدّةُ الإضاءة السقفيّة  (0 … 1)
 *   --side  شدّةُ الأباجورة         (0 … 1)
 *   --day   فتحةُ الستارة           (0 … 1)
 *   --lit   مجموعُ الضوء الصناعيّ    (0 … 1)
 */

.ph {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #0a0d08;
}

.ph img, .ph-composite {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}
.ph-composite { opacity: 0; pointer-events: none; }
.ph-composite.is-ready { opacity: 1; }

/* ============================================ وضعُ اللقطات المتعدّدة
 *
 * **كلُّ لقطةٍ تظهر بمقدار مؤشّرها فوق الأساس.** وهذا مزجٌ خطّيٌّ بين
 * حالتين حقيقيّتين — وهو ما يحدث فعلاً حين تُخفَّت إضاءة: لا مُرشِّحٌ
 * يُقلّد الضوء، بل الضوءُ نفسُه مصوَّراً.
 *
 * ولا موضعَ يُقدَّر: **الستارةُ في مكانها لأنّها في الصورة**.
 */
.ph-layer {
  opacity: 0;
  transition: opacity 0.55s var(--ease, cubic-bezier(.22,.61,.36,1));
}
.ph-layer--ceil  { opacity: var(--ceil, 0); }
.ph-layer--side  { opacity: var(--side, 0); }
.ph-layer--day   { opacity: var(--day, 0); }
/* الستارةُ عكسُ المؤشّر: صفرٌ مفتوحةٌ فلا تظهر لقطتُها، وواحدٌ مغلقة. */
.ph-layer--blind { opacity: calc(1 - var(--day, 0)); }

/* ============================================ الوضعُ المفرد
 *
 * حتى تصل اللقطات: لقطةٌ واحدةٌ وتحكّمٌ عامٌّ بالإضاءة. **وهو ناقصٌ
 * ويُعلَن ناقصاً** — لا ستائرَ فيه ولا مصابيحَ موضعيّة، لأنّ ما لا
 * يُعرَف موضعُه لا يُرسَم، وطبقةٌ في غير مكانها أسوأُ من غيابها.
 */
.ph--single .ph-base {
  /* **والظلامُ باردٌ لا رماديّ**: عينُ الإنسان ترى الليلَ مزرقّاً،
     وصورةٌ تُظلَم بلا إزاحةٍ تبدو ميّتة. */
  filter:
    brightness(calc(0.38 + var(--lit, 0) * 0.70 + var(--day, 0) * 0.24))
    saturate(calc(0.58 + var(--lit, 0) * 0.42 + var(--day, 0) * 0.22))
    hue-rotate(calc((1 - var(--warm, 0)) * -13deg));
  transition: filter 0.55s var(--ease, cubic-bezier(.22,.61,.36,1));
}
.ph-dim {
  position: absolute;
  inset: 0;
  background: #070a06;
  opacity: calc(0.30 - var(--lit, 0) * 0.28 - var(--day, 0) * 0.12);
  transition: opacity 0.55s var(--ease, cubic-bezier(.22,.61,.36,1));
  pointer-events: none;
}
/* والمشهدُ الخارجيّ: **النهارُ فيه يمحو الظلامَ لا يخفّفه** — السماءُ
   فوق كلِّ شيء، بخلاف غرفةٍ يدخلها الضوءُ من نافذةٍ واحدة. */
.ph--out.ph--single .ph-dim {
  opacity: calc(0.30 - var(--lit, 0) * 0.20 - var(--day, 0) * 0.30);
}

@media (prefers-reduced-motion: reduce) {
  .ph-layer, .ph--single .ph-base, .ph-dim { transition: none; }
}
