/* A bounded progressive layer. Native images retain layout and accessible names. */
.nxs-model-logo { position:absolute; inset:0; display:block; pointer-events:none; z-index:3; }
.nxs-model-logo model-viewer { width:100%; height:100%; opacity:0; pointer-events:none; --progress-bar-height:0px; }
.nxs-model-logo.is-ready model-viewer { opacity:1; }
:is(.nxs-shell__brand-media, .mth-brand-media).is-nxs-model-ready > img { opacity:0; }
/* Keep the original Image block as layout/accessibility/link owner. */
.nxs-image-model-owner { position:relative; }
.nxs-model-logo.nxs-image-model { inset:auto; width:0; height:0; overflow:hidden; }
.nxs-image-model-owner img.is-nxs-image-model-ready { opacity:0; }
.nxs-model { box-sizing:border-box; width:100%; max-width:48rem; margin:1rem auto; border:1px solid #63917e; border-radius:12px; overflow:hidden; background:#14271f; color:#eef8f3; }
.nxs-model__stage { position:relative; width:100%; aspect-ratio:4/3; min-height:160px; background:#101e19; color:#eef8f3; }
.nxs-model__poster, .nxs-model__placeholder, .nxs-model__stage model-viewer { position:absolute; inset:0; width:100%; height:100%; box-sizing:border-box; }
.nxs-model__poster { object-fit:contain; }
.nxs-model__placeholder { display:grid; place-content:center; padding:1rem; text-align:center; overflow-wrap:anywhere; }
.nxs-model__stage model-viewer { opacity:0; --progress-bar-color:#91e0bc; }
.nxs-model.is-ready model-viewer { opacity:1; }
.nxs-model.is-ready :is(.nxs-model__poster,.nxs-model__placeholder) { visibility:hidden; }
/* Head bootstrap prevents the image-to-model flash, even before the deferred
   loader starts. Missing JS leaves native images alone; errors restore them.
   Only selected model owners participate, never ordinary image blocks. */
@media screen and (forced-colors:none) {
  html.nxs-model-first :is(.mth-brand-media,.nxs-shell__brand-media):has(> [data-nxs-model]:is(:not([data-model-state]),[data-model-state="waiting"],[data-model-state="loading"])) > img { opacity:0; }
  html.nxs-model-first .nxs-image-model-owner:has(> [data-nxs-image-model]:is(:not([data-model-state]),[data-model-state="waiting"],[data-model-state="loading"])) img { opacity:0; }
  html.nxs-model-first .nxs-model:is(:not([data-model-state]),[data-model-state="waiting"],[data-model-state="loading"]) :is(.nxs-model__poster,.nxs-model__placeholder) { visibility:hidden; }
  html.nxs-model-first :is(.nxs-model-logo:is(:not([data-model-state]),[data-model-state="waiting"],[data-model-state="loading"]),.nxs-model:is(:not([data-model-state]),[data-model-state="waiting"],[data-model-state="loading"]) > .nxs-model__stage)::after {
    content:"···"; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); display:grid; place-items:center; width:min(28px,100%); height:min(18px,100%); border-radius:9px; background:#13271f; color:#bfdacf; font:700 12px/1 system-ui,sans-serif; pointer-events:none;
  }
}
.nxs-model figcaption { display:grid; gap:.4rem; margin:0; padding:.85rem 1rem; background:#1c3429; color:#eef8f3; font:400 .875rem/1.5 system-ui,sans-serif; }
.nxs-model figcaption strong { color:inherit; font-weight:700; }
.nxs-model figcaption span { color:#c6dbd0; }
.nxs-model .nxs-model__load { position:absolute; z-index:2; bottom:12px; left:12px; max-width:calc(100% - 24px); min-height:44px; padding:.6rem .9rem; border:1px solid #9ee3c1; border-radius:8px; background:#9ee3c1; color:#10271e; font:700 .875rem/1.3 system-ui,sans-serif; cursor:pointer; }
.nxs-model [hidden] { display:none !important; }
.nxs-model__load:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.nxs-model-message { padding:.75rem; border:1px solid currentColor; }
.nxs-model-touch { touch-action:pan-y pinch-zoom; cursor:grab; user-select:none; -webkit-user-select:none; }
.nxs-model-touch.is-model-dragging { cursor:grabbing; }
.nxs-model-touch:focus-visible { outline:3px solid #9ee3c1; outline-offset:-3px; }
.nxs-image-model-owner:has(img.nxs-model-touch:focus-visible) { outline:3px solid #9ee3c1; outline-offset:3px; }
.nxs-model-gesture-help[hidden] { display:none !important; }
.nxs-model-recovery { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.4rem .7rem; box-sizing:border-box; max-width:28rem; margin:.5rem auto; padding:.5rem .7rem; border:1px solid #63917e; border-radius:8px; background:#14271f; color:#eef8f3; font:400 .75rem/1.5 system-ui,sans-serif; text-align:left; }
.nxs-model-recovery[hidden] { display:none !important; }
.nxs-model-recovery button { flex:0 0 auto; min-height:44px; padding:.5rem .75rem; border:1px solid #9ee3c1; border-radius:6px; background:#9ee3c1; color:#10271e; font:700 .75rem/1.3 system-ui,sans-serif; cursor:pointer; }
.nxs-model-recovery button:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.nxs-admin__model { display:grid; gap:.7rem; margin-top:1rem; padding:1rem; border:1px solid #cfe7de; border-radius:12px; background:#f5fbf8; color:#163e31; }
.nxs-admin__model p { margin:0; }
.nxs-admin__model-actions { display:flex; flex-wrap:wrap; gap:.5rem; }
.nxs-admin__model-actions button { min-height:36px; }
@media print, (forced-colors:active) {
  .nxs-model-recovery { display:none; }
  .nxs-model-logo { display:none; }
  :is(.nxs-shell__brand-media,.mth-brand-media).is-nxs-model-ready > img { opacity:1; }
  .nxs-image-model-owner img.is-nxs-image-model-ready { opacity:1; }
  .nxs-model model-viewer { display:none; }
  .nxs-model.is-ready :is(.nxs-model__poster,.nxs-model__placeholder) { visibility:visible; }
  .nxs-model, .nxs-model__stage, .nxs-model figcaption { background:Canvas; color:CanvasText; }
  .nxs-model figcaption span { color:CanvasText; }
}
