/* Reserve the existing model viewport; loading 3D does not move the layout. */
.hero-project-viewport,.shelter-scene__canvas-wrap,.program-detail__visual{position:relative}
[data-project-preview]{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;background:#bec8b2;color:#203e40}
[data-project-preview] img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.project-preview__actions{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:8px;max-width:calc(100% - 32px);margin-top:auto;margin-bottom:18px}
[data-project-start],.project-preview__link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;border:1px solid #254544;padding:11px 15px;background:#ffbd8b;color:#203e40;box-shadow:0 2px 12px #203e4033;font:500 12px/1.5 Manrope,Arial,sans-serif;text-align:center;cursor:pointer;text-decoration:none}
[data-project-start]:hover,.project-preview__link:hover{background:#ffd4b2}
[data-project-start]:focus-visible,.project-preview__link:focus-visible{outline:3px solid #203e40;outline-offset:3px}
[data-project-start][hidden]{display:none}
[data-project-start]:disabled{cursor:wait}
.project-preview__link{background:#f6f1e5;padding-inline:14px}
[data-project-load-state=loading] [data-project-start]::before{content:'';width:14px;height:14px;flex-shrink:0;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:project-preview-spin .8s linear infinite}
[data-project-status]{position:absolute;inset-inline:12px;bottom:72px;margin:0;padding:4px 8px;font:12px/1.6 Manrope,Arial,sans-serif;text-align:center;background:#f6f1e5e8;color:#203e40}
[data-project-status]:empty{display:none}
[data-project-load-state=error] [data-project-status]{border:1px solid #a44924}
[data-project-ready=true] [data-project-preview]{display:none}
[data-project-view]:not([data-project-ready=true]) [data-project-fallback]{visibility:hidden}
@keyframes project-preview-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){[data-project-load-state=loading] [data-project-start]::before{animation:none}}
@media print{.project-preview__actions,[data-project-status]{display:none}}
