/* V5.10.4 — unified iOS Safari viewport + overlay/orientation hardening */
:root{--mws-vvh:100dvh;--mws-vvw:100vw;--mws-vvtop:0px;--mws-vvleft:0px;--mws-keyboard-inset:0px}
html,body{max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;overscroll-behavior-x:none}
body{min-height:100svh;min-height:var(--mws-vvh)}
.site-header{padding-top:env(safe-area-inset-top)}
.mobile-menu{max-height:calc(var(--mws-vvh) - 72px - env(safe-area-inset-top));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:calc(20px + env(safe-area-inset-bottom))}
.product-demo-modal,.lightbox,.ct-founder-modal{height:var(--mws-vvh)!important;max-height:var(--mws-vvh)!important;top:var(--mws-vvtop)!important}
.product-demo-dialog,.ct-founder-dialog{max-height:calc(var(--mws-vvh) - 20px)!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.lightbox img{max-height:calc(var(--mws-vvh) - 80px)!important}
input,textarea,select{font-size:max(16px,1rem)}
html.mws-keyboard-open .mobile-menu{max-height:calc(var(--mws-vvh) - 12px)!important}
html.mws-keyboard-open .site-header{position:absolute!important}
html.mws-keyboard-open .product-demo-dialog,html.mws-keyboard-open .ct-founder-dialog{max-height:calc(var(--mws-vvh) - 8px)!important}
html.mws-ios .product-demo-backdrop,html.mws-ios .lightbox,html.mws-ios .ct-founder-backdrop{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
html.mws-viewport-settling *{scroll-behavior:auto!important}
@media(max-width:1180px){.nav-shell{padding-inline:max(14px,env(safe-area-inset-left)) max(14px,env(safe-area-inset-right))}.hero,.ct-hero,.page-hero,.product-hero{min-height:auto!important}.complete-membership-hero{min-height:calc(100dvh - 78px)!important}}
@media(max-width:820px){.nav-shell{min-height:68px}.desktop-nav{display:none!important}.menu-button{display:grid!important}.nav-login{display:none!important}.hero,.ct-hero,.page-hero,.product-hero{padding-top:clamp(38px,7svh,70px)!important}.hero h1,.ct-hero h1,.page-hero h1,.product-hero h1{max-width:14ch!important;margin-inline:auto}.product-demo-player video,.ct-founder-dialog video{max-height:min(58dvh,calc(var(--mws-vvh) - 170px))!important;object-fit:contain!important}.product-demo-dialog-foot{padding-bottom:calc(12px + env(safe-area-inset-bottom))!important}}
@media(max-width:520px){.section{padding-inline:max(14px,env(safe-area-inset-left)) max(14px,env(safe-area-inset-right))!important}.hero h1,.ct-hero h1,.page-hero h1,.product-hero h1{font-size:clamp(2.6rem,13vw,4rem)!important;line-height:.95!important}.hero-actions,.ct-actions{display:grid!important;grid-template-columns:1fr!important}.hero-actions .button,.ct-actions .button{width:100%!important;justify-content:center!important}.product-demo-dialog,.ct-founder-dialog{width:calc(100vw - 12px)!important;border-radius:18px!important}}
@media(min-width:744px) and (max-width:1180px){.hero,.ct-hero,.page-hero,.product-hero{grid-template-columns:1fr!important;gap:36px!important}.hero-copy,.ct-hero-copy,.page-hero-copy{max-width:880px!important;margin-inline:auto}.pricing-grid,.ct-pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.founder-card,.ct-founder-section{grid-template-columns:1fr!important}}
html.mws-ipad.mws-landscape .product-demo-dialog,html.mws-ipad.mws-landscape .ct-founder-dialog{width:min(1100px,calc(var(--mws-vvw) - 28px))!important;max-height:calc(var(--mws-vvh) - 14px)!important}
html.mws-compact-landscape .product-demo-dialog-head,html.mws-compact-landscape .ct-founder-dialog-head{padding-block:8px!important}
html.mws-compact-landscape .product-demo-description{display:none!important}
html.mws-compact-landscape .product-demo-dialog-foot{display:none!important}
html.mws-compact-landscape .product-demo-player video,html.mws-compact-landscape .ct-founder-dialog video{max-height:calc(var(--mws-vvh) - 78px)!important}
@media(prefers-reduced-motion:reduce){.reveal{transition:none!important;transform:none!important}.reveal:not(.visible){opacity:1!important}}

/* V5.10.4 — iOS Safari fixed-overlay and orientation hardening. */
html.mws-scroll-locked,body.mws-scroll-locked{overflow:hidden!important;overscroll-behavior:none!important}

/* Fixed overlays are anchored to the Safari VisualViewport on both axes.
   top-only positioning left an old layout-viewport width/left after rotation. */
.product-demo-modal,.lightbox,.ct-founder-modal{
  position:fixed!important;
  left:var(--mws-vvleft,0px)!important;
  top:var(--mws-vvtop,0px)!important;
  right:auto!important;bottom:auto!important;
  width:var(--mws-vvw,100vw)!important;
  height:var(--mws-vvh,100dvh)!important;
  max-width:none!important;max-height:var(--mws-vvh,100dvh)!important;
  transform:none!important;overflow:hidden!important;
}
.product-demo-dialog,.ct-founder-dialog{
  width:min(1180px,calc(var(--mws-vvw,100vw) - 56px))!important;
  max-width:calc(var(--mws-vvw,100vw) - 56px)!important;
  max-height:calc(var(--mws-vvh,100dvh) - 20px)!important;
}
.lightbox{padding-left:max(8px,env(safe-area-inset-left))!important;padding-right:max(8px,env(safe-area-inset-right))!important;padding-bottom:max(12px,env(safe-area-inset-bottom))!important}
.lightbox-close{right:max(12px,env(safe-area-inset-right))!important;top:max(12px,calc(var(--mws-vvtop,0px) + env(safe-area-inset-top)))!important}

/* Mobile nav follows the visible Safari viewport and safe-area insets. */
@media(max-width:820px){
  .product-demo-modal,.ct-founder-modal{padding:12px!important}
  .product-demo-dialog,.ct-founder-dialog{width:calc(var(--mws-vvw,100vw) - 24px)!important;max-width:calc(var(--mws-vvw,100vw) - 24px)!important}
  .mobile-menu{
    left:max(12px,env(safe-area-inset-left))!important;
    right:max(12px,env(safe-area-inset-right))!important;
    top:calc(var(--mws-vvtop,0px) + 78px + env(safe-area-inset-top))!important;
    max-height:calc(var(--mws-vvh,100dvh) - 86px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;
  }
}
@media(max-width:520px){
  .product-demo-dialog,.ct-founder-dialog{width:calc(var(--mws-vvw,100vw) - 24px)!important;max-width:calc(var(--mws-vvw,100vw) - 24px)!important}
}

/* Remove transition interpolation while Safari swaps portrait/landscape viewport
   dimensions; re-enable after the shared viewport manager reports stability. */
html.mws-viewport-settling .product-demo-modal,
html.mws-viewport-settling .ct-founder-modal,
html.mws-viewport-settling .lightbox,
html.mws-viewport-settling .mobile-menu{transition:none!important;animation:none!important}

/* iPhone landscape can be 844–956 CSS px wide. Keep the touch navigation
   rather than switching to the crowded desktop header at the legacy 820px breakpoint. */
@media (min-width:821px) and (max-width:960px) and (pointer:coarse) {
  html.mws-ios .desktop-nav,
  html.mws-ios .nav-login,
  html.mws-ios .nav-actions>.button { display:none!important; }
  html.mws-ios .nav-shell { height:70px!important; }
  html.mws-ios .nav-actions { margin-left:auto!important; }
  html.mws-ios .menu-button { display:grid!important; position:relative!important; }
  html.mws-ios .mobile-menu {
    display:grid!important;
    position:fixed!important;
    left:max(12px,env(safe-area-inset-left))!important;
    right:max(12px,env(safe-area-inset-right))!important;
    top:calc(var(--mws-vvtop,0px) + 72px + env(safe-area-inset-top))!important;
    max-height:calc(var(--mws-vvh,100dvh) - 80px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    padding:12px!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    z-index:180!important;
    border-radius:20px!important;
    background:rgba(18,18,24,.995)!important;
    transform:translateY(-10px)!important;
    opacity:0!important;
    pointer-events:none!important;
  }
  html.mws-ios body.menu-open .mobile-menu {
    transform:none!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  html.mws-ios body.menu-open::before {
    content:"";
    position:fixed;
    left:var(--mws-vvleft,0px);
    top:calc(var(--mws-vvtop,0px) + 70px);
    width:var(--mws-vvw,100vw);
    height:calc(var(--mws-vvh,100dvh) - 70px);
    z-index:95;
    background:rgba(3,3,6,.72);
  }
}
