/* A floating textile study; the canvas never captures navigation or scrolling. */
.services-title{grid-template-columns:1.35fr 1fr;gap:2%;}
.service-sculpture{width:100%;max-width:none;max-height:none;aspect-ratio:1.06;perspective:none;display:block;margin:-32px 0 -24px;min-width:0;}
.service-sculpture-stage{position:absolute;inset:0 0 34px;}
.service-sculpture-stage::before{content:"";position:absolute;inset:6% -5%;border-radius:50%;background:radial-gradient(ellipse,#ad52251b 0%,#a34c2009 42%,transparent 68%);pointer-events:none;}
.service-sculpture-stage::after{content:"";position:absolute;left:24%;right:24%;bottom:3%;height:7%;background:radial-gradient(ellipse,#0009,transparent 70%);filter:blur(9px);transform:scaleX(1.4);pointer-events:none;}
.service-sculpture canvas,.service-sculpture-fallback{position:absolute;width:100%;height:100%;inset:0;display:block;pointer-events:none;}
.service-sculpture canvas{opacity:0;transition:opacity 600ms ease;}
/* A fallback is an error state, never an interim loading frame. */
.service-sculpture-fallback{opacity:0;visibility:hidden;filter:drop-shadow(0 22px 15px #0005);}
.service-sculpture[data-failed="true"] .service-sculpture-fallback{opacity:1;visibility:visible;}
.service-sculpture[data-ready="true"] canvas{opacity:1;}
.service-sculpture[data-ready="true"] .service-sculpture-fallback{opacity:0;visibility:hidden;}
.service-sculpture-caption{position:absolute;bottom:0;left:9%;right:6%;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #d6a98a24;padding-top:14px;color:#c7b6a8;font-size:10px;letter-spacing:.02em;white-space:nowrap;}
.sculpture-index{font-size:9px;letter-spacing:.1em;color:#d99266;}
.sculpture-signature{font-size:13px;font-weight:600;letter-spacing:-.07em;color:#e6c5ad;}
@media(min-width:1500px){.service-sculpture{max-width:540px;justify-self:end;}}
@media(max-width:760px){.services-title{grid-template-columns:1fr;gap:0;}.service-sculpture{width:min(100%,430px);max-width:430px;aspect-ratio:1.16;margin:16px auto 6px;}.service-sculpture-caption{left:10%;right:10%;font-size:10px;}.services-opening>.editorial-intro{margin-top:30px;}}
@media(prefers-reduced-motion:reduce){.service-sculpture canvas,.service-sculpture-fallback{transition:none;}}
