@liveroom-tech/react-immersive 6.0.1 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +26 -2
  2. package/dist/AnimationsTab-NUJTEMZ5.mjs +1 -0
  3. package/dist/AnnotationsTab-OHRVWRKI.mjs +1 -0
  4. package/dist/CinematicTab-IJAY2BS6.mjs +1 -0
  5. package/dist/ConfigureTab-UQRRATCY.mjs +6 -0
  6. package/dist/RulesTab-YVBZGJZX.mjs +1 -0
  7. package/dist/SequencesTab-IC5LWQ6N.css +1 -0
  8. package/dist/SequencesTab-RPJAG26Z.mjs +1 -0
  9. package/dist/binding-builder.css +1 -1
  10. package/dist/binding-builder.d.mts +3 -3
  11. package/dist/binding-builder.d.ts +3 -3
  12. package/dist/binding-builder.js +76 -23
  13. package/dist/binding-builder.mjs +1 -1
  14. package/dist/chunk-2DV2UCQH.mjs +1 -0
  15. package/dist/chunk-37YITTIK.mjs +1 -0
  16. package/dist/chunk-5FLX45O5.mjs +2 -0
  17. package/dist/chunk-6CTCV2Q5.mjs +1 -0
  18. package/dist/chunk-7JCFNZJM.mjs +1 -0
  19. package/dist/chunk-7OWHW66D.mjs +1 -0
  20. package/dist/chunk-AL6UIGWP.mjs +1 -0
  21. package/dist/chunk-BNKTI3CY.mjs +1 -0
  22. package/dist/chunk-CCBFMNAU.mjs +1 -0
  23. package/dist/chunk-E24EFHB5.mjs +1 -0
  24. package/dist/chunk-EV6THDXD.mjs +1 -0
  25. package/dist/chunk-F5QSXMME.mjs +1 -0
  26. package/dist/chunk-FGAJ2UT7.mjs +1 -0
  27. package/dist/chunk-FXV4CLAK.mjs +1 -0
  28. package/dist/chunk-GV4ZRXL6.mjs +1 -0
  29. package/dist/chunk-KHN55ZM7.mjs +3 -0
  30. package/dist/chunk-LX3GXQNU.mjs +1 -0
  31. package/dist/chunk-OPZJDP7T.mjs +1 -0
  32. package/dist/chunk-OREKYGO3.mjs +83 -0
  33. package/dist/chunk-PBVBZYOG.mjs +47 -0
  34. package/dist/chunk-T6AYLPCC.mjs +1 -0
  35. package/dist/hosted.css +1 -1
  36. package/dist/hosted.d.mts +22 -6
  37. package/dist/hosted.d.ts +22 -6
  38. package/dist/hosted.js +75 -22
  39. package/dist/hosted.mjs +1 -1
  40. package/dist/index.css +1 -1
  41. package/dist/index.d.mts +66 -6
  42. package/dist/index.d.ts +66 -6
  43. package/dist/index.js +69 -21
  44. package/dist/index.mjs +1 -1
  45. package/dist/{modelFileResolver-Co7j1tdQ.d.mts → modelFileResolver-BEW_95id.d.mts} +52 -7
  46. package/dist/{modelFileResolver-Co7j1tdQ.d.ts → modelFileResolver-BEW_95id.d.ts} +52 -7
  47. package/dist/{modelViewerProps-BibuMND7.d.ts → modelViewerProps-C7saa0i2.d.mts} +173 -3
  48. package/dist/{modelViewerProps-Ce4-wb57.d.mts → modelViewerProps-CbK_4uZj.d.ts} +173 -3
  49. package/dist/{publicProps-BaJHCDa_.d.mts → publicProps-NKTiohZO.d.mts} +1 -1
  50. package/dist/{publicProps-CP18d_mt.d.ts → publicProps-z7cJhUH8.d.ts} +1 -1
  51. package/dist/simple-model-viewer.css +1 -1
  52. package/dist/simple-model-viewer.d.mts +25 -3
  53. package/dist/simple-model-viewer.d.ts +25 -3
  54. package/dist/simple-model-viewer.js +49 -3
  55. package/dist/simple-model-viewer.mjs +1 -1
  56. package/dist/utils.d.mts +47 -4
  57. package/dist/utils.d.ts +47 -4
  58. package/dist/utils.js +2 -2
  59. package/dist/utils.mjs +1 -1
  60. package/package.json +5 -1
  61. package/dist/chunk-2JFUMJUP.mjs +0 -1
  62. package/dist/chunk-4JMJALRO.mjs +0 -2
  63. package/dist/chunk-OTSCPJWF.mjs +0 -1
  64. package/dist/chunk-P2JZ5Z7I.mjs +0 -1
  65. package/dist/chunk-UGPR4EPP.mjs +0 -81
  66. package/dist/chunk-V7WZUWJ5.mjs +0 -1
  67. package/dist/chunk-VQGYZOMX.mjs +0 -3
package/dist/hosted.mjs CHANGED
@@ -1 +1 @@
1
- "use client";import{a as i,b as t,c as n}from"./chunk-VQGYZOMX.mjs";import{H as e}from"./chunk-UGPR4EPP.mjs";import"./chunk-OTSCPJWF.mjs";import"./chunk-4JMJALRO.mjs";import"./chunk-V7WZUWJ5.mjs";import"./chunk-JR557W27.mjs";import{jsx as d}from"react/jsx-runtime";function o(r){return d(e,{...r})}export{n as ProjectBindingBuilder,o as ProjectModelViewer,i as sceneConfigForModel,t as viewerModelsFromProject};
1
+ "use client";import{a as i,b as t,c as n}from"./chunk-KHN55ZM7.mjs";import"./chunk-E24EFHB5.mjs";import"./chunk-FXV4CLAK.mjs";import"./chunk-AL6UIGWP.mjs";import{w as e}from"./chunk-OREKYGO3.mjs";import"./chunk-7OWHW66D.mjs";import"./chunk-OPZJDP7T.mjs";import"./chunk-FGAJ2UT7.mjs";import"./chunk-PBVBZYOG.mjs";import"./chunk-T6AYLPCC.mjs";import"./chunk-37YITTIK.mjs";import"./chunk-5FLX45O5.mjs";import"./chunk-CCBFMNAU.mjs";import"./chunk-LX3GXQNU.mjs";import"./chunk-7JCFNZJM.mjs";import"./chunk-GV4ZRXL6.mjs";import"./chunk-EV6THDXD.mjs";import"./chunk-6CTCV2Q5.mjs";import"./chunk-BNKTI3CY.mjs";import"./chunk-JR557W27.mjs";import{jsx as d}from"react/jsx-runtime";function o(r){return d(e,{...r})}export{n as ProjectBindingBuilder,o as ProjectModelViewer,i as sceneConfigForModel,t as viewerModelsFromProject};
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- :root{--ri-styles-model-viewer: 1}.ri-viewer--license-checking,.ri-viewer--license-invalid{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-color:#f9f9f9}.ri-viewer{--ri-font-family: Inter, "Segoe UI", Helvetica, Arial, sans-serif;--ri-viewer-bg: #1c1c1d;--ri-viewer-text: #111827;--ri-panel-bg: #ffffff;--ri-panel-border: #e5e7eb;--ri-panel-title: #111827;--ri-panel-muted-text: #4b5563;--ri-panel-subtle-text: #9ca3af;--ri-panel-surface: #f9fafb;--ri-panel-surface-hover: #f3f4f6;--ri-panel-surface-border: #e5e7eb;--ri-panel-button-text: #1f2937;--ri-panel-accent: #2563eb;--ri-panel-accent-contrast: #ffffff;--ri-license-overlay-bg: rgba(0, 0, 0, .04);--ri-license-overlay-border: rgba(0, 0, 0, .08);--ri-license-overlay-text: #888;--ri-license-overlay-error-bg: rgba(192, 57, 43, .06);--ri-license-overlay-error-border: rgba(192, 57, 43, .2);--ri-license-overlay-error-text: #c0392b;--ri-sidepanel-font-family: Inter, "Segoe UI", Helvetica, Arial, sans-serif;--ri-sidepanel-bg: var(--ri-databinding-bg, #111318);--ri-sidepanel-open-btn-bg: rgba(20, 20, 20, .82);--ri-sidepanel-open-btn-bg-hover: #27282b7e;--ri-sidepanel-border: rgba(255, 255, 255, .06);--ri-sidepanel-divider: rgba(255, 255, 255, .04);--ri-sidepanel-border-strong: rgba(255, 255, 255, .08);--ri-sidepanel-border-active: rgba(255, 255, 255, .18);--ri-sidepanel-shadow-left: 4px 0 24px rgba(0, 0, 0, .35);--ri-sidepanel-shadow-right: -4px 0 24px rgba(0, 0, 0, .35);--ri-sidepanel-text: var(--ri-databinding-text, #f1f5f9);--ri-sidepanel-text-emphasis: var(--ri-databinding-text-hover, #cbd5e1);--ri-sidepanel-text-muted: var(--ri-databinding-text-muted, #94a3b8);--ri-sidepanel-text-subtle: var(--ri-databinding-text-subtle, #64748b);--ri-sidepanel-placeholder: var(--ri-databinding-text-faint, #475569);--ri-sidepanel-surface: rgba(255, 255, 255, .05);--ri-sidepanel-surface-hover: rgba(255, 255, 255, .1);--ri-sidepanel-accent: #3b82f6;--ri-sidepanel-accent-soft: rgba(59, 130, 246, .12);--ri-databinding-bg: #111318;--ri-databinding-border: rgba(255, 255, 255, .06);--ri-databinding-border-strong: rgba(255, 255, 255, .08);--ri-databinding-border-hover: rgba(255, 255, 255, .15);--ri-databinding-shadow: 4px 0 24px rgba(0, 0, 0, .35);--ri-databinding-font-family: "Inter", "Segoe UI", sans-serif;--ri-databinding-mono-font-family: "JetBrains Mono", "Fira Code", "Menlo", monospace;--ri-databinding-text: #f1f5f9;--ri-databinding-text-muted: #94a3b8;--ri-databinding-text-subtle: #64748b;--ri-databinding-text-faint: #475569;--ri-databinding-text-hover: #cbd5e1;--ri-databinding-surface: rgba(255, 255, 255, .03);--ri-databinding-surface-hover: rgba(255, 255, 255, .06);--ri-databinding-accent: #93c5fd;--ri-databinding-accent-glow: rgba(147, 197, 253, .8);--ri-databinding-accent-border: rgba(96, 165, 250, .55);--ri-databinding-accent-gradient: linear-gradient( 135deg, #1e3a8a 0%, #1d4ed8 60%, #2563eb 100% );--ri-databinding-accent-gradient-active: linear-gradient( 135deg, #1e3a8a 0%, #1e40af 100% );display:flex;flex-direction:row;width:100%;height:100%;min-height:0;overflow:hidden;background:var(--ri-viewer-bg);position:relative;color:var(--ri-viewer-text);font-family:var(--ri-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-synthesis:none}.ri-viewer:fullscreen{width:100vw;height:100vh;max-width:none;max-height:none;margin:0}.ri-viewer *{box-sizing:border-box}.ri-viewerLeft{display:flex;flex:1;min-height:0;min-width:0;position:relative}.ri-viewerRight{display:flex;flex-shrink:0;min-width:0}.ri-panel{width:280px;min-height:0;background:var(--ri-panel-bg);border-right:1px solid var(--ri-panel-border);display:flex;flex-direction:column;padding:20px;overflow-y:auto;flex-shrink:0;transition:margin-left .3s ease,transform .3s ease}.ri-panel--open{transform:translate(0);margin-left:0}.ri-panel--closed{transform:translate(-100%);margin-left:-280px}.ri-panelHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.ri-panelTitle{margin:0;font-size:15px;font-weight:700;color:var(--ri-panel-title);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ri-closeButton{border:0;background:transparent;color:var(--ri-panel-subtle-text);font-size:22px;line-height:1;padding:0;cursor:pointer;flex-shrink:0;transition:color .2s ease}.ri-closeButton:hover{color:var(--ri-panel-muted-text)}.ri-json{margin:0 0 16px;padding:12px;background:var(--ri-panel-surface);border:1px solid var(--ri-panel-surface-border);border-radius:12px;font-size:12px;line-height:1.55;color:var(--ri-panel-button-text);overflow-x:auto;white-space:pre-wrap;word-break:break-word}.ri-divider{border-top:1px solid var(--ri-panel-border);margin-bottom:12px}.ri-sectionLabel{margin-bottom:8px;font-size:11px;font-weight:700;color:var(--ri-panel-subtle-text);text-transform:uppercase;letter-spacing:.16em}.ri-actionList{display:flex;flex-direction:column;gap:8px}.ri-actionButton{width:100%;border-radius:8px;border:1px solid var(--ri-panel-surface-border);background:var(--ri-panel-surface);color:var(--ri-panel-button-text);padding:10px 12px;text-align:left;font-size:14px;line-height:1.4;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.ri-actionButton:hover{background:var(--ri-panel-surface-hover);border-color:var(--ri-panel-border)}.ri-actionButton--active{background:var(--ri-panel-accent);border-color:var(--ri-panel-accent);color:var(--ri-panel-accent-contrast)}.ri-actionButton--active:hover{background:var(--ri-panel-accent);border-color:var(--ri-panel-accent)}.ri-canvasArea{flex:1 1 auto;position:relative;min-width:0}.ri-canvasArea--measuring{cursor:crosshair}.ri-canvasArea canvas{opacity:1;transition:opacity .18s ease}.ri-canvasArea--positioning canvas{opacity:0;transition:none}.ri-bindingsMismatchBanner{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:8px;padding:7px 12px 7px 10px;border-radius:8px;background:#1e1400e0;border:1px solid rgba(251,191,36,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fbbf24;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap;pointer-events:auto;max-width:calc(100% - 32px);white-space:normal;text-align:center}.ri-bindingsMismatchBanner__icon{flex-shrink:0}.ri-bindingsMismatchBanner__dismiss{flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-left:4px;padding:2px;background:none;border:none;border-radius:4px;color:#fbbf24b3;cursor:pointer;transition:color .15s ease,background .15s ease}.ri-bindingsMismatchBanner__dismiss:hover{color:#fbbf24;background:#fbbf241f}.ri-measureTools,.ri-uvCheckerTools{position:absolute;top:16px;left:16px;z-index:10;display:flex;gap:8px;align-items:center}.ri-measureButton{width:34px;height:34px;padding:0;background:#141414d1;border:1px solid rgba(255,255,255,.12);color:#ffffffbf;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .15s ease,color .15s ease,border-color .15s ease}.ri-measureButton:hover{background:#282828eb;color:#fff;border-color:#ffffff40}.ri-measureButton:active{background:#38dbf0;color:#06343c;border-color:#38dbf0}.ri-measureButton--active{background:#22d3ee;border-color:#22d3ee;color:#06343c}.ri-measureButton--active:hover{background:#38dbf0;color:#06343c}.ri-measureHint{padding:6px 10px;border-radius:8px;font-size:12px;line-height:1.35;color:#fff;background:#141414d1;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);white-space:normal}.ri-measureTools{align-items:flex-start;flex-direction:column;max-width:min(540px,calc(100% - 32px))}.ri-measureToolbarRow{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.ri-measureSelect,.ri-measureFinish{height:34px;padding:0 8px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#242424;color:#fff;font:inherit;font-size:12px;cursor:pointer}.ri-measureFinish{background:#22d3ee;color:#06343c}.ri-measureHint--error{color:#facc15}.ri-measureButton:disabled,.ri-measureFinish:disabled{opacity:.4;cursor:not-allowed}.ri-measureSelect:focus-visible,.ri-measureFinish:focus-visible,.ri-measureButton:focus-visible{outline:2px solid #22d3ee;outline-offset:2px}.ri-measureDot.ri-measureDot--snapped{background:#facc15}.ri-measureSnapTarget{width:16px;height:16px;border:2px solid #facc15;background:#facc1533;box-shadow:0 0 0 1px #000;pointer-events:none}.ri-measureSnapLabel{position:absolute;top:22px;left:0;padding:3px 6px;border-radius:4px;background:#facc15;color:#06343c;font-size:12px;pointer-events:none}.ri-explodeTools{position:absolute;top:16px;left:16px;z-index:10;display:flex;gap:8px;align-items:center}.ri-explodeSlider{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;background:#141414d1;border:1px solid rgba(255,255,255,.12);border-radius:8px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.ri-explodeSlider input[type=range]{width:120px;accent-color:#22d3ee;cursor:pointer}.ri-sectionTools{position:absolute;top:16px;left:16px;z-index:10;display:flex;gap:8px;align-items:center}.ri-sectionPanel{display:flex;align-items:center;gap:8px;height:34px;padding:0 6px;background:#141414d1;border:1px solid rgba(255,255,255,.12);border-radius:8px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.ri-sectionPanel input[type=range]{width:110px;accent-color:#22d3ee;cursor:pointer}.ri-sectionAxes{display:flex;gap:2px}.ri-sectionAxis{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;font-size:12px;font-weight:600;color:#ffffffbf;background:transparent;border:none;border-radius:6px;cursor:pointer}.ri-sectionAxis:hover{color:#fff;background:#ffffff14}.ri-sectionAxis--active,.ri-sectionAxis--active:hover{background:#22d3ee;color:#06343c}.ri-sectionAxis:focus-visible{outline:2px solid #22d3ee;outline-offset:1px}.ri-decalControl{padding:12px}.ri-decalPosition{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0}.ri-decalPosition__label{font-size:13px;font-weight:600}.ri-decalPosition__hint{font-size:11px;opacity:.65;margin-top:4px;max-width:160px}.ri-decalPosition__pad{display:grid;grid-template:repeat(3,30px) / repeat(3,30px);gap:3px;flex-shrink:0}.ri-decalPosition__button{touch-action:none;user-select:none;display:flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.25);border-radius:7px;color:inherit;background:#94a3b81a;cursor:pointer}.ri-decalPosition__button:hover{background:#38bdf833}.ri-decalPosition__button:active{background:#38bdf859}.ri-decalPosition__button:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.ri-decalPosition__button--up{grid-area:1 / 2}.ri-decalPosition__button--left{grid-area:2 / 1}.ri-decalPosition__button--right{grid-area:2 / 3}.ri-decalPosition__button--down{grid-area:3 / 2}.ri-decalControl__row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.ri-decalControl__input{flex:1;min-width:0;height:34px;padding:0 10px;font:inherit;font-size:13px;color:var(--ri-databinding-text, #f1f5f9);background:#00000040;border:1px solid var(--ri-databinding-border-strong, rgba(255, 255, 255, .08));border-radius:8px}.ri-decalControl__input:focus-visible,.ri-decalControl__chip:focus-visible{outline:2px solid #22d3ee;outline-offset:1px}.ri-decalControl__color{flex-shrink:0;width:34px;height:34px;padding:2px;background:transparent;border:1px solid var(--ri-databinding-border-strong, rgba(255, 255, 255, .08));border-radius:8px;cursor:pointer}.ri-decalControl .ri-uploadButton:disabled{opacity:.5;cursor:not-allowed}.ri-decalControl__hint{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding:8px 10px;font-size:12px;line-height:1.35;border-radius:8px;border:1px solid rgba(34,211,238,.35);background:#22d3ee14}.ri-decalControl__list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ri-decalControl__chip{max-width:100%;padding:4px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--ri-databinding-text, #f1f5f9);background:var(--ri-databinding-surface-hover, rgba(255, 255, 255, .06));border:1px solid var(--ri-databinding-border-strong, rgba(255, 255, 255, .08));border-radius:999px;cursor:pointer}.ri-decalControl__chip--active{background:#22d3ee;border-color:#22d3ee;color:#06343c}.ri-decalControl__editor{margin-top:10px;padding-top:10px;border-top:1px solid var(--ri-databinding-border-strong, rgba(255, 255, 255, .08))}.ri-decalControl__slider{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:6px;font-size:12px;color:var(--ri-databinding-text-muted, #94a3b8)}.ri-decalControl__slider input{width:100%;accent-color:#22d3ee;cursor:pointer}.ri-bottomStack{position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:calc(100% - 24px)}.ri-bottomStack--aboveButtons{bottom:var(--ri-bottom-stack-offset, 56px)}.ri-recordingOverlay{position:absolute;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center;padding:0 12px 72px;cursor:wait}.ri-isolationPill{display:flex;align-items:center;gap:10px;max-width:100%;padding:4px 4px 4px 12px;background:#141414d1;border:1px solid rgba(255,255,255,.12);border-radius:10px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#ffffffd9;font-size:13px}.ri-isolationPill__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ri-isolationPill__button{flex-shrink:0;height:28px;padding:0 12px;font-size:13px;font-weight:600;color:#06343c;background:#22d3ee;border:none;border-radius:7px;cursor:pointer}.ri-isolationPill__button:hover{background:#38dbf0}.ri-isolationPill__button:focus-visible{outline:2px solid #fff;outline-offset:1px}.ri-variantPicker{display:flex;gap:4px;max-width:100%;padding:4px;overflow-x:auto;scrollbar-width:none;background:#141414d1;border:1px solid rgba(255,255,255,.12);border-radius:10px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.ri-variantPicker::-webkit-scrollbar{display:none}.ri-variantPicker__option{flex-shrink:0;height:28px;padding:0 12px;font-size:13px;font-weight:500;white-space:nowrap;color:#ffffffbf;background:transparent;border:1px solid transparent;border-radius:7px;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease}.ri-variantPicker__option:hover{color:#fff;background:#ffffff14}.ri-variantPicker__option--active,.ri-variantPicker__option--active:hover{background:#22d3ee;color:#06343c}.ri-variantPicker__option:focus-visible{outline:2px solid #22d3ee;outline-offset:1px}.ri-variantPicker__group{display:flex;align-items:center;flex-shrink:0;padding:0 8px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:#ffffff8c}.ri-variantPicker__option{display:inline-flex;align-items:center;gap:7px}.ri-variantPicker__swatch{flex-shrink:0;width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff59,0 0 0 1px #00000040}.ri-cinematicTools{position:absolute;left:16px;z-index:10;display:flex;gap:8px;align-items:center}.ri-modelSwitcher{position:absolute;left:16px;z-index:10;display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:calc(100% - 32px)}.ri-modelSwitcherButton{height:34px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#141414d1;color:#ffffffbf;font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .15s ease,color .15s ease,border-color .15s ease}.ri-modelSwitcherButton:hover{background:#282828eb;color:#fff;border-color:#ffffff40}.ri-modelSwitcherButton--active,.ri-modelSwitcherButton--active:hover{background:#22d3ee;border-color:#22d3ee;color:#06343c}.ri-modelSwitcherButton:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}.ri-measureDot{width:10px;height:10px;border-radius:50%;background:#22d3ee;border:2px solid #fff;box-shadow:0 0 0 1px #0006;pointer-events:none}.ri-measureLabel{padding:3px 7px;border-radius:6px;font-size:12px;font-weight:600;line-height:1;white-space:nowrap;color:#06343c;background:#22d3ee;box-shadow:0 1px 4px #00000059;pointer-events:none;user-select:none}.ri-xrTools{position:absolute;left:16px;z-index:10;display:flex;gap:8px;align-items:center}.ri-xrButton{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 10px;font-size:13px;font-weight:500;color:#fff;background:#141414d1;border:1px solid rgba(255,255,255,.16);border-radius:8px;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .15s ease,border-color .15s ease}.ri-xrButton:hover{background:#282828eb;border-color:#ffffff4d}.ri-mobileHandoffBackdrop{position:absolute;z-index:30;inset:0;display:grid;place-items:center;padding:20px;background:#020617ad;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.ri-mobileHandoffDialog{position:relative;display:flex;width:min(100%,300px);flex-direction:column;align-items:center;padding:16px;text-align:center;color:#e2e8f0;background:#0f172a;border:1px solid rgba(148,163,184,.3);border-radius:16px;box-shadow:0 24px 80px #00000080}.ri-mobileHandoffDialog>svg{color:#67e8f9}.ri-mobileHandoffDialog h2{margin:12px 0 0;font-size:18px;line-height:1.25;color:#fff}.ri-mobileHandoffDialog p{margin:8px 0 16px;font-size:13px;line-height:1.5;color:#cbd5e1}.ri-mobileHandoffQr{display:grid;place-items:center;padding:10px;background:#fff;border-radius:10px}.ri-mobileHandoffDialog a{margin-top:16px;font-size:13px;font-weight:600;color:#a5f3fc;text-decoration:underline;text-underline-offset:3px}.ri-mobileHandoffClose{position:absolute;top:10px;right:10px;display:grid;width:30px;height:30px;place-items:center;padding:0;color:#cbd5e1;background:transparent;border:0;border-radius:6px;cursor:pointer}.ri-mobileHandoffClose:hover{color:#fff;background:#ffffff1a}.ri-arHintOverlay{position:absolute;top:18px;left:50%;transform:translate(-50%);z-index:10;width:min(calc(100% - 32px),360px);pointer-events:none}.ri-arHint{margin:0 auto;width:fit-content;max-width:100%;padding:6px 12px;font-size:11px;font-weight:500;line-height:1.2;text-align:center;color:#ffffffeb;background:#14141494;border:1px solid rgba(255,255,255,.12);border-radius:999px;user-select:none;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.ri-arOverlay{position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:10;width:min(calc(100% - 32px),420px);pointer-events:none}.ri-arControls{display:flex;flex-direction:column;align-items:center;gap:10px}.ri-arStatus,.ri-arActionButton{max-width:100%;padding:8px 16px;font-size:13px;font-weight:600;line-height:1.3;text-align:center;white-space:nowrap;color:#fff;background:#141414d1;border:1px solid rgba(255,255,255,.16);border-radius:19px;user-select:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.ri-arStatus{pointer-events:none}.ri-arActionButton{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.ri-arActionButton svg{flex-shrink:0}.ri-arActionButton:hover{background:#282828eb;border-color:#ffffff4d}.ri-arActionButton:active{transform:scale(.98)}.ri-arActionButton--primary{color:#06343c;background:#22d3ee;border-color:transparent;box-shadow:0 1px 4px #00000059}.ri-arActionButton--primary:hover{background:#67e8f9;border-color:transparent}.ri-arActionButton.ri-arActionButton--active,.ri-arActionButton[aria-pressed=true],.ri-arActionButton.ri-arActionButton--active:hover,.ri-arActionButton[aria-pressed=true]:hover,.ri-arActionButton.ri-arActionButton--active:active,.ri-arActionButton[aria-pressed=true]:active{color:#06343c;background:#22d3ee;border-color:transparent;box-shadow:0 1px 4px #00000059}.ri-hiddenInput{display:none}.ri-popover{position:absolute;z-index:50;background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 24px 48px #0f172a2e;color:#111827}.ri-popover--inline{position:static;z-index:auto;width:100%;border-radius:10px;box-shadow:none}.ri-popover--inline .react-colorful{width:100%}.ri-popover--inline{background:var(--ri-databinding-surface, rgba(255, 255, 255, .03));border-color:var(--ri-databinding-border-strong, rgba(255, 255, 255, .08));color:var(--ri-databinding-text, #f1f5f9)}.ri-popover--inline .ri-popoverHeader{border-bottom-color:var( --ri-databinding-border-strong, rgba(255, 255, 255, .08) )}.ri-popover--inline .ri-popoverLabel,.ri-popover--inline .ri-colorCode{color:var(--ri-databinding-text-muted, #94a3b8)}.ri-popover--inline .ri-secondaryButton{background:var(--ri-databinding-surface-hover, rgba(255, 255, 255, .06));border-color:var(--ri-databinding-border-strong, rgba(255, 255, 255, .08));color:var(--ri-databinding-text, #f1f5f9)}.ri-popover--inline .ri-secondaryButton:hover{background:#ffffff1f}.ri-popover--inline .ri-previewFrame{border-color:var(--ri-databinding-border-strong, rgba(255, 255, 255, .08))}.ri-popover--inline .ri-emptyState{border-color:var(--ri-databinding-border-hover, rgba(255, 255, 255, .15));color:var(--ri-databinding-text-subtle, #64748b)}.ri-popover--inline .ri-uploadButton{background:var(--ri-databinding-accent-gradient, #2563eb);color:#fff}.ri-popover--inline .ri-uploadButton:hover{background:var(--ri-databinding-accent-gradient-active, #1d4ed8)}.ri-popover--inline .ri-removeButton{background:transparent;border-color:var(--ri-databinding-border-strong, rgba(255, 255, 255, .08));color:var(--ri-databinding-text-muted, #94a3b8)}.ri-popover--inline .ri-removeButton:hover{background:var(--ri-databinding-surface-hover, rgba(255, 255, 255, .06))}.ri-popover--inline .ri-formatHint{color:var(--ri-databinding-text-subtle, #64748b)}.ri-popoverHeader{padding:12px 16px}.ri-popoverLabel{margin:0 0 8px;font-size:11px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.16em}.ri-inlineRow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.ri-colorCode{font-size:12px;color:#9ca3af;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-transform:uppercase}.ri-secondaryButton{border:1px solid #e5e7eb;background:#f3f4f6;color:#374151;border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer;transition:background-color .2s ease}.ri-secondaryButton:hover{background:#e5e7eb}.ri-materialBody{display:flex;flex-direction:column;gap:12px;padding-left:12px;padding-right:12px;padding-bottom:12px}.ri-previewFrame{position:relative;height:112px;border-radius:12px;overflow:hidden;border:1px solid #e5e7eb}.ri-previewImage{width:100%;height:100%;object-fit:cover;display:block}.ri-previewCaption{position:absolute;left:0;right:0;bottom:0;background:#0006;padding:4px 8px;color:#fff;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ri-emptyState{height:112px;border-radius:12px;border:2px dashed #e5e7eb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#d1d5db;text-align:center}.ri-uploadButton{width:100%;border:0;border-radius:10px;background:#111827;color:#fff;padding:10px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:background-color .2s ease}.ri-uploadButton:hover{background:#374151}.ri-removeButton{width:100%;border-radius:10px;border:1px solid #e5e7eb;background:#fff;color:#6b7280;padding:8px 12px;font-size:12px;cursor:pointer;transition:background-color .2s ease}.ri-removeButton:hover{background:#f9fafb}.ri-formatHint{margin:0;text-align:center;font-size:10px;color:#d1d5db}.ri-texturePosition{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid #e5e7eb}.ri-texturePositionLabel{margin:0;font-size:11px;font-weight:600;color:#6b7280}.ri-texturePositionGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ri-texturePositionField{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#6b7280}.ri-texturePositionField--full{grid-column:1 / -1}.ri-texturePositionField input[type=number]{width:100%;border-radius:8px;border:1px solid #e5e7eb;background:#fff;color:#111827;padding:6px 8px;font-size:12px}.ri-texturePositionSliderRow{display:flex;align-items:center;gap:8px}.ri-texturePositionSliderRow input[type=range]{flex:1}.ri-texturePositionSliderRow input[type=number]{width:56px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;color:#111827;padding:6px 8px;font-size:12px}.ri-texturePositionHint{margin:0;font-size:11px;line-height:1.4;color:#9ca3af}.ri-popover--inline .ri-texturePosition{border-color:var(--ri-databinding-border-strong, rgba(255, 255, 255, .08))}.ri-popover--inline .ri-texturePositionLabel,.ri-popover--inline .ri-texturePositionField,.ri-popover--inline .ri-texturePositionHint{color:var(--ri-databinding-text-muted, #94a3b8)}.ri-popover--inline .ri-texturePositionField input[type=number],.ri-popover--inline .ri-texturePositionSliderRow input[type=number]{background:var(--ri-databinding-surface-hover, rgba(255, 255, 255, .06));border-color:var(--ri-databinding-border-strong, rgba(255, 255, 255, .08));color:var(--ri-databinding-text, #e2e8f0)}.ri-buttonContainer{display:flex;justify-content:space-between;align-items:center;gap:8px;position:absolute;bottom:12px;left:12px;right:12px;z-index:10;pointer-events:none}.ri-buttonContainer>*{pointer-events:auto}.ri-tourControls{display:flex;gap:6px;align-items:center;flex-shrink:0}.ri-rightControls{display:flex;gap:6px;align-items:center;flex-shrink:0;margin-left:auto}.ri-rightControls:only-child{margin-left:auto}.ri-navButtonSingle,.ri-tourButton,.ri-resetButton,.ri-downloadButton{height:34px;background:#141414d1;border:1px solid rgba(255,255,255,.12);color:#ffffffbf!important;border-radius:8px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease;user-select:none;-webkit-tap-highlight-color:transparent}.ri-navButtonSingle:hover:not(:disabled),.ri-tourButton:hover:not(:disabled),.ri-resetButton:hover:not(:disabled){background:#282828eb;color:#fff;border-color:#ffffff40}.ri-navButtonSingle:active:not(:disabled),.ri-tourButton:active:not(:disabled),.ri-resetButton:active:not(:disabled){background:#38dbf0;color:#06343c;border-color:#38dbf0}.ri-navButtonSingle:disabled,.ri-tourButton:disabled,.ri-resetButton:disabled{opacity:.45;cursor:not-allowed}.ri-navButtonSingle{padding:0 16px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px;white-space:nowrap}.ri-tourButton{padding:0 12px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:4px;white-space:nowrap}.ri-tourButton svg{width:15px;height:15px;flex-shrink:0}.ri-tourButton--stop{border-color:#f446;color:#ff6b6b}.ri-tourButton--stop:hover:not(:disabled){background:#ff444426;border-color:#f449;color:#ff6b6b}.ri-tourButton--stop:active:not(:disabled){background:#f44;color:#fff;border-color:#f44}.ri-tourButton--next{border-color:#38dbf04d;color:#38dbf0}.ri-tourButton--next:hover:not(:disabled){background:#38dbf01f;border-color:#38dbf080;color:#38dbf0}.ri-tourButton--next:active:not(:disabled){background:#38dbf0;color:#06343c;border-color:#38dbf0}.mv-rightControls{position:absolute;bottom:5px;right:5px;z-index:10000;display:flex;align-items:center;gap:5px;pointer-events:auto}.mv-resetButton,.mv-fullscreenButton,.mv-controllersButton,.mv-downloadButton{height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#141414d1;color:#ffffffbf;font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease,opacity .15s ease}.mv-resetButton:hover:not(:disabled),.mv-fullscreenButton:hover:not(:disabled),.mv-controllersButton:hover:not(:disabled),.mv-downloadButton:hover:not(:disabled){background:#282828eb;color:#fff;border-color:#ffffff40}.mv-resetButton:active:not(:disabled),.mv-fullscreenButton:active:not(:disabled),.mv-controllersButton:active:not(:disabled),.mv-downloadButton:active:not(:disabled){background:#38dbf0;color:#06343c;border-color:#38dbf0}.mv-resetButton:disabled,.mv-fullscreenButton:disabled,.mv-controllersButton:disabled,.mv-downloadButton:disabled{opacity:.45;cursor:not-allowed}.mv-resetButton:focus-visible,.mv-fullscreenButton:focus-visible,.mv-controllersButton:focus-visible,.mv-downloadButton:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}.mv-resetButton,.mv-fullscreenButton{width:34px;padding:0;flex-shrink:0}.mv-resetButton svg,.mv-fullscreenButton svg{width:15px;height:15px;flex-shrink:0;pointer-events:none}.mv-fullscreenWrapper{display:inline-flex}.mv-fullscreenError{position:absolute;bottom:calc(100% + 8px);right:0;width:240px;max-width:calc(100vw - 20px);padding:10px 12px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#141414f2;color:#fff;font-size:12px;line-height:1.5}.mv-controllersWrapper{position:relative;display:inline-flex;flex-direction:column;align-items:stretch}.mv-controllersButton{width:34px;padding:0;flex-shrink:0}.mv-controllersButton svg{width:15px;height:15px;flex-shrink:0;pointer-events:none}.mv-controllersMenu{position:absolute;bottom:calc(100% + 6px);right:0;min-width:168px;display:flex;flex-direction:column;padding:6px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#141414eb;box-shadow:0 16px 32px #0f172a66;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:100;animation:mv-menuReveal .12s ease}.mv-controllersMenuItem{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;border:none;border-radius:6px;background:transparent;color:#fff;font-size:13px;font-weight:400;text-align:left;white-space:nowrap;cursor:pointer;transition:background .1s ease,color .1s ease}.mv-controllersMenuItem:hover:not(:disabled){background:#ffffff1a}.mv-controllersMenuItem--active{background:#38dbf026;color:#38dbf0;font-weight:600}.mv-controllersMenuItem--active:hover{background:#38dbf038}.mv-downloadWrapper{position:relative;display:inline-flex;flex-direction:column;align-items:stretch}.mv-downloadButton{padding:0 16px;flex-shrink:0}.mv-downloadButton svg{width:15px;height:15px;flex-shrink:0;pointer-events:none}.mv-downloadButton__spinner{display:inline-block;width:13px;height:13px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:mv-spin .7s linear infinite;flex-shrink:0}.mv-downloadMenu{position:absolute;bottom:calc(100% + 6px);right:0;min-width:168px;display:flex;flex-direction:column;padding:6px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#141414eb;box-shadow:0 16px 32px #0f172a66;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);overflow:hidden;z-index:100;animation:mv-menuReveal .12s ease}.mv-downloadMenuItem{display:flex;align-items:center;gap:9px;width:100%;padding:10px 14px;border:none;border-radius:6px;background:transparent;color:#fff;font-size:13px;font-weight:400;text-align:left;white-space:nowrap;cursor:pointer;transition:background .1s ease}.mv-downloadMenuItem:hover:not(:disabled){background:#ffffff1a}.mv-downloadMenuItem:disabled{opacity:.4;cursor:not-allowed}.mv-downloadMenuItem select{margin-left:auto;padding:4px 6px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:#242424;color:#fff;font:inherit}.mv-downloadMenuDivider{height:1px;margin:0 10px;background:#ffffff1a}.mv-downloadMenuNotice{max-width:220px;padding:8px 14px 11px;color:#fca5a5;font-size:11px;line-height:1.4}.mv-downloadMenuDescription{width:220px;margin:0;padding:0 14px 11px;color:#cbd5e1;font-size:11px;line-height:1.4}@keyframes mv-menuReveal{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes mv-spin{to{transform:rotate(360deg)}}@media(max-width:768px){.mv-rightControls{flex-wrap:wrap;gap:6px}.mv-downloadButton{padding:0 10px;font-size:12px}}@media(max-width:480px){.mv-downloadButton{padding:0 10px;font-size:12px}.mv-downloadButton span{display:none}}.ri-annotationMarker{position:relative;width:36px;height:36px;border-radius:50%;background:#141414d1;border:2px solid rgba(255,255,255,.9);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;cursor:pointer;z-index:20;user-select:none;box-shadow:0 2px 8px #00000073;pointer-events:auto;transition:opacity .3s ease,transform .3s ease}.ri-annotationMarker:hover{transform:scale(1.08);box-shadow:0 12px 28px #0f172a2e;background:#282828eb}.ri-annotationPopup{position:absolute;width:min(270px,calc(100vw - 32px));background:#141414d9;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:16px;z-index:30;display:flex;flex-direction:column;gap:12px;box-shadow:0 24px 48px #0f172a2e;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.ri-annotationInput,.ri-annotationTextarea{width:100%;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;color:#e5e7eb;border-radius:10px;padding:10px 12px;outline:none;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease}.ri-annotationInput{font-size:14px;font-weight:500}.ri-annotationTextarea{font-size:13px;resize:vertical;min-height:110px}.ri-annotationInput:focus,.ri-annotationTextarea:focus{border-color:#38dbf0;box-shadow:0 0 0 3px #38dbf01f}.ri-annotationActions{display:flex;align-items:center;gap:10px}.ri-annotationOkBtn{border:0;border-radius:8px;background:#38dbf0cc;color:#06343c;padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer;transition:background-color .2s ease,opacity .2s ease}.ri-annotationOkBtn:hover:not(:disabled){background:#38dbf0}.ri-annotationOkBtn:disabled,.ri-annotationOkBtn.disabled{opacity:.5;cursor:not-allowed}.ri-annotationCancelBtn{border:1px solid rgba(255,255,255,.12);background:transparent;color:#9ca3af;border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.ri-annotationCancelBtn:hover{background:#ffffff0d;border-color:#fff3}.ri-annotationIcons{margin-left:auto;display:flex;align-items:center;gap:12px;color:#9ca3af}.ri-annotationIcons svg{flex-shrink:0}.ri-viewAnnotationPopup{position:relative;background:#141414d9;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:12px 16px;min-width:200px;max-width:min(280px,calc(100vw - 48px));box-shadow:0 8px 24px #00000080;pointer-events:auto;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:ri-viewAnnotationFadeIn .15s ease-out;margin-left:24px;margin-top:-20px;isolation:isolate;z-index:1000}.ri-viewAnnotationClose{background:transparent;border:none;color:#b7bdc6;cursor:pointer;font-size:18px;padding:0 4px;transition:color .2s;line-height:1}.ri-viewAnnotationClose:hover{color:#e2e8f0}.ri-viewAnnotationDescription{margin:0;color:#cbd5e1;font-size:13px;line-height:1.4;word-wrap:break-word}@keyframes ri-viewAnnotationFadeIn{0%{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.ri-annotationNavSingle{position:absolute;bottom:120px;left:50%;transform:translate(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}.ri-annotationNavSingle>*{pointer-events:auto}.ri-navBadge{background:#ffffff1a;padding:2px 10px;border-radius:4px;font-size:12px;font-weight:400;color:#ffffffb3}.ri-annotationTitleHint{background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;padding:8px 20px;border-radius:8px;font-size:13px;border:1px solid rgba(255,255,255,.08);text-align:center;max-width:350px;animation:slideUp .3s ease}.ri-annotationHintTitle{font-weight:600;color:#e5e7eb}.ri-annotationHintDesc{font-size:12px;opacity:.6;margin-top:2px;color:#d1d5db}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ri-canvasArea .bb-loadingOverlay{position:absolute;inset:0;z-index:12;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center;border-radius:14px;background:#0f172a75;backdrop-filter:blur(1px)}.ri-canvasArea .bb-loadingSpinner{width:40px;height:40px;border-radius:999px;border:3px solid rgba(226,232,240,.24);border-top-color:#93c5fd;animation:bb-spin .8s linear infinite}.ri-canvasArea .bb-loadingMessage{max-width:320px;color:#f7f8f9;font-size:13px;font-weight:600;line-height:1.5}.ri-canvasArea .bb-loadingProgressRow{display:flex;align-items:center;gap:8px;width:100%;max-width:240px}.ri-canvasArea .bb-loadingProgress{flex:1;height:6px;border-radius:999px;background:#e2e8f03d;overflow:hidden}.ri-canvasArea .bb-loadingProgress__bar{height:100%;border-radius:inherit;background:#93c5fd}.ri-canvasArea .bb-loadingProgress__label{flex-shrink:0;min-width:34px;text-align:right;color:#f7f8f9;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.ri-largeModelBanner{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:8px;padding:7px 12px 7px 10px;border-radius:8px;background:#1e1400e0;border:1px solid rgba(251,191,36,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fbbf24;font-size:12px;font-weight:500;line-height:1.4;pointer-events:auto;max-width:calc(100% - 32px);white-space:normal;text-align:center}.ri-largeModelBanner--offset{top:64px}.ri-largeModelBanner__icon{flex-shrink:0}.ri-largeModelBanner__dismiss{flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-left:4px;padding:2px;background:none;border:none;border-radius:4px;color:#fbbf24b3;cursor:pointer;transition:color .15s ease,background .15s ease}.ri-largeModelBanner__dismiss:hover{color:#fbbf24;background:#fbbf241f}.ri-uvCheckerBanner{position:absolute;top:12px;right:12px;z-index:20;display:flex;align-items:center;gap:8px;max-width:min(360px,calc(100% - 24px));padding:7px 11px;border:1px solid rgba(244,114,182,.4);border-radius:8px;background:#280a23e6;color:#f9a8d4;font-size:12px;font-weight:500;line-height:1.4;text-align:left;pointer-events:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.ri-uvCheckerBanner__icon{flex-shrink:0}@media(max-width:768px){.ri-xrTools{gap:6px}.ri-xrButton{height:34px;gap:6px;padding:0 8px;font-size:11px}.ri-xrButton svg{width:14px;height:14px}.ri-xrButtonPrefix{display:none}.ri-annotationNavSingle{bottom:100px}.ri-navButtonSingle{padding:8px 20px;font-size:13px;min-width:110px}.ri-annotationTitleHint{padding:6px 14px;font-size:12px;max-width:250px}.ri-viewAnnotationPopup{min-width:160px;max-width:220px;padding:10px 12px}.ri-viewAnnotationTitle{font-size:13px}.ri-viewAnnotationDescription{font-size:12px}.ri-buttonContainer{flex-wrap:wrap;gap:6px}.ri-tourControls,.ri-rightControls{flex-wrap:wrap}}@media(max-width:480px){.ri-xrTools{gap:5px}.ri-xrButton{height:34px;gap:5px;font-size:10px}.ri-xrButton svg{width:13px;height:13px}.ri-annotationNavSingle{bottom:80px}.ri-navButtonSingle{padding:6px 16px;font-size:12px;min-width:90px;gap:6px}.ri-annotationTitleHint{padding:4px 10px;font-size:11px;max-width:200px}.ri-navBadge{font-size:10px;padding:1px 6px}.ri-tourButton{padding:0 8px;font-size:12px}.ri-tourButton span{display:none}.ri-downloadButton{padding:0 10px;font-size:12px}.ri-downloadButton span{display:none}}.ri-contextRecovery{position:absolute;inset:0;z-index:20000;display:flex;align-items:center;justify-content:center;padding:20px;background:#0c0e12e6}.ri-contextRecovery__card{width:min(380px,100%);padding:24px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:#1c1c1d;color:#f3f4f6;box-shadow:0 18px 42px #0000004d}.ri-contextRecovery__card h2{margin:12px 0 8px;font-size:18px;line-height:1.3}.ri-contextRecovery__card p{margin:0 0 18px;color:#b8bec9;font-size:14px;line-height:1.6}.ri-contextRecovery__card button{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(255,255,255,.25);border-radius:8px;background:#f3f4f6;color:#111827;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.ri-contextRecovery__card button:hover:not(:disabled){background:#fff}.ri-contextRecovery__card button:focus-visible{outline:2px solid #38dbf0;outline-offset:3px}.ri-contextRecovery__card button:disabled{opacity:.5;cursor:wait}.ri-loadError{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:16px;pointer-events:none}.ri-loadError__card{display:flex;flex-direction:column;gap:8px;width:min(460px,100%);padding:18px 22px;border-radius:10px;color:var(--ri-license-overlay-error-text, #c0392b);background:var(--ri-license-overlay-error-bg, rgba(255, 245, 244, .96));border:1px solid var(--ri-license-overlay-error-border, rgba(192, 57, 43, .2));box-shadow:0 18px 42px #0f172a1f;pointer-events:auto}.ri-loadError__header{display:flex;align-items:center;gap:8px}.ri-loadError__title{font-size:14px;font-weight:700;line-height:1.3}.ri-loadError__detail{margin:0;font-size:13px;line-height:1.5;color:var(--ri-license-overlay-text, #374151)}.ri-loadError__source,.ri-loadError__technical{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.45;overflow-wrap:anywhere;color:var(--ri-license-overlay-text, #374151);opacity:.75}.ri-loadError__technical{opacity:.55}.ri-overlay{position:absolute;inset:0;z-index:5;pointer-events:none}.ri-overlay>*{pointer-events:auto}.ri-bottomStack--annotationFilters{z-index:2001}.ri-annotationFilters{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;max-width:min(520px,calc(100vw - 40px));max-height:120px;overflow-y:auto;padding:8px;border-radius:8px;background:#141414e6;color:#e2e8f0;font-size:12px;pointer-events:auto}.ri-annotationFilters button{color:inherit;background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:5px;padding:4px 8px;cursor:pointer}.ri-annotationFilters button[aria-pressed=true]{background:#1e40af;border-color:#93c5fd}.ri-viewAnnotationPopup{max-height:min(420px,60vh);overflow-y:auto}.ri-visuallyHidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.ri-canvasArea:focus-visible{outline:2px solid #22d3ee;outline-offset:-2px}.ri-objectNavigator{position:absolute;top:12px;left:50%;z-index:30;display:flex;flex-direction:column;align-items:center;gap:4px;max-width:calc(100% - 32px);transform:translate(-50%);pointer-events:none}.ri-objectNavigator:not(:focus-within){width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ri-objectNavigator__list{display:flex;align-items:center;box-sizing:border-box;min-width:220px;max-width:100%;padding:8px 12px;background:#141414db;border:1px solid rgba(255,255,255,.14);border-radius:10px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;font:600 13px/1.3 var(--ri-font-family)}.ri-objectNavigator__list:focus{outline:2px solid #22d3ee;outline-offset:2px}.ri-objectNavigator__option{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;min-width:0}.ri-objectNavigator__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ri-objectNavigator__option--selected .ri-objectNavigator__name{color:#22d3ee}.ri-objectNavigator__position{flex-shrink:0;color:#fff9;font-weight:500;font-variant-numeric:tabular-nums}.ri-objectNavigator__hint{max-width:100%;padding:3px 8px;overflow:hidden;background:#141414b8;border-radius:6px;color:#ffffffc7;font:500 11px/1.3 var(--ri-font-family);text-overflow:ellipsis;white-space:nowrap}.ri-viewer[data-reduced-motion] *,.ri-viewer[data-reduced-motion] *:before,.ri-viewer[data-reduced-motion] *:after{transition-duration:0s!important;transition-delay:0s!important}.ri-viewer[data-reduced-motion] .mv-controllersMenu,.ri-viewer[data-reduced-motion] .mv-downloadMenu,.ri-viewer[data-reduced-motion] .ri-viewAnnotationPopup,.ri-viewer[data-reduced-motion] .ri-annotationTitleHint,.ri-viewer[data-reduced-motion] .mc__joystick:active .mc__knob{animation:none!important}.ri-compare{position:relative;width:100%;height:100%;overflow:hidden;font-family:Inter,Segoe UI,Helvetica,Arial,sans-serif}.ri-compare__layer{position:absolute;inset:0}.ri-compare__layer--after{clip-path:inset(0 0 0 var(--ri-compare-split))}.ri-compare__divider{position:absolute;top:0;bottom:0;left:var(--ri-compare-split);z-index:40;display:flex;align-items:center;justify-content:center;width:32px;margin-left:-16px;cursor:ew-resize;touch-action:none;outline:none}.ri-compare__divider:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:#ffffffe6;box-shadow:0 0 6px #00000073}.ri-compare__handle{position:relative;width:32px;height:32px;border-radius:50%;background:#fff;box-shadow:0 1px 6px #0006}.ri-compare__handle:before,.ri-compare__handle:after{content:"";position:absolute;top:50%;margin-top:-5px;border:5px solid transparent}.ri-compare__handle:before{left:4px;border-right-color:#1f2937}.ri-compare__handle:after{right:4px;border-left-color:#1f2937}.ri-compare__divider:focus-visible .ri-compare__handle{outline:2px solid #22d3ee;outline-offset:2px}.ri-compare__label{position:absolute;bottom:12px;z-index:30;max-width:40%;padding:4px 10px;overflow:hidden;border-radius:999px;background:#141414cc;color:#fff;font-size:12px;font-weight:600;line-height:1.3;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.ri-compare__label[hidden]{display:none}.ri-compare__labelAction{display:inline-flex;align-items:center;gap:4px;margin:-2px 0 -2px 8px;padding:0 7px;line-height:16px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:#ffffff1f;color:#fff;font:inherit;font-size:11px;font-weight:600;vertical-align:middle;cursor:pointer;pointer-events:auto}.ri-compare__labelAction:hover{background:#ffffff38}.ri-compare__labelAction[aria-pressed=true]{border-color:#22d3ee;background:#22d3ee;color:#06343c}.ri-compare__labelAction:focus-visible{outline:2px solid #22d3ee;outline-offset:2px}.ri-compare__label--before,.ri-compare__pane .ri-compare__label{left:12px}.ri-compare__label--after{right:12px}.ri-compare--sideBySide{display:flex;gap:2px;background:#000}.ri-compare__pane{position:relative;flex:1 1 0;min-width:0;height:100%}.ri-compare--overlay{position:absolute;inset:0;z-index:4;pointer-events:none}.ri-compare--overlay .ri-compare__layer--before{clip-path:inset(0 calc(100% - var(--ri-compare-split)) 0 0);pointer-events:auto}.ri-compare--overlay .ri-compare__divider{pointer-events:auto}.ri-compare--overlay .ri-compare__label{top:12px;bottom:auto}.ri-compare--overlay .ri-compare__label--before{left:auto;right:calc(100% - var(--ri-compare-split) + 12px)}.ri-compare--overlay .ri-compare__label--after{right:auto;left:calc(var(--ri-compare-split) + 12px)}.ri-measureLibrary{box-sizing:border-box;width:min(460px,100%);max-height:min(480px,60vh);overflow-y:auto;padding:12px;border:1px solid #ffffff30;border-radius:10px;background:#17191ced;color:#f8fafc;font-size:12px}.ri-measureSettingsRow{display:flex;align-items:end;flex-wrap:wrap;gap:8px;margin-bottom:10px}.ri-measureSettingsRow label{display:grid;gap:4px}.ri-measureInput{box-sizing:border-box;min-width:0;width:140px;height:34px;border:1px solid #ffffff40;border-radius:6px;padding:4px 8px;background:#242424;color:#fff;font:inherit}.ri-measureInput:focus-visible{outline:2px solid #22d3ee}.ri-measureLibraryHint{margin:4px 0 12px;color:#cbd5e1;line-height:1.4}.ri-savedMeasurementList{display:grid;gap:8px;margin-bottom:12px}.ri-savedMeasurementRow{display:grid;grid-template-columns:auto minmax(70px,1fr) minmax(90px,1fr) auto;gap:6px;align-items:center;border-top:1px solid #ffffff20;padding-top:8px}.ri-savedMeasurementRow .ri-measureInput{width:100%}.ri-savedMeasurementValue{overflow-wrap:anywhere}.ri-savedMeasurementValue small{display:block;margin-top:3px;color:#cbd5e1;font-size:10px}.ri-measureTransfer{border-top:1px solid #ffffff20;padding-top:10px}.ri-measureTransfer summary{width:fit-content;color:#b3bfd2;cursor:pointer}.ri-measureTransfer[open] summary{margin-bottom:10px}.ri-measureTransfer .ri-measureSettingsRow{margin-bottom:0}.ri-measureEmpty{margin:14px 0;color:#93a4c0;line-height:1.6}.ri-measureLibraryError{margin:10px 0 0;color:#fca5a5;line-height:1.5}.ri-measureLibrary--sidebar{width:100%;max-height:none;overflow:visible;padding:0;border:0;border-radius:0;background:transparent;color:#e2e8f0;font-family:inherit}.ri-measureStart{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:36px;margin-bottom:16px;border:1px solid rgba(99,102,241,.4);border-radius:8px;background:#6366f12e;color:#e0e7ff;font:inherit;font-weight:600;cursor:pointer}.ri-measureStart--active{border-color:#22d3ee80;background:#22d3ee18;color:#67e8f9}.ri-measureLibrary--sidebar .ri-measureSettingsRow{margin-bottom:14px}.ri-measureLibrary--sidebar .ri-measureSettingsRow label{min-width:0;gap:7px;color:#b3bfd2}.ri-measureLibrary--sidebar .ri-measureSettingsRow--units{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ri-measureLibrary--sidebar .ri-measureSettingsRow--save{display:grid;grid-template-columns:minmax(0,1fr) auto}.ri-measureLibrary--sidebar .ri-measureSettingsRow--calibrate{display:grid;grid-template-columns:minmax(0,1fr) 60px auto}.ri-measureLibrary--sidebar .ri-measureInput,.ri-measureLibrary--sidebar select.ri-measureSelect{width:100%;min-width:0;height:36px;border:1px solid rgba(148,163,184,.2);border-radius:8px;background:#ffffff0a;color:#e2e8f0;font:inherit}.ri-measureLibrary--sidebar .ri-measureSelect,.ri-measureLibrary--sidebar .ri-measureFinish{min-height:36px;border-radius:8px;font-family:inherit}.ri-measureLibrary--sidebar .ri-measureFinish{padding:0 10px;background:#6366f138;border-color:#6366f166;color:#e0e7ff}.ri-measureLibrary--sidebar .ri-measureSettingsRow--calibration{padding:10px;border:1px solid rgba(34,211,238,.18);border-radius:8px;background:#22d3ee0a;color:#a5dce5;line-height:1.5}.ri-measureLibrary--sidebar .ri-measureLibraryHint{color:#93a4c0;line-height:1.6}.ri-measureLibrary--sidebar .ri-savedMeasurementList{gap:10px}.ri-measureLibrary--sidebar .ri-savedMeasurementRow{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"toggle name delete" ". value value";gap:6px 10px;padding:12px;border:1px solid rgba(148,163,184,.16);border-radius:10px;background:#ffffff06}.ri-measureLibrary--sidebar .ri-savedMeasurementRow>input[type=checkbox]{grid-area:toggle;accent-color:#818cf8}.ri-measureLibrary--sidebar .ri-savedMeasurementRow>.ri-measureInput{grid-area:name}.ri-measureLibrary--sidebar .ri-savedMeasurementRow>button{grid-area:delete;min-height:30px;padding:0 8px;color:#94a3b8}.ri-measureLibrary--sidebar .ri-savedMeasurementValue{grid-area:value;font-variant-numeric:tabular-nums;color:#f1f5f9}.ri-measureLibrary--sidebar .ri-savedMeasurementValue small{color:#93a4c0;font-size:11px}.ri-measureLibrary--sidebar .ri-measureTransfer .ri-measureSettingsRow{margin-bottom:0}.ri-measureLibrary--sidebar :is(button,input,select):disabled{cursor:not-allowed;opacity:.45}.ri-measureStart:focus-visible,.ri-measureTransfer summary:focus-visible{outline:2px solid #818cf8;outline-offset:3px}.ri-configuredARDialog{width:min(100%,380px);max-height:100%;overflow-y:auto;box-sizing:border-box;outline:none}.ri-configuredARActions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.ri-configuredARActions a{display:inline-flex;gap:6px;align-items:center}.ri-configuredARDialog .ri-configuredARNote{font-size:11px;color:#94a3b8;margin-bottom:0}.ri-configuredARDialog .ri-configuredARLaunch{padding:9px 12px;border-radius:8px;background:#164e63;color:#ecfeff;text-decoration:none}.ri-configuredARError{padding:10px;color:#fecaca;background:#450a0a}.ri-configuredARProgress p{display:flex;align-items:center;justify-content:center;gap:8px}.ri-configuredARProgress svg{animation:mv-spin 1s linear infinite;flex-shrink:0}.ri-configuredARRefresh{display:inline-flex;align-items:center;gap:6px;margin-top:16px;padding:6px 10px;border:1px solid rgba(148,163,184,.3);border-radius:7px;color:#cbd5e1;background:transparent;cursor:pointer;font:inherit;font-size:12px}.ri-configuredARRefresh:hover{background:#94a3b81a}.ri-configuredARRefresh:focus-visible,.ri-configuredARDetails summary:focus-visible{outline:2px solid #67e8f9;outline-offset:3px}.ri-configuredARDetails{width:100%;margin-top:16px;text-align:left;color:#94a3b8;font-size:11px}.ri-configuredARDetails summary{cursor:pointer}@media(prefers-reduced-motion:reduce){.ri-configuredARProgress svg{animation:none}}.ri-configuredARActions a{padding:9px 12px;border:1px solid rgba(103,232,249,.2);border-radius:8px;background:#164e63;color:#ecfeff;text-decoration:none}.ri-sequenceTransport{display:flex;align-items:center;gap:7px;padding:8px 0;color:#e2e8f0}.ri-sequenceTransport button{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border:1px solid #475569;border-radius:7px;color:#e2e8f0;background:#1e293b;cursor:pointer}.ri-sequenceTransport button:disabled{opacity:.4;cursor:default}.ri-sequenceTransport input{flex:1;min-width:35px;accent-color:#22d3ee}.ri-sequenceTransport output{font-size:10px;white-space:nowrap;font-variant-numeric:tabular-nums;color:#cbd5e1}.ri-sequenceTransport button:focus-visible,.ri-sequenceTransport input:focus-visible{outline:2px solid #22d3ee;outline-offset:2px}.ri-sequencePlayer{position:absolute;z-index:10;bottom:16px;left:16px;width:min(320px,calc(100% - 32px));padding:10px;border:1px solid rgba(148,163,184,.3);border-radius:12px;background:#0f172af0;color:#cbd5e1}.ri-sequencePlayer select{width:100%;padding:5px 8px;border:1px solid #475569;border-radius:6px;font-size:12px;background:#1e293b;color:#e2e8f0}.ri-sequencePlayer details{font-size:11px;color:#fde68a}.ri-sectionControls{display:grid;gap:12px;font-size:12px;color:inherit}.ri-sectionControls label{display:grid;gap:6px;min-width:0}.ri-sectionControls select,.ri-sectionControls input:not([type=range]):not([type=checkbox]),.ri-sectionControls button{font:inherit;color:inherit;background:#7f8fa51f;border:1px solid rgba(127,143,165,.3);border-radius:6px;padding:7px 9px;min-width:0}.ri-sectionControls option{background:#1e293b;color:#e2e8f0}.ri-sectionControls input[type=range]{width:100%;accent-color:#22b8dc}.ri-sectionControls output{justify-self:end;margin-top:-20px;opacity:.7}.ri-sectionControls .ri-sectionControls__check{display:flex;align-items:center;gap:8px}.ri-sectionControls__vector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ri-sectionControls__actions{display:flex;gap:6px;margin-top:6px}.ri-sectionControls__actions button:first-child{flex:1;overflow-wrap:anywhere}.ri-sectionControls button{cursor:pointer}.ri-sectionControls button:disabled{opacity:.4;cursor:default}.ri-sectionControls p{margin:0;line-height:1.5;opacity:.6}.ri-sectionControls form{display:grid;gap:8px;margin:10px 0}.ri-sectionControls details>summary{cursor:pointer}.ri-sectionPanel:has(.ri-sectionControls){display:block;width:280px;max-height:min(70vh,650px);overflow:auto;padding:14px}.ri-semanticPanel{position:absolute;right:12px;top:52px;width:min(330px,calc(100% - 24px));max-height:calc(100% - 70px);overflow:auto;pointer-events:auto;z-index:14;background:#141c2cf5;color:#e2e8f0;border:1px solid #475569;border-radius:10px;box-shadow:0 8px 32px #0004;font:12px/1.45 system-ui,sans-serif}.ri-semanticPanel button,.ri-semanticPanel input,.ri-semanticPanel select{font:inherit;color:inherit;border:1px solid #475569;background:#263248;border-radius:5px;padding:6px 8px;min-width:0}.ri-semanticPanel button{cursor:pointer}.ri-semanticPanel button:focus-visible,.ri-sectionControls button:focus-visible{outline:2px solid #22d3ee;outline-offset:2px}.ri-semanticPanel .ri-semanticPanel__heading{width:100%;display:flex;align-items:center;gap:7px;text-align:left;border:0;background:transparent;padding:12px;font-weight:600}.ri-semanticPanel__heading span{margin-left:auto;font-size:10px;color:#94a3b8;font-weight:400}.ri-semanticPanel__body{padding:0 12px 12px;display:grid;gap:10px}.ri-semanticPanel__counts,.ri-semanticPanel__filters{display:flex;gap:8px}.ri-semanticPanel__filters>*{flex:1}.ri-semanticPanel [data-status=added]{--comparison-color:#4ade80}.ri-semanticPanel [data-status=removed]{--comparison-color:#f87171}.ri-semanticPanel [data-status=modified]{--comparison-color:#fbbf24}.ri-semanticPanel [data-status=ambiguous]{--comparison-color:#c084fc}.ri-semanticPanel__counts>span,.ri-semanticPanel__row small{color:var(--comparison-color,#94a3b8)}.ri-semanticPanel__rows{max-height:260px;overflow:auto}.ri-semanticPanel__row>button{display:flex;align-items:center;gap:8px;text-align:left;width:100%;border:0;border-left:2px solid var(--comparison-color,#64748b);margin-bottom:3px;background:#ffffff05}.ri-semanticPanel__row>button[aria-pressed=true]{background:#22d3ee18;outline:1px solid #22d3ee;outline-offset:-1px}.ri-semanticPanel__row>button span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ri-semanticPanel__details{padding:6px 8px;max-height:220px;overflow:auto}.ri-semanticPanel__details>div{padding:6px 0;border-bottom:1px solid #ffffff12;overflow-wrap:anywhere}.ri-semanticPanel__details strong,.ri-semanticPanel__details del,.ri-semanticPanel__details ins{display:block;text-decoration:none;white-space:pre-wrap}.ri-semanticPanel__details strong{font-size:11px;color:#94a3b8}.ri-semanticPanel__details del{color:#fda4af}.ri-semanticPanel__details ins{color:#86efac}.ri-semanticPanel__hint{margin:0;font-size:10px;color:#94a3b8}.ri-semanticPanel details>summary{cursor:pointer}.ri-semanticPanel details label{display:grid;gap:5px;margin-top:8px}.ri-sectionPanel:has(.ri-sectionControls){position:absolute;top:44px;left:0;height:auto;max-width:calc(100vw - 48px);max-height:min(65vh,480px)}.ri-sectionControls__bounds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.ri-semanticPanel__outlineToggle{display:flex;align-items:center;gap:8px;cursor:pointer}.ri-semanticPanel__outlineToggle input{margin:0;accent-color:#22d3ee}.ri-license-overlay{display:flex;flex-direction:column;gap:10px;min-width:min(420px,calc(100% - 32px));max-width:min(460px,calc(100% - 32px));padding:20px 28px;border-radius:10px;color:var(--ri-license-overlay-text, #374151);background:var(--ri-license-overlay-bg, rgba(0, 0, 0, .04));border:1px solid var(--ri-license-overlay-border, rgba(0, 0, 0, .08));box-shadow:0 18px 42px #0f172a14}.ri-license-overlay__header{display:flex;align-items:center;gap:10px}.ri-license-overlay__statusDot{width:10px;height:10px;border-radius:999px;background:currentColor;opacity:.7;flex-shrink:0}.ri-license-overlay__icon{flex-shrink:0}.ri-license-overlay__title{font-size:14px;font-weight:700;line-height:1.2}.ri-license-overlay__message{margin:0;font-size:14px;font-weight:500;line-height:1.5}.ri-license-overlay--error{color:var(--ri-license-overlay-error-text, #c0392b);background:var(--ri-license-overlay-error-bg, rgba(192, 57, 43, .06));border:1px solid var(--ri-license-overlay-error-border, rgba(192, 57, 43, .2))}.ri-viewerSlot{position:relative;width:100%;height:100%;min-width:0;min-height:0}.ri-viewerPlaceholder{position:relative;overflow:hidden}.ri-viewerPlaceholder--inset{position:absolute;inset:0}.ri-poster{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:var(--ri-poster-fit, contain);pointer-events:none;user-select:none;transition:opacity .3s ease}.ri-poster--hidden{opacity:0}[data-reduced-motion] .ri-poster{transition:none}@media(prefers-reduced-motion:reduce){.ri-poster{transition:none}}.ri-revealButton{position:absolute;top:50%;left:50%;z-index:2;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:0;border-radius:999px;background:#111827d1;color:#f9fafb;font:600 14px/1.2 Inter,Segoe UI,Helvetica,Arial,sans-serif;white-space:nowrap;cursor:pointer;transform:translate(-50%,-50%);box-shadow:0 6px 20px #00000040}.ri-revealButton:hover{background:#111827f0}.ri-revealButton:focus-visible{outline:2px solid #93c5fd;outline-offset:3px}.ri-annotationMarker--hovered{transform:scale(1.08);box-shadow:0 12px 28px #0f172a2e;background:#282828eb}.ri-viewAnnotationHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.ri-viewAnnotationTitle{margin:0;color:#e2e8f0;font-size:14px;font-weight:600}.ri-annotationCategory{display:inline-block;margin-bottom:8px;padding:2px 7px;border-radius:4px;background:#ffffff1a;color:#cbd5e1;font-size:11px}.ri-annotationImage{display:block;width:100%;max-height:180px;object-fit:contain;border-radius:5px;margin-top:10px}.ri-annotationLink{display:block;margin-top:10px;color:#93c5fd;font-size:13px;overflow-wrap:anywhere;text-decoration:underline}.mc__wrapper{position:absolute;bottom:-10px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;z-index:100}.mc__dpad{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:20px}.mc__middle-row{display:flex;align-items:center;gap:2px}.mc__joystick{width:60px;height:60px;flex-shrink:0;background:radial-gradient(circle at 40% 35%,#ffffff12,#0000008c);border-radius:50%;border:1.5px solid rgba(255,255,255,.15);position:relative;cursor:grab;touch-action:none;transition:border-color .2s ease,box-shadow .2s ease;margin:4px;box-shadow:0 4px 16px #00000080,0 0 0 4px #ffffff08}.mc__joystick:hover{border-color:#ffffff47;box-shadow:0 4px 20px #0000008c,0 0 0 4px #4285f414}.mc__joystick:active{cursor:grabbing;border-color:#4285f499;box-shadow:0 2px 12px #00000080,0 0 4px #4285f426}.mc__knob{position:absolute;top:50%;left:50%;width:34px;height:34px;margin-left:-17px;margin-top:-17px;background:linear-gradient(145deg,#5a9bf5,#1a66d9);border-radius:50%;cursor:grab;box-shadow:0 3px 10px #1a66d980,0 1px #ffffff40 inset;transition:transform .04s linear,box-shadow .1s ease;border:1.5px solid rgba(255,255,255,.45)}.mc__joystick:active .mc__knob{box-shadow:0 2px 16px #4285f4b3,0 1px #ffffff40 inset;animation:pulse .6s ease infinite}.mc__arrow{padding:0;margin:0;background:transparent;border:none;border-radius:0;box-shadow:none;outline:none;-webkit-appearance:none;appearance:none;cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .1s ease,filter .15s ease;overflow:visible}.mc__arrow svg{display:block!important;pointer-events:none!important;user-select:none!important;-webkit-user-select:none!important;overflow:visible!important}.mc__arrow--up{margin-bottom:2px}.mc__arrow--up:hover{transform:scale(1.15) translateY(-2px);filter:drop-shadow(0 4px 12px rgba(66,133,244,.8))}.mc__arrow--up:active{transform:scale(.92) translateY(2px)}.mc__arrow--down{margin-top:2px}.mc__arrow--down:hover{transform:scale(1.15) translateY(2px);filter:drop-shadow(0 -4px 12px rgba(66,133,244,.8))}.mc__arrow--down:active{transform:scale(.92) translateY(-2px)}.mc__arrow--left{margin-right:2px}.mc__arrow--left:hover{transform:scale(1.15) translate(-2px);filter:drop-shadow(4px 0 12px rgba(66,133,244,.8))}.mc__arrow--left:active{transform:scale(.92) translate(2px)}.mc__arrow--right{margin-left:2px}.mc__arrow--right:hover{transform:scale(1.15) translate(2px);filter:drop-shadow(-4px 0 12px rgba(66,133,244,.8))}.mc__arrow--right:active{transform:scale(.92) translate(-2px)}@keyframes pulse{0%,to{box-shadow:0 2px 16px #4285f499,0 1px #ffffff40 inset;opacity:.85}50%{box-shadow:0 4px 24px #4285f4f2,0 1px #ffffff40 inset;opacity:1}}@media(max-width:768px){.mc__wrapper{bottom:-5px}.mc__joystick{width:68px;height:68px}.mc__knob{width:30px;height:30px;margin-left:-15px;margin-top:-15px}.mc__arrow--up:hover{transform:scale(1.1) translateY(-1px)}.mc__arrow--down:hover{transform:scale(1.1) translateY(1px)}.mc__arrow--left:hover{transform:scale(1.1) translate(-1px)}.mc__arrow--right:hover{transform:scale(1.1) translate(1px)}}@media(max-width:480px){.mc__joystick{width:56px;height:56px}.mc__knob{width:26px;height:26px;margin-left:-13px;margin-top:-13px}.mc__arrow--up{margin-bottom:1px}.mc__arrow--down{margin-top:1px}.mc__arrow--left{margin-right:1px}.mc__arrow--right{margin-left:1px}}@media(hover:none){.mc__arrow:hover{transform:none!important;filter:none!important}.mc__arrow:active{transform:scale(.92)!important}}.left-panel{width:280px;min-height:0;background:var(--ri-databinding-bg, #111318);border-right:1px solid var(--ri-databinding-border, rgba(255, 255, 255, .06));display:flex;flex-direction:column;padding:24px 18px;overflow-y:auto;font-family:var( --ri-databinding-font-family, "Inter", "Segoe UI", sans-serif );flex-shrink:0;transition:margin-left .45s cubic-bezier(.4,0,.2,1);box-shadow:var(--ri-databinding-shadow, 4px 0 24px rgba(0, 0, 0, .35))}.left-panel--open{margin-left:0}.left-panel--closed{margin-left:-280px}.left-panel::-webkit-scrollbar{width:4px}.left-panel::-webkit-scrollbar-track{background:transparent}.left-panel::-webkit-scrollbar-thumb{background:var(--ri-databinding-border-strong, rgba(255, 255, 255, .08));border-radius:4px}.left-panel__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--ri-databinding-border-strong, rgba(255, 255, 255, .08))}.left-panel__title{font-size:14px;font-weight:600;color:var(--ri-databinding-text, #f1f5f9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:8px;margin:0;letter-spacing:.02em}.left-panel__close-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--ri-databinding-surface, rgba(255, 255, 255, .03));border:1px solid var(--ri-databinding-border-strong, rgba(255, 255, 255, .08));border-radius:6px;color:var(--ri-databinding-text-subtle, #64748b);font-size:13px;flex-shrink:0;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.left-panel__close-btn:hover{background:var(--ri-databinding-surface-hover, rgba(255, 255, 255, .06));color:var(--ri-databinding-text-hover, #cbd5e1);border-color:var(--ri-databinding-border-hover, rgba(255, 255, 255, .15))}.left-panel__data{padding:12px 6px;background:var(--ri-databinding-surface, rgba(255, 255, 255, .03));border:1px solid var(--ri-databinding-border-strong, rgba(255, 255, 255, .08));border-radius:10px;font-size:11px;font-family:var( --ri-databinding-mono-font-family, "JetBrains Mono", "Fira Code", "Menlo", monospace );color:var(--ri-databinding-text-muted, #94a3b8);line-height:1.7;overflow-x:auto;margin-bottom:18px}.left-panel__divider{border:none;border-top:1px solid var(--ri-databinding-border, rgba(255, 255, 255, .06));margin-bottom:16px}.left-panel__actions-label{font-size:10px;font-weight:600;color:var(--ri-databinding-text-faint, #475569);text-transform:uppercase;letter-spacing:.12em;margin-bottom:10px}.left-panel__actions-list{display:flex;flex-direction:column;gap:6px}.left-panel__action-extra{display:grid;grid-template-rows:0fr;opacity:0;margin-top:0;transition:grid-template-rows .28s cubic-bezier(.4,0,.2,1),opacity .2s ease,margin-top .28s cubic-bezier(.4,0,.2,1)}.left-panel__action-extra--open{grid-template-rows:1fr;opacity:1;margin-top:4px}.left-panel__action-extra-inner{overflow:hidden;min-height:0}.left-panel__action-btn{position:relative;padding:9px 14px;border-radius:8px;text-align:left;font-size:13px;font-weight:500;cursor:pointer;overflow:hidden;border:1px solid var(--ri-databinding-border-strong, rgba(255, 255, 255, .08));background:var(--ri-databinding-surface, rgba(255, 255, 255, .03));color:var(--ri-databinding-text-muted, #94a3b8);letter-spacing:.01em}.left-panel__action-btn:active{transform:scale(.97)}.left-panel__action-btn--active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;background:var(--ri-databinding-accent, #93c5fd);border-radius:0 3px 3px 0;box-shadow:0 0 8px var(--ri-databinding-accent-glow, rgba(147, 197, 253, .8))}.left-panel__action-btn--active:hover{background:var( --ri-databinding-accent-gradient, linear-gradient(135deg, #1e3a8a 0%, #1d4ed8 60%, #2563eb 100%) );border-color:var(--ri-databinding-accent-border, rgba(96, 165, 250, .55))}.left-panel__action-btn--active:active{transform:scale(.97);background:var( --ri-databinding-accent-gradient-active, linear-gradient(135deg, #1e3a8a 0%, #1e40af 100%) )}.left-panel__data{display:flex;flex-direction:column;gap:2px;margin-bottom:18px}.left-panel__data-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:7px;background:var(--ri-databinding-surface, rgba(255, 255, 255, .03));border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.left-panel__data-row:hover{background:var(--ri-databinding-surface-hover, rgba(255, 255, 255, .06));border-color:var(--ri-databinding-border-strong, rgba(255, 255, 255, .08))}.left-panel__data-key{font-size:11px;font-weight:600;color:var(--ri-databinding-text-faint, #475569);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;flex-shrink:0}.left-panel__data-value{font-size:12px;font-family:var( --ri-databinding-mono-font-family, "JetBrains Mono", "Fira Code", "Menlo", monospace );text-align:right;overflow-wrap:anywhere;word-break:break-word;min-width:0}.left-panel__data-group{display:flex;flex-direction:column;gap:2px;padding:7px 10px;border-radius:7px;background:var(--ri-databinding-surface, rgba(255, 255, 255, .03));border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.left-panel__data-group:hover{background:var(--ri-databinding-surface-hover, rgba(255, 255, 255, .06));border-color:var(--ri-databinding-border-strong, rgba(255, 255, 255, .08))}.left-panel__data-children{display:flex;flex-direction:column;gap:2px;margin-top:4px;padding-left:10px;border-left:1px solid var(--ri-databinding-border-strong, rgba(255, 255, 255, .08))}.left-panel__data-children .left-panel__data-row,.left-panel__data-children .left-panel__data-group{padding:3px 0;background:transparent;border-color:transparent}.left-panel__data-children .left-panel__data-row:hover,.left-panel__data-children .left-panel__data-group:hover{background:transparent}@media(max-width:900px){.left-panel{width:50vw}.left-panel--open{margin-left:0}.left-panel--closed{margin-left:-50vw}.left-panel{padding:18px 12px}.left-panel__data-row{flex-direction:column;align-items:stretch;gap:2px;padding:6px 8px}.left-panel__data-group{padding:6px 8px}.left-panel__data-value{text-align:left;font-size:11.5px}.left-panel__data-children{padding-left:8px}}.ri-sidepanel-wrap{height:100%;transition:width .45s cubic-bezier(.4,0,.2,1);overflow:visible}.ri-sidepanel-wrap--open{width:300px;flex-shrink:0}.ri-sidepanel-wrap--closed{width:0;flex-shrink:0;overflow:hidden}.ri-sidepanel__open-btn{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:7px;padding:7px 13px;border-radius:7px;border:1px solid var(--ri-sidepanel-border-strong, rgba(255, 255, 255, .08));background:var(--ri-sidepanel-open-btn-bg, rgba(20, 20, 20, .82));cursor:pointer;font-size:13px;font-weight:500;color:var(--ri-sidepanel-text-muted, #94a3b8);z-index:190;transition:background .15s}.ri-sidepanel__open-btn:hover{background:var(--ri-sidepanel-open-btn-bg-hover, #27282b7e)}.ri-sidepanel{position:absolute;top:0;right:0;width:300px;height:100%;background:var(--ri-sidepanel-bg, #141824);display:flex;flex-direction:column;font-family:var( --ri-sidepanel-font-family, Inter, "Segoe UI", Helvetica, Arial, sans-serif );transform:translate(100%);transition:transform .45s cubic-bezier(.4,0,.2,1);z-index:200;border-left:1px solid var(--ri-sidepanel-border, rgba(255, 255, 255, .06));box-shadow:var(--ri-sidepanel-shadow-right, -4px 0 24px rgba(0, 0, 0, .35))}.ri-sidepanel--open{transform:translate(0)}.ri-sidepanel--closed{transform:translate(100%)}.ri-sidepanel__header{padding:24px 20px 16px;border-bottom:1px solid var(--ri-sidepanel-border-strong, rgba(255, 255, 255, .08))}.ri-sidepanel__header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.ri-sidepanel__eyebrow{font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--ri-sidepanel-text-subtle, #64748b);text-transform:uppercase}.ri-sidepanel__title{font-size:22px;font-weight:700;color:var(--ri-sidepanel-text, #f1f5f9);margin:0;line-height:1.2}.ri-sidepanel__close-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--ri-sidepanel-border-strong, rgba(255, 255, 255, .08));background:var(--ri-sidepanel-surface, rgba(255, 255, 255, .05));cursor:pointer;color:var(--ri-sidepanel-text-muted, #94a3b8);transition:background .15s,color .15s;flex-shrink:0}.ri-sidepanel__close-btn:hover{background:var(--ri-sidepanel-surface-hover, rgba(255, 255, 255, .1));color:var(--ri-sidepanel-text, #f1f5f9)}.ri-sidepanel__search-wrap{padding:14px 16px;border-bottom:1px solid var(--ri-sidepanel-border-strong, rgba(255, 255, 255, .08))}.ri-sidepanel__search{width:100%;padding:10px 14px;border-radius:10px;border:1px solid var(--ri-sidepanel-border-strong, rgba(255, 255, 255, .08));background:var(--ri-sidepanel-surface, rgba(255, 255, 255, .05));color:var(--ri-sidepanel-text, #e2e8f0);font-size:13px;outline:none;box-sizing:border-box;transition:border-color .15s,background .15s}.ri-sidepanel__search::placeholder{color:var(--ri-sidepanel-placeholder, #475569)}.ri-sidepanel__search:focus{border-color:var(--ri-sidepanel-border-active, rgba(255, 255, 255, .18));background:var(--ri-sidepanel-surface-hover, rgba(255, 255, 255, .08))}.ri-sidepanel__list{display:flex;flex-direction:column;padding:10px 0;overflow-y:auto;flex:1}.ri-sidepanel__list::-webkit-scrollbar{width:4px}.ri-sidepanel__list::-webkit-scrollbar-track{background:transparent}.ri-sidepanel__list::-webkit-scrollbar-thumb{background:var(--ri-sidepanel-surface-hover, rgba(255, 255, 255, .1));border-radius:4px}.ri-sidepanel__row{display:flex;justify-content:space-between;padding:12px 20px;cursor:pointer;width:100%;border:none;background:transparent;color:inherit;font:inherit;text-align:left;appearance:none;-webkit-appearance:none;transition:background .12s;border-bottom:1px solid var(--ri-sidepanel-divider, rgba(255, 255, 255, .04))}.ri-sidepanel__row:hover,.ri-sidepanel__row--hovered{background:var(--ri-sidepanel-surface, rgba(255, 255, 255, .05))}.ri-sidepanel__row--selected{background:var(--ri-sidepanel-accent-soft, rgba(59, 130, 246, .12))}.ri-sidepanel__label{font-size:14px;font-weight:600;color:var(--ri-sidepanel-text-muted, #94a3b8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ri-sidepanel__label--hovered,.ri-sidepanel__label--selected{color:var(--ri-sidepanel-text-emphasis, #ffffff)}.ri-sidepanel__meta{font-size:12px;color:var(--ri-sidepanel-text-muted, #94a3b8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ri-sidepanel__vis-btn{display:flex;align-items:center;flex-shrink:0;cursor:pointer;background:none;border:none;padding:0;margin-left:10px}.ri-sidepanel__checkbox{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--ri-sidepanel-border-active, rgba(255, 255, 255, .2));background:transparent;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.ri-sidepanel__checkbox--checked{background:var(--ri-sidepanel-accent, #3b82f6);border-color:var(--ri-sidepanel-accent, #3b82f6)}@media(max-width:900px){.ri-sidepanel-wrap--open,.ri-sidepanel{width:50vw}}.ri-sidepanel__isolate-btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;margin-left:auto;padding:0;border:none;border-radius:5px;background:none;color:var(--ri-sidepanel-muted, rgba(255, 255, 255, .5));cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease}.ri-sidepanel__row:hover .ri-sidepanel__isolate-btn,.ri-sidepanel__row--hovered .ri-sidepanel__isolate-btn,.ri-sidepanel__isolate-btn:focus-visible,.ri-sidepanel__isolate-btn--active{opacity:1}@media(hover:none){.ri-sidepanel__isolate-btn{opacity:1}}.ri-sidepanel__isolate-btn:hover{color:var(--ri-sidepanel-text, #fff)}.ri-sidepanel__isolate-btn--active,.ri-sidepanel__isolate-btn--active:hover{color:var(--ri-sidepanel-accent, #3b82f6)}.ri-sidepanel__row--setAside .ri-sidepanel__label{opacity:.45}.ri-sidepanel__labelButton{flex:1 1 auto;min-width:0;padding:0;background:none;border:none;font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer}.ri-sidepanel__labelButton:focus-visible{outline:2px solid var(--ri-panel-accent, #2563eb);outline-offset:2px;border-radius:4px}.bb-loadingOverlay{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center;border-radius:14px;background:#f8fafcd1;backdrop-filter:blur(2px)}.bb-loadingSpinner{width:40px;height:40px;border-radius:999px;border:3px solid rgba(148,163,184,.3);border-top-color:#2563eb;animation:bb-spin .8s linear infinite}@keyframes bb-spin{to{transform:rotate(360deg)}}.bb-loadingProgressRow{display:flex;align-items:center;gap:8px;width:100%;max-width:240px}.bb-loadingProgress{flex:1;height:6px;border-radius:999px;background:#94a3b84d;overflow:hidden}.bb-loadingProgress__bar{height:100%;border-radius:inherit;background:#2563eb;transition:width .15s ease-out}.bb-loadingProgress__label{flex-shrink:0;min-width:34px;text-align:right;color:#475569;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.bb-loadingMessage{max-width:320px;color:#475569;font-size:13px;font-weight:600;line-height:1.5}.ri-assetDiagnostics{color:var(--ri-diagnostics-text,#dce4f0);font:inherit;font-size:12px;line-height:1.5;min-width:0}.ri-diagnosticsActions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.ri-assetDiagnostics button{border:1px solid #94a3b83b;background:#94a3b810;color:inherit;border-radius:6px;font:inherit;font-size:11px;padding:7px 10px;cursor:pointer}.ri-assetDiagnostics button:hover{border-color:#60b5d9}.ri-assetDiagnostics button:focus-visible{outline:2px solid #35a9d4;outline-offset:2px}.ri-assetDiagnostics button:disabled{opacity:.4;cursor:default}.ri-diagnosticsSummary{padding:11px 12px;border:1px solid #769aa94d;background:#7198ab0d;border-radius:8px;margin-bottom:14px}.ri-diagnosticsSummary strong,.ri-diagnosticsSummary span{display:block}.ri-diagnosticsSummary span{color:var(--ri-diagnostics-muted,#97a9be);font-size:10px;margin-top:3px}.ri-diagnosticsSummary--error{border-color:#e0867359}.ri-diagnosticsSummary--warning{border-color:#d7af6459}.ri-diagnosticsMetrics{margin:0}.ri-diagnosticsMetrics>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:7px 0;border-bottom:1px solid #94a3b815}.ri-diagnosticsMetrics dt{color:var(--ri-diagnostics-muted,#97a9be);font-size:11px;flex:1 1 45%}.ri-diagnosticsMetrics dd{flex:1 1 55%;margin:0;text-align:right;font-size:11px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.ri-diagnosticsNote{font-size:10px;color:var(--ri-diagnostics-muted,#97a9be);line-height:1.7;margin:12px 0}.ri-diagnosticsIssues{display:grid;gap:8px;margin:16px 0}.ri-diagnosticsIssue,.ri-diagnosticsDetail{border:1px solid #94a3b82e;border-radius:7px;overflow:hidden}.ri-diagnosticsIssue summary,.ri-diagnosticsDetail summary{cursor:pointer;padding:10px;font-size:11px;font-weight:500;overflow-wrap:anywhere}.ri-diagnosticsSeverity{display:inline-block;text-transform:uppercase;font-size:8px;letter-spacing:.05em;margin-right:7px;color:#93b7d5}.ri-diagnosticsIssue--warning .ri-diagnosticsSeverity{color:#e0b66b}.ri-diagnosticsIssue--error .ri-diagnosticsSeverity{color:#f3a393}.ri-diagnosticsCount{float:right;color:var(--ri-diagnostics-muted,#97a9be);margin-left:6px}.ri-diagnosticsIssue>div{padding:0 12px 12px;font-size:11px}.ri-diagnosticsIssue p{margin:5px 0 10px;color:var(--ri-diagnostics-muted,#97a9be)}.ri-diagnosticsIssue .ri-diagnosticsFix{color:inherit}.ri-diagnosticsIssue ul{padding-left:18px;margin:5px 0;max-height:180px;overflow:auto}.ri-diagnosticsIssue li{overflow-wrap:anywhere}.ri-diagnosticsIssue li button{border:0;padding:3px 0;background:transparent;color:#63c2e3;text-align:left}.ri-diagnosticsDetail{margin:10px 0}.ri-diagnosticsDetail>ul{list-style:none;padding:0 12px;margin:0 0 12px;max-height:240px;overflow:auto}.ri-diagnosticsDetail li{padding:6px 0;font-size:10px;border-top:1px solid #94a3b815;overflow-wrap:anywhere}.ri-diagnosticsDetail li strong{font-weight:500}.ri-diagnosticsDetail li span{display:block;color:var(--ri-diagnostics-muted,#97a9be)}.ri-diagnosticsDetail>.ri-diagnosticsNote{padding:0 12px}.ri-diagnosticsRuntime{margin-top:20px;padding-top:16px;border-top:1px solid #94a3b83b}.ri-diagnosticsRuntime h4{margin:0 0 12px;font-size:12px;font-weight:600}.ri-diagnosticsRuntime h4 span{float:right;color:var(--ri-diagnostics-muted,#97a9be);font-size:9px;font-weight:400}.ri-diagnosticsPressure{border-left:2px solid #d7af64;padding-left:10px;font-size:11px;color:#e0bc7a}.ri-diagnosticsSource{font-size:11px;overflow-wrap:anywhere;margin:12px 0}.ri-diagnosticsSource span{color:var(--ri-diagnostics-muted,#97a9be);font-size:9px;margin-left:5px}.ri-diagnosticsDetail>.ri-diagnosticsMetrics{padding:0 11px}.ri-diagnosticsRuntimeDetail>.ri-diagnosticsRuntime{margin:0;padding:4px 11px 12px;border:0}
1
+ :where(:root){--ri-ui-gap: #0e0f11;--ri-ui-panel: #17181b;--ri-ui-canvas: #1c1c1e;--ri-ui-raised: #1f2024;--ri-ui-field: #212226;--ri-ui-field-hover: #2a2c31;--ri-ui-hover: rgba(255, 255, 255, .05);--ri-ui-selected: rgba(255, 255, 255, .1);--ri-ui-fill: #3a3c42;--ri-ui-line: #26282d;--ri-ui-line-strong: #34363c;--ri-ui-scrim: rgba(8, 9, 11, .6);--ri-ui-text: #e8e9eb;--ri-ui-text-2: #a3a6ad;--ri-ui-text-3: #7b7e86;--ri-ui-accent: #35c0dc;--ri-ui-accent-hover: #4dcce5;--ri-ui-on-accent: #04222a;--ri-ui-accent-dim: rgba(53, 192, 220, .14);--ri-ui-danger: #f0696d;--ri-ui-danger-dim: rgba(240, 105, 109, .14);--ri-ui-warning: #e8b34b;--ri-ui-warning-dim: rgba(232, 179, 75, .14);--ri-ui-success: #4cc38a;--ri-ui-success-dim: rgba(76, 195, 138, .14);--ri-ui-x: #e5484d;--ri-ui-y: #46a758;--ri-ui-z: #3e8bff;--ri-ui-font: "Inter var", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--ri-ui-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--ri-ui-radius-s: 4px;--ri-ui-radius-m: 6px;--ri-ui-shadow-menu: 0 12px 32px rgba(0, 0, 0, .5);--ri-ui-h-control: 24px;--ri-ui-h-row: 28px;--ri-ui-z-overlay: 10;--ri-ui-z-chrome: 20;--ri-ui-z-menu: 40;--ri-ui-z-dialog: 60;--ri-ui-z-toast: 80}:root{--ri-styles-model-viewer: 1}.ri-viewer--license-checking,.ri-viewer--license-invalid{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-color:var(--ri-ui-raised)}.ri-viewer{--ri-font-family: var(--ri-ui-font);--ri-viewer-bg: var(--ri-ui-canvas);--ri-viewer-text: var(--ri-ui-text);--ri-panel-bg: var(--ri-ui-panel);--ri-panel-border: var(--ri-ui-line);--ri-panel-title: var(--ri-ui-text);--ri-panel-muted-text: var(--ri-ui-text-2);--ri-panel-subtle-text: var(--ri-ui-text-3);--ri-panel-surface: var(--ri-ui-field);--ri-panel-surface-hover: var(--ri-ui-field-hover);--ri-panel-surface-border: var(--ri-ui-line);--ri-panel-button-text: var(--ri-ui-text);--ri-panel-accent: var(--ri-ui-accent);--ri-panel-accent-contrast: var(--ri-ui-on-accent);--ri-license-overlay-bg: var(--ri-ui-raised);--ri-license-overlay-border: var(--ri-ui-line-strong);--ri-license-overlay-text: var(--ri-ui-text-2);--ri-license-overlay-error-bg: var(--ri-ui-danger-dim);--ri-license-overlay-error-border: var(--ri-ui-danger);--ri-license-overlay-error-text: var(--ri-ui-danger);--ri-sidepanel-font-family: var(--ri-ui-font);--ri-sidepanel-bg: var(--ri-databinding-bg, var(--ri-ui-panel));--ri-sidepanel-open-btn-bg: var(--ri-ui-panel);--ri-sidepanel-open-btn-bg-hover: var(--ri-ui-field);--ri-sidepanel-border: var(--ri-ui-line);--ri-sidepanel-divider: var(--ri-ui-line);--ri-sidepanel-border-strong: var(--ri-ui-line-strong);--ri-sidepanel-border-active: var(--ri-ui-accent);--ri-sidepanel-shadow-left: none;--ri-sidepanel-shadow-right: none;--ri-sidepanel-text: var(--ri-databinding-text, var(--ri-ui-text));--ri-sidepanel-text-emphasis: var(--ri-databinding-text-hover, var(--ri-ui-text));--ri-sidepanel-text-muted: var(--ri-databinding-text-muted, var(--ri-ui-text-2));--ri-sidepanel-text-subtle: var(--ri-databinding-text-subtle, var(--ri-ui-text-3));--ri-sidepanel-placeholder: var(--ri-databinding-text-faint, var(--ri-ui-text-3));--ri-sidepanel-surface: var(--ri-ui-field);--ri-sidepanel-surface-hover: var(--ri-ui-field-hover);--ri-sidepanel-accent: var(--ri-ui-accent);--ri-sidepanel-accent-soft: var(--ri-ui-accent-dim);--ri-databinding-bg: var(--ri-ui-panel);--ri-databinding-border: var(--ri-ui-line);--ri-databinding-border-strong: var(--ri-ui-line-strong);--ri-databinding-border-hover: var(--ri-ui-line-strong);--ri-databinding-shadow: none;--ri-databinding-font-family: var(--ri-ui-font);--ri-databinding-mono-font-family: var(--ri-ui-mono);--ri-databinding-text: var(--ri-ui-text);--ri-databinding-text-muted: var(--ri-ui-text-2);--ri-databinding-text-subtle: var(--ri-ui-text-3);--ri-databinding-text-faint: var(--ri-ui-text-3);--ri-databinding-text-hover: var(--ri-ui-text);--ri-databinding-surface: var(--ri-ui-field);--ri-databinding-surface-hover: var(--ri-ui-field-hover);--ri-databinding-accent: var(--ri-ui-accent);--ri-databinding-accent-glow: var(--ri-ui-accent-dim);--ri-databinding-accent-border: var(--ri-ui-accent);--ri-databinding-accent-gradient: var(--ri-ui-accent);--ri-databinding-accent-gradient-active: var(--ri-ui-accent-hover);display:flex;flex-direction:row;width:100%;height:100%;min-height:0;overflow:hidden;background:var(--ri-viewer-bg);position:relative;color:var(--ri-viewer-text);font-family:var(--ri-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-synthesis:none}.ri-viewer:fullscreen{width:100vw;height:100vh;max-width:none;max-height:none;margin:0}.ri-viewer *{box-sizing:border-box}.ri-viewerLeft{display:flex;flex:1;min-height:0;min-width:0;position:relative}.ri-viewerRight{display:flex;flex-shrink:0;min-width:0}.ri-canvasArea{flex:1 1 auto;position:relative;min-width:0}.ri-canvasArea--measuring{cursor:crosshair}.ri-canvasArea canvas{opacity:1;transition:opacity .18s ease}.ri-canvasArea--positioning canvas{opacity:0;transition:none}.ri-bindingsMismatchBanner{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:8px;padding:7px 12px 7px 10px;border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-scrim);border:1px solid var(--ri-ui-warning);color:var(--ri-ui-warning);font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap;pointer-events:auto;max-width:calc(100% - 32px);white-space:normal;text-align:center}.ri-bindingsMismatchBanner__icon{flex-shrink:0}.ri-bindingsMismatchBanner__dismiss{flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-left:4px;padding:2px;background:none;border:none;border-radius:var(--ri-ui-radius-s);color:var(--ri-ui-warning);cursor:pointer;transition:color .15s ease,background .15s ease}.ri-bindingsMismatchBanner__dismiss:hover{color:var(--ri-ui-warning);background:var(--ri-ui-warning-dim)}.ri-measureTools,.ri-uvCheckerTools{position:absolute;top:16px;left:16px;z-index:10;display:flex;gap:8px;align-items:center}.ri-measureButton{width:34px;height:34px;padding:0;background:var(--ri-ui-scrim);border:1px solid var(--ri-ui-line);color:var(--ri-ui-text-2);border-radius:var(--ri-ui-radius-m);cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease,border-color .15s ease}.ri-measureButton:hover{background:var(--ri-ui-scrim);color:var(--ri-ui-text);border-color:var(--ri-ui-line)}.ri-measureButton:active{background:var(--ri-ui-accent);color:var(--ri-ui-on-accent);border-color:var(--ri-ui-accent)}.ri-measureButton--active{background:var(--ri-ui-accent);border-color:var(--ri-ui-accent);color:var(--ri-ui-on-accent)}.ri-measureButton--active:hover{background:var(--ri-ui-accent);color:var(--ri-ui-on-accent)}.ri-measureHint{padding:6px 10px;border-radius:var(--ri-ui-radius-m);font-size:12px;line-height:1.35;color:var(--ri-ui-text);background:var(--ri-ui-scrim);border:1px solid var(--ri-ui-line);white-space:normal}.ri-measureTools{align-items:flex-start;flex-direction:column;max-width:min(540px,calc(100% - 32px))}.ri-measureToolbarRow{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.ri-measureSelect,.ri-measureFinish{height:34px;padding:0 8px;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-field);color:var(--ri-ui-text);font:inherit;font-size:12px;cursor:pointer}.ri-measureFinish{background:var(--ri-ui-accent);color:var(--ri-ui-on-accent)}.ri-measureGuide{margin:0;padding:4px 12px;font-size:11px;line-height:1.4;color:var(--ri-ui-text-2)}.ri-measureHint--error{color:var(--ri-ui-warning)}.ri-measureButton:disabled,.ri-measureFinish:disabled{opacity:.4;cursor:not-allowed}.ri-measureSelect:focus-visible,.ri-measureFinish:focus-visible,.ri-measureButton:focus-visible{outline:2px solid var(--ri-ui-accent);outline-offset:2px}.ri-measureDot.ri-measureDot--snapped{background:var(--ri-ui-warning)}.ri-measureSnapTarget{width:16px;height:16px;border:2px solid var(--ri-ui-warning);background:var(--ri-ui-warning-dim);box-shadow:0 0 0 1px var(--ri-ui-accent);pointer-events:none}.ri-measureSnapLabel{position:absolute;top:22px;left:0;padding:3px 6px;border-radius:var(--ri-ui-radius-s);background:var(--ri-ui-warning);color:var(--ri-ui-text-2);font-size:12px;pointer-events:none}.ri-explodeTools{position:absolute;top:16px;left:16px;z-index:10;display:flex;gap:8px;align-items:center}.ri-explodeSlider{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;background:var(--ri-ui-scrim);border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m)}.ri-explodeSlider input[type=range]{width:120px;accent-color:var(--ri-ui-accent);cursor:pointer}.ri-sectionTools{position:absolute;top:16px;left:16px;z-index:10;display:flex;gap:8px;align-items:center}.ri-sectionPanel{display:flex;align-items:center;gap:8px;height:34px;padding:0 6px;background:var(--ri-ui-raised);border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m)}.ri-sectionPanel input[type=range]{width:110px;accent-color:var(--ri-ui-accent);cursor:pointer}.ri-decalControl{padding:12px}.ri-decalPosition{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0}.ri-decalPosition__label{font-size:12px;font-weight:600}.ri-decalPosition__hint{font-size:11px;opacity:.65;margin-top:4px;max-width:160px}.ri-decalPosition__pad{display:grid;grid-template:repeat(3,30px) / repeat(3,30px);gap:3px;flex-shrink:0}.ri-decalPosition__button{touch-action:none;user-select:none;display:flex;align-items:center;justify-content:center;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);color:inherit;background:var(--ri-ui-hover);cursor:pointer}.ri-decalPosition__button:hover,.ri-decalPosition__button:active{background:var(--ri-ui-accent-dim)}.ri-decalPosition__button:focus-visible{outline:2px solid var(--ri-ui-accent);outline-offset:2px}.ri-decalPosition__button--up{grid-area:1 / 2}.ri-decalPosition__button--left{grid-area:2 / 1}.ri-decalPosition__button--right{grid-area:2 / 3}.ri-decalPosition__button--down{grid-area:3 / 2}.ri-decalControl__row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.ri-decalControl__input{flex:1;min-width:0;height:34px;padding:0 10px;font:inherit;font-size:12px;color:var(--ri-databinding-text, var(--ri-ui-text));background:var(--ri-ui-hover);border:1px solid var(--ri-databinding-border-strong, var(--ri-ui-line));border-radius:var(--ri-ui-radius-m)}.ri-decalControl__input:focus-visible,.ri-decalControl__chip:focus-visible{outline:2px solid var(--ri-ui-accent);outline-offset:1px}.ri-decalControl__color{flex-shrink:0;width:34px;height:34px;padding:2px;background:transparent;border:1px solid var(--ri-databinding-border-strong, var(--ri-ui-line));border-radius:var(--ri-ui-radius-m);cursor:pointer}.ri-decalControl .ri-uploadButton:disabled{opacity:.5;cursor:not-allowed}.ri-decalControl__hint{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding:8px 10px;font-size:12px;line-height:1.35;border-radius:var(--ri-ui-radius-m);border:1px solid var(--ri-ui-accent);background:var(--ri-ui-field)}.ri-decalControl__list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ri-decalControl__chip{max-width:100%;padding:4px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--ri-databinding-text, var(--ri-ui-text));background:var(--ri-databinding-surface-hover, var(--ri-ui-hover));border:1px solid var(--ri-databinding-border-strong, var(--ri-ui-line));border-radius:var(--ri-ui-radius-m);cursor:pointer}.ri-decalControl__chip--active{background:var(--ri-ui-accent);border-color:var(--ri-ui-accent);color:var(--ri-ui-on-accent)}.ri-decalControl__editor{margin-top:10px;padding-top:10px;border-top:1px solid var(--ri-databinding-border-strong, var(--ri-ui-line))}.ri-decalControl__slider{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:6px;font-size:12px;color:var(--ri-databinding-text-muted, var(--ri-ui-text-2))}.ri-decalControl__slider input{width:100%;accent-color:var(--ri-ui-accent);cursor:pointer}.ri-bottomStack{position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:calc(100% - 24px)}.ri-bottomStack--aboveButtons{bottom:var(--ri-bottom-stack-offset, 56px)}.ri-recordingOverlay{position:absolute;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center;padding:0 12px 72px;cursor:wait}.ri-isolationPill{display:flex;align-items:center;gap:10px;max-width:100%;padding:4px 4px 4px 12px;background:var(--ri-ui-scrim);border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);color:var(--ri-ui-text);font-size:12px}.ri-isolationPill__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ri-isolationPill__button{flex-shrink:0;height:28px;padding:0 12px;font-size:12px;font-weight:600;color:var(--ri-ui-text-2);background:var(--ri-ui-raised);border:none;border-radius:var(--ri-ui-radius-m);cursor:pointer}.ri-isolationPill__button:hover{background:var(--ri-ui-accent)}.ri-isolationPill__button:focus-visible{outline:2px solid var(--ri-ui-line-strong);outline-offset:1px}.ri-variantPicker{display:flex;gap:4px;max-width:100%;padding:4px;overflow-x:auto;scrollbar-width:none;background:var(--ri-ui-scrim);border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m)}.ri-variantPicker::-webkit-scrollbar{display:none}.ri-variantPicker__option{flex-shrink:0;height:28px;padding:0 12px;font-size:12px;font-weight:500;white-space:nowrap;color:var(--ri-ui-text-2);background:transparent;border:1px solid transparent;border-radius:var(--ri-ui-radius-m);cursor:pointer;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease}.ri-variantPicker__option:hover{color:var(--ri-ui-text);background:var(--ri-ui-hover)}.ri-variantPicker__option--active,.ri-variantPicker__option--active:hover{background:var(--ri-ui-accent);color:var(--ri-ui-on-accent)}.ri-variantPicker__option:focus-visible{outline:2px solid var(--ri-ui-accent);outline-offset:1px}.ri-variantPicker__group{display:flex;align-items:center;flex-shrink:0;padding:0 8px;font-size:11px;font-weight:600;white-space:nowrap;color:var(--ri-ui-text-2)}.ri-variantPicker__option{display:inline-flex;align-items:center;gap:7px}.ri-variantPicker__swatch{flex-shrink:0;width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--ri-ui-accent) 0 0 0 1px var(--ri-ui-accent)}.ri-cinematicTools{position:absolute;left:16px;z-index:10;display:flex;gap:8px;align-items:center}.ri-modelSwitcher{position:absolute;left:16px;z-index:10;display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:calc(100% - 32px)}.ri-modelSwitcherButton{height:34px;max-width:200px;padding:0 12px;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-scrim);color:var(--ri-ui-text-2);font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease,border-color .15s ease}.ri-modelSwitcherButton:hover{background:var(--ri-ui-scrim);color:var(--ri-ui-text);border-color:var(--ri-ui-line)}.ri-modelSwitcherButton--active,.ri-modelSwitcherButton--active:hover{background:var(--ri-ui-accent);border-color:var(--ri-ui-accent);color:var(--ri-ui-on-accent)}.ri-modelSwitcherButton:focus-visible{outline:2px solid var(--ri-ui-line-strong);outline-offset:2px}.ri-measureDot{width:10px;height:10px;border-radius:50%;background:var(--ri-ui-accent);border:2px solid var(--ri-ui-line-strong);box-shadow:0 0 0 1px var(--ri-ui-accent);pointer-events:none}.ri-measureLabel{padding:3px 7px;border-radius:var(--ri-ui-radius-s);font-size:12px;font-weight:600;line-height:1;white-space:nowrap;color:var(--ri-ui-text-2);background:var(--ri-ui-raised);box-shadow:none;pointer-events:none;user-select:none}.ri-xrTools{position:absolute;left:16px;z-index:10;display:flex;gap:8px;align-items:center}.ri-xrButton{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 10px;font-size:12px;font-weight:500;color:var(--ri-ui-text);background:var(--ri-ui-scrim);border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);cursor:pointer;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent;transition:background .15s ease,border-color .15s ease}.ri-xrButton:hover{background:var(--ri-ui-scrim);border-color:var(--ri-ui-line-strong)}.ri-mobileHandoffBackdrop{position:absolute;z-index:30;inset:0;display:grid;place-items:center;padding:20px;background:var(--ri-ui-scrim)}.ri-mobileHandoffDialog{position:relative;display:flex;width:min(100%,300px);flex-direction:column;align-items:center;padding:16px;text-align:center;color:var(--ri-ui-text-2);background:var(--ri-ui-raised);border:1px solid var(--ri-ui-line-strong);border-radius:var(--ri-ui-radius-m);box-shadow:var(--ri-ui-shadow-menu)}.ri-mobileHandoffDialog>svg{color:var(--ri-ui-text-2)}.ri-mobileHandoffDialog h2{margin:12px 0 0;font-size:14px;line-height:1.25;color:var(--ri-ui-text)}.ri-mobileHandoffDialog p{margin:8px 0 16px;font-size:12px;line-height:1.5;color:var(--ri-ui-text-2)}.ri-mobileHandoffQr{display:grid;place-items:center;padding:10px;background:var(--ri-ui-raised);border-radius:var(--ri-ui-radius-m)}.ri-mobileHandoffDialog a{margin-top:16px;font-size:12px;font-weight:600;color:var(--ri-ui-accent);text-decoration:underline;text-underline-offset:3px}.ri-mobileHandoffClose{position:absolute;top:10px;right:10px;display:grid;width:30px;height:30px;place-items:center;padding:0;color:var(--ri-ui-text-2);background:transparent;border:0;border-radius:var(--ri-ui-radius-s);cursor:pointer}.ri-mobileHandoffClose:hover{color:var(--ri-ui-text);background:var(--ri-ui-hover)}.ri-arHintOverlay{position:absolute;top:18px;left:50%;transform:translate(-50%);z-index:10;width:min(calc(100% - 32px),360px);pointer-events:none}.ri-arHint{margin:0 auto;width:fit-content;max-width:100%;padding:6px 12px;font-size:11px;font-weight:500;line-height:1.2;text-align:center;color:var(--ri-ui-text);background:var(--ri-ui-scrim);border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);user-select:none}.ri-arOverlay{position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:10;width:min(calc(100% - 32px),420px);pointer-events:none}.ri-arControls{display:flex;flex-direction:column;align-items:center;gap:10px}.ri-arStatus,.ri-arActionButton{max-width:100%;padding:8px 16px;font-size:12px;font-weight:600;line-height:1.3;text-align:center;white-space:nowrap;color:var(--ri-ui-text);background:var(--ri-ui-scrim);border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);user-select:none}.ri-arStatus{pointer-events:none}.ri-arActionButton{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.ri-arActionButton svg{flex-shrink:0}.ri-arActionButton:hover{background:var(--ri-ui-scrim);border-color:var(--ri-ui-line-strong)}.ri-arActionButton:active{transform:scale(.98)}.ri-arActionButton--primary{color:var(--ri-ui-on-accent);background:var(--ri-ui-accent);border-color:transparent;box-shadow:none}.ri-arActionButton--primary:hover{background:var(--ri-ui-accent);border-color:transparent}.ri-arActionButton.ri-arActionButton--active,.ri-arActionButton[aria-pressed=true],.ri-arActionButton.ri-arActionButton--active:hover,.ri-arActionButton[aria-pressed=true]:hover,.ri-arActionButton.ri-arActionButton--active:active,.ri-arActionButton[aria-pressed=true]:active{color:var(--ri-ui-on-accent);background:var(--ri-ui-accent);border-color:transparent;box-shadow:none}.ri-hiddenInput{display:none}.ri-popover{position:absolute;z-index:50;background:var(--ri-ui-raised);border:1px solid var(--ri-ui-line-strong);border-radius:var(--ri-ui-radius-m);box-shadow:var(--ri-ui-shadow-menu);color:var(--ri-ui-text-2)}.ri-popover--inline{position:static;z-index:auto;width:100%;border-radius:var(--ri-ui-radius-m);box-shadow:var(--ri-ui-shadow-menu)}.ri-popover--inline .react-colorful{width:100%}.ri-popover--inline{background:var(--ri-databinding-surface, var(--ri-ui-hover));border-color:var(--ri-databinding-border-strong, var(--ri-ui-line));color:var(--ri-databinding-text, var(--ri-ui-text))}.ri-popover--inline .ri-popoverHeader{border-bottom-color:var( --ri-databinding-border-strong, var(--ri-ui-line) )}.ri-popover--inline .ri-popoverLabel,.ri-popover--inline .ri-colorCode{color:var(--ri-databinding-text-muted, var(--ri-ui-text-2))}.ri-popover--inline .ri-secondaryButton{background:var(--ri-databinding-surface-hover, var(--ri-ui-hover));border-color:var(--ri-databinding-border-strong, var(--ri-ui-line));color:var(--ri-databinding-text, var(--ri-ui-text))}.ri-popover--inline .ri-secondaryButton:hover{background:var(--ri-ui-hover)}.ri-popover--inline .ri-previewFrame{border-color:var(--ri-databinding-border-strong, var(--ri-ui-line))}.ri-popover--inline .ri-emptyState{border-color:var(--ri-databinding-border-hover, var(--ri-ui-line));color:var(--ri-databinding-text-subtle, var(--ri-ui-text))}.ri-popover--inline .ri-uploadButton{background:var(--ri-ui-accent);color:var(--ri-ui-on-accent)}.ri-popover--inline .ri-uploadButton:hover{background:var(--ri-ui-accent-hover)}.ri-popover--inline .ri-removeButton{background:transparent;border-color:var(--ri-databinding-border-strong, var(--ri-ui-line));color:var(--ri-databinding-text-muted, var(--ri-ui-text-2))}.ri-popover--inline .ri-removeButton:hover{background:var(--ri-databinding-surface-hover, var(--ri-ui-hover))}.ri-popover--inline .ri-formatHint{color:var(--ri-databinding-text-subtle, var(--ri-ui-text))}.ri-popoverHeader{padding:12px 16px}.ri-popoverLabel{margin:0 0 8px;font-size:11px;font-weight:600;color:var(--ri-ui-text)}.ri-inlineRow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.ri-colorCode{font-size:12px;color:var(--ri-ui-text-2);font-family:var(--ri-ui-mono)}.ri-secondaryButton{border:1px solid var(--ri-ui-line-strong);background:var(--ri-ui-raised);color:var(--ri-ui-text);border-radius:var(--ri-ui-radius-m);padding:6px 10px;font-size:12px;cursor:pointer;transition:background-color .2s ease}.ri-secondaryButton:hover{background:var(--ri-ui-raised)}.ri-materialBody{display:flex;flex-direction:column;gap:12px;padding-left:12px;padding-right:12px;padding-bottom:12px}.ri-previewFrame{position:relative;height:112px;border-radius:var(--ri-ui-radius-m);overflow:hidden;border:1px solid var(--ri-ui-line-strong)}.ri-previewImage{width:100%;height:100%;object-fit:cover;display:block}.ri-emptyState{height:112px;border-radius:var(--ri-ui-radius-m);border:2px dashed var(--ri-ui-line-strong);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--ri-ui-text-2);text-align:center}.ri-uploadButton{width:100%;border:0;border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-accent);color:var(--ri-ui-on-accent);padding:10px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:background-color .2s ease}.ri-uploadButton:hover{background:var(--ri-ui-accent-hover)}.ri-removeButton{width:100%;border-radius:var(--ri-ui-radius-m);border:1px solid var(--ri-ui-line-strong);background:var(--ri-ui-raised);color:var(--ri-ui-text);padding:8px 12px;font-size:12px;cursor:pointer;transition:background-color .2s ease}.ri-removeButton:hover{background:var(--ri-ui-raised)}.ri-formatHint{margin:0;text-align:center;font-size:11px;color:var(--ri-ui-text-2)}.ri-texturePosition{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid var(--ri-ui-line-strong)}.ri-texturePositionLabel{margin:0;font-size:11px;font-weight:600;color:var(--ri-ui-text)}.ri-texturePositionGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ri-texturePositionField{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--ri-ui-text)}.ri-texturePositionField--full{grid-column:1 / -1}.ri-texturePositionField input[type=number]{width:100%;border-radius:var(--ri-ui-radius-m);border:1px solid var(--ri-ui-line-strong);background:var(--ri-ui-raised);color:var(--ri-ui-text-2);padding:6px 8px;font-size:12px}.ri-texturePositionSliderRow{display:flex;align-items:center;gap:8px}.ri-texturePositionSliderRow input[type=range]{flex:1}.ri-texturePositionSliderRow input[type=number]{width:56px;border-radius:var(--ri-ui-radius-m);border:1px solid var(--ri-ui-line-strong);background:var(--ri-ui-raised);color:var(--ri-ui-text-2);padding:6px 8px;font-size:12px}.ri-texturePositionHint{margin:0;font-size:11px;line-height:1.4;color:var(--ri-ui-text-2)}.ri-popover--inline .ri-texturePosition{border-color:var(--ri-databinding-border-strong, var(--ri-ui-line))}.ri-popover--inline .ri-texturePositionLabel,.ri-popover--inline .ri-texturePositionField,.ri-popover--inline .ri-texturePositionHint{color:var(--ri-databinding-text-muted, var(--ri-ui-text-2))}.ri-popover--inline .ri-texturePositionField input[type=number],.ri-popover--inline .ri-texturePositionSliderRow input[type=number]{background:var(--ri-databinding-surface-hover, var(--ri-ui-hover));border-color:var(--ri-databinding-border-strong, var(--ri-ui-line));color:var(--ri-databinding-text, var(--ri-ui-accent))}.ri-buttonContainer{display:flex;justify-content:space-between;align-items:center;gap:8px;position:absolute;bottom:12px;left:12px;right:12px;z-index:10;pointer-events:none}.ri-buttonContainer>*{pointer-events:auto}.ri-tourControls{display:flex;gap:6px;align-items:center;flex-shrink:0}.ri-navButtonSingle,.ri-tourButton{height:34px;background:var(--ri-ui-scrim);border:1px solid var(--ri-ui-line);color:var(--ri-ui-text-2);border-radius:var(--ri-ui-radius-m);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease;user-select:none;-webkit-tap-highlight-color:transparent}.ri-navButtonSingle:hover:not(:disabled),.ri-tourButton:hover:not(:disabled){background:var(--ri-ui-scrim);color:var(--ri-ui-text);border-color:var(--ri-ui-line)}.ri-navButtonSingle:active:not(:disabled),.ri-tourButton:active:not(:disabled){background:var(--ri-ui-accent);color:var(--ri-ui-on-accent);border-color:var(--ri-ui-accent)}.ri-navButtonSingle:disabled,.ri-tourButton:disabled{opacity:.45;cursor:not-allowed}.ri-navButtonSingle{padding:0 16px;font-size:12px;font-weight:500;display:flex;align-items:center;gap:8px;white-space:nowrap}.ri-tourButton{padding:0 12px;font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;white-space:nowrap}.ri-tourButton svg{width:15px;height:15px;flex-shrink:0}.ri-tourButton--stop{border-color:var(--ri-ui-danger);color:var(--ri-ui-danger)}.ri-tourButton--stop:hover:not(:disabled){background:var(--ri-ui-danger-dim);border-color:var(--ri-ui-danger);color:var(--ri-ui-danger)}.ri-tourButton--stop:active:not(:disabled){background:var(--ri-ui-danger);color:var(--ri-ui-text);border-color:var(--ri-ui-danger)}.ri-tourButton--next{border-color:var(--ri-ui-accent);color:var(--ri-ui-text-2)}.ri-tourButton--next:hover:not(:disabled){background:var(--ri-ui-accent-dim);border-color:var(--ri-ui-accent);color:var(--ri-ui-accent)}.ri-tourButton--next:active:not(:disabled){background:var(--ri-ui-accent);color:var(--ri-ui-on-accent);border-color:var(--ri-ui-accent)}.mv-rightControls{position:absolute;bottom:5px;right:5px;z-index:10000;display:flex;align-items:center;gap:5px;pointer-events:auto}.mv-resetButton,.mv-fullscreenButton,.mv-controllersButton,.mv-downloadButton{height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-scrim);color:var(--ri-ui-text-2);font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease,opacity .15s ease}.mv-resetButton:hover:not(:disabled),.mv-fullscreenButton:hover:not(:disabled),.mv-controllersButton:hover:not(:disabled),.mv-downloadButton:hover:not(:disabled){background:var(--ri-ui-scrim);color:var(--ri-ui-text);border-color:var(--ri-ui-line)}.mv-resetButton:active:not(:disabled),.mv-fullscreenButton:active:not(:disabled),.mv-controllersButton:active:not(:disabled),.mv-downloadButton:active:not(:disabled){background:var(--ri-ui-accent);color:var(--ri-ui-on-accent);border-color:var(--ri-ui-accent)}.mv-resetButton:disabled,.mv-fullscreenButton:disabled,.mv-controllersButton:disabled,.mv-downloadButton:disabled{opacity:.45;cursor:not-allowed}.mv-resetButton:focus-visible,.mv-fullscreenButton:focus-visible,.mv-controllersButton:focus-visible,.mv-downloadButton:focus-visible{outline:2px solid var(--ri-ui-line-strong);outline-offset:2px}.mv-resetButton,.mv-fullscreenButton{width:34px;padding:0;flex-shrink:0}.mv-resetButton svg,.mv-fullscreenButton svg{width:15px;height:15px;flex-shrink:0;pointer-events:none}.mv-fullscreenWrapper{display:inline-flex}.mv-fullscreenError{position:absolute;bottom:calc(100% + 8px);right:0;width:240px;max-width:calc(100vw - 20px);padding:10px 12px;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-scrim);color:var(--ri-ui-text);font-size:12px;line-height:1.5}.mv-controllersWrapper{position:relative;display:inline-flex;flex-direction:column;align-items:stretch}.mv-controllersButton{width:34px;padding:0;flex-shrink:0}.mv-controllersButton svg{width:15px;height:15px;flex-shrink:0;pointer-events:none}.mv-controllersMenu{position:absolute;bottom:calc(100% + 6px);right:0;min-width:168px;display:flex;flex-direction:column;padding:6px;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-raised);box-shadow:var(--ri-ui-shadow-menu);z-index:100;animation:mv-menuReveal .12s ease}.mv-controllersMenuItem{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;border:none;border-radius:var(--ri-ui-radius-s);background:transparent;color:var(--ri-ui-text);font-size:12px;font-weight:400;text-align:left;white-space:nowrap;cursor:pointer;transition:background .1s ease,color .1s ease}.mv-controllersMenuItem:hover:not(:disabled){background:var(--ri-ui-hover)}.mv-controllersMenuItem--active{background:var(--ri-ui-accent-dim);color:var(--ri-ui-accent);font-weight:600}.mv-controllersMenuItem--active:hover{background:var(--ri-ui-accent-dim)}.mv-downloadWrapper{position:relative;display:inline-flex;flex-direction:column;align-items:stretch}.mv-downloadButton{padding:0 16px;flex-shrink:0}.mv-downloadButton svg{width:15px;height:15px;flex-shrink:0;pointer-events:none}.mv-downloadButton__spinner{display:inline-block;width:13px;height:13px;border:2px solid var(--ri-ui-line-strong);border-top-color:var(--ri-ui-line-strong);border-radius:50%;animation:mv-spin .7s linear infinite;flex-shrink:0}.mv-downloadMenu{position:absolute;bottom:calc(100% + 6px);right:0;min-width:168px;display:flex;flex-direction:column;padding:6px;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-raised);box-shadow:var(--ri-ui-shadow-menu);overflow:hidden;z-index:100;animation:mv-menuReveal .12s ease}.mv-downloadMenuItem{display:flex;align-items:center;gap:9px;width:100%;padding:10px 14px;border:none;border-radius:var(--ri-ui-radius-s);background:transparent;color:var(--ri-ui-text);font-size:12px;font-weight:400;text-align:left;white-space:nowrap;cursor:pointer;transition:background .1s ease}.mv-downloadMenuItem:hover:not(:disabled){background:var(--ri-ui-hover)}.mv-downloadMenuItem:disabled{opacity:.4;cursor:not-allowed}.mv-downloadMenuItem select{margin-left:auto;padding:4px 6px;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-s);background:var(--ri-ui-field);color:var(--ri-ui-text);font:inherit}.mv-downloadMenuDivider{height:1px;margin:0 10px;background:var(--ri-ui-hover)}.mv-downloadMenuNotice{max-width:220px;padding:8px 14px 11px;color:var(--ri-ui-danger);font-size:11px;line-height:1.4}.mv-downloadMenuDescription{width:220px;margin:0;padding:0 14px 11px;color:var(--ri-ui-text-2);font-size:11px;line-height:1.4}@keyframes mv-menuReveal{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes mv-spin{to{transform:rotate(360deg)}}@media(max-width:768px){.mv-rightControls{flex-wrap:wrap;gap:6px}.mv-downloadButton{padding:0 10px;font-size:12px}}@media(max-width:480px){.mv-downloadButton{padding:0 10px;font-size:12px}.mv-downloadButton span{display:none}}.ri-annotationMarker{position:relative;width:36px;height:36px;border-radius:50%;background:var(--ri-ui-scrim);border:2px solid var(--ri-ui-line-strong);color:var(--ri-ui-text);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;cursor:pointer;z-index:20;user-select:none;box-shadow:none;pointer-events:auto;transition:opacity .3s ease,transform .3s ease}.ri-annotationMarker:hover{transform:scale(1.08);box-shadow:none;background:var(--ri-ui-scrim)}.ri-annotationPopup{position:absolute;width:min(270px,calc(100vw - 32px));background:var(--ri-ui-raised);border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);padding:16px;z-index:30;display:flex;flex-direction:column;gap:12px;box-shadow:var(--ri-ui-shadow-menu)}.ri-annotationInput,.ri-annotationTextarea{width:100%;border:1px solid var(--ri-ui-line);background:var(--ri-ui-hover);color:var(--ri-ui-text);border-radius:var(--ri-ui-radius-m);padding:10px 12px;outline:none;font-family:var(--ri-ui-font);transition:border-color .2s ease,box-shadow .2s ease}.ri-annotationInput{font-size:12px;font-weight:500}.ri-annotationTextarea{font-size:12px;resize:vertical;min-height:110px}.ri-annotationInput:focus,.ri-annotationTextarea:focus{border-color:var(--ri-ui-accent);box-shadow:0 0 0 3px var(--ri-ui-accent)}.ri-annotationActions{display:flex;align-items:center;gap:10px}.ri-annotationOkBtn{border:0;border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-accent);color:var(--ri-ui-on-accent);padding:8px 18px;font-size:12px;font-weight:600;cursor:pointer;transition:background-color .2s ease,opacity .2s ease}.ri-annotationOkBtn:hover:not(:disabled){background:var(--ri-ui-accent)}.ri-annotationOkBtn:disabled,.ri-annotationOkBtn.disabled{opacity:.5;cursor:not-allowed}.ri-annotationCancelBtn{border:1px solid var(--ri-ui-line);background:transparent;color:var(--ri-ui-text-2);border-radius:var(--ri-ui-radius-m);padding:8px 12px;font-size:12px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.ri-annotationCancelBtn:hover{background:var(--ri-ui-hover);border-color:var(--ri-ui-line)}.ri-annotationIcons{margin-left:auto;display:flex;align-items:center;gap:12px;color:var(--ri-ui-text-2)}.ri-annotationIcons svg{flex-shrink:0}.ri-viewAnnotationPopup{position:relative;background:var(--ri-ui-raised);border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);padding:12px 16px;min-width:200px;max-width:min(280px,calc(100vw - 48px));box-shadow:var(--ri-ui-shadow-menu);pointer-events:auto;animation:ri-viewAnnotationFadeIn .15s ease-out;margin-left:24px;margin-top:-20px;isolation:isolate;z-index:1000}.ri-viewAnnotationClose{background:transparent;border:none;color:var(--ri-ui-text-2);cursor:pointer;font-size:14px;padding:0 4px;transition:color .2s;line-height:1}.ri-viewAnnotationClose:hover{color:var(--ri-ui-accent)}.ri-viewAnnotationDescription{margin:0;color:var(--ri-ui-text-2);font-size:12px;line-height:1.4;word-wrap:break-word}@keyframes ri-viewAnnotationFadeIn{0%{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ri-slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ri-largeModelBanner{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:8px;padding:7px 12px 7px 10px;border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-scrim);border:1px solid var(--ri-ui-warning);color:var(--ri-ui-warning);font-size:12px;font-weight:500;line-height:1.4;pointer-events:auto;max-width:calc(100% - 32px);white-space:normal;text-align:center}.ri-largeModelBanner--offset{top:64px}.ri-largeModelBanner__icon{flex-shrink:0}.ri-largeModelBanner__dismiss{flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-left:4px;padding:2px;background:none;border:none;border-radius:var(--ri-ui-radius-s);color:var(--ri-ui-warning);cursor:pointer;transition:color .15s ease,background .15s ease}.ri-largeModelBanner__dismiss:hover{color:var(--ri-ui-warning);background:var(--ri-ui-warning-dim)}.ri-uvCheckerBanner{position:absolute;top:12px;right:12px;z-index:20;display:flex;align-items:center;gap:8px;max-width:min(360px,calc(100% - 24px));padding:7px 11px;border:1px solid var(--ri-ui-accent);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-raised);color:var(--ri-ui-text-2);font-size:12px;font-weight:500;line-height:1.4;text-align:left;pointer-events:none}.ri-uvCheckerBanner__icon{flex-shrink:0}@media(max-width:768px){.ri-xrTools{gap:6px}.ri-xrButton{height:34px;gap:6px;padding:0 8px;font-size:11px}.ri-xrButton svg{width:14px;height:14px}.ri-navButtonSingle{padding:8px 20px;font-size:12px;min-width:110px}.ri-viewAnnotationPopup{min-width:160px;max-width:220px;padding:10px 12px}.ri-viewAnnotationTitle,.ri-viewAnnotationDescription{font-size:12px}.ri-buttonContainer{flex-wrap:wrap;gap:6px}.ri-tourControls{flex-wrap:wrap}}@media(max-width:480px){.ri-xrTools{gap:5px}.ri-xrButton{height:34px;gap:5px;font-size:11px}.ri-xrButton svg{width:13px;height:13px}.ri-navButtonSingle{padding:6px 16px;font-size:12px;min-width:90px;gap:6px}.ri-tourButton{padding:0 8px;font-size:12px}.ri-tourButton span{display:none}}.ri-contextRecovery{position:absolute;inset:0;z-index:20000;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--ri-ui-scrim)}.ri-contextRecovery__card{width:min(380px,100%);padding:24px;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-field);color:var(--ri-ui-text);box-shadow:none}.ri-contextRecovery__card h2{margin:12px 0 8px;font-size:14px;line-height:1.3}.ri-contextRecovery__card p{margin:0 0 18px;color:var(--ri-ui-text-2);font-size:12px;line-height:1.6}.ri-contextRecovery__card button{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-raised);color:var(--ri-ui-text-2);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.ri-contextRecovery__card button:hover:not(:disabled){background:var(--ri-ui-raised)}.ri-contextRecovery__card button:focus-visible{outline:2px solid var(--ri-ui-accent);outline-offset:3px}.ri-contextRecovery__card button:disabled{opacity:.5;cursor:wait}.ri-loadError{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:16px;pointer-events:none}.ri-loadError__card{display:flex;flex-direction:column;gap:8px;width:min(460px,100%);padding:18px 22px;border-radius:var(--ri-ui-radius-m);color:var(--ri-license-overlay-error-text, var(--ri-ui-danger));background:var(--ri-license-overlay-error-bg, var(--ri-ui-selected));border:1px solid var(--ri-license-overlay-error-border, var(--ri-ui-danger));box-shadow:none;pointer-events:auto}.ri-loadError__header{display:flex;align-items:center;gap:8px}.ri-loadError__title{font-size:12px;font-weight:600;line-height:1.3}.ri-loadError__detail{margin:0;font-size:12px;line-height:1.5;color:var(--ri-license-overlay-text, var(--ri-ui-text))}.ri-loadError__source,.ri-loadError__technical{margin:0;font-family:var(--ri-ui-mono);font-size:11px;line-height:1.45;overflow-wrap:anywhere;color:var(--ri-license-overlay-text, var(--ri-ui-text));opacity:.75}.ri-loadError__technical{opacity:.55}.ri-overlay{position:absolute;inset:0;z-index:5;pointer-events:none}.ri-overlay>*{pointer-events:auto}.ri-bottomStack--annotationFilters{z-index:2001}.ri-annotationFilters{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;max-width:min(520px,calc(100vw - 40px));max-height:120px;overflow-y:auto;padding:8px;border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-scrim);color:var(--ri-ui-text-2);font-size:12px;pointer-events:auto}.ri-annotationFilters button{color:inherit;background:transparent;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-s);padding:4px 8px;cursor:pointer}.ri-annotationFilters button[aria-pressed=true]{background:var(--ri-ui-raised);border-color:var(--ri-ui-accent)}.ri-viewAnnotationPopup{max-height:min(420px,60vh);overflow-y:auto}.ri-visuallyHidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.ri-canvasArea:focus-visible{outline:2px solid var(--ri-ui-accent);outline-offset:-2px}.ri-objectNavigator{position:absolute;top:12px;left:50%;z-index:30;display:flex;flex-direction:column;align-items:center;gap:4px;max-width:calc(100% - 32px);transform:translate(-50%);pointer-events:none}.ri-objectNavigator:not(:focus-within){width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ri-objectNavigator__list{display:flex;align-items:center;box-sizing:border-box;min-width:220px;max-width:100%;padding:8px 12px;background:var(--ri-ui-scrim);border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);color:var(--ri-ui-text);font:600 13px/1.3 var(--ri-font-family)}.ri-objectNavigator__list:focus{outline:2px solid var(--ri-ui-accent);outline-offset:2px}.ri-objectNavigator__option{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;min-width:0}.ri-objectNavigator__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ri-objectNavigator__option--selected .ri-objectNavigator__name{color:var(--ri-ui-accent)}.ri-objectNavigator__position{flex-shrink:0;color:var(--ri-ui-text-2);font-weight:500;font-variant-numeric:tabular-nums}.ri-objectNavigator__hint{max-width:100%;padding:3px 8px;overflow:hidden;background:var(--ri-ui-scrim);border-radius:var(--ri-ui-radius-s);color:var(--ri-ui-text-2);font:500 11px/1.3 var(--ri-font-family);text-overflow:ellipsis;white-space:nowrap}.ri-viewer[data-reduced-motion] *,.ri-viewer[data-reduced-motion] *:before,.ri-viewer[data-reduced-motion] *:after{transition-duration:0s;transition-delay:0s}.ri-viewer[data-reduced-motion] .mv-controllersMenu,.ri-viewer[data-reduced-motion] .mv-downloadMenu,.ri-viewer[data-reduced-motion] .ri-viewAnnotationPopup,.ri-viewer[data-reduced-motion] .mc__joystick:active .mc__knob{animation:none}.ri-compare{position:relative;width:100%;height:100%;overflow:hidden;font-family:var(--ri-ui-font)}.ri-compare__layer{position:absolute;inset:0}.ri-compare__layer--after{clip-path:inset(0 0 0 var(--ri-compare-split))}.ri-compare__divider{position:absolute;top:0;bottom:0;left:var(--ri-compare-split);z-index:40;display:flex;align-items:center;justify-content:center;width:32px;margin-left:-16px;cursor:ew-resize;touch-action:none;outline:none}.ri-compare__divider:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:var(--ri-ui-selected);box-shadow:none}.ri-compare__handle{position:relative;width:32px;height:32px;border-radius:50%;background:var(--ri-ui-raised);box-shadow:none}.ri-compare__handle:before,.ri-compare__handle:after{content:"";position:absolute;top:50%;margin-top:-5px;border:5px solid transparent}.ri-compare__handle:before{left:4px;border-right-color:var(--ri-ui-line)}.ri-compare__handle:after{right:4px;border-left-color:var(--ri-ui-line)}.ri-compare__divider:focus-visible .ri-compare__handle{outline:2px solid var(--ri-ui-accent);outline-offset:2px}.ri-compare__label{position:absolute;bottom:12px;z-index:30;max-width:40%;padding:4px 10px;overflow:hidden;border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-scrim);color:var(--ri-ui-text);font-size:12px;font-weight:600;line-height:1.3;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.ri-compare__label[hidden]{display:none}.ri-compare__labelAction{display:inline-flex;align-items:center;gap:4px;margin:-2px 0 -2px 8px;padding:0 7px;line-height:16px;border:1px solid var(--ri-ui-line);border-radius:999px;background:var(--ri-ui-hover);color:var(--ri-ui-text);font:inherit;font-size:11px;font-weight:600;vertical-align:middle;cursor:pointer;pointer-events:auto}.ri-compare__labelAction:hover{background:var(--ri-ui-selected)}.ri-compare__labelAction[aria-pressed=true]{border-color:var(--ri-ui-accent);background:var(--ri-ui-raised);color:var(--ri-ui-text-2)}.ri-compare__labelAction:focus-visible{outline:2px solid var(--ri-ui-accent);outline-offset:2px}.ri-compare__label--before,.ri-compare__pane .ri-compare__label{left:12px}.ri-compare__label--after{right:12px}.ri-compare--sideBySide{display:flex;gap:2px;background:var(--ri-ui-panel)}.ri-compare__pane{position:relative;flex:1 1 0;min-width:0;height:100%}.ri-compare--overlay{position:absolute;inset:0;z-index:4;pointer-events:none}.ri-compare--overlay .ri-compare__layer--before{clip-path:inset(0 calc(100% - var(--ri-compare-split)) 0 0);pointer-events:auto}.ri-compare--overlay .ri-compare__divider{pointer-events:auto}.ri-compare--overlay .ri-compare__label{top:12px;bottom:auto}.ri-compare--overlay .ri-compare__label--before{left:auto;right:calc(100% - var(--ri-compare-split) + 12px)}.ri-compare--overlay .ri-compare__label--after{right:auto;left:calc(var(--ri-compare-split) + 12px)}.ri-configuredARDialog{width:min(100%,380px);max-height:100%;overflow-y:auto;box-sizing:border-box;outline:none}.ri-configuredARActions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.ri-configuredARActions a{display:inline-flex;gap:6px;align-items:center}.ri-configuredARDialog .ri-configuredARNote{font-size:11px;color:var(--ri-ui-text-2);margin-bottom:0}.ri-configuredARDialog .ri-configuredARLaunch{padding:9px 12px;border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-accent);color:var(--ri-ui-on-accent);text-decoration:none}.ri-configuredARError{padding:10px;color:var(--ri-ui-danger);background:var(--ri-ui-danger-dim)}.ri-configuredARProgress p{display:flex;align-items:center;justify-content:center;gap:8px}.ri-configuredARProgress svg{animation:mv-spin 1s linear infinite;flex-shrink:0}.ri-configuredARRefresh{display:inline-flex;align-items:center;gap:6px;margin-top:16px;padding:6px 10px;border:1px solid var(--ri-ui-line-strong);border-radius:var(--ri-ui-radius-m);color:var(--ri-ui-text-2);background:transparent;cursor:pointer;font:inherit;font-size:12px}.ri-configuredARRefresh:hover{background:var(--ri-ui-hover)}.ri-configuredARRefresh:focus-visible,.ri-configuredARDetails summary:focus-visible{outline:2px solid var(--ri-ui-accent);outline-offset:3px}.ri-configuredARDetails{width:100%;margin-top:16px;text-align:left;color:var(--ri-ui-text-2);font-size:11px}.ri-configuredARDetails summary{cursor:pointer}@media(prefers-reduced-motion:reduce){.ri-configuredARProgress svg{animation:none}}.ri-configuredARActions a{padding:9px 12px;border:1px solid var(--ri-ui-accent);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-accent);color:var(--ri-ui-on-accent);text-decoration:none}.ri-configuredARLaunch~a{border-color:var(--ri-ui-line-strong);background:transparent;color:var(--ri-ui-text)}.ri-sequenceTransport{display:flex;align-items:center;gap:7px;padding:8px 0;color:var(--ri-ui-text-2)}.ri-sequenceTransport button{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border:1px solid var(--ri-ui-line-strong);border-radius:var(--ri-ui-radius-m);color:var(--ri-ui-text-2);background:var(--ri-ui-raised);cursor:pointer}.ri-sequenceTransport button:disabled{opacity:.4;cursor:default}.ri-sequenceTransport input{flex:1;min-width:35px;accent-color:var(--ri-ui-accent)}.ri-sequenceTransport output{font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ri-ui-text-2)}.ri-sequenceTransport button:focus-visible,.ri-sequenceTransport input:focus-visible{outline:2px solid var(--ri-ui-accent);outline-offset:2px}.ri-sequencePlayer{position:absolute;z-index:10;bottom:16px;left:16px;width:min(320px,calc(100% - 32px));padding:10px;border:1px solid var(--ri-ui-line-strong);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-raised);color:var(--ri-ui-text)}.ri-sequencePlayer select{width:100%;padding:5px 8px;border:1px solid var(--ri-ui-line-strong);border-radius:var(--ri-ui-radius-s);font-size:12px;background:var(--ri-ui-raised);color:var(--ri-ui-text-2)}.ri-sequencePlayer details{font-size:11px;color:var(--ri-ui-warning)}.ri-sectionControls{display:grid;gap:12px;font-size:12px;color:inherit}.ri-sectionControls label{display:grid;gap:6px;min-width:0}.ri-sectionControls select,.ri-sectionControls input:not([type=range]):not([type=checkbox]),.ri-sectionControls button{font:inherit;color:inherit;background:var(--ri-ui-hover);border:1px solid var(--ri-ui-line-strong);border-radius:var(--ri-ui-radius-s);padding:7px 9px;min-width:0}.ri-sectionControls option{background:var(--ri-ui-raised);color:var(--ri-ui-text-2)}.ri-sectionControls input[type=range]{width:100%;accent-color:var(--ri-ui-accent)}.ri-sectionControls output{justify-self:end;margin-top:-20px;opacity:.7}.ri-sectionControls .ri-sectionControls__check{display:flex;align-items:center;gap:8px}.ri-sectionControls__vector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ri-sectionControls__actions{display:flex;gap:6px;margin-top:6px}.ri-sectionControls__actions button:first-child{flex:1;overflow-wrap:anywhere}.ri-sectionControls button{cursor:pointer}.ri-sectionControls button:disabled{opacity:.4;cursor:default}.ri-sectionControls p{margin:0;line-height:1.5;opacity:.6}.ri-sectionControls form{display:grid;gap:8px;margin:10px 0}.ri-sectionControls details>summary{cursor:pointer}.ri-sectionPanel:has(.ri-sectionControls){display:block;width:280px;max-height:min(70vh,650px);overflow:auto;padding:14px}.ri-sectionPanel:has(.ri-sectionControls){position:absolute;top:44px;left:0;height:auto;max-width:calc(100vw - 48px);max-height:min(65vh,480px)}.ri-sectionControls__bounds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.ri-measureLibrary{width:min(300px,calc(100vw - 32px));max-height:min(60vh,460px);margin-top:6px;padding:6px 0;overflow:auto;border:1px solid var(--ri-ui-line-strong);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-raised);color:var(--ri-ui-text-2);font-size:12px;line-height:16px;pointer-events:auto}.ri-measureLibrary--sidebar{width:auto;max-height:none;margin:0;padding:0;overflow:visible;border:0;border-radius:0;background:transparent}.ri-measureRow{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:8px;min-height:28px;padding:2px 12px}.ri-measureRow>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ri-measureCombo{display:flex;gap:2px;min-width:0}.ri-measureField{flex:1 1 0;width:100%;min-width:0;height:24px;padding:0 6px;border:1px solid transparent;border-radius:var(--ri-ui-radius-s);background:var(--ri-ui-field);color:var(--ri-ui-text);font:inherit;outline:none}.ri-measureField:focus{border-color:var(--ri-ui-accent)}.ri-measureField option{background:var(--ri-ui-raised);color:var(--ri-ui-text)}.ri-measureField--unit{flex:0 0 48px}select.ri-measureField{appearance:none;padding-right:18px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a3a6ad' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 4px center;background-repeat:no-repeat}.ri-measureActions{display:flex;flex-wrap:wrap;gap:4px;padding:8px 12px}.ri-measureAction{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:none;height:24px;padding:0 8px;border:0;border-radius:var(--ri-ui-radius-s);background:var(--ri-ui-field);color:var(--ri-ui-text);font:inherit;font-weight:500;white-space:nowrap;cursor:pointer}.ri-measureAction:hover:not(:disabled){background:var(--ri-ui-field-hover)}.ri-measureAction:disabled{opacity:.45;cursor:default}.ri-measureActions .ri-measureAction{flex:1 1 0}.ri-measureStart--active,.ri-measureStart--active:hover:not(:disabled){background:var(--ri-ui-accent);color:var(--ri-ui-on-accent)}.ri-measureEmpty,.ri-measureLibraryError{margin:0;padding:8px 12px;color:var(--ri-ui-text-3);font-size:11px;line-height:14px}.ri-measureLibraryError{color:var(--ri-ui-danger)}.ri-savedMeasurementList{margin-top:6px;border-top:1px solid var(--ri-ui-line)}.ri-savedMeasurementRow{display:flex;align-items:center;gap:6px;height:28px;padding:0 8px 0 12px;border-bottom:1px solid var(--ri-ui-line)}.ri-savedMeasurementName{flex:1 1 0;min-width:0;height:22px;padding:0 4px;border:1px solid transparent;border-radius:var(--ri-ui-radius-s);background:transparent;color:var(--ri-ui-text);font:inherit;outline:none}.ri-savedMeasurementName:hover,.ri-savedMeasurementName:focus{background:var(--ri-ui-field)}.ri-savedMeasurementValue{flex:none;color:var(--ri-ui-text-2);font-variant-numeric:tabular-nums;white-space:nowrap}.ri-savedMeasurementDelete{display:grid;place-items:center;flex:none;width:20px;height:20px;padding:0;border:0;border-radius:3px;background:none;color:var(--ri-ui-text-3);cursor:pointer}.ri-savedMeasurementDelete:hover:not(:disabled){background:var(--ri-ui-hover);color:var(--ri-ui-text)}.ri-measureTransfer{border-top:1px solid var(--ri-ui-line)}.ri-measureTransfer summary{display:flex;align-items:center;height:28px;padding:0 12px;color:var(--ri-ui-text-2);cursor:pointer}.ri-semanticPanel{position:absolute;top:52px;right:12px;z-index:14;display:flex;flex-direction:column;width:min(300px,calc(100% - 24px));max-height:calc(100% - 64px);overflow:hidden;border:1px solid var(--ri-ui-line-strong);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-raised);color:var(--ri-ui-text-2);font-family:var(--ri-ui-font);font-size:12px;line-height:16px;font-variant-numeric:tabular-nums;pointer-events:auto}.ri-semanticPanel button,.ri-semanticPanel select,.ri-semanticPanel input:not([type=checkbox]){margin:0;font:inherit;color:inherit}.ri-semanticPanel .ri-semanticPanel__heading{display:flex;align-items:center;gap:4px;flex:none;width:100%;height:32px;padding:0 8px;border:0;background:transparent;color:var(--ri-ui-text);font-weight:600;cursor:pointer}.ri-semanticPanel__heading svg{flex:none;color:var(--ri-ui-text-3);transition:transform .12s ease}.ri-semanticPanel__chevron--open{transform:rotate(90deg)}.ri-semanticPanel__counts{display:inline-flex;gap:8px;margin-left:auto;font-weight:500}.ri-semanticPanel [data-status=added]{--comparison-color: var(--ri-ui-success)}.ri-semanticPanel [data-status=removed]{--comparison-color: var(--ri-ui-danger)}.ri-semanticPanel [data-status=modified]{--comparison-color: var(--ri-ui-warning)}.ri-semanticPanel [data-status=ambiguous]{--comparison-color: var(--ri-ui-text-2)}.ri-semanticPanel__counts>span{color:var(--comparison-color)}.ri-semanticPanel__body{display:flex;flex-direction:column;min-height:0;overflow-y:auto;border-top:1px solid var(--ri-ui-line);scrollbar-width:thin;scrollbar-color:var(--ri-ui-fill) transparent}.ri-semanticPanel input.ri-semanticPanel__search,.ri-semanticPanel select{width:100%;min-width:0;height:24px;padding:0 7px;border:1px solid transparent;border-radius:var(--ri-ui-radius-s);background-color:var(--ri-ui-panel);color:var(--ri-ui-text);outline:none}.ri-semanticPanel input.ri-semanticPanel__search:focus,.ri-semanticPanel select:focus{border-color:var(--ri-ui-accent)}.ri-semanticPanel select{appearance:none;padding-right:18px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a3a6ad' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 4px center;background-repeat:no-repeat}.ri-semanticPanel select option{background:var(--ri-ui-raised)}.ri-semanticPanel input.ri-semanticPanel__search{width:auto;margin:8px 8px 0}.ri-semanticPanel__filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;padding:2px 8px 8px}.ri-semanticPanel__rows{flex:none;max-height:220px;overflow-y:auto;border-top:1px solid var(--ri-ui-line);scrollbar-width:thin;scrollbar-color:var(--ri-ui-fill) transparent}.ri-semanticPanel__row{border-bottom:1px solid var(--ri-ui-line)}.ri-semanticPanel__row:last-child{border-bottom:0}.ri-semanticPanel__row>button{display:flex;align-items:center;gap:8px;width:100%;height:26px;padding:0 8px;border:0;background:transparent;color:var(--ri-ui-text);text-align:left;cursor:pointer}.ri-semanticPanel__row>button:hover{background:var(--ri-ui-hover)}.ri-semanticPanel__row>button[aria-pressed=true]{background:var(--ri-ui-accent-dim);box-shadow:inset 2px 0 var(--ri-ui-accent)}.ri-semanticPanel__row>button span{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ri-semanticPanel__row small{flex:none;color:var(--comparison-color, var(--ri-ui-text-3));font-size:11px}.ri-semanticPanel__empty{margin:0;padding:8px;color:var(--ri-ui-text-3);font-size:11px}.ri-semanticPanel__details p{margin:0;padding:2px 8px 6px;color:var(--ri-ui-text-3);font-size:11px;line-height:14px}.ri-semanticPanel__change{padding:4px 8px;border-top:1px solid var(--ri-ui-line)}.ri-semanticPanel__change code{display:block;overflow:hidden;color:var(--ri-ui-text-3);font:400 11px/14px var(--ri-ui-mono);text-overflow:ellipsis;white-space:nowrap}.ri-semanticPanel__change>span{display:flex;align-items:center;gap:4px;min-width:0;margin-top:2px;font:400 11px/14px var(--ri-ui-mono)}.ri-semanticPanel__change svg{flex:none;color:var(--ri-ui-text-3)}.ri-semanticPanel__change del,.ri-semanticPanel__change ins{min-width:0;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.ri-semanticPanel__change del{color:var(--ri-ui-danger)}.ri-semanticPanel__change ins{color:var(--ri-ui-success)}.ri-semanticPanel details{flex:none;border-top:1px solid var(--ri-ui-line)}.ri-semanticPanel details>summary{display:flex;align-items:center;height:28px;padding:0 8px;color:var(--ri-ui-text-2);cursor:pointer}.ri-semanticPanel details>label{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px;padding:0 8px 6px}.ri-semanticPanel details>label input{height:24px;padding:0 7px;border:1px solid transparent;border-radius:var(--ri-ui-radius-s);background:var(--ri-ui-panel);outline:none}.ri-semanticPanel__footer{display:flex;align-items:center;gap:4px;flex:none;height:34px;padding:0 8px;border-top:1px solid var(--ri-ui-line)}.ri-semanticPanel__footer button{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 6px;border:0;border-radius:var(--ri-ui-radius-s);background:var(--ri-ui-panel);color:var(--ri-ui-text);cursor:pointer}.ri-semanticPanel__footer button:hover{background:var(--ri-ui-gap)}.ri-semanticPanel__outlineToggle{display:inline-flex;align-items:center;gap:6px;margin-right:auto;cursor:pointer}.ri-license-overlay{display:flex;flex-direction:column;gap:4px;width:min(340px,calc(100% - 32px));padding:14px 16px;border:1px solid var(--ri-license-overlay-border, var(--ri-ui-line-strong));border-radius:var(--ri-ui-radius-m);background:var(--ri-license-overlay-bg, var(--ri-ui-raised));box-shadow:var(--ri-ui-shadow-menu);color:var(--ri-license-overlay-text, var(--ri-ui-text-2));font-family:var(--ri-ui-font)}.ri-license-overlay__header{display:flex;align-items:center;gap:8px;color:var(--ri-ui-text)}.ri-license-overlay__statusDot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--ri-ui-accent);animation:ri-license-pulse 1.2s ease-in-out infinite}@keyframes ri-license-pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.ri-license-overlay__statusDot{animation:none}}.ri-license-overlay__icon{flex:none}.ri-license-overlay__title{font-size:13px;font-weight:600;line-height:18px}.ri-license-overlay__message{margin:0;padding-left:16px;font-size:12px;font-weight:400;line-height:16px}.ri-license-overlay--error{border-color:var(--ri-license-overlay-error-border, var(--ri-ui-danger));background:var(--ri-license-overlay-error-bg, var(--ri-ui-raised));color:var(--ri-license-overlay-error-text, var(--ri-ui-text-2))}.ri-license-overlay--error .ri-license-overlay__icon{color:var(--ri-ui-danger)}.ri-license-overlay--error .ri-license-overlay__message{padding-left:24px}.ri-viewerSlot{position:relative;width:100%;height:100%;min-width:0;min-height:0}.ri-viewerPlaceholder{position:relative;overflow:hidden}.ri-viewerPlaceholder--inset{position:absolute;inset:0}.ri-poster{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:var(--ri-poster-fit, contain);pointer-events:none;user-select:none;transition:opacity .3s ease}.ri-poster--hidden{opacity:0}[data-reduced-motion] .ri-poster{transition:none}@media(prefers-reduced-motion:reduce){.ri-poster{transition:none}}.ri-revealButton{position:absolute;top:50%;left:50%;z-index:2;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:0;border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-accent);color:var(--ri-ui-on-accent);font:600 14px/1.2 Inter,Segoe UI,Helvetica,Arial,sans-serif;white-space:nowrap;cursor:pointer;transform:translate(-50%,-50%);box-shadow:none}.ri-revealButton:hover{background:var(--ri-ui-accent-hover)}.ri-revealButton:focus-visible{outline:2px solid var(--ri-ui-accent);outline-offset:3px}.ri-annotationMarker--hovered{transform:scale(1.08);box-shadow:none;background:var(--ri-ui-scrim)}.ri-viewAnnotationHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.ri-viewAnnotationTitle{margin:0;color:var(--ri-ui-text-2);font-size:12px;font-weight:600}.ri-annotationCategory{display:inline-block;margin-bottom:8px;padding:2px 7px;border-radius:var(--ri-ui-radius-s);background:var(--ri-ui-hover);color:var(--ri-ui-text-2);font-size:11px}.ri-annotationImage{display:block;width:100%;max-height:180px;object-fit:contain;border-radius:var(--ri-ui-radius-s);margin-top:10px}.ri-annotationLink{display:block;margin-top:10px;color:var(--ri-ui-accent);font-size:12px;overflow-wrap:anywhere;text-decoration:underline}.mc__wrapper{position:absolute;bottom:-10px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;z-index:100}.mc__dpad{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:20px}.mc__middle-row{display:flex;align-items:center;gap:2px}.mc__joystick{width:60px;height:60px;flex-shrink:0;background:var(--ri-ui-hover);border-radius:50%;border:1.5px solid var(--ri-ui-line);position:relative;cursor:grab;touch-action:none;transition:border-color .2s ease,box-shadow .2s ease;margin:4px;box-shadow:0 4px 16px #00000080,0 0 0 4px var(--ri-ui-accent)}.mc__joystick:hover{border-color:var(--ri-ui-line);box-shadow:0 4px 20px #0000008c,0 0 0 4px var(--ri-ui-accent)}.mc__joystick:active{cursor:grabbing;border-color:var(--ri-ui-accent);box-shadow:none}.mc__knob{position:absolute;top:50%;left:50%;width:34px;height:34px;margin-left:-17px;margin-top:-17px;background:var(--ri-ui-accent);border-radius:50%;cursor:grab;box-shadow:none;transition:transform .04s linear,box-shadow .1s ease;border:1.5px solid var(--ri-ui-line-strong)}.mc__joystick:active .mc__knob{box-shadow:none;animation:ri-mousePulse .6s ease infinite}.mc__arrow{padding:0;margin:0;background:transparent;border:none;border-radius:0;box-shadow:none;outline:none;-webkit-appearance:none;appearance:none;cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .1s ease,filter .15s ease;overflow:visible}.mc__arrow svg{display:block;pointer-events:none;user-select:none;-webkit-user-select:none;overflow:visible}.mc__arrow--up{margin-bottom:2px}.mc__arrow--up:hover{transform:scale(1.15) translateY(-2px);filter:drop-shadow(0 4px 12px rgba(66,133,244,.8))}.mc__arrow--up:active{transform:scale(.92) translateY(2px)}.mc__arrow--down{margin-top:2px}.mc__arrow--down:hover{transform:scale(1.15) translateY(2px);filter:drop-shadow(0 -4px 12px rgba(66,133,244,.8))}.mc__arrow--down:active{transform:scale(.92) translateY(-2px)}.mc__arrow--left{margin-right:2px}.mc__arrow--left:hover{transform:scale(1.15) translate(-2px);filter:drop-shadow(4px 0 12px rgba(66,133,244,.8))}.mc__arrow--left:active{transform:scale(.92) translate(2px)}.mc__arrow--right{margin-left:2px}.mc__arrow--right:hover{transform:scale(1.15) translate(2px);filter:drop-shadow(-4px 0 12px rgba(66,133,244,.8))}.mc__arrow--right:active{transform:scale(.92) translate(-2px)}@keyframes ri-mousePulse{0%,to{box-shadow:none;opacity:.85}50%{box-shadow:none;opacity:1}}@media(max-width:768px){.mc__wrapper{bottom:-5px}.mc__joystick{width:68px;height:68px}.mc__knob{width:30px;height:30px;margin-left:-15px;margin-top:-15px}.mc__arrow--up:hover{transform:scale(1.1) translateY(-1px)}.mc__arrow--down:hover{transform:scale(1.1) translateY(1px)}.mc__arrow--left:hover{transform:scale(1.1) translate(-1px)}.mc__arrow--right:hover{transform:scale(1.1) translate(1px)}}@media(max-width:480px){.mc__joystick{width:56px;height:56px}.mc__knob{width:26px;height:26px;margin-left:-13px;margin-top:-13px}.mc__arrow--up{margin-bottom:1px}.mc__arrow--down{margin-top:1px}.mc__arrow--left{margin-right:1px}.mc__arrow--right{margin-left:1px}}@media(hover:none){.mc__arrow:hover{transform:none;filter:none}.mc__arrow:active{transform:scale(.92)}}.ri-productOptions{color:var(--ri-product-text, var(--ri-ui-text));font:inherit;font-size:12px;line-height:16px}.ri-productHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;min-height:26px}.ri-productHeader strong{font-size:14px;font-weight:600}.ri-productOptions :is(button,a){display:inline-flex;align-items:center;justify-content:center;gap:5px;box-sizing:border-box;min-height:28px;padding:0 10px;border:1px solid var(--ri-ui-line-strong);border-radius:var(--ri-ui-radius-s);background:transparent;color:inherit;font:inherit;font-size:12px;text-decoration:none;cursor:pointer}.ri-productOptions :is(button,a):hover:not(:disabled){background:var(--ri-ui-hover)}.ri-productOptions :is(button,input):disabled{cursor:not-allowed;opacity:.5}.ri-productOptions :is(button,a,input):focus-visible{outline:2px solid var(--ri-ui-accent);outline-offset:2px}.ri-productOptions fieldset{min-width:0;margin:0 0 14px;padding:0;border:0}.ri-productOptions legend{display:flex;align-items:baseline;gap:4px;width:100%;margin-bottom:6px;padding:0;font-weight:500}.ri-productOptions legend small{color:var(--ri-product-muted, var(--ri-ui-text-3));font-size:11px;font-weight:400}.ri-productLegendValue{margin-left:auto;color:var(--ri-product-muted, var(--ri-ui-text-2));font-weight:400}.ri-productChoices{display:grid;gap:4px}.ri-productChoices--chips,.ri-productChoices--swatches{display:flex;flex-wrap:wrap;gap:6px}.ri-productChoice{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-s);cursor:pointer;transition:background .12s,border-color .12s}.ri-productChoice:hover{background:var(--ri-ui-hover)}.ri-productChoice input{flex-shrink:0;margin:0;accent-color:var(--ri-ui-accent);cursor:inherit}.ri-productChoice--selected{border-color:var(--ri-ui-accent);background:var(--ri-ui-accent-dim)}.ri-productChoice--unavailable{color:var(--ri-product-muted, var(--ri-ui-text-3))}.ri-productChoice--unavailable:has(input:disabled){cursor:not-allowed}.ri-productChoiceText{flex:1;min-width:0}.ri-productChoiceTitle{display:flex;justify-content:space-between;gap:8px}.ri-productOptions em{color:var(--ri-product-muted, var(--ri-ui-text-2));font-style:normal;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.ri-productChoice small{display:block;margin-top:2px;color:var(--ri-product-muted, var(--ri-ui-text-3));font-size:11px;line-height:14px}.ri-productChip{padding:5px 10px}.ri-productChip input{position:absolute;width:1px;height:1px;opacity:0}.ri-productChip em{margin-left:6px}.ri-productChip:has(input:focus-visible),.ri-productSwatch:has(input:focus-visible){outline:2px solid var(--ri-ui-accent);outline-offset:2px}.ri-productSwatch{position:relative;padding:2px;border-radius:50%}.ri-productSwatch input{position:absolute;width:1px;height:1px;opacity:0}.ri-productSwatchChip{display:block;flex-shrink:0;width:18px;height:18px;border:1px solid var(--ri-ui-line-strong);border-radius:50%}.ri-productSwatch .ri-productSwatchChip{width:24px;height:24px}.ri-productSwatch.ri-productChoice--unavailable .ri-productSwatchChip{opacity:.4}.ri-productVisuallyHidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ri-productIssues,.ri-productError{margin:8px 0;color:var(--ri-product-warning, var(--ri-ui-warning));font-size:11px;line-height:14px}ul.ri-productIssues{padding-left:16px}.ri-productError{padding:8px;border-radius:var(--ri-ui-radius-s);background:var(--ri-ui-danger-dim);color:var(--ri-product-error, var(--ri-ui-danger));overflow-wrap:anywhere}.ri-productCommerce{padding-top:12px;border-top:1px solid var(--ri-ui-line)}.ri-productCommerce p{margin:0}.ri-productQuantity{display:flex;align-items:center;justify-content:space-between;gap:12px}.ri-productQuantity input{box-sizing:border-box;width:64px;height:26px;padding:0 6px;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-s);background:var(--ri-ui-field);color:inherit;font:inherit;font-variant-numeric:tabular-nums}.ri-productCommerce .ri-productPrice{margin-top:10px;font-size:20px;line-height:24px;font-weight:600;font-variant-numeric:tabular-nums}.ri-productPrice small{display:block;color:var(--ri-product-muted, var(--ri-ui-text-3));font-size:11px;line-height:14px;font-weight:400}.ri-productSku{margin-top:2px;color:var(--ri-product-muted, var(--ri-ui-text-3));font-size:11px;overflow-wrap:anywhere}.ri-productActions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ri-productOptions .ri-productPrimary{flex:1;border-color:var(--ri-ui-accent);background:var(--ri-ui-accent);color:var(--ri-ui-on-accent);font-weight:500}.ri-productOptions .ri-productPrimary:hover:not(:disabled){background:var(--ri-ui-accent-hover)}.ri-productSuccess{margin:8px 0 0;padding:8px;border-radius:var(--ri-ui-radius-s);background:var(--ri-ui-accent-dim);color:var(--ri-product-success, var(--ri-ui-text));font-size:11px;line-height:14px}.ri-productDock{position:relative;flex:0 0 300px;box-sizing:border-box;width:300px;height:100%;padding:12px;overflow-y:auto;border-left:1px solid var(--ri-ui-line);background:var(--ri-ui-panel);color:var(--ri-ui-text)}.ri-productDock .ri-productHeader{padding-right:28px}.ri-productDockClose{position:absolute;z-index:1;top:12px;right:10px;display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:var(--ri-ui-radius-s);background:transparent;color:var(--ri-ui-text-2);cursor:pointer}.ri-productDockClose:hover{background:var(--ri-ui-hover);color:var(--ri-ui-text)}.ri-productDockToggle{position:absolute;z-index:11;top:var(--ri-product-dock-top, 12px);right:12px;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-raised);color:var(--ri-ui-text);font:inherit;font-size:12px;cursor:pointer}.ri-productDockToggle:hover{background:var(--ri-ui-hover)}@media(max-width:640px){.ri-productDock{position:absolute;z-index:12;left:0;right:0;bottom:0;width:auto;height:auto;max-height:55%;border-left:0;border-top:1px solid var(--ri-ui-line);box-shadow:var(--ri-ui-shadow-menu)}}.ri-left-panel{width:280px;min-height:0;background:var(--ri-databinding-bg, var(--ri-ui-panel));border-right:1px solid var(--ri-databinding-border, var(--ri-ui-line));display:flex;flex-direction:column;padding:24px 18px;overflow-y:auto;font-family:var( --ri-databinding-font-family, "Inter", "Segoe UI", sans-serif );flex-shrink:0;transition:margin-left .45s cubic-bezier(.4,0,.2,1);box-shadow:none}.ri-left-panel--open{margin-left:0}.ri-left-panel--closed{margin-left:-280px}.ri-left-panel::-webkit-scrollbar{width:4px}.ri-left-panel::-webkit-scrollbar-track{background:transparent}.ri-left-panel::-webkit-scrollbar-thumb{background:var(--ri-databinding-border-strong, var(--ri-ui-hover));border-radius:var(--ri-ui-radius-s)}.ri-left-panel__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--ri-databinding-border-strong, var(--ri-ui-line))}.ri-left-panel__title{font-size:12px;font-weight:600;color:var(--ri-databinding-text, var(--ri-ui-text));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:8px;margin:0}.ri-left-panel__close-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--ri-databinding-surface, var(--ri-ui-hover));border:1px solid var(--ri-databinding-border-strong, var(--ri-ui-line));border-radius:var(--ri-ui-radius-s);color:var(--ri-databinding-text-subtle, var(--ri-ui-text));font-size:12px;flex-shrink:0;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.ri-left-panel__close-btn:hover{background:var(--ri-databinding-surface-hover, var(--ri-ui-hover));color:var(--ri-databinding-text-hover, var(--ri-ui-text-2));border-color:var(--ri-databinding-border-hover, var(--ri-ui-line))}.ri-left-panel__data{padding:12px 6px;background:var(--ri-databinding-surface, var(--ri-ui-hover));border:1px solid var(--ri-databinding-border-strong, var(--ri-ui-line));border-radius:var(--ri-ui-radius-m);font-size:11px;font-family:var(--ri-ui-mono);color:var(--ri-databinding-text-muted, var(--ri-ui-text-2));line-height:1.7;overflow-x:auto;margin-bottom:18px}.ri-left-panel__divider{border:none;border-top:1px solid var(--ri-databinding-border, var(--ri-ui-line));margin-bottom:16px}.ri-left-panel__actions-label{font-size:11px;font-weight:600;color:var(--ri-databinding-text-faint, var(--ri-ui-text));margin-bottom:10px}.ri-left-panel__actions-list{display:flex;flex-direction:column;gap:6px}.ri-left-panel__action-extra{display:grid;grid-template-rows:0fr;opacity:0;margin-top:0;transition:grid-template-rows .28s cubic-bezier(.4,0,.2,1),opacity .2s ease,margin-top .28s cubic-bezier(.4,0,.2,1)}.ri-left-panel__action-extra--open{grid-template-rows:1fr;opacity:1;margin-top:4px}.ri-left-panel__action-extra-inner{overflow:hidden;min-height:0}.ri-left-panel__action-btn{position:relative;padding:9px 14px;border-radius:var(--ri-ui-radius-m);text-align:left;font-size:12px;font-weight:500;cursor:pointer;overflow:hidden;border:1px solid var(--ri-databinding-border-strong, var(--ri-ui-line));background:var(--ri-databinding-surface, var(--ri-ui-hover));color:var(--ri-databinding-text-muted, var(--ri-ui-text-2))}.ri-left-panel__action-btn:active{transform:scale(.97)}.ri-left-panel__action-btn--active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;background:var(--ri-databinding-accent, var(--ri-ui-accent));border-radius:0 3px 3px 0;box-shadow:none}.ri-left-panel__action-btn--active:hover{background:var(--ri-ui-accent);border-color:var(--ri-databinding-accent-border, var(--ri-ui-accent))}.ri-left-panel__action-btn--active:active{transform:scale(.97);background:var(--ri-ui-accent)}.ri-left-panel__data{display:flex;flex-direction:column;gap:2px;margin-bottom:18px}.ri-left-panel__data-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:var(--ri-ui-radius-m);background:var(--ri-databinding-surface, var(--ri-ui-hover));border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.ri-left-panel__data-row:hover{background:var(--ri-databinding-surface-hover, var(--ri-ui-hover));border-color:var(--ri-databinding-border-strong, var(--ri-ui-line))}.ri-left-panel__data-key{font-size:11px;font-weight:600;color:var(--ri-databinding-text-faint, var(--ri-ui-text));white-space:nowrap;flex-shrink:0}.ri-left-panel__data-value{font-size:12px;font-family:var(--ri-ui-mono);text-align:right;overflow-wrap:anywhere;word-break:break-word;min-width:0}.ri-left-panel__data-group{display:flex;flex-direction:column;gap:2px;padding:7px 10px;border-radius:var(--ri-ui-radius-m);background:var(--ri-databinding-surface, var(--ri-ui-hover));border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.ri-left-panel__data-group:hover{background:var(--ri-databinding-surface-hover, var(--ri-ui-hover));border-color:var(--ri-databinding-border-strong, var(--ri-ui-line))}.ri-left-panel__data-children{display:flex;flex-direction:column;gap:2px;margin-top:4px;padding-left:10px;border-left:1px solid var(--ri-databinding-border-strong, var(--ri-ui-line))}.ri-left-panel__data-children .ri-left-panel__data-row,.ri-left-panel__data-children .ri-left-panel__data-group{padding:3px 0;background:transparent;border-color:transparent}.ri-left-panel__data-children .ri-left-panel__data-row:hover,.ri-left-panel__data-children .ri-left-panel__data-group:hover{background:transparent}@media(max-width:900px){.ri-left-panel{width:50vw}.ri-left-panel--open{margin-left:0}.ri-left-panel--closed{margin-left:-50vw}.ri-left-panel{padding:18px 12px}.ri-left-panel__data-row{flex-direction:column;align-items:stretch;gap:2px;padding:6px 8px}.ri-left-panel__data-group{padding:6px 8px}.ri-left-panel__data-value{text-align:left;font-size:11px}.ri-left-panel__data-children{padding-left:8px}}.ri-sidepanel-wrap{height:100%;transition:width .45s cubic-bezier(.4,0,.2,1);overflow:visible}.ri-sidepanel-wrap--open{width:300px;flex-shrink:0}.ri-sidepanel-wrap--closed{width:0;flex-shrink:0;overflow:hidden}.ri-sidepanel__open-btn{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:7px;padding:7px 13px;border-radius:var(--ri-ui-radius-m);border:1px solid var(--ri-sidepanel-border-strong, var(--ri-ui-line));background:var(--ri-sidepanel-open-btn-bg, var(--ri-ui-scrim));cursor:pointer;font-size:12px;font-weight:500;color:var(--ri-sidepanel-text-muted, var(--ri-ui-text-2));z-index:190;transition:background .15s}.ri-sidepanel__open-btn:hover{background:var(--ri-sidepanel-open-btn-bg-hover, var(--ri-ui-scrim))}.ri-sidepanel{position:absolute;top:0;right:0;width:300px;height:100%;background:var(--ri-sidepanel-bg, var(--ri-ui-panel));display:flex;flex-direction:column;font-family:var( --ri-sidepanel-font-family, Inter, "Segoe UI", Helvetica, Arial, sans-serif );transform:translate(100%);transition:transform .45s cubic-bezier(.4,0,.2,1);z-index:200;border-left:1px solid var(--ri-sidepanel-border, var(--ri-ui-line));box-shadow:none}.ri-sidepanel--open{transform:translate(0)}.ri-sidepanel--closed{transform:translate(100%)}.ri-sidepanel__header{padding:24px 20px 16px;border-bottom:1px solid var(--ri-sidepanel-border-strong, var(--ri-ui-line))}.ri-sidepanel__header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.ri-sidepanel__eyebrow{font-size:11px;font-weight:600;color:var(--ri-sidepanel-text-subtle, var(--ri-ui-text))}.ri-sidepanel__title{font-size:14px;font-weight:600;color:var(--ri-sidepanel-text, var(--ri-ui-text));margin:0;line-height:1.2}.ri-sidepanel__close-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--ri-ui-radius-m);border:1px solid var(--ri-sidepanel-border-strong, var(--ri-ui-line));background:var(--ri-sidepanel-surface, var(--ri-ui-hover));cursor:pointer;color:var(--ri-sidepanel-text-muted, var(--ri-ui-text-2));transition:background .15s,color .15s;flex-shrink:0}.ri-sidepanel__close-btn:hover{background:var(--ri-sidepanel-surface-hover, var(--ri-ui-hover));color:var(--ri-sidepanel-text, var(--ri-ui-text))}.ri-sidepanel__search-wrap{padding:14px 16px;border-bottom:1px solid var(--ri-sidepanel-border-strong, var(--ri-ui-line))}.ri-sidepanel__search{width:100%;padding:10px 14px;border-radius:var(--ri-ui-radius-m);border:1px solid var(--ri-sidepanel-border-strong, var(--ri-ui-line));background:var(--ri-sidepanel-surface, var(--ri-ui-hover));color:var(--ri-sidepanel-text, var(--ri-ui-accent));font-size:12px;outline:none;box-sizing:border-box;transition:border-color .15s,background .15s}.ri-sidepanel__search::placeholder{color:var(--ri-sidepanel-placeholder, var(--ri-ui-text))}.ri-sidepanel__search:focus{border-color:var(--ri-sidepanel-border-active, var(--ri-ui-line));background:var(--ri-sidepanel-surface-hover, var(--ri-ui-hover))}.ri-sidepanel__list{display:flex;flex-direction:column;padding:10px 0;overflow-y:auto;flex:1}.ri-sidepanel__list::-webkit-scrollbar{width:4px}.ri-sidepanel__list::-webkit-scrollbar-track{background:transparent}.ri-sidepanel__list::-webkit-scrollbar-thumb{background:var(--ri-sidepanel-surface-hover, var(--ri-ui-hover));border-radius:var(--ri-ui-radius-s)}.ri-sidepanel__row{display:flex;justify-content:space-between;padding:12px 20px;cursor:pointer;width:100%;border:none;background:transparent;color:inherit;font:inherit;text-align:left;appearance:none;-webkit-appearance:none;transition:background .12s;border-bottom:1px solid var(--ri-sidepanel-divider, var(--ri-ui-line))}.ri-sidepanel__row:hover,.ri-sidepanel__row--hovered{background:var(--ri-sidepanel-surface, var(--ri-ui-hover))}.ri-sidepanel__label{font-size:12px;font-weight:600;color:var(--ri-sidepanel-text-muted, var(--ri-ui-text-2));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ri-sidepanel__label--hovered{color:var(--ri-sidepanel-text-emphasis, var(--ri-ui-text))}.ri-sidepanel__vis-btn{display:flex;align-items:center;flex-shrink:0;cursor:pointer;background:none;border:none;padding:0;margin-left:10px}.ri-sidepanel__checkbox{width:16px;height:16px;border-radius:var(--ri-ui-radius-s);border:1.5px solid var(--ri-sidepanel-border-active, var(--ri-ui-line));background:transparent;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.ri-sidepanel__checkbox--checked{background:var(--ri-sidepanel-accent, var(--ri-ui-accent));border-color:var(--ri-sidepanel-accent, var(--ri-ui-accent))}@media(max-width:900px){.ri-sidepanel-wrap--open,.ri-sidepanel{width:50vw}}.ri-sidepanel__isolate-btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;margin-left:auto;padding:0;border:none;border-radius:var(--ri-ui-radius-s);background:none;color:var(--ri-sidepanel-muted, var(--ri-ui-text-3));cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease}.ri-sidepanel__row:hover .ri-sidepanel__isolate-btn,.ri-sidepanel__row--hovered .ri-sidepanel__isolate-btn,.ri-sidepanel__isolate-btn:focus-visible,.ri-sidepanel__isolate-btn--active{opacity:1}@media(hover:none){.ri-sidepanel__isolate-btn{opacity:1}}.ri-sidepanel__isolate-btn:hover{color:var(--ri-sidepanel-text, var(--ri-ui-text))}.ri-sidepanel__isolate-btn--active,.ri-sidepanel__isolate-btn--active:hover{color:var(--ri-sidepanel-accent, var(--ri-ui-accent))}.ri-sidepanel__row--setAside .ri-sidepanel__label{opacity:.45}.ri-sidepanel__labelButton{flex:1 1 auto;min-width:0;padding:0;background:none;border:none;font:inherit;font-size:12px;font-weight:600;text-align:left;cursor:pointer}.ri-sidepanel__labelButton:focus-visible{outline:2px solid var(--ri-panel-accent, var(--ri-ui-accent));outline-offset:2px;border-radius:var(--ri-ui-radius-s)}.bb-loadingOverlay{position:absolute;inset:0;z-index:var(--ri-ui-z-overlay);display:flex;align-items:center;justify-content:center;padding:16px;background:var(--ri-ui-panel)}.bb-root .bb-loadingOverlay{background:var(--ri-ui-scrim)}.ri-canvasArea .bb-loadingOverlay{z-index:12}.smv-canvasArea .bb-loadingOverlay{z-index:110}.bb-loadingCard{display:grid;gap:8px;box-sizing:border-box;width:min(100%,280px);padding:12px 14px;border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);background:var(--ri-ui-raised);box-shadow:var(--ri-ui-shadow-menu);font-size:12px;line-height:16px;text-align:left}.bb-loadingHeader{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.bb-loadingTitle{min-width:0;overflow:hidden;color:var(--ri-ui-text);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.bb-loadingPercent{flex-shrink:0;color:var(--ri-ui-text-2);font-variant-numeric:tabular-nums}.bb-loadingProgress{height:3px;overflow:hidden;border-radius:2px;background:var(--ri-ui-line-strong)}.bb-loadingProgress__bar{height:100%;border-radius:inherit;background:var(--ri-ui-accent)}.bb-loadingProgress--unknown .bb-loadingProgress__bar{width:35%;animation:bb-loadingSlide 1.2s ease-in-out infinite}@keyframes bb-loadingSlide{0%{transform:translate(-100%)}to{transform:translate(290%)}}@media(prefers-reduced-motion:reduce){.bb-loadingProgress--unknown .bb-loadingProgress__bar{width:100%;opacity:.4;animation:none}}.bb-loadingMessage{color:var(--ri-ui-text-3);font-size:11px;line-height:14px}.ri-assetDiagnostics{color:var(--ri-diagnostics-text,var(--ri-ui-accent));font:inherit;font-size:12px;line-height:1.5;min-width:0}.ri-diagnosticsActions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.ri-assetDiagnostics button{border:1px solid var(--ri-ui-line);background:var(--ri-ui-hover);color:inherit;border-radius:var(--ri-ui-radius-s);font:inherit;font-size:11px;padding:7px 10px;cursor:pointer}.ri-assetDiagnostics button:hover{border-color:var(--ri-ui-accent)}.ri-assetDiagnostics button:focus-visible{outline:2px solid var(--ri-ui-accent);outline-offset:2px}.ri-assetDiagnostics button:disabled{opacity:.4;cursor:default}.ri-diagnosticsSummary{padding:11px 12px;border:1px solid var(--ri-ui-line-strong);background:var(--ri-ui-hover);border-radius:var(--ri-ui-radius-m);margin-bottom:14px}.ri-diagnosticsSummary strong,.ri-diagnosticsSummary span{display:block}.ri-diagnosticsSummary span{color:var(--ri-diagnostics-muted,var(--ri-ui-text-2));font-size:11px;margin-top:3px}.ri-diagnosticsSummary--error{border-color:var(--ri-ui-danger)}.ri-diagnosticsSummary--warning{border-color:var(--ri-ui-warning)}.ri-diagnosticsMetrics{margin:0}.ri-diagnosticsMetrics>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:7px 0;border-bottom:1px solid var(--ri-ui-line)}.ri-diagnosticsMetrics dt{color:var(--ri-diagnostics-muted,var(--ri-ui-text-2));font-size:11px;flex:1 1 45%}.ri-diagnosticsMetrics dd{flex:1 1 55%;margin:0;text-align:right;font-size:11px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.ri-diagnosticsNote{font-size:11px;color:var(--ri-diagnostics-muted,var(--ri-ui-text-2));line-height:1.7;margin:12px 0}.ri-diagnosticsIssues{display:grid;gap:8px;margin:16px 0}.ri-diagnosticsIssue,.ri-diagnosticsDetail{border:1px solid var(--ri-ui-line);border-radius:var(--ri-ui-radius-m);overflow:hidden}.ri-diagnosticsIssue summary,.ri-diagnosticsDetail summary{cursor:pointer;padding:10px;font-size:11px;font-weight:500;overflow-wrap:anywhere}.ri-diagnosticsSeverity{display:inline-block;font-size:11px;margin-right:7px;color:var(--ri-ui-text-2)}.ri-diagnosticsIssue--warning .ri-diagnosticsSeverity{color:var(--ri-ui-warning)}.ri-diagnosticsIssue--error .ri-diagnosticsSeverity{color:var(--ri-ui-danger)}.ri-diagnosticsCount{float:right;color:var(--ri-diagnostics-muted,var(--ri-ui-text-2));margin-left:6px}.ri-diagnosticsIssue>div{padding:0 12px 12px;font-size:11px}.ri-diagnosticsIssue p{margin:5px 0 10px;color:var(--ri-diagnostics-muted,var(--ri-ui-text-2))}.ri-diagnosticsIssue .ri-diagnosticsFix{color:inherit}.ri-diagnosticsIssue ul{padding-left:18px;margin:5px 0;max-height:180px;overflow:auto}.ri-diagnosticsIssue li{overflow-wrap:anywhere}.ri-diagnosticsIssue li button{border:0;padding:3px 0;background:transparent;color:var(--ri-ui-text-2);text-align:left}.ri-diagnosticsDetail{margin:10px 0}.ri-diagnosticsDetail>ul{list-style:none;padding:0 12px;margin:0 0 12px;max-height:240px;overflow:auto}.ri-diagnosticsDetail li{padding:6px 0;font-size:11px;border-top:1px solid var(--ri-ui-line);overflow-wrap:anywhere}.ri-diagnosticsDetail li strong{font-weight:500}.ri-diagnosticsDetail li span{display:block;color:var(--ri-diagnostics-muted,var(--ri-ui-text-2))}.ri-diagnosticsDetail>.ri-diagnosticsNote{padding:0 12px}.ri-diagnosticsRuntime{margin-top:20px;padding-top:16px;border-top:1px solid var(--ri-ui-line)}.ri-diagnosticsRuntime h4{margin:0 0 12px;font-size:12px;font-weight:600}.ri-diagnosticsRuntime h4 span{float:right;color:var(--ri-diagnostics-muted,var(--ri-ui-text-2));font-size:11px;font-weight:400}.ri-diagnosticsPressure{border-left:2px solid var(--ri-ui-warning);padding-left:10px;font-size:11px;color:var(--ri-ui-warning)}.ri-diagnosticsSource{font-size:11px;overflow-wrap:anywhere;margin:12px 0}.ri-diagnosticsSource span{color:var(--ri-diagnostics-muted,var(--ri-ui-text-2));font-size:11px;margin-left:5px}.ri-diagnosticsDetail>.ri-diagnosticsMetrics{padding:0 11px}.ri-diagnosticsRuntimeDetail>.ri-diagnosticsRuntime{margin:0;padding:4px 11px 12px;border:0}
package/dist/index.d.mts CHANGED
@@ -1,10 +1,11 @@
1
1
  import * as react from 'react';
2
- import { ag as ModelViewerProps, bk as SemanticComparisonOptions, K as ConfigurationComparisonReport, ao as ObjectBinding, az as ObjectBindingTarget, av as ObjectBindingPatch, B as BindingEdit, as as ObjectBindingMaterial, aB as ObjectBindingTextureSlot, aA as ObjectBindingTextureChannel, aC as ObjectBindingTransform, ar as ObjectBindingDecal, aX as SceneConfig, aZ as SceneConfigPatch, b0 as SceneLight, b1 as SceneLightAttachment, bI as ViewerIsolation, ap as ObjectBindingAction, an as ObjectActionEvent, bB as ViewerAnimationsProps, bE as ViewerCameraProps, bK as ViewerReadyState, x as CaptureImageOptions, y as CaptureVideoOptions, bJ as ViewerObjectInfo, bA as UseViewerCameraOptions, bv as ShareableViewerState, bF as ViewerCameraState, bG as ViewerConfiguration, bM as ViewerStateStorage, ad as ModelViewerModelEntry, t as AssetTransform, q as AssetDiagnosticsReport, bL as ViewerRuntimeStats, bm as SequenceControls, bq as SequencePlaybackState } from './modelViewerProps-Ce4-wb57.mjs';
3
- export { A as ARExportOptions, a as ARHandoffOptions, b as ARHandoffRequest, c as ARHandoffStatus, d as ARSnapshot, e as ARSnapshotSource, f as AnimationAction, g as AnimationActionEffect, h as AnimationClipInfo, i as AnimationClipState, j as AnimationClipStatus, k as AnimationControls, l as AnimationLoopMode, m as AnimationPlayOptions, n as AnimationPlaybackState, o as AnnotationMarker, p as AssetDiagnosticIssue, r as AssetDiagnosticsSource, s as AssetTextureDiagnostic, C as CameraAction, u as CameraActionEffect, v as CameraControllerType, w as CameraLimits, z as CinematicConfig, D as CinematicWaypoint, E as ComparisonCategory, F as ComparisonChange, G as ComparisonHighlight, H as ComparisonObject, I as ComparisonStatus, J as ConfigurationComparisonInput, L as CustomObjectBindingDataPanelProps, M as CustomSceneObjectsPanelProps, N as DEFAULT_SCENE_CONFIG, O as DEFAULT_SECTION_CONFIG, P as DecalMoveTarget, Q as DeepPartial, R as EnvironmentPreset, S as GlitchModeName, T as GroupedModelViewerProps, U as HomeCameraState, V as InspectAssetOptions, W as IsolatedObjectBindings, X as IsolationActionEffect, Y as KernelSizeName, Z as MATERIAL_BLENDING_MODES, _ as MATERIAL_SIDES, $ as MAX_VIEWER_STATE_BYTES, a0 as MODEL_VIEWER_PRESETS, a1 as MeasurementAnchor, a2 as MeasurementCollection, a3 as MeasurementPoint, a4 as MeasurementPosition, a5 as MeasurementResult, a6 as MeasurementSettings, a7 as MeasurementStatus, a8 as MeasurementTool, a9 as MeasurementUnit, aa as ModelMergeSource, ab as ModelViewerControlsOptions, ac as ModelViewerDecoderOptions, ae as ModelViewerPerfOptions, af as ModelViewerPreset, ah as ModelViewerTilesOptions, ai as ModelViewerToolsOptions, aj as ModelViewerUiOptions, ak as ModelViewerXrOptions, al as MouseControllerPosition, am as ObjectActionEffect, aq as ObjectBindingCameraState, at as ObjectBindingMaterialBlendingMode, au as ObjectBindingMaterialSide, aw as ObjectBindingSelector, ax as ObjectBindingStatus, ay as ObjectBindingStyle, aD as ObjectBindingType, aE as ObjectBindingsActionEffect, aF as ObjectPointerEvent, aG as ObjectSurfacePoint, aH as ObjectTransformSpace, aI as PerformanceProfile, aJ as RampTypeName, aK as RendererBackend, aL as SavedMeasurement, aM as SceneAnimationClipConfig, aN as SceneAnimationConfig, aO as SceneAnnotationCameraView, aP as SceneAnnotationImage, aQ as SceneAnnotationLink, aR as SceneAnnotationMarker, aS as SceneBackgroundConfig, aT as SceneCameraConfig, aU as SceneCinematicConfig, aV as SceneCinematicWaypoint, aY as SceneConfigActionEffect, a_ as SceneEnvironmentConfig, a$ as SceneGroundShadowConfig, b2 as SceneLightType, b3 as SceneLightingConfig, b4 as SceneModelConfig, b5 as SceneModelRenderer, b6 as ScenePostProcessingConfig, b7 as SceneSectionAxis, b8 as SceneSectionConfig, b9 as SceneSectionPlane, ba as SceneSectionPreset, bb as SceneSectionSettings, bc as SceneSelectionSet, bd as SceneSequence, be as SceneShadowConfig, bf as SceneStyleColorScale, bg as SceneStyleCondition, bh as SceneStylePulse, bi as SceneStyleRule, bj as SceneWireframeConfig, bl as SequenceCameraView, bn as SequenceEasing, bo as SequenceKeyframe, bp as SequenceObjectProperty, br as SequenceTarget, bs as SequenceTrack, bt as SequenceValue, bu as SequenceVector3, bw as StreamingDiagnostics, bx as StyledObjectBindings, by as StyledObjectPulse, bz as TexturePositioningControls, bC as ViewerCameraConfig, bD as ViewerCameraPreset, bH as ViewerEngagementEvent, bN as VisibilityActionEffect, bO as XRScaleMode, bP as applyIsolation, bQ as applyStyleRules, bR as colorScaleValue, bS as compareViewerConfigurations, bT as groundAsset, bU as isolatedBindingKeys, bV as material, bW as parseAssetTransform, bX as parseSelectionSets, bY as parseViewerState, bZ as patchBindings, b_ as patchSceneConfig, b$ as prepareViewerState, c0 as selectBindingKeys, c1 as selectBindings, c2 as serializeViewerState, c3 as snapAssetToGrid, c4 as useViewerAnimations, c5 as useViewerCamera } from './modelViewerProps-Ce4-wb57.mjs';
2
+ import { ReactNode } from 'react';
3
+ import { ag as ModelViewerProps, bG as SemanticComparisonOptions, K as ConfigurationComparisonReport, ao as ObjectBinding, az as ObjectBindingTarget, av as ObjectBindingPatch, B as BindingEdit, as as ObjectBindingMaterial, aB as ObjectBindingTextureSlot, aA as ObjectBindingTextureChannel, aC as ObjectBindingTransform, ar as ObjectBindingDecal, bg as SceneConfig, bi as SceneConfigPatch, bl as SceneLight, bm as SceneLightAttachment, c2 as ViewerIsolation, ap as ObjectBindingAction, an as ObjectActionEvent, bX as ViewerAnimationsProps, b_ as ViewerCameraProps, c5 as ViewerReadyState, x as CaptureImageOptions, y as CaptureVideoOptions, c3 as ViewerObjectInfo, bW as UseViewerCameraOptions, bR as ShareableViewerState, b$ as ViewerCameraState, c0 as ViewerConfiguration, c7 as ViewerStateStorage, ad as ModelViewerModelEntry, t as AssetTransform, aS as ProductDefinition, aQ as ProductConfiguration, aZ as ProductOptionState, b0 as ProductSelections, a_ as ProductPrice, aK as ProductAvailability, aP as ProductCommerceResult, aN as ProductCommerceAdapter, q as AssetDiagnosticsReport, c6 as ViewerRuntimeStats, bI as SequenceControls, bM as SequencePlaybackState } from './modelViewerProps-C7saa0i2.mjs';
4
+ export { A as ARExportOptions, a as ARHandoffOptions, b as ARHandoffRequest, c as ARHandoffStatus, d as ARSnapshot, e as ARSnapshotSource, f as AnimationAction, g as AnimationActionEffect, h as AnimationClipInfo, i as AnimationClipState, j as AnimationClipStatus, k as AnimationControls, l as AnimationLoopMode, m as AnimationPlayOptions, n as AnimationPlaybackState, o as AnnotationMarker, p as AssetDiagnosticIssue, r as AssetDiagnosticsSource, s as AssetTextureDiagnostic, C as CameraAction, u as CameraActionEffect, v as CameraControllerType, w as CameraLimits, z as CinematicConfig, D as CinematicWaypoint, E as ComparisonCategory, F as ComparisonChange, G as ComparisonHighlight, H as ComparisonObject, I as ComparisonStatus, J as ConfigurationComparisonInput, L as CustomObjectBindingDataPanelProps, M as CustomSceneObjectsPanelProps, N as DEFAULT_SCENE_CONFIG, O as DEFAULT_SECTION_CONFIG, P as DecalMoveTarget, Q as DeepPartial, R as EnvironmentPreset, S as GlitchModeName, T as GroupedModelViewerProps, U as HomeCameraState, V as InspectAssetOptions, W as IsolatedObjectBindings, X as IsolationActionEffect, Y as KernelSizeName, Z as MATERIAL_BLENDING_MODES, _ as MATERIAL_SIDES, $ as MAX_VIEWER_STATE_BYTES, a0 as MODEL_VIEWER_PRESETS, a1 as MeasurementAnchor, a2 as MeasurementCollection, a3 as MeasurementPoint, a4 as MeasurementPosition, a5 as MeasurementResult, a6 as MeasurementSettings, a7 as MeasurementStatus, a8 as MeasurementTool, a9 as MeasurementUnit, aa as ModelMergeSource, ab as ModelViewerControlsOptions, ac as ModelViewerDecoderOptions, ae as ModelViewerPerfOptions, af as ModelViewerPreset, ah as ModelViewerTilesOptions, ai as ModelViewerToolsOptions, aj as ModelViewerUiOptions, ak as ModelViewerXrOptions, al as MouseControllerPosition, am as ObjectActionEffect, aq as ObjectBindingCameraState, at as ObjectBindingMaterialBlendingMode, au as ObjectBindingMaterialSide, aw as ObjectBindingSelector, ax as ObjectBindingStatus, ay as ObjectBindingStyle, aD as ObjectBindingType, aE as ObjectBindingsActionEffect, aF as ObjectPointerEvent, aG as ObjectSurfacePoint, aH as ObjectTransformSpace, aI as PerformanceProfile, aJ as ProductAppearance, aL as ProductCheckoutContext, aM as ProductCheckoutLink, aO as ProductCommerceContext, aR as ProductConfigurationIssue, aT as ProductDefinitionWarning, aU as ProductGroupDisplay, aV as ProductOption, aW as ProductOptionGroup, aX as ProductOptionRef, aY as ProductOptionRule, a$ as ProductPricing, b1 as ProductSku, b2 as RampTypeName, b3 as RendererBackend, b4 as SavedMeasurement, b5 as SceneAnimationClipConfig, b6 as SceneAnimationConfig, b7 as SceneAnnotationCameraView, b8 as SceneAnnotationImage, b9 as SceneAnnotationLink, ba as SceneAnnotationMarker, bb as SceneBackgroundConfig, bc as SceneCameraConfig, bd as SceneCinematicConfig, be as SceneCinematicWaypoint, bh as SceneConfigActionEffect, bj as SceneEnvironmentConfig, bk as SceneGroundShadowConfig, bn as SceneLightType, bo as SceneLightingConfig, bp as SceneModelConfig, bq as SceneModelRenderer, br as ScenePostProcessingConfig, bs as SceneProductConfig, bt as SceneSectionAxis, bu as SceneSectionConfig, bv as SceneSectionPlane, bw as SceneSectionPreset, bx as SceneSectionSettings, by as SceneSelectionSet, bz as SceneSequence, bA as SceneShadowConfig, bB as SceneStyleColorScale, bC as SceneStyleCondition, bD as SceneStylePulse, bE as SceneStyleRule, bF as SceneWireframeConfig, bH as SequenceCameraView, bJ as SequenceEasing, bK as SequenceKeyframe, bL as SequenceObjectProperty, bN as SequenceTarget, bO as SequenceTrack, bP as SequenceValue, bQ as SequenceVector3, bS as StreamingDiagnostics, bT as StyledObjectBindings, bU as StyledObjectPulse, bV as TexturePositioningControls, bY as ViewerCameraConfig, bZ as ViewerCameraPreset, c1 as ViewerEngagementEvent, c4 as ViewerProductOptions, c8 as VisibilityActionEffect, c9 as XRScaleMode, ca as applyIsolation, cb as applyStyleRules, cc as colorScaleValue, cd as compareViewerConfigurations, ce as groundAsset, cf as isolatedBindingKeys, cg as material, ch as parseAssetTransform, ci as parseSelectionSets, cj as parseViewerState, ck as patchBindings, cl as patchSceneConfig, cm as prepareViewerState, cn as selectBindingKeys, co as selectBindings, cp as serializeViewerState, cq as snapAssetToGrid, cr as useViewerAnimations, cs as useViewerCamera } from './modelViewerProps-C7saa0i2.mjs';
4
5
  import { SceneLightInput } from './utils.mjs';
5
- export { ACTION_CATALOG, ActionCatalogEntry, ActionHandling, MEASUREMENT_UNITS, ObjectBindingActionId, ObjectBindingKey, SEQUENCE_EASINGS, SEQUENCE_OBJECT_PROPERTIES, ViewerHierarchyNode, buildBindingsFromNodes, calibrateMeasurements, collectObjectHierarchy, copyBindingStyle, createARHandoffUrl, createDefaultBinding, defineObjectBindings, exportConfiguredUSDZ, findCatalogAction, inferType, inspectAsset, measurementResult, measurementScale, measurementValue, measurementsToCsv, parseMeasurements, parseSectionConfig, parseSequences, pasteBindingStyle, readARHandoffUrl, sampleSequenceTrack, sceneLight, sectionSnapshot, serializeMeasurements, upsertSequenceKeyframe } from './utils.mjs';
6
- import { e as ViewerModelBounds, M as MaterialVariantGroup, f as ViewerModelInfo } from './modelFileResolver-Co7j1tdQ.mjs';
7
- export { D as DEFAULT_MODEL_VIEWER_LABELS, a as MaterialVariantOption, b as ModelFormat, c as ModelViewerLabelKey, d as ModelViewerLabels, R as ReducedMotionSetting, V as ViewerLoading, g as ViewerReveal, h as chooseMaterialVariant } from './modelFileResolver-Co7j1tdQ.mjs';
6
+ export { ACTION_CATALOG, ActionCatalogEntry, ActionHandling, MEASUREMENT_UNITS, ObjectBindingActionId, ObjectBindingKey, SEQUENCE_EASINGS, SEQUENCE_OBJECT_PROPERTIES, ViewerHierarchyNode, applyProductOptions, buildBindingsFromNodes, calibrateMeasurements, collectObjectHierarchy, copyBindingStyle, createARHandoffUrl, createDefaultBinding, decodeProductSelections, defaultProductSelections, defineObjectBindings, encodeProductSelections, evaluateProductConfiguration, exportConfiguredUSDZ, findCatalogAction, formatProductPrice, generateProductSkus, inferType, inspectAsset, measurementResult, measurementScale, measurementValue, measurementsToCsv, parseMeasurements, parseProductConfiguration, parseProductDefinition, parseSceneProduct, parseSectionConfig, parseSequences, pasteBindingStyle, productCheckoutUrl, productDefinitionWarnings, productOptionStates, productPriceFromDefinition, readARHandoffUrl, resolveProductSelections, sampleSequenceTrack, sceneLight, sectionSnapshot, serializeMeasurements, serializeProductConfiguration, upsertSequenceKeyframe } from './utils.mjs';
7
+ import { e as ViewerModelBounds, M as MaterialVariantGroup, f as ViewerModelInfo } from './modelFileResolver-BEW_95id.mjs';
8
+ export { D as DEFAULT_MODEL_VIEWER_LABELS, a as MaterialVariantOption, b as ModelFormat, c as ModelViewerLabelKey, d as ModelViewerLabels, R as ReducedMotionSetting, V as ViewerLoading, g as ViewerReveal, h as chooseMaterialVariant } from './modelFileResolver-BEW_95id.mjs';
8
9
  import 'three';
9
10
  import '@react-three/drei';
10
11
 
@@ -469,6 +470,65 @@ declare function useViewerModels(initialModels: ModelViewerModelEntry[]): {
469
470
  updateModelTransform: (id: string, transform: AssetTransform) => void;
470
471
  };
471
472
 
473
+ type UseProductConfiguratorOptions = {
474
+ product: ProductDefinition;
475
+ selections?: ProductSelections;
476
+ initialSelections?: ProductSelections;
477
+ onSelectionsChange?: (selections: ProductSelections) => void;
478
+ adapter?: ProductCommerceAdapter;
479
+ objectBindings?: Record<string, ObjectBinding>;
480
+ sceneConfig?: SceneConfig;
481
+ initialQuantity?: number;
482
+ };
483
+ type ProductConfigurator = {
484
+ product: ProductDefinition;
485
+ configuration: ProductConfiguration;
486
+ optionStates: ProductOptionState[];
487
+ selectOption: (groupId: string, optionId: string | null) => boolean;
488
+ /** Chooses an option, also changing whatever a rule needs for it to be allowed. */
489
+ selectOptionWithFix: (groupId: string, optionId: string) => boolean;
490
+ setSelections: (selections: ProductSelections) => void;
491
+ reset: () => void;
492
+ setQuantity: (quantity: number) => void;
493
+ exportConfiguration: () => string;
494
+ importConfiguration: (input: unknown) => void;
495
+ viewerProps: {
496
+ objectBindings?: Record<string, ObjectBinding>;
497
+ sceneConfig: SceneConfig;
498
+ };
499
+ status: "idle" | "loading" | "ready" | "error";
500
+ /** From the pricing service if there is one, otherwise the definition's own pricing. */
501
+ price: ProductPrice | null;
502
+ /** Where to buy this configuration, from the definition's checkout link. */
503
+ checkoutUrl: string | null;
504
+ availability: ProductAvailability | null;
505
+ error: string | null;
506
+ readOnly: boolean;
507
+ pendingAction: "cart" | "quote" | null;
508
+ result: ProductCommerceResult | null;
509
+ canAddToCart: boolean;
510
+ canRequestQuote: boolean;
511
+ hasCommerce: boolean;
512
+ hasCart: boolean;
513
+ hasQuote: boolean;
514
+ addToCart: () => Promise<ProductCommerceResult>;
515
+ requestQuote: () => Promise<ProductCommerceResult>;
516
+ refresh: () => void;
517
+ };
518
+ /** Owns choices and an abortable commerce lifecycle; services remain application-owned. */
519
+ declare function useProductConfigurator(options: UseProductConfiguratorOptions): ProductConfigurator;
520
+
521
+ type ProductOptionsProps = {
522
+ configurator: ProductConfigurator;
523
+ className?: string;
524
+ /** Show the price, quantity and buying actions. */
525
+ showCommerce?: boolean;
526
+ /** Extra actions beside the buying actions, such as a share button. */
527
+ actions?: ReactNode;
528
+ };
529
+ /** Optional accessible UI; the hook can also drive application-owned controls. */
530
+ declare function ProductOptions({ configurator: c, className, showCommerce, actions }: ProductOptionsProps): react.JSX.Element;
531
+
472
532
  type AssetDiagnosticsPanelProps = {
473
533
  report: AssetDiagnosticsReport | null;
474
534
  runtimeStats?: ViewerRuntimeStats | null;
@@ -491,4 +551,4 @@ type ViewerSequencesProps = {
491
551
  /** Connect to ModelViewer.onSequencesReady for programmatic sequence playback. */
492
552
  declare function useViewerSequences(): ViewerSequencesProps;
493
553
 
494
- export { AssetDiagnosticsPanel, type AssetDiagnosticsPanelProps, AssetDiagnosticsReport, AssetTransform, BindingEdit, CaptureImageOptions, CaptureVideoOptions, CompareViewer, type CompareViewerProps, type CompareViewerSide, ConfigurationComparisonReport, type HiddenObjectsState, MaterialVariantGroup, PublicModelViewer as ModelViewer, ModelViewerModelEntry, ModelViewerProps, ObjectActionEvent, ObjectBinding, ObjectBindingAction, ObjectBindingDecal, ObjectBindingMaterial, ObjectBindingPatch, ObjectBindingTarget, ObjectBindingTextureChannel, ObjectBindingTextureSlot, ObjectBindingTransform, type ObjectBindingsController, type RuntimeMaterialPatch, type RuntimeMaterialRanges, type RuntimePointLightOptions, type RuntimePointLightPatch, type RuntimeTransformPatch, type RuntimeTransformRanges, SceneConfig, type SceneConfigController, SceneConfigPatch, type SceneConfigUpdate, SceneLight, SceneLightAttachment, SceneLightInput, type SceneLightPatch, type SceneLightsController, SemanticComparisonOptions, SequenceControls, SequencePlaybackState, ShareableViewerState, type ShareableViewerStateProps, type UseShareableViewerStateOptions, UseViewerCameraOptions, type UseViewerEffectsOptions, type UseViewerOptions, type UseViewerProps, type UseViewerResult, type ViewerActionAnimationController, type ViewerActionBindingsController, type ViewerActionCameraController, type ViewerActionIsolationController, type ViewerActionSceneController, type ViewerActionsOptions, type ViewerActionsProps, ViewerAnimationsProps, ViewerCameraProps, ViewerCameraState, ViewerConfiguration, type ViewerConnectionController, type ViewerEffectChannels, type ViewerEffectEasing, type ViewerEffectRange, type ViewerEffectTarget, type ViewerEffectsController, type ViewerFlickerOptions, type ViewerHoverProps, ViewerIsolation, type ViewerIsolationProps, type ViewerLightEffectChannel, type ViewerMaterialEffectChannel, ViewerModelBounds, ViewerModelInfo, type ViewerModelProps, ViewerObjectInfo, type ViewerPulseOptions, type ViewerReadyConsumer, type ViewerReadyHandler, ViewerReadyState, ViewerRuntimeStats, type ViewerSelectionProps, type ViewerSequencesProps, ViewerStateStorage, type ViewerTimelineOptions, type ViewerTimelineStep, type ViewerTransformEffectChannel, type ViewerTransitionOptions, type ViewerVector3, useObjectBinding, useObjectBindingIds, useObjectBindings, useSceneConfig, useShareableViewerState, useViewer, useViewerActions, useViewerConnection, useViewerEffects, useViewerHover, useViewerIsolation, useViewerModel, useViewerModels, useViewerSelection, useViewerSequences };
554
+ export { AssetDiagnosticsPanel, type AssetDiagnosticsPanelProps, AssetDiagnosticsReport, AssetTransform, BindingEdit, CaptureImageOptions, CaptureVideoOptions, CompareViewer, type CompareViewerProps, type CompareViewerSide, ConfigurationComparisonReport, type HiddenObjectsState, MaterialVariantGroup, PublicModelViewer as ModelViewer, ModelViewerModelEntry, ModelViewerProps, ObjectActionEvent, ObjectBinding, ObjectBindingAction, ObjectBindingDecal, ObjectBindingMaterial, ObjectBindingPatch, ObjectBindingTarget, ObjectBindingTextureChannel, ObjectBindingTextureSlot, ObjectBindingTransform, type ObjectBindingsController, ProductAvailability, ProductCommerceAdapter, ProductCommerceResult, ProductConfiguration, type ProductConfigurator, ProductDefinition, ProductOptionState, ProductOptions, type ProductOptionsProps, ProductPrice, ProductSelections, type RuntimeMaterialPatch, type RuntimeMaterialRanges, type RuntimePointLightOptions, type RuntimePointLightPatch, type RuntimeTransformPatch, type RuntimeTransformRanges, SceneConfig, type SceneConfigController, SceneConfigPatch, type SceneConfigUpdate, SceneLight, SceneLightAttachment, SceneLightInput, type SceneLightPatch, type SceneLightsController, SemanticComparisonOptions, SequenceControls, SequencePlaybackState, ShareableViewerState, type ShareableViewerStateProps, type UseProductConfiguratorOptions, type UseShareableViewerStateOptions, UseViewerCameraOptions, type UseViewerEffectsOptions, type UseViewerOptions, type UseViewerProps, type UseViewerResult, type ViewerActionAnimationController, type ViewerActionBindingsController, type ViewerActionCameraController, type ViewerActionIsolationController, type ViewerActionSceneController, type ViewerActionsOptions, type ViewerActionsProps, ViewerAnimationsProps, ViewerCameraProps, ViewerCameraState, ViewerConfiguration, type ViewerConnectionController, type ViewerEffectChannels, type ViewerEffectEasing, type ViewerEffectRange, type ViewerEffectTarget, type ViewerEffectsController, type ViewerFlickerOptions, type ViewerHoverProps, ViewerIsolation, type ViewerIsolationProps, type ViewerLightEffectChannel, type ViewerMaterialEffectChannel, ViewerModelBounds, ViewerModelInfo, type ViewerModelProps, ViewerObjectInfo, type ViewerPulseOptions, type ViewerReadyConsumer, type ViewerReadyHandler, ViewerReadyState, ViewerRuntimeStats, type ViewerSelectionProps, type ViewerSequencesProps, ViewerStateStorage, type ViewerTimelineOptions, type ViewerTimelineStep, type ViewerTransformEffectChannel, type ViewerTransitionOptions, type ViewerVector3, useObjectBinding, useObjectBindingIds, useObjectBindings, useProductConfigurator, useSceneConfig, useShareableViewerState, useViewer, useViewerActions, useViewerConnection, useViewerEffects, useViewerHover, useViewerIsolation, useViewerModel, useViewerModels, useViewerSelection, useViewerSequences };