:root{font-family:Arial,Helvetica,sans-serif;color:#162b3a;background:transparent;font-synthesis:none}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;min-width:260px;background:transparent}
button{font:inherit;cursor:pointer;min-height:44px;border:1px solid #c8d5dd;border-radius:24px;padding:10px 20px;background:#fff;color:#163344;font-size:14px;font-weight:600}
button:hover{background:#e5f5fc;border-color:#0099d3}
button:focus-visible{outline:3px solid #0077a3;outline-offset:3px}
button[aria-pressed=true]{background:#0079a8;border-color:#0079a8;color:#fff}
button:disabled{opacity:.7;cursor:wait}
[hidden]{display:none!important}
.viewer-shell{--header-space:0px;position:relative;height:100%;min-height:360px;overflow:hidden;background:transparent}
.viewer-shell.is-exploring{--header-space:118px}
.viewer-shell.is-standalone,.viewer-shell:fullscreen{background:#e7f3fc url('page-background.webp') center bottom/cover no-repeat}
.viewer-shell::backdrop{background:#e7f3fc}
model-viewer{display:block;position:absolute;top:var(--header-space);width:100%;height:calc(100% - var(--header-space) - 128px);background:transparent;--poster-color:transparent;--progress-bar-color:#00a3e0;--progress-bar-height:3px}
.poster{position:absolute;inset:0;display:grid;place-items:center;background:transparent}
.poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.launch{position:absolute;bottom:12px;background:#00a3e0;color:#162b3a;border:0;box-shadow:0 6px 24px #17344926;font-size:16px;padding:14px 24px}
.launch:hover{background:#009bd5}.launch span{margin-left:14px;font-size:22px}
.topline{pointer-events:none;position:absolute;top:24px;left:28px;right:28px;display:flex;justify-content:flex-end;align-items:flex-start}
.viewer-shell:not(.is-exploring) .topline,.viewer-shell:not(.is-exploring) .hint{display:none}
.mode{padding-top:4px;font-size:12px;letter-spacing:.12em;font-weight:600;color:#48616f}
.toolbar{position:absolute;bottom:60px;left:12px;right:12px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.hint{position:absolute;bottom:17px;left:12px;right:12px;text-align:center;margin:0;color:#425d6d;font-size:14px;pointer-events:none}
.loading-state{position:absolute;bottom:143px;left:20px;right:20px;text-align:center;font-size:14px;pointer-events:none}
.progress{height:3px;position:absolute;top:0;left:0;right:0}.progress span{display:block;height:100%;width:0;background:#00a3e0;transition:width .15s}
.error{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);width:min(90%,350px);text-align:center;background:#fff;padding:16px;border:1px solid #d8e2e8;border-radius:16px;box-shadow:0 8px 30px #17344918}
.error p{margin:0 0 12px;font-size:16px}.no-script{position:absolute;bottom:60px;left:10%;right:10%;text-align:center;background:#fff;padding:12px}
@media(max-width:480px){.viewer-shell.is-exploring{--header-space:98px}.topline{top:18px;left:18px;right:18px}.toolbar{gap:6px}.toolbar button{padding:10px 14px}.hint{font-size:14px;bottom:18px}.mode{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.viewer-shell.is-hero:not(:fullscreen){min-height:0}
.is-hero:not(:fullscreen) model-viewer{top:0;height:100%}
.is-hero:not(:fullscreen) .poster img{height:calc(100% - 54px)}
.is-hero:not(:fullscreen) .launch{bottom:4px;font-size:14px;padding:10px 18px;min-height:44px}
.is-hero:not(:fullscreen) .topline{top:6px;right:12px}
.is-hero.is-exploring:not(:fullscreen) model-viewer{top:24px;height:calc(100% - 106px)}
.is-hero:not(:fullscreen) .toolbar{bottom:30px;left:4px;right:4px;gap:5px}
.is-hero:not(:fullscreen) .toolbar button{font-size:12px;padding:8px 12px;min-height:40px}
.is-hero:not(:fullscreen) .hint{bottom:7px;left:4px;right:4px;font-size:11px}
.is-hero:not(:fullscreen) .loading-state{bottom:54px}

/* The composed preview fits inside the existing hero footprint. The stronger
   selector also overrides the detector-only crop injected by Custom Code v2. */
.viewer-shell.is-hero:not(:fullscreen) #detector .poster img{inset:8px 0 auto!important;width:100%!important;height:calc(100% - 72px)!important;max-width:none!important;object-fit:contain!important;transform:none!important}
