/* Compact A framing. The fallback and WebGL always reserve identical space. */
.pe-services__visual .pe-study-plate { aspect-ratio: 9 / 10; max-width: 450px; margin-inline: auto; }
.pe-services__visual .pe-study img { object-fit: cover; }
.services-sculpture { position: absolute; inset: 0; pointer-events: auto; opacity: 0; transition: opacity 360ms var(--pe-ease); }
.services-sculpture canvas { display: block; width: 100%; height: 100%; }
.services-sculpture[data-state="ready"] { opacity: 1; }
.services-sculpture[data-state="fallback"] { transition: none; }
@media (min-width: 641px) and (max-width: 850px) {
  .pe-services__body { grid-template-columns: .9fr 1.1fr; gap: 1.5rem; }
}
@media (max-width: 640px) {
  .pe-services__visual .pe-study-plate { width: min(100%, 15rem); }
}
@media (prefers-reduced-motion: reduce) { .services-sculpture { transition: none; } }
