.bl-custom-studio{position:relative;height:90svh;min-height:720px;max-height:900px;background:#eeefed;color:#292725;margin:8px 0 20px;scroll-margin-top:0;overflow:hidden;isolation:isolate}
.bl-custom-studio__stage{position:absolute;inset:0}
.bl-custom-studio model-viewer{display:block;width:100%;height:100%;--poster-color:transparent;opacity:0;transition:opacity .3s ease;touch-action:pan-y}
.bl-custom-studio[data-ready] model-viewer{opacity:1}
.bl-custom-studio__skeleton{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:1;transition:opacity .3s ease;animation:bl-skeleton-breathe 1.8s ease-in-out infinite}
.bl-custom-studio__skeleton img{display:block;width:100%;height:100%;object-fit:contain}
.bl-custom-studio[data-ready] .bl-custom-studio__skeleton{opacity:0;visibility:hidden;animation:none}
@keyframes bl-skeleton-breathe{50%{opacity:.45}}
@media(prefers-reduced-motion:reduce){.bl-custom-studio__skeleton{animation:none;transition:none}}
.bl-custom-studio__copy{position:absolute;z-index:1;left:50%;top:43%;transform:translate(-50%,-50%);width:320px;max-width:55%;text-align:center;pointer-events:none;user-select:none}
.bl-custom-studio__eyebrow{margin:0 0 16px;font:500 10px/14px Inter,Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase}
.bl-custom-studio h2{margin:0;color:inherit;font:700 clamp(48px,4.7vw,68px)/.98 BeachletCampaign,'Arial Narrow',sans-serif;letter-spacing:-.01em;text-transform:uppercase;white-space:nowrap}
.bl-custom-studio__description{max-width:230px;margin:18px auto 0;font:400 13px/20px Inter,Arial,sans-serif}
.bl-custom-studio__purchase{position:absolute;z-index:2;bottom:28px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px}
.bl-custom-studio__purchase>span{font:400 12px/20px Inter,Arial,sans-serif;white-space:nowrap}
.bl-custom-studio__cta{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:48px;min-width:190px;padding:14px 20px;background:#292725;color:#fff;font:500 12px/20px Inter,Arial,sans-serif;text-decoration:none;white-space:nowrap}
.bl-custom-studio__cta:hover{background:#49443e}
.bl-custom-studio__hint{position:absolute;z-index:1;bottom:-38px;left:24px;display:flex;align-items:center;gap:8px;margin:0;pointer-events:none;font:400 10px/16px Inter,Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;color:#736f68}
.bl-custom-studio__hint[hidden]{display:none}
@media(max-width:899px){.bl-custom-studio{height:80svh;min-height:600px;max-height:760px}.bl-custom-studio__stage{inset:0}.bl-custom-studio__copy{top:41%;width:190px;max-width:55%}.bl-custom-studio__eyebrow{font-size:8px;line-height:12px;margin-bottom:10px;letter-spacing:.06em}.bl-custom-studio h2{font-size:clamp(27px,7vw,48px)}.bl-custom-studio__description{margin:12px auto 0;font-size:11px;line-height:16px;max-width:160px}.bl-custom-studio__purchase{bottom:24px;gap:16px}.bl-custom-studio__cta{min-width:180px}.bl-custom-studio__hint{left:50%;bottom:-6px;transform:translateX(-50%);font-size:8px;gap:6px}.bl-custom-studio__hint svg{width:14px;height:14px}}
@media(prefers-reduced-motion:reduce){.bl-custom-studio model-viewer{transition:none}}

/* Render the shadow across the full panel, with a soft final edge. */
.bl-custom-studio model-viewer{mask-image:linear-gradient(to bottom,#000 calc(100% - 32px),transparent)}
.bl-custom-studio__hint{bottom:28px}
@media(max-width:899px){.bl-custom-studio__hint{bottom:6px}}
/* Outline the lettering over the moving cords without blocking 3D gestures. */
.bl-custom-studio__copy h2{-webkit-text-stroke:4px #eeefed;paint-order:stroke fill;text-shadow:0 0 12px rgba(238,239,237,.9)}
.bl-custom-studio__eyebrow,.bl-custom-studio__description{text-shadow:-1px -1px 0 #eeefed,1px -1px 0 #eeefed,-1px 1px 0 #eeefed,1px 1px 0 #eeefed,0 0 6px #eeefed,0 0 10px #eeefed}
@media(max-width:899px){.bl-custom-studio__copy h2{-webkit-text-stroke:3px #eeefed;text-shadow:0 0 8px rgba(238,239,237,.9)}}
.bl-custom-studio__eyebrow,.bl-custom-studio__description{-webkit-text-stroke:1.5px #eeefed;paint-order:stroke fill}
