.twvh{position:relative;width:100%}.twvh__stage{position:relative;width:100%;height:var(--twvh-hd);overflow:hidden;border-radius:var(--twvh-radius);background:#090909;box-shadow:var(--twvh-shadow);isolation:isolate}.twvh__video-layer,.twvh__poster,.twvh__overlay,.twvh__gradient{position:absolute;inset:0}.twvh__video-layer{z-index:1;opacity:0;background:#000;transition:opacity var(--twvh-fade) ease}.twvh__video-layer iframe,.twvh__video-layer video{display:block;width:100%;height:100%;border:0;background:#000;object-fit:var(--twvh-fit)}.twvh__poster{z-index:2;background-image:var(--twvh-poster-desktop);background-position:center;background-repeat:no-repeat;background-size:cover;opacity:1;pointer-events:none;transition:opacity var(--twvh-fade) ease}.twvh__overlay{z-index:3;background-position:center;background-repeat:no-repeat;background-size:cover;opacity:var(--twvh-overlay);pointer-events:none;transition:opacity var(--twvh-fade) ease}.twvh--blend-multiply .twvh__overlay{mix-blend-mode:multiply}.twvh--blend-screen .twvh__overlay{mix-blend-mode:screen}.twvh--blend-overlay .twvh__overlay{mix-blend-mode:overlay}.twvh--blend-soft-light .twvh__overlay{mix-blend-mode:soft-light}.twvh--blend-hard-light .twvh__overlay{mix-blend-mode:hard-light}.twvh--blend-color-burn .twvh__overlay{mix-blend-mode:color-burn}.twvh--blend-color-dodge .twvh__overlay{mix-blend-mode:color-dodge}.twvh--blend-luminosity .twvh__overlay{mix-blend-mode:luminosity}.twvh__gradient{z-index:4;opacity:0;background:linear-gradient(var(--twvh-gradient-angle),var(--twvh-gradient-one),var(--twvh-gradient-two));pointer-events:none;transition:opacity var(--twvh-fade) ease}.twvh--gradient .twvh__gradient{opacity:1}.twvh__content{position:absolute;z-index:5;display:flex;flex-direction:column;gap:14px;width:min(860px,calc(100% - 48px));padding:24px;pointer-events:none;transition:opacity var(--twvh-fade) ease}.twvh--align-left .twvh__content{left:0;text-align:left;align-items:flex-start}.twvh--align-center .twvh__content{left:50%;transform:translateX(-50%);text-align:center;align-items:center}.twvh--align-right .twvh__content{right:0;text-align:right;align-items:flex-end}.twvh--valign-top .twvh__content{top:0}.twvh--valign-center .twvh__content{top:50%}.twvh--valign-bottom .twvh__content{bottom:0}.twvh--align-left.twvh--valign-center .twvh__content,.twvh--align-right.twvh--valign-center .twvh__content{transform:translateY(-50%)}.twvh--align-center.twvh--valign-center .twvh__content{transform:translate(-50%,-50%)}.twvh__title{margin:0;color:var(--twvh-title);font-size:clamp(2rem,5vw,5rem);line-height:1.05}.twvh__subtitle{margin:0;color:var(--twvh-subtitle);font-size:clamp(1rem,2vw,1.45rem);line-height:1.5}.twvh__cta{display:inline-flex;align-items:center;justify-content:center;margin-top:6px;padding:12px 22px;border-radius:6px;background:var(--twvh-cta-bg);color:var(--twvh-cta-text);text-decoration:none;font-weight:700;pointer-events:auto}.twvh__play{position:absolute;inset:0;z-index:6;display:grid;place-items:center;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer;transition:opacity var(--twvh-fade) ease,visibility var(--twvh-fade) ease}.twvh__play-ring{display:grid;place-items:center;width:var(--twvh-play-size);height:var(--twvh-play-size);border:2px solid var(--twvh-play);border-radius:50%;background:var(--twvh-play-bg);color:var(--twvh-play);box-shadow:0 10px 35px rgba(0,0,0,.35);backdrop-filter:blur(4px);transition:transform .22s ease}.twvh__play:hover .twvh__play-ring,.twvh__play:focus-visible .twvh__play-ring{transform:scale(1.07)}.twvh__play-ring svg{width:50%;height:50%;fill:currentColor;transform:translateX(4%)}.twvh__play--invisible{opacity:0}.twvh.is-playing .twvh__video-layer{opacity:1}.twvh.is-playing .twvh__poster{opacity:0}.twvh.is-playing .twvh__overlay{opacity:var(--twvh-playing)}.twvh.is-playing .twvh__play{opacity:0;visibility:hidden;pointer-events:none}.twvh.is-playing:not(.twvh--keep-copy) .twvh__content{opacity:0;pointer-events:none}@media(max-width:980px){.twvh__stage{height:var(--twvh-ht)}}@media(max-width:767px){.twvh__stage{height:var(--twvh-hp)}.twvh__content{width:calc(100% - 24px);padding:16px}}@media(prefers-reduced-motion:reduce){.twvh__video-layer,.twvh__poster,.twvh__overlay,.twvh__gradient,.twvh__content,.twvh__play{transition:none}}

@media(max-width:767px){.twvh__poster{background-image:var(--twvh-poster-mobile)}}

/* v1.5 — Ken Burns and animated overlays */
.twvh--ken-burns .twvh__poster{will-change:transform;animation-duration:var(--twvh-kb-duration);animation-timing-function:ease-in-out;animation-fill-mode:both;animation-iteration-count:infinite;animation-direction:alternate}
.twvh--kb-zoom-in .twvh__poster{animation-name:twvh-kb-zoom-in}
.twvh--kb-zoom-out .twvh__poster{animation-name:twvh-kb-zoom-out}
.twvh--kb-pan-left .twvh__poster{animation-name:twvh-kb-pan-left}
.twvh--kb-pan-right .twvh__poster{animation-name:twvh-kb-pan-right}
.twvh--kb-pan-up .twvh__poster{animation-name:twvh-kb-pan-up}
.twvh--kb-pan-down .twvh__poster{animation-name:twvh-kb-pan-down}
.twvh.is-playing.twvh--ken-burns:not(.twvh--kb-playing) .twvh__poster{animation-play-state:paused}

.twvh--overlay-animated .twvh__overlay{will-change:transform,opacity;animation-duration:var(--twvh-overlay-anim-duration);animation-timing-function:ease-in-out;animation-fill-mode:both;animation-iteration-count:infinite;animation-direction:alternate}
.twvh--overlay-drift.twvh--overlay-dir-left-to-right .twvh__overlay{animation-name:twvh-overlay-ltr}
.twvh--overlay-drift.twvh--overlay-dir-right-to-left .twvh__overlay{animation-name:twvh-overlay-rtl}
.twvh--overlay-drift.twvh--overlay-dir-top-to-bottom .twvh__overlay{animation-name:twvh-overlay-ttb}
.twvh--overlay-drift.twvh--overlay-dir-bottom-to-top .twvh__overlay{animation-name:twvh-overlay-btt}
.twvh--overlay-zoom .twvh__overlay{animation-name:twvh-overlay-zoom}
.twvh--overlay-pulse .twvh__overlay{animation-name:twvh-overlay-pulse}
.twvh--overlay-rotate.twvh--overlay-dir-anticlockwise .twvh__overlay{animation-name:twvh-overlay-rotate-ccw}
.twvh--overlay-rotate:not(.twvh--overlay-dir-anticlockwise) .twvh__overlay{animation-name:twvh-overlay-rotate-cw}
.twvh.is-playing.twvh--overlay-animated:not(.twvh--overlay-playing) .twvh__overlay{animation-play-state:paused}

@keyframes twvh-kb-zoom-in{from{transform:scale(1)}to{transform:scale(var(--twvh-kb-scale))}}
@keyframes twvh-kb-zoom-out{from{transform:scale(var(--twvh-kb-scale))}to{transform:scale(1)}}
@keyframes twvh-kb-pan-left{from{transform:scale(var(--twvh-kb-scale)) translateX(3%)}to{transform:scale(var(--twvh-kb-scale)) translateX(-3%)}}
@keyframes twvh-kb-pan-right{from{transform:scale(var(--twvh-kb-scale)) translateX(-3%)}to{transform:scale(var(--twvh-kb-scale)) translateX(3%)}}
@keyframes twvh-kb-pan-up{from{transform:scale(var(--twvh-kb-scale)) translateY(3%)}to{transform:scale(var(--twvh-kb-scale)) translateY(-3%)}}
@keyframes twvh-kb-pan-down{from{transform:scale(var(--twvh-kb-scale)) translateY(-3%)}to{transform:scale(var(--twvh-kb-scale)) translateY(3%)}}
@keyframes twvh-overlay-ltr{from{transform:scale(var(--twvh-overlay-anim-scale)) translateX(-2%)}to{transform:scale(var(--twvh-overlay-anim-scale)) translateX(2%)}}
@keyframes twvh-overlay-rtl{from{transform:scale(var(--twvh-overlay-anim-scale)) translateX(2%)}to{transform:scale(var(--twvh-overlay-anim-scale)) translateX(-2%)}}
@keyframes twvh-overlay-ttb{from{transform:scale(var(--twvh-overlay-anim-scale)) translateY(-2%)}to{transform:scale(var(--twvh-overlay-anim-scale)) translateY(2%)}}
@keyframes twvh-overlay-btt{from{transform:scale(var(--twvh-overlay-anim-scale)) translateY(2%)}to{transform:scale(var(--twvh-overlay-anim-scale)) translateY(-2%)}}
@keyframes twvh-overlay-zoom{from{transform:scale(1)}to{transform:scale(var(--twvh-overlay-anim-scale))}}
@keyframes twvh-overlay-pulse{from{transform:scale(1);filter:brightness(.94)}to{transform:scale(var(--twvh-overlay-anim-scale));filter:brightness(1.06)}}
@keyframes twvh-overlay-rotate-cw{from{transform:scale(var(--twvh-overlay-anim-scale)) rotate(0deg)}to{transform:scale(var(--twvh-overlay-anim-scale)) rotate(3deg)}}
@keyframes twvh-overlay-rotate-ccw{from{transform:scale(var(--twvh-overlay-anim-scale)) rotate(0deg)}to{transform:scale(var(--twvh-overlay-anim-scale)) rotate(-3deg)}}

@media(prefers-reduced-motion:reduce){.twvh--ken-burns .twvh__poster,.twvh--overlay-animated .twvh__overlay{animation:none!important;transform:none!important;filter:none!important}}
