.glb-viewer{position:relative;width:100%;max-width:512px;margin:0 auto}.glb-viewer[data-state=loading] .glb-viewer__still{opacity:.35}.glb-viewer[data-state=error] .glb-viewer__still,.glb-viewer[data-state=ready] .glb-viewer__still{visibility:hidden}.glb-viewer__stage{position:absolute;inset:0;z-index:2}.glb-viewer__canvas{position:absolute;inset:0;cursor:grab;touch-action:none}.glb-viewer__canvas:active{cursor:grabbing}.glb-viewer__toggle{position:absolute;top:0;right:0;z-index:3;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 14px;border:1px solid rgba(212,175,55,.7);border-radius:10px;background:rgba(20,20,20,.85);color:#e8c860;font-size:13px;font-weight:600;line-height:1;cursor:pointer;transition:background .15s}.glb-viewer__toggle:hover{background:rgba(212,175,55,.18)}.glb-viewer__toggle:focus-visible{outline:2px solid #e8c860;outline-offset:2px}.glb-viewer__overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;color:#e0e0e0;font-size:14px;pointer-events:none}.glb-viewer__spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.2);border-top-color:#e8c860;border-radius:50%;animation:glb-viewer-spin .8s linear infinite}@keyframes glb-viewer-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.glb-viewer__spinner{animation-duration:2.4s}}.glb-viewer__fallback{position:absolute;inset:0;background:#1c1c1c;border-radius:6px;overflow:hidden}.glb-viewer__fallback img{display:block;width:100%;height:100%;object-fit:contain}.glb-viewer__fallback p{position:absolute;left:0;right:0;bottom:0;margin:0;padding:8px 12px;background:rgba(0,0,0,.7);color:#d4d4d4;font-size:13px;line-height:1.4;text-align:center}.glb-viewer__hint{position:absolute;top:12px;left:0;z-index:3;color:rgba(255,255,255,.62);font-size:12px;pointer-events:none}@media (max-width:420px){.glb-viewer__hint{display:none}}.glb-viewer__picker{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;flex-direction:column;align-items:flex-start;gap:8px;pointer-events:none}.glb-viewer__picker>*{pointer-events:auto}.glb-viewer__toggle.glb-viewer__toggle--anims{position:static;max-width:100%}.glb-viewer__toggle--anims span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glb-viewer__panel{box-sizing:border-box;display:flex;flex-direction:column;gap:8px;width:100%;padding:8px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(20,20,20,.88)}.glb-viewer__cats{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.glb-viewer__cats::-webkit-scrollbar{display:none}.glb-viewer__clips{display:flex;flex-wrap:wrap;gap:6px}.glb-viewer__chip{display:inline-flex;flex:none;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:transparent;color:#d4d4d4;font-size:13px;line-height:1;white-space:nowrap;cursor:pointer}.glb-viewer__chip:hover{border-color:rgba(212,175,55,.6)}.glb-viewer__chip[aria-pressed=true]{border-color:rgba(212,175,55,.8);background:rgba(212,175,55,.14);color:#e8c860}.glb-viewer__chip--cat{font-weight:600}.glb-viewer__chip:focus-visible{outline:2px solid #e8c860;outline-offset:2px}.glb-viewer__spinner--chip{width:12px;height:12px}.glb-viewer__note{margin:0;color:#d4d4d4;font-size:12.5px}