/* Preserve image geometry while incomplete pixels decode. No-JS images stay visible. */
img[data-image-state="pending"] { visibility:hidden; }
@media print { img[data-image-state] { visibility:visible; } }

/* Retain every visual layer; reduce stacked backdrop sampling on touch devices. */
@media (hover:none) and (pointer:coarse) {
  .home-glass::after,.work-glass::after,.chapter-echo::after {
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
  }
  .section-echo .glass-liquid { will-change:auto; }
  #index-menu {
    -webkit-backdrop-filter:blur(24px) saturate(.65);
    backdrop-filter:blur(24px) saturate(.65);
  }
  :root { --glass-blur:8px; }
  .on-chapter:not(.menu-open) .site-header,.menu-open .site-header,.reading-nav {
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
  }
  .contact-sheet-inner,.progress-dialog {
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
  }
  .progress-dialog::backdrop {
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
  }
}
