.uph-hero {
  --uph-content-width:50%; --uph-video-width:50%; --uph-padding-x:clamp(24px,5vw,88px);
  --uph-padding-y:64px; --uph-column-gap:32px; --uph-focus-x:50%; --uph-focus-y:50%;
  --uph-toggle-size:48px; --uph-toggle-x:32px; --uph-toggle-y:32px; --uph-transition:250ms;
  position:relative; isolation:isolate; overflow:hidden; background:#050505; color:#fff;
  display:flex; align-items:center; width:100%; min-height:720px; padding:0; font-family:inherit;
}
.uph-hero,.uph-hero * {box-sizing:border-box}
.uph-content {position:relative;z-index:5;flex:0 0 var(--uph-content-width);min-width:0;padding:var(--uph-padding-y) calc(var(--uph-column-gap) / 2) calc(var(--uph-padding-y) + var(--uph-scroll-reserve,36px)) var(--uph-padding-x)}
.uph-hero[data-show-scroll="0"] {--uph-scroll-reserve:0px}
.uph-content-inner {max-width:var(--uph-content-max-width,650px);width:100%}
.uph-eyebrow {font-size:clamp(12px,1vw,16px);font-weight:700;letter-spacing:.09em;margin:0 0 30px;overflow-wrap:anywhere}
.uph-hero .uph-heading {color:#fff;font-size:clamp(38px,3.9vw,64px);line-height:1.04;letter-spacing:-.045em;font-weight:600;margin:0 0 28px;max-width:700px;overflow-wrap:anywhere}
.uph-description {max-width:620px;color:rgba(255,255,255,.78);font-size:clamp(16px,1.08vw,19px);line-height:1.5;margin:0 0 28px;overflow-wrap:anywhere}
.uph-description p {margin:0}.uph-description p+p {margin-top:1em}
.uph-meta {display:flex;flex-direction:column;align-items:flex-start;gap:12px;font-size:15px;font-weight:600}
.uph-meta-item {display:flex;gap:10px;align-items:center;max-width:100%;overflow-wrap:anywhere}
.uph-meta-icon {font-size:16px;flex:none;width:1em;text-align:center;line-height:1}
.uph-meta-icon svg {display:block;width:1em;height:1em}
.uph-cta-row {display:flex;margin-top:34px}
.uph-hero .uph-cta {display:inline-flex;align-items:center;justify-content:space-between;gap:34px;max-width:100%;padding:16px 22px;background-color:#fff;color:#0a0a0a;text-decoration:none;font-weight:700;border:1px solid transparent;border-radius:3px;transition:transform var(--uph-transition) ease,background-color var(--uph-transition) ease,color var(--uph-transition) ease,box-shadow var(--uph-transition) ease;overflow-wrap:anywhere}
.uph-hero .uph-cta:hover {transform:translateY(-2px);background-color:#eee}.uph-cta-icon {flex:none;font-size:22px}
.uph-video-shell {position:absolute;z-index:2;top:0;right:0;bottom:0;width:var(--uph-video-width);pointer-events:none}
/* A single cubic traces the left edge and bottom sweep, with no intermediate joins. */
.uph-video-stage {position:absolute;inset:0;overflow:hidden;background:#140724;pointer-events:auto;
  --uph-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 760' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M110 0H1000V760C40 680 -80 590 110 0Z'/%3E%3C/svg%3E");
  -webkit-mask-image:var(--uph-mask);mask-image:var(--uph-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
}
/* Fill Wistia's media wrapper rather than letting its aspect-ratio sizing pre-crop the footage.
   fitStrategy=fill delegates the final crop to object-fit/object-position on the video. */
.uph-wistia {position:absolute!important;inset:0;opacity:1;pointer-events:none}
.uph-hero[data-uph-init="1"] .uph-wistia {opacity:0;transition:opacity 300ms ease}
.uph-hero.uph-video-ready .uph-wistia {opacity:1}
.uph-wistia .w-video-wrapper {position:absolute!important;inset:0!important;width:100%!important;height:100%!important;transform:none!important}
.uph-wistia video {position:absolute!important;inset:0!important;max-width:none!important;max-height:none!important;transform:none!important}
/* Defensive guard for Wistia chrome injected by account-level customizations. */
.uph-wistia [data-handle="controls"],.uph-wistia .w-bottom-bar,.uph-wistia .w-big-play-button,.uph-wistia .w-css-reset > button {display:none!important}
.uph-wistia,.uph-wistia>div,.uph-wistia video {width:100%!important;height:100%!important}
.uph-wistia video {object-fit:var(--uph-video-fit,cover)!important;object-position:var(--uph-focus-x) var(--uph-focus-y)!important}
.uph-wistia iframe {width:100%!important;height:100%!important}
.uph-video-overlay {position:absolute;z-index:3;inset:0;pointer-events:none;background:linear-gradient(90deg,#050505,rgba(57,23,102,.6) 35%,transparent);opacity:10%}
/* Controls are siblings of the mask; safe offsets also keep them above its bottom sweep. */
.uph-hero .uph-toggle {position:absolute;z-index:8;right:clamp(16px,var(--uph-toggle-x),25%);bottom:clamp(28px,calc(var(--uph-toggle-y) + 2%),35%);width:clamp(42px,var(--uph-toggle-size),96px);height:clamp(42px,var(--uph-toggle-size),96px);padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.65);background-color:rgba(0,0,0,.36);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;display:grid;place-items:center;cursor:pointer;font:600 16px/1 Arial;pointer-events:auto;transition:background-color var(--uph-transition) ease}
.uph-hero .uph-toggle:hover {background-color:rgba(0,0,0,.65)}.uph-hero .uph-toggle[hidden] {display:none}
.uph-toggle:disabled {opacity:.4;cursor:wait}
.uph-hero .uph-toggle:focus-visible,.uph-hero .uph-cta:focus-visible {outline:3px solid #bca4ff;outline-offset:4px}
.uph-scroll {position:absolute;z-index:7;bottom:var(--uph-scroll-bottom,24px);left:var(--uph-padding-x);width:calc(var(--uph-content-width) - var(--uph-padding-x) - var(--uph-column-gap));display:flex;align-items:center;justify-content:center;gap:12px;font-size:11px;font-weight:700;letter-spacing:.1em;pointer-events:none}
.uph-scroll-arrow {font-size:22px;font-weight:300;flex:none}
.uph-glow {position:absolute;z-index:1;pointer-events:none;border-radius:50%;filter:blur(32px);opacity:.35}
.uph-glow-a {width:48%;height:100px;right:-5%;bottom:3%;background:linear-gradient(90deg,#3958ff,#7d3cff);transform:rotate(12deg)}
.uph-glow-b {width:100px;height:55%;left:52%;top:10%;background:#7d3cff;opacity:.16;transform:rotate(20deg)}
.uph-video-placeholder {height:100%;display:grid;place-items:center;padding:25%;text-align:center;background:linear-gradient(135deg,#10051d,#251044);color:rgba(255,255,255,.7)}
.uph-video-status {position:absolute;left:30%;right:24px;top:45%;color:#fff;font-size:14px;text-align:center}
.uph-video-status[hidden] {display:none}
@media(min-width:992px) and (max-width:1199px) {
  .uph-hero {--uph-padding-x:32px;--uph-padding-y:56px;--uph-column-gap:28px;--uph-toggle-size:46px}
  .uph-hero .uph-heading {font-size:clamp(36px,3.8vw,46px)}
  .uph-video-stage {--uph-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 760' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M70 0H1000V760C60 705 -40 600 70 0Z'/%3E%3C/svg%3E")}
}
@media(max-width:991px) {
  .uph-hero {flex-direction:column;align-items:stretch;--uph-padding-x:36px;--uph-padding-y:48px;--uph-toggle-size:46px;min-height:0}
  .uph-content {flex:none;width:100%;padding:var(--uph-padding-y) var(--uph-padding-x) 36px}
  .uph-content-inner {margin-inline:auto}
  .uph-hero .uph-heading {font-size:clamp(38px,5.6vw,50px)}
  .uph-video-shell {position:relative;inset:auto;flex:none;width:calc(100% - 2 * var(--uph-padding-x));max-width:var(--uph-content-max-width,650px);margin-inline:auto;aspect-ratio:16/9}
  .uph-video-stage {-webkit-mask-image:none;mask-image:none;border-radius:28px 12px 28px 12px}
  .uph-wistia video {object-fit:cover!important}
  .uph-hero .uph-toggle {right:clamp(20px,var(--uph-toggle-x),25%);bottom:clamp(24px,var(--uph-toggle-y),35%)}
  .uph-scroll {position:relative;inset:auto;width:calc(100% - 2 * var(--uph-padding-x));max-width:var(--uph-content-max-width,650px);margin-inline:auto;padding:20px 0 var(--uph-scroll-bottom,24px)}
  .uph-glow-a {width:90%;height:100px}.uph-glow-b {display:none}
}
@media(max-width:767px) {
  .uph-hero {--uph-padding-x:22px;--uph-toggle-size:44px;--uph-toggle-x:24px;--uph-toggle-y:24px}
  .uph-hero .uph-heading {font-size:clamp(34px,9vw,48px)}
  .uph-description {font-size:16px}
  .uph-video-stage {border-radius:24px 10px 24px 10px}
}
@media(prefers-reduced-motion:reduce) {
  .uph-hero .uph-cta,.uph-hero .uph-toggle,.uph-hero[data-uph-init="1"] .uph-wistia {transition:none}
  .uph-hero .uph-cta:hover {transform:none}
}
/* Full-video controls are outside the existing preview mask. */
.uph-video-actions {position:absolute;z-index:8;right:clamp(16px,var(--uph-toggle-x),25%);bottom:clamp(48px,calc(var(--uph-toggle-y) + 5%),35%);display:flex;align-items:center;gap:12px;max-width:calc(100% - 48px);pointer-events:auto}
.uph-hero .uph-video-actions .uph-toggle {position:relative;inset:auto;flex:none}
.uph-full-trigger {display:inline-flex;align-items:center;justify-content:center;gap:var(--uph-full-gap,8px);min-width:0;min-height:44px;padding:var(--uph-full-padding-y,10px) var(--uph-full-padding-x,16px);border:1px solid rgba(255,255,255,.65);border-radius:999px;background:rgba(0,0,0,.36);color:#fff;font-family:inherit;font-size:14px;line-height:1.3;font-weight:600;cursor:pointer;backdrop-filter:blur(8px);transition:background-color var(--uph-transition),border-color var(--uph-transition);overflow-wrap:anywhere}
.uph-full-trigger svg {width:16px;height:16px;flex:none}
.uph-full-trigger:hover {background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.85)}
.uph-full-trigger:focus-visible,.uph-full-close:focus-visible {outline:3px solid #bca4ff;outline-offset:4px}
.uph-full-dialog {position:fixed;inset:0;margin:auto;width:min(960px,calc(100vw - 32px),calc((100dvh - 100px) * 16 / 9));max-width:none;max-height:calc(100dvh - 32px);padding:52px 0 0;border:0;border-radius:12px;background:#050505;color:#fff;pointer-events:auto;overflow:auto}
.uph-full-dialog::backdrop {background:rgba(0,0,0,.85)}
.uph-full-close {position:absolute;top:4px;right:4px;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font:28px/1 sans-serif;cursor:pointer}
.uph-full-frame {aspect-ratio:16/9;width:100%}
.uph-full-frame iframe {display:block;width:100%;height:100%;border:0}
@media(max-width:991px) {
  .uph-video-actions {right:clamp(20px,var(--uph-toggle-x),25%);bottom:clamp(24px,var(--uph-toggle-y),35%)}
}
@media(max-width:767px) {
  .uph-video-actions {gap:10px}
  .uph-full-trigger {padding:var(--uph-full-padding-y,8px) var(--uph-full-padding-x,12px);font-size:12px;gap:var(--uph-full-gap,6px)}
}
@media(prefers-reduced-motion:reduce) {.uph-full-trigger {transition:none}}

/* Override Hello Elementor's [type=button]:focus/:hover colors only within this hero.
   Normal variables also cover click/focus persistence; hover uses its own configured palette. */
.uph-hero button.uph-full-trigger,
.uph-hero button.uph-full-trigger:is(:focus,:focus-visible,:active) {
  background:var(--uph-full-bg,rgba(0,0,0,.72));color:var(--uph-full-text,#fff);
  border:var(--uph-full-border-width,1px) solid var(--uph-full-border,rgba(255,255,255,.7));border-radius:var(--uph-full-radius,999px);
  transition:background-color var(--uph-full-transition,250ms),color var(--uph-full-transition,250ms),border-color var(--uph-full-transition,250ms);
}
.uph-hero button.uph-full-trigger svg {color:var(--uph-full-icon,#fff);fill:currentColor}
.uph-hero button.uph-full-trigger:hover {background:var(--uph-full-hover-bg,#fff);color:var(--uph-full-hover-text,#000);border-color:var(--uph-full-hover-border,#fff)}
.uph-hero button.uph-full-trigger:hover svg {color:var(--uph-full-hover-icon,#000)}
.uph-hero button.uph-toggle,
.uph-hero button.uph-toggle:is(:focus,:focus-visible,:active) {
  background:var(--uph-pause-bg,rgba(0,0,0,.45));color:var(--uph-pause-icon,#fff);
  border:var(--uph-pause-border-width,1px) solid var(--uph-pause-border,rgba(255,255,255,.7));border-radius:var(--uph-pause-radius,50%);
}
.uph-hero button.uph-toggle:hover {background:var(--uph-pause-hover-bg,#fff);color:var(--uph-pause-hover-icon,#000);border-color:var(--uph-pause-hover-border,#fff)}
.uph-hero .uph-full-dialog button.uph-full-close,
.uph-hero .uph-full-dialog button.uph-full-close:is(:focus,:focus-visible,:active) {
  background:var(--uph-close-bg,#000);color:var(--uph-close-icon,#fff);border:1px solid var(--uph-close-border,rgba(255,255,255,.7));border-radius:50%;
  width:var(--uph-close-size,44px);height:var(--uph-close-size,44px);
}
.uph-hero .uph-full-dialog button.uph-full-close:hover {background:var(--uph-close-hover-bg,#fff);color:var(--uph-close-hover-icon,#000);border-color:#fff}
.uph-hero button:is(.uph-full-trigger,.uph-toggle,.uph-full-close):focus-visible {outline:2px solid #fff;outline-offset:3px;box-shadow:0 0 0 5px #000}
@media(prefers-reduced-motion:reduce) {.uph-hero button.uph-full-trigger {transition:none}}
/* Native media shares the existing stage, mask and focus settings. Keep its poster visible while loading. */
.uph-hero .uph-html5-video {position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:var(--uph-video-fit,cover);object-position:var(--uph-focus-x,50%) var(--uph-focus-y,50%);pointer-events:none}
.uph-hero .uph-full-html5 {width:100%;height:100%;display:block;object-fit:contain;background:#000}
.uph-hero .uph-full-error {padding:24px;color:#fff;text-align:center}
@media(max-width:991px) {.uph-hero .uph-html5-video {object-fit:cover}}
