.amsi{position:relative;box-sizing:border-box;width:var(--amsi-width,100%);max-width:100%;height:var(--amsi-height,auto);aspect-ratio:16/9;min-height:1px;overflow:hidden;border-radius:12px;background:#181818;color:#fff}.amsi *{box-sizing:border-box}.amsi-track,.amsi-slide,.amsi-face,.amsi-flip-inner{position:absolute;inset:0;width:100%;height:100%}.amsi-slide{opacity:0;visibility:hidden;transition:opacity .65s,transform .65s;transform:translateX(8%)}.amsi-slide.active{opacity:1;visibility:visible;transform:none}.amsi-effect-fade .amsi-slide{transform:none}.amsi-effect-zoom .amsi-slide{transform:scale(1.08)}.amsi-effect-zoom .amsi-slide.active{transform:scale(1)}.amsi-face img,.amsi-face video,.amsi-face iframe{display:block;width:100%;height:100%;object-fit:var(--amsi-fit,cover);border:0;max-width:none}.amsi-copy{position:absolute;bottom:0;left:0;right:0;padding:20px;background:linear-gradient(transparent,#000b);color:white;pointer-events:none}.amsi-copy h3,.amsi-copy p{color:inherit;margin:0 0 5px}.amsi-prev,.amsi-next{position:absolute;top:50%;transform:translateY(-50%);z-index:5;border:0;border-radius:50%;width:42px;height:42px;background:#0009;color:#fff;font-size:28px;cursor:pointer}.amsi-prev{left:12px}.amsi-next{right:12px}.amsi-flip{perspective:1200px;cursor:pointer}.amsi-flip-inner{transform-style:preserve-3d;transition:transform .7s}.amsi-flip .amsi-face{backface-visibility:hidden;-webkit-backface-visibility:hidden}.amsi-back{transform:rotateY(180deg)}.amsi-axis-x .amsi-back{transform:rotateX(180deg)}.amsi-flip.is-flipped .amsi-flip-inner{transform:rotateY(180deg)}.amsi-axis-x.is-flipped .amsi-flip-inner{transform:rotateX(180deg)}.amsi-video-face{position:absolute;inset:0}.amsi-video iframe{pointer-events:none}.amsi-notice{padding:15px;border:1px dashed #aaa;color:#333}@media(prefers-reduced-motion:reduce){.amsi-slide,.amsi-flip-inner{transition:none}}

/* v2.1: horizontal swipe/drag without blocking vertical page scroll */
.amsi-carousel{touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab}
.amsi-carousel:active{cursor:grabbing}
.amsi-carousel img{-webkit-user-drag:none;user-drag:none;pointer-events:none}
.amsi-carousel .amsi-slide{pointer-events:none}
.amsi-carousel .amsi-prev,.amsi-carousel .amsi-next{pointer-events:auto}

/* v2.2: true horizontal travel (not an in-place image swap). */
.amsi-effect-slide .amsi-track{position:absolute;inset:0;display:flex;width:100%;height:100%;will-change:transform}
.amsi-effect-slide .amsi-slide{position:relative;inset:auto;flex:0 0 100%;width:100%;height:100%;opacity:1;visibility:visible;transform:none;transition:none}
.amsi-effect-slide .amsi-slide .amsi-face{position:absolute;inset:0}
@media(prefers-reduced-motion:reduce){.amsi-effect-slide .amsi-track{transition:none!important}}

.amsi-filename{font-size:14px;font-weight:500;line-height:1.5;overflow-wrap:anywhere;margin-bottom:5px}

/* v2.5 independent 3D flip container: front/back are independently editable */
.amsi-flip-container{perspective:1400px;overflow:visible;isolation:isolate;cursor:pointer}
.amsi-flip-container .amsi-flip-inner{transition:transform var(--amsi-flip-duration,700ms) cubic-bezier(.2,.7,.2,1);transform-origin:center center}
.amsi-flip-container .amsi-back{transform:rotateY(calc(-1 * var(--amsi-flip-angle,180deg)))}
.amsi-flip-container.is-flipped .amsi-flip-inner{transform:rotateY(var(--amsi-flip-angle,180deg))}
.amsi-flip-container .amsi-face{overflow:hidden;border-radius:12px}
.amsi-flip-container .amsi-face iframe{pointer-events:none}
@media(hover:hover) and (pointer:fine){
 .amsi-flip-container[data-trigger="hover"]:hover .amsi-flip-inner{transform:rotateY(var(--amsi-flip-angle,180deg))}
}
@media(prefers-reduced-motion:reduce){.amsi-flip-container .amsi-flip-inner{transition:none}}

/* v2.6: transparent WebP/PNG 3D card, configurable face/background/shape */
.amsi-flip-container{background:transparent!important;perspective:var(--amsi-flip-perspective,1100px);overflow:visible!important;border-radius:var(--amsi-flip-radius,16px);isolation:isolate}
.amsi-flip-container .amsi-flip-inner{transform-style:preserve-3d;overflow:visible;border-radius:inherit;filter:drop-shadow(0 20px 18px rgba(0,0,0,var(--amsi-flip-shadow-opacity,.2)))}
.amsi-flip-container .amsi-face{background:var(--amsi-flip-bg,transparent)!important;border-radius:var(--amsi-flip-radius,16px)!important;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.amsi-flip-container .amsi-face img{object-fit:var(--amsi-flip-fit,contain)!important;background:transparent!important}
.amsi-flip-container .amsi-face .amsi-copy{background:linear-gradient(transparent,rgba(0,0,0,.48));}
.amsi-flip-container .amsi-face:has(.amsi-copy:empty) .amsi-copy{display:none}

/* v2.7: Preserve a true 3D scene. A CSS filter on the rotating parent
   flattened both faces into one bitmap, producing a mirrored front. */
.amsi-flip-container{position:relative;perspective:var(--amsi-flip-perspective,1100px)!important;perspective-origin:50% 50%;overflow:visible!important;isolation:auto!important;transform-style:flat}
.amsi-flip-container::before{content:"";position:absolute;left:12%;right:12%;bottom:-17px;height:24px;border-radius:50%;background:rgba(0,0,0,var(--amsi-flip-shadow-opacity,.2));filter:blur(15px);pointer-events:none;z-index:-1}
.amsi-flip-container .amsi-flip-inner{position:absolute;inset:0;width:100%;height:100%;transform-style:preserve-3d!important;-webkit-transform-style:preserve-3d!important;filter:none!important;overflow:visible!important;will-change:transform;transition:transform var(--amsi-flip-duration,700ms) cubic-bezier(.22,.65,.24,1)!important}
.amsi-flip-container .amsi-face{position:absolute!important;inset:0!important;width:100%;height:100%;backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important;transform-style:flat;opacity:1!important;visibility:visible!important}
.amsi-flip-container .amsi-front{transform:rotateY(0deg)!important;-webkit-transform:rotateY(0deg)!important;z-index:1}
.amsi-flip-container .amsi-back{transform:rotateY(180deg)!important;-webkit-transform:rotateY(180deg)!important;z-index:0}
.amsi-flip-container.is-flipped .amsi-flip-inner{transform:rotateY(var(--amsi-flip-angle,180deg))!important}
@media(hover:hover) and (pointer:fine){.amsi-flip-container[data-trigger="hover"]:hover .amsi-flip-inner{transform:rotateY(var(--amsi-flip-angle,180deg))!important}}
.amsi-flip-container .amsi-face img{display:block;width:100%;height:100%;object-fit:var(--amsi-flip-fit,contain)!important}

/* v2.8 curved illusion + reflective light. Never apply filters/opacity to rotating parent: that flattens 3D. */
.amsi-flip-container .amsi-face::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;border-radius:inherit;background:linear-gradient(106deg,transparent 0%,transparent 30%,rgba(255,255,255,var(--amsi-sheen-opacity,.3)) 48%,rgba(255,255,255,.04) 54%,transparent 70%);background-size:260% 100%;background-position:120% center;opacity:0;transition:opacity .15s linear,background-position var(--amsi-flip-duration,700ms) ease-in-out;mix-blend-mode:screen}
.amsi-flip-container.is-flipped .amsi-face::after,.amsi-flip-container:focus-visible .amsi-face::after{opacity:1;background-position:-120% center}
@media(hover:hover) and (pointer:fine){.amsi-flip-container[data-trigger="hover"]:hover .amsi-face::after{opacity:1;background-position:-120% center}}
/* A restrained bending illusion on each face, preserving independent backface rendering. */
.amsi-flip-container[data-curve="1"] .amsi-face img{transition:transform var(--amsi-flip-duration,700ms) cubic-bezier(.22,.65,.24,1);transform:scaleX(1) perspective(1000px) rotateY(0deg)}
.amsi-flip-container[data-curve="1"].is-flipped .amsi-face img{transform:scaleX(.965) perspective(1000px) rotateY(-2deg)}
@media(hover:hover) and (pointer:fine){.amsi-flip-container[data-curve="1"][data-trigger="hover"]:hover .amsi-face img{transform:scaleX(.965) perspective(1000px) rotateY(-2deg)}}
@media(prefers-reduced-motion:reduce){.amsi-flip-container .amsi-face::after,.amsi-flip-container .amsi-face img{transition:none!important}}

/* v2.9: Highlights and curvature exist ONLY during the turning interval. */
.amsi-flip-container .amsi-face::after{opacity:0!important;transition:none!important;background:none!important}
.amsi-flip-container .amsi-face::before{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;border-radius:inherit;opacity:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,var(--amsi-left-shine,.45)) var(--amsi-left-position,20%),transparent 44%,transparent 56%,rgba(255,255,255,var(--amsi-right-shine,.45)) var(--amsi-right-position,80%),transparent 100%);mix-blend-mode:screen}
.amsi-flip-container.amsi-turning[data-reflection="1"] .amsi-face::before{animation:amsi-two-edge-shine var(--amsi-flip-duration,700ms) ease-in-out both}
@keyframes amsi-two-edge-shine{0%,100%{opacity:0}35%,65%{opacity:.85}}
.amsi-flip-container[data-curve="1"] .amsi-face img,.amsi-flip-container[data-curve="1"].is-flipped .amsi-face img{transform:none!important;transition:none!important}
.amsi-flip-container.amsi-turning[data-curve="1"] .amsi-face img{animation:amsi-temporary-curve var(--amsi-flip-duration,700ms) ease-in-out both}
@keyframes amsi-temporary-curve{0%,100%{transform:scaleX(1)}50%{transform:scaleX(calc(1 - var(--amsi-curve-strength,.35) * .13)) rotateY(calc(var(--amsi-curve-strength,.35) * 6deg))}}
@media(prefers-reduced-motion:reduce){.amsi-flip-container.amsi-turning .amsi-face::before,.amsi-flip-container.amsi-turning .amsi-face img{animation:none!important}}

.amsi-video-playlist .amsi-video-item{position:absolute;inset:0;display:none;width:100%;height:100%}.amsi-video-playlist .amsi-video-item.is-active{display:block}.amsi-video-playlist .amsi-video-item video,.amsi-video-playlist .amsi-video-item iframe{width:100%;height:100%}

/* v2.11: Fix invalid angle multiplication in previous curve animation;
   ensure light and curve are only visible during actual turning. */
.amsi-flip-container .amsi-face::before{animation:none!important;opacity:0!important;mix-blend-mode:normal!important;background:none!important}
.amsi-flip-container.amsi-turning[data-reflection="1"] .amsi-face::before{
 background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,var(--amsi-left-shine,.35)) 50%,transparent 100%),linear-gradient(260deg,transparent 0%,rgba(255,255,255,var(--amsi-right-shine,.55)) 50%,transparent 100%)!important;
 background-size:42% 100%,42% 100%!important;background-repeat:no-repeat!important;
 background-position:var(--amsi-left-position,20%) 0,var(--amsi-right-position,80%) 0!important;
 animation:amsi-reflect-211 var(--amsi-flip-duration,700ms) ease-in-out both!important
}
@keyframes amsi-reflect-211{0%,100%{opacity:0}30%,65%{opacity:1}50%{opacity:.9}}
.amsi-flip-container.amsi-turning[data-curve="1"] .amsi-face img{animation:amsi-curve-211 var(--amsi-flip-duration,700ms) ease-in-out both!important;transform-origin:center!important}
@keyframes amsi-curve-211{0%,100%{transform:scaleX(1) scaleY(1)}50%{transform:scaleX(calc(1 - var(--amsi-curve-strength,.35) * .22)) scaleY(calc(1 + var(--amsi-curve-strength,.35) * .09))}}
@media(prefers-reduced-motion:reduce){.amsi-flip-container.amsi-turning .amsi-face::before,.amsi-flip-container.amsi-turning .amsi-face img{animation:none!important}}

/* v2.12: Discontinue ineffective curve and reflection effects. */
.amsi-flip-container .amsi-face::before,.amsi-flip-container .amsi-face::after,.amsi-flip-container.amsi-turning .amsi-face::before,.amsi-flip-container.amsi-turning .amsi-face::after{content:none!important;animation:none!important;opacity:0!important}
.amsi-flip-container .amsi-face img,.amsi-flip-container.amsi-turning .amsi-face img{animation:none!important;transform:none!important;transition:none!important}
/* Half-height ground shadow, follows card's apparent width throughout the flip. */
.amsi-flip-container::before{left:12%;right:12%;bottom:-12px;height:12px;filter:blur(8px);transform-origin:center center;transform:scaleX(1);animation:none}
.amsi-flip-container.amsi-turning::before{animation:amsi-shadow-follow-212 var(--amsi-flip-duration,700ms) cubic-bezier(.22,.65,.24,1) both}
@keyframes amsi-shadow-follow-212{0%{transform:scaleX(1);opacity:1}50%{transform:scaleX(.025);opacity:.65}100%{transform:scaleX(1);opacity:1}}
/* Mid-turn bulge on the faces, without overriding 3D parent rotation. */
.amsi-flip-container.amsi-turning .amsi-face{animation:amsi-center-bulge-212 var(--amsi-flip-duration,700ms) cubic-bezier(.22,.65,.24,1) both}
@keyframes amsi-center-bulge-212{0%,100%{scale:1}50%{scale:calc(1 + var(--amsi-bulge,.35) * .13)}}
@media(prefers-reduced-motion:reduce){.amsi-flip-container.amsi-turning::before,.amsi-flip-container.amsi-turning .amsi-face{animation:none!important}}

/* v2.13: Shadow is a child of the rotating 3D card, so it shares the
   exact transform and easing rather than playing a disconnected animation. */
.amsi-flip-container::before{content:none!important;display:none!important;animation:none!important}
.amsi-flip-container .amsi-rotating-shadow{
 position:absolute;display:block;pointer-events:none;
 left:12%;width:76%;height:12px;bottom:-14px;
 border-radius:50%;background:rgba(0,0,0,var(--amsi-flip-shadow-opacity,.2));
 filter:blur(7px);transform:translateZ(-1px) rotateX(55deg);
 transform-origin:center center;backface-visibility:visible;
}
/* Remove the abandoned bulge completely. */
.amsi-flip-container.amsi-turning .amsi-face{animation:none!important;scale:1!important}

/* v2.14: +4px height and +4px gap, while remaining attached to rotating inner card. */
.amsi-flip-container .amsi-rotating-shadow{height:16px;bottom:-18px}

/* v2.15: Transparent carousel background for alpha-channel WebP/PNG. */
.amsi-carousel{background:transparent!important;}
.amsi-carousel .amsi-track,.amsi-carousel .amsi-slide,.amsi-carousel .amsi-face{background:transparent!important;}
.amsi-carousel .amsi-face img{background:transparent!important;}
/* For auto height, aspect ratio is read from the actual first image by JS. */
.amsi-carousel[data-height="0"],.amsi-flip-container[data-height="0"]{height:auto!important;aspect-ratio:var(--amsi-natural-ratio,16 / 9)!important;}
.amsi-carousel[data-width="0"],.amsi-flip-container[data-width="0"]{width:var(--amsi-natural-width,100%)!important;}

/* 2.16.0 editable flip content */
.amsi-flip-container .amsi-copy{pointer-events:auto;z-index:3}
.amsi-flip-container .amsi-edit-title,.amsi-flip-container .amsi-edit-text{line-height:1.4;overflow-wrap:anywhere;margin-bottom:6px}
.amsi-flip-container .amsi-copy a{color:inherit;text-decoration:underline;position:relative;z-index:5}
.amsi-flip-container .amsi-copy img,.amsi-flip-container .amsi-copy video{width:auto;max-width:100%;height:auto;max-height:120px;object-fit:contain;display:inline-block}
.amsi-flip-container .amsi-copy iframe{max-width:100%;height:120px}
/* v2.20.0: container controls and interactive elements */
.amsi{border:var(--amsi-border-width,0px) solid var(--amsi-border-color,transparent);box-shadow:0 8px var(--amsi-container-shadow,4px) rgba(0,0,0,.3);translate:var(--amsi-offset-x,0px) var(--amsi-offset-y,0px)}
.amsi[data-center="center"]{margin-inline:auto}.amsi[data-center="viewport"]{left:50%;margin-left:calc(50% - 50vw);transform:translateX(calc(50vw - 50%))}
.amsi-flip-container{perspective:var(--amsi-flip-perspective,1000px);overflow:visible}
.amsi-flip-container .amsi-front{transform:translateZ(calc(var(--amsi-depth,12px) / 2))!important}
.amsi-flip-container .amsi-back{transform:rotateY(180deg) translateZ(calc(var(--amsi-depth,12px) / 2))!important}
.amsi-flip-container .amsi-flip-inner{filter:drop-shadow(0 10px 14px rgba(0,0,0,.25))!important}
.amsi-cta{z-index:20;display:inline-flex;align-items:center;justify-content:center;padding:.6em 1.2em;border-radius:var(--btn-radius,24px);font-size:var(--btn-size,16px);color:var(--btn-color,#fff)!important;background:var(--btn-bg,#2563eb);box-shadow:0 4px var(--btn-shadow,5px) rgba(0,0,0,.35);text-decoration:none!important;pointer-events:auto;transition:transform .25s,filter .25s,box-shadow .25s;white-space:nowrap}
.amsi-cta-free{position:absolute;left:calc(50% + var(--btn-x,0px));top:calc(50% - var(--btn-y,0px));transform:translate3d(-50%,-50%,var(--btn-z,0px))}
.amsi-cta-flow{position:absolute;bottom:15px;left:50%;transform:translateX(-50%)}.amsi-align-left.amsi-cta-flow{left:15px;transform:none}.amsi-align-right.amsi-cta-flow{left:auto;right:15px;transform:none}
.amsi-hover-lift:hover{filter:brightness(1.12);translate:0 -5px}.amsi-hover-scale:hover{scale:1.1}.amsi-hover-glow:hover{box-shadow:0 0 24px var(--btn-bg,#2563eb)}
.amsi-content-link{pointer-events:auto;transition:color .2s,text-shadow .2s,filter .2s}.amsi-content-link:hover{filter:brightness(1.3);text-shadow:0 0 12px currentColor;text-decoration:underline}
.amsi-copy{pointer-events:auto}.amsi-prev,.amsi-next{width:var(--amsi-arrow-size,42px);height:var(--amsi-arrow-size,42px);color:var(--amsi-arrow-color,#fff);background:var(--amsi-arrow-bg,#222);box-shadow:0 4px var(--amsi-arrow-shadow,5px) #0007;transition:scale .2s,background .2s,box-shadow .2s}.amsi-prev:hover,.amsi-next:hover{scale:1.13;background:color-mix(in srgb,var(--amsi-arrow-bg,#222),white 20%)}
.amsi-carousel .amsi-slide .amsi-copy{pointer-events:auto}
.amsi-flip .amsi-side-back{opacity:0;pointer-events:none}.amsi-flip.is-flipped .amsi-side-back{opacity:1;pointer-events:auto}.amsi-flip.is-flipped .amsi-side-front{opacity:0;pointer-events:none}
.amsi-flip .amsi-cta{transition:opacity .2s,translate .25s,scale .25s,box-shadow .25s}
.amsi-prev,.amsi-next{border-radius:50%}.amsi-carousel:has(.amsi-prev) .amsi-prev:hover,.amsi-carousel:has(.amsi-next) .amsi-next:hover{filter:brightness(1.25)}
.amsi-carousel[data-arrow-shape="square"] .amsi-prev,.amsi-carousel[data-arrow-shape="square"] .amsi-next{border-radius:5px}.amsi-carousel[data-arrow-shape="pill"] .amsi-prev,.amsi-carousel[data-arrow-shape="pill"] .amsi-next{border-radius:16px}

/* v2.21: decoration is attached to the rotating faces, not the stationary shell. */
.amsi-flip-container{border:0!important;box-shadow:none!important}
.amsi-flip-container .amsi-face{box-sizing:border-box;border:var(--amsi-border-width,0px) solid var(--amsi-border-color,transparent);border-radius:var(--amsi-flip-radius,16px);overflow:hidden}
.amsi-flip-container .amsi-flip-inner{transform-style:preserve-3d!important}
.amsi-flip-container .amsi-back{transform:rotateY(180deg) translateZ(calc(var(--amsi-depth,12px) / 2))!important;backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important}
.amsi-flip-container .amsi-front{transform:translateZ(calc(var(--amsi-depth,12px) / 2))!important;backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important}
.amsi-flip-container .amsi-side-front,.amsi-flip-container .amsi-side-back{z-index:25}
.amsi[data-decoration-hidden="1"]{background:transparent!important;border:0!important;box-shadow:none!important}
.amsi[data-decoration-hidden="1"] .amsi-face{background:transparent!important;border:0!important;box-shadow:none!important}
.amsi[data-decoration-hidden="1"] .amsi-rotating-shadow{display:none!important}
/* Face-bound controls rotate with their own side and remain clickable. */
.amsi-flip-container .amsi-face .amsi-cta{z-index:12}
.amsi-flip-container .amsi-back .amsi-cta,.amsi-flip-container .amsi-front .amsi-cta{opacity:1!important;pointer-events:auto!important}

/* v2.22: Independent oval ground shadow and correctly isolated flip faces. */
.amsi-flip-container>.amsi-rotating-shadow{position:absolute!important;display:block!important;left:12%!important;width:76%!important;height:var(--amsi-shadow-height,20px)!important;top:calc(100% + var(--amsi-shadow-gap,10px))!important;bottom:auto!important;z-index:-1!important;border-radius:50%!important;background:rgba(0,0,0,var(--amsi-flip-shadow-opacity,.2))!important;filter:blur(var(--amsi-shadow-blur,8px))!important;transform:none!important;pointer-events:none!important}
.amsi-flip-container .amsi-flip-inner{filter:none!important;transform-style:preserve-3d!important}
.amsi-flip-container .amsi-front,.amsi-flip-container .amsi-back{z-index:auto!important;backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important}
.amsi-flip-container .amsi-back{transform:rotateY(180deg) translateZ(calc(var(--amsi-depth,12px) / 2))!important}
.amsi-flip-container .amsi-face .amsi-copy{z-index:6;pointer-events:auto}
.amsi-flip-container .amsi-face .amsi-cta{display:inline-flex!important;visibility:visible!important;opacity:1!important;z-index:20!important;pointer-events:auto!important}
.amsi-flip-container .amsi-back:not(:has(img,video,iframe)){background:var(--amsi-flip-bg,#666)!important}
/* Sliding track: all slides remain adjacent, never crossfade or snap. */
.amsi-carousel.amsi-effect-slide .amsi-track{display:flex!important;flex-wrap:nowrap!important;gap:0!important;align-items:stretch!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;will-change:transform}
.amsi-carousel.amsi-effect-slide .amsi-slide{display:block!important;position:relative!important;flex:0 0 100%!important;min-width:100%!important;width:100%!important;max-width:none!important;opacity:1!important;visibility:visible!important;transform:none!important;transition:none!important}
.amsi-carousel.amsi-effect-slide .amsi-slide .amsi-face{position:absolute!important;inset:0!important}

/* v2.23: Ground shadow belongs to the rotating card and shares its 3D transform. */
.amsi-flip-container .amsi-flip-inner>.amsi-rotating-shadow{position:absolute!important;display:block!important;left:12%!important;width:76%!important;height:var(--amsi-shadow-height,20px)!important;top:calc(100% + var(--amsi-shadow-gap,10px))!important;bottom:auto!important;z-index:0!important;border-radius:50%!important;background:rgba(0,0,0,var(--amsi-flip-shadow-opacity,.2))!important;filter:blur(var(--amsi-shadow-blur,8px))!important;transform:translateZ(-1px)!important;backface-visibility:visible!important;pointer-events:none!important}
.amsi-flip-container[data-decoration-hidden="1"] .amsi-flip-inner>.amsi-rotating-shadow{display:none!important}

/* v2.24: Independent vertical spacing for the 3D card container. */
.amsi-flip-container{margin-top:var(--amsi-space-top,0px);margin-bottom:var(--amsi-space-bottom,0px)}
/* JS owns track translation; never lock it with !important. */
.amsi-carousel.amsi-effect-slide .amsi-track{transition-property:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden}

/* v2.25: independently position title and body on all media surfaces */
.amsi-face .amsi-copy{inset:0;bottom:auto;width:100%;height:100%;padding:20px;pointer-events:none;background:transparent!important;z-index:7}
.amsi-face .amsi-edit-title,.amsi-face .amsi-edit-text{pointer-events:auto;overflow-wrap:anywhere;line-height:1.4}
.amsi-face .amsi-copy a{pointer-events:auto}
.amsi-face .amsi-copy{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch}
.amsi-face .amsi-edit-title[style*="position:absolute"],.amsi-face .amsi-edit-text[style*="position:absolute"]{align-self:auto}

/* v2.31: prevent the back face from bleeding through the front on mobile GPUs. */
.amsi-flip-container .amsi-flip-inner{isolation:isolate;}
.amsi-flip-container .amsi-face{backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important;}
.amsi-flip-container .amsi-face .amsi-copy,.amsi-flip-container .amsi-face .amsi-edit-title,.amsi-flip-container .amsi-face .amsi-edit-text{backface-visibility:hidden;-webkit-backface-visibility:hidden;}
/* Linked text should not acquire an artificial shadow while its parent has shadows disabled. */
.amsi-edit-title[style*="text-shadow:none"] .amsi-content-link,.amsi-edit-text[style*="text-shadow:none"] .amsi-content-link{ text-shadow:none!important; }

/* v2.32: keep the two faces in one genuine 3D scene.
   isolation:isolate on the rotating element flattens its descendants into a
   single painted surface, exposing the mirrored front instead of the back. */
.amsi-flip-container .amsi-flip-inner{isolation:auto!important;transform-style:preserve-3d!important;-webkit-transform-style:preserve-3d!important;filter:none!important;opacity:1!important;overflow:visible!important}
.amsi-flip-container .amsi-front{transform:translateZ(calc(var(--amsi-depth,12px) / 2))!important;-webkit-transform:translateZ(calc(var(--amsi-depth,12px) / 2))!important;backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important}
.amsi-flip-container .amsi-back{transform:rotateY(180deg) translateZ(calc(var(--amsi-depth,12px) / 2))!important;-webkit-transform:rotateY(180deg) translateZ(calc(var(--amsi-depth,12px) / 2))!important;backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important}
.amsi-flip-container .amsi-face .amsi-copy{transform:none!important;filter:none!important}

/* v2.35: independent title/body paragraph widths; no container padding. */

.amsi .amsi-edit-title{width:var(--amsi-title-width,auto);max-width:100%;white-space:normal;overflow-wrap:anywhere;}
.amsi .amsi-edit-text{width:var(--amsi-text-width,auto);max-width:100%;white-space:normal;overflow-wrap:anywhere;}
.amsi .amsi-edit-title[style*="position:absolute"],.amsi .amsi-edit-text[style*="position:absolute"]{max-width:none;}

/* v2.36: The width control applies to the actual text block, not only a CSS variable.
   Flex children must not stretch and long Chinese/Latin text must wrap. */
.amsi .amsi-face .amsi-edit-title,
.amsi .amsi-face .amsi-edit-text {
  min-width:0; flex-grow:0; flex-shrink:0; align-self:flex-start;
  overflow-wrap:anywhere; word-break:break-all; white-space:normal;
}
.amsi .amsi-face .amsi-edit-title[style*="position:absolute"],
.amsi .amsi-face .amsi-edit-text[style*="position:absolute"] {align-self:auto;}

/* v2.39: Media within editable title/body is not the full-face background. */
.amsi .amsi-copy .amsi-edit-title img,.amsi .amsi-copy .amsi-edit-text img,.amsi .amsi-copy .amsi-edit-title video,.amsi .amsi-copy .amsi-edit-text video,.amsi .amsi-copy .amsi-edit-title iframe,.amsi .amsi-copy .amsi-edit-text iframe{width:auto;height:auto;max-width:none;max-height:none;object-fit:contain;display:inline-block;vertical-align:middle;}
.amsi .amsi-copy .amsi-edit-title img[width],.amsi .amsi-copy .amsi-edit-text img[width]{width:attr(width px);}
.amsi .amsi-copy .amsi-embedded-media{display:inline-block;max-width:none;max-height:none;vertical-align:middle;}
.amsi .amsi-copy .amsi-embedded-media img,.amsi .amsi-copy .amsi-embedded-media video,.amsi .amsi-copy .amsi-embedded-media iframe{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;}
.amsi .amsi-copy .amsi-embedded-media[style*="width:auto"] img,.amsi .amsi-copy .amsi-embedded-media[style*="width:auto"] video{width:auto;}
.amsi .amsi-copy .amsi-embedded-media[style*="height:auto"] img,.amsi .amsi-copy .amsi-embedded-media[style*="height:auto"] video{height:auto;}

/* v2.40: HTML media size controls for title and body; excludes separately inserted media. */
.amsi .amsi-copy .amsi-edit-title > :is(img,video,iframe,svg,canvas),
.amsi .amsi-copy .amsi-edit-text > :is(img,video,iframe,svg,canvas),
.amsi .amsi-copy .amsi-edit-title :not(.amsi-embedded-media) > :is(img,video,iframe,svg,canvas),
.amsi .amsi-copy .amsi-edit-text :not(.amsi-embedded-media) > :is(img,video,iframe,svg,canvas) {
 width:var(--amsi-html-media-w,auto)!important; height:var(--amsi-html-media-h,auto)!important;
 max-width:none!important;max-height:none!important;object-fit:contain;
}

/* v2.41.0: Elementor-responsive 3D cards retain their authored aspect ratio.
   Shrink only when the parent column is narrower than the configured width. */
.amsi-flip-container{width:var(--amsi-width,320px)!important;max-width:100%!important;height:auto!important;aspect-ratio:var(--amsi-card-ratio,2 / 3)!important;min-height:0!important;}
.amsi-flip-container .amsi-face>img,.amsi-flip-container .amsi-face>video{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;}
.amsi-flip-container .amsi-face img{object-fit:contain!important;}

/* Elementor responsive override: preserve full media without cropping */
.elementor-widget-artist-original-flip .amsi-flip-container{max-width:100%!important;min-width:0!important;}
.elementor-widget-artist-original-flip .amsi-flip-container .amsi-face img{object-fit:contain!important;}

/* v1.1.3: Elementor color controls must override WYSIWYG nested inline colors. */
.elementor-widget-artist-original-flip .amsi-face .amsi-edit-title,
.elementor-widget-artist-original-flip .amsi-face .amsi-edit-title :is(span,p,strong,em,a),
.elementor-widget-artist-original-flip .amsi-face .amsi-edit-text,
.elementor-widget-artist-original-flip .amsi-face .amsi-edit-text :is(span,p,strong,em,a){color:var(--amsi-copy-color,inherit)!important}
.elementor-widget-artist-original-flip .amsi-face .amsi-copy{padding:0!important}
.elementor-widget-artist-original-flip .amsi-cta.amsi-hover-lift:hover{translate:0 -5px;box-shadow:0 9px calc(var(--btn-shadow,5px) * 1.6) rgba(0,0,0,.4)}
.elementor-widget-artist-original-flip .amsi-cta.amsi-hover-scale:hover{scale:1.09}
.elementor-widget-artist-original-flip .amsi-cta.amsi-hover-pulse:hover{animation:artist-cta-pulse .8s ease-in-out infinite alternate}
@keyframes artist-cta-pulse{from{scale:1}to{scale:1.08}}
@media(prefers-reduced-motion:reduce){.elementor-widget-artist-original-flip .amsi-cta{animation:none!important;transition:none!important}}

/* v1.1.6: Fixed-size card. Never compress the card while leaving text at its
   original pixel size; this was the cause of text overflow on narrow columns. */
.elementor-widget-artist-original-flip .amsi-flip-container{
  width:320px!important;min-width:320px!important;max-width:none!important;
  height:480px!important;min-height:480px!important;max-height:none!important;
  aspect-ratio:2 / 3!important;flex:none!important;
}
/* On portrait phones, arrange Elementor card columns vertically rather than
   trying to squeeze several 320px cards into one row. */
@media screen and (max-width:767px) and (orientation:portrait){
  .e-con:has(> .elementor-widget-artist-original-flip){
    flex-direction:column!important;align-items:center!important;
  }
  .elementor-row:has(.elementor-widget-artist-original-flip){
    flex-direction:column!important;align-items:center!important;
  }
  .elementor-column:has(.elementor-widget-artist-original-flip){
    width:100%!important;max-width:100%!important;
  }
  .elementor-widget-artist-original-flip{
    width:100%!important;max-width:100%!important;
  }
  .elementor-widget-artist-original-flip .elementor-widget-container{
    display:flex;justify-content:center;overflow:visible;
  }
}

/* v1.1.7: Keep all four rounded corners clipped throughout 3D rotation.
   Clip each face independently; never clip/filter the rotating 3D parent.
   This also clips the temporary image-scale animation on Safari/iOS. */
.elementor-widget-artist-original-flip .amsi-flip-container .amsi-face{
  border-radius:var(--amsi-flip-radius,16px)!important;
  clip-path:inset(0 round var(--amsi-flip-radius,16px));
  -webkit-clip-path:inset(0 round var(--amsi-flip-radius,16px));
  overflow:hidden!important;
}
.elementor-widget-artist-original-flip .amsi-flip-container .amsi-face>img,
.elementor-widget-artist-original-flip .amsi-flip-container .amsi-face>video{
  border-radius:inherit!important;
}

/* v1.1.8: Keep both faces and their images at constant size while turning.
   Only the inner 3D plane rotates; do not animate scale/curve on either face.
   Leave button hover effects and the rotating ground shadow intact. */
.elementor-widget-artist-original-flip .amsi-flip-container .amsi-face,
.elementor-widget-artist-original-flip .amsi-flip-container.amsi-turning .amsi-face {
  scale:1!important;
  animation:none!important;
}
.elementor-widget-artist-original-flip .amsi-flip-container .amsi-face img,
.elementor-widget-artist-original-flip .amsi-flip-container.amsi-turning .amsi-face img,
.elementor-widget-artist-original-flip .amsi-flip-container[data-curve="1"] .amsi-face img {
  scale:1!important;
  transform:none!important;
  animation:none!important;
  transition:none!important;
}

/* v1.1.9 — iOS Safari: retain the rounded silhouette on every 3D frame.
   Mask the two faces independently, never the preserve-3d rotating parent.
   The opaque alpha mask forces Safari to composite the face's rounded clip
   even while its parent is between 0 and 180 degrees. */
.elementor-widget-artist-original-flip .amsi-flip-container .amsi-front,
.elementor-widget-artist-original-flip .amsi-flip-container .amsi-back{
  border-radius:var(--amsi-flip-radius,16px)!important;
  -webkit-mask-image:linear-gradient(#fff,#fff);
  mask-image:linear-gradient(#fff,#fff);
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  clip-path:inset(0 round var(--amsi-flip-radius,16px));
  -webkit-clip-path:inset(0 round var(--amsi-flip-radius,16px));
  overflow:hidden!important;
}
.elementor-widget-artist-original-flip .amsi-flip-container .amsi-face > img,
.elementor-widget-artist-original-flip .amsi-flip-container .amsi-face > video,
.elementor-widget-artist-original-flip .amsi-flip-container .amsi-face > iframe{
  border-radius:inherit!important;
  clip-path:inset(0 round var(--amsi-flip-radius,16px));
  -webkit-clip-path:inset(0 round var(--amsi-flip-radius,16px));
}
