/* Shared full-size image, video and image-based 360° previews. */#showcaseDialog{position:fixed;inset:0;margin:auto;padding:0;width:min(980px, calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 28px);background:#100c19;color:#fff;border:1px solid #654577;border-radius:18px;overflow:auto;box-shadow:0 30px 90px #0008}#showcaseDialog::backdrop{background:#060309d9;backdrop-filter:blur(7px)}.showcase-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid #3c294a}.showcase-head h3{font-size:17px;line-height:1.4;margin:0;overflow-wrap:anywhere}#showcaseClose{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;color:#eee;background:#271c33;border:1px solid #654779;border-radius:10px;font-size:25px;cursor:pointer}#showcasePhoto{display:block;width:100%;height:auto;max-height:calc(100dvh - 170px);object-fit:contain;aspect-ratio:16/9;background:#0a0710}#showcaseVideo{display:block;width:100%;height:auto;max-height:calc(100dvh - 150px);background:#050308}#showcaseDialog [hidden]{display:none !important}#showcaseStage.capsule-stage{position:relative;isolation:isolate;width:100%;height:min(540px, calc(100dvh - 250px));min-height:260px;overflow:hidden;touch-action:pan-y;cursor:grab;outline:none;background:#100c19 url("../media/topographic.svg") center/700px 500px}#showcaseStage.capsule-stage:active{cursor:grabbing}#showcaseStage.capsule-stage::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:url("../media/topographic.svg") center/700px 500px;opacity:0.85;mask-image:radial-gradient(ellipse at center, transparent 32%, #000 68%)}#showcaseStage.capsule-stage img{position:absolute !important;inset:0;width:100%;height:calc(100% - 65px);margin:0;object-fit:contain !important;pointer-events:none;z-index:1;opacity:1;filter:none}.capsule-previous,.capsule-next{position:absolute;top:45%;transform:translateY(-50%);width:42px;height:48px;border:1px solid #80588f;border-radius:11px;background:#21152ae8;color:#fff;font-size:30px;cursor:pointer;z-index:3}.capsule-previous{left:14px}.capsule-next{right:14px}.capsule-footer{position:absolute;bottom:0;inset-inline:0;padding:14px 16px;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;background:#100c19e8;border-top:1px solid #46304f;font-size:12px;line-height:1.5;z-index:2;text-align:center}.capsule-footer strong{color:#e5caed}.capsule-footer span{color:#bcabc9}.capsule-notice{display:flex;align-items:center;gap:10px;margin:12px 16px !important;padding:11px 13px;border:1px solid #98585d;border-radius:10px;background:#38202377;color:#e4c2c5;font-size:12px;line-height:1.6}.capsule-notice > span:first-child{display:grid;place-items:center;border:1px solid #d98c8e;border-radius:50%;color:#f0b7b8;font-weight:800;width:21px;height:21px;flex:0 0 21px;line-height:1}.gallery-navigation{display:flex;align-items:center;justify-content:center;gap:20px;padding:12px;border-top:1px solid #3c294a}.gallery-navigation button{width:42px;height:38px;border:1px solid #71527e;border-radius:9px;background:#21152f;color:#fff;font-size:25px;cursor:pointer;line-height:1}.gallery-navigation button:disabled{opacity:0.3;cursor:default}.gallery-position{color:#bca6ca;font:500 12px/1.5 system-ui,sans-serif;min-width:38px;text-align:center;direction:ltr}.gallery-navigation button:focus-visible,#showcaseClose:focus-visible,#showcaseStage:focus-visible,.capsule-stage button:focus-visible{outline:2px solid #edb5ff;outline-offset:3px}.capsule-status{position:absolute;z-index:4;inset-inline:20px;bottom:83px;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border:1px solid #765184;border-radius:12px;background:#180f25ed;font-size:13px;text-align:center}.capsule-retry{font:inherit;color:#fff;background:#35203f;border:1px solid #a16eb1;border-radius:8px;padding:8px 12px;cursor:pointer}.product-gallery{position:relative}.product-gallery > button{position:absolute;bottom:15px;inset-inline-end:15px;display:grid;place-items:center;width:42px;height:42px;background:#180e26eb;color:#fff;border:1px solid #b587ce;border-radius:11px;font-size:22px;cursor:pointer}.preview-open{overflow:hidden}@media (max-width: 600px){#showcaseDialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:13px}.showcase-head{padding:12px 14px}.showcase-head h3{font-size:15px}.capsule-previous,.capsule-next{width:35px;height:43px}.capsule-previous{left:8px}.capsule-next{right:8px}.capsule-notice{margin:10px !important;padding:10px;font-size:11px}.capsule-footer{gap:6px;padding:10px}.capsule-footer strong,.capsule-footer span{width:100%}#showcaseStage.capsule-stage{min-height:245px}.capsule-status{font-size:12px}}/* Product previews share one photo/video/360 gallery. All extra media is lazy. */.gallery-thumbnails{display:flex;gap:8px;padding:12px;overflow-x:auto;overscroll-behavior:contain;scrollbar-width:thin;direction:ltr}.gallery-thumbnail{position:relative;flex:0 0 112px;min-width:0;padding:0;overflow:hidden;background:#160f22;color:#eadbf3;border:1px solid #594169;border-radius:9px;cursor:pointer;font:600 11px/1.4 system-ui,sans-serif;text-align:center}.gallery-thumbnail img{display:block;width:110px;height:66px;object-fit:cover;margin:0;opacity:0.8}.gallery-thumbnail span{display:block;padding:5px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-thumbnail:hover,.gallery-thumbnail[aria-pressed="true"]{border-color:#f09cff;box-shadow:0 0 0 1px #dd75f2}.gallery-thumbnail[aria-pressed="true"] img{opacity:1}.gallery-thumbnail:focus-visible{outline:2px solid #f2b0ff;outline-offset:2px}.gallery-thumbnails[hidden]{display:none !important}.product-thumbnails{padding:12px 0;margin-bottom:14px}.product-gallery > .product-image{width:100%;aspect-ratio:16/9;object-fit:contain;background:#0a0710}.product-inline-video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#050308}.product-gallery [hidden]{display:none !important}.product-gallery:has(.product-inline-video:not([hidden])) > button{top:12px;bottom:auto}.product-inline-model{position:relative;width:100%;height:360px;min-height:260px;isolation:isolate;overflow:hidden;touch-action:pan-y;background:#100c19 url("../media/topographic.svg") center/700px 500px;cursor:grab}.product-inline-model img{position:absolute;inset:0;width:100%;height:calc(100% - 65px);object-fit:contain;pointer-events:none}.inline-capsule-notice[hidden]{display:none !important}.project-thumb{position:relative}.project-thumb > .product-hover-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 0.24s ease;pointer-events:none}.project-thumb > .product-hover-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#0d0a15;opacity:0;transition:opacity .24s ease;pointer-events:none}.project-thumb > .product-preview-layer.is-ready{opacity:1;object-fit:contain;background:#0d0a15;transform:none}.project-thumb > .product-preview-layer[hidden]{display:none!important}/* A preview changes content, never geometry or scale. Keep covers and movies aligned. */#productGrid .project-card .project-thumb>img,#productGrid .project-card .project-thumb>.product-preview-layer{transform:none;object-fit:contain}@media (hover: hover){.project-thumb:hover > .product-hover-image[src],.project-thumb:focus-visible > .product-hover-image[src]{opacity:1}}@media (max-width: 600px){.gallery-thumbnail{flex-basis:92px}.gallery-thumbnail img{width:90px;height:56px}.product-inline-model{height:290px}.gallery-thumbnails{gap:6px;padding:10px}.product-thumbnails{padding-inline:0}}@media (prefers-reduced-motion: reduce){.project-thumb > .product-hover-image,.project-thumb > .product-hover-video{transition:none}}.product-thumbnails{position:static !important;transform:none !important;clear:both;display:flex;isolation:isolate;margin:0 0 18px;padding:14px 0;min-height:110px;width:100%;max-width:100%;flex-wrap:nowrap}.product-gallery{display:block;min-width:0}.product-grid > div:first-child{min-width:0}.product-gallery > .product-image{display:block;height:auto}.product-thumbnails .gallery-thumbnail{position:relative !important;inset:auto !important;flex:0 0 112px;width:112px}