.elementor-27157 .elementor-element.elementor-element-21dd9bd{--display:flex;--min-height:15vh;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--z-index:3;}.elementor-27157 .elementor-element.elementor-element-21dd9bd:not(.elementor-motion-effects-element-type-background), .elementor-27157 .elementor-element.elementor-element-21dd9bd > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-48f25f1 );}.elementor-27157 .elementor-element.elementor-element-1802d2c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-27157 .elementor-element.elementor-element-7189009{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;}.elementor-27157 .elementor-element.elementor-element-7189009:not(.elementor-motion-effects-element-type-background), .elementor-27157 .elementor-element.elementor-element-7189009 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-48f25f1 );}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-27157 .elementor-element.elementor-element-8f59c58 .elementor-button{background-color:var( --e-global-color-48f25f1 );fill:var( --e-global-color-7aed975 );color:var( --e-global-color-7aed975 );}.elementor-27157 .elementor-element.elementor-element-8f59c58 > .elementor-widget-container{padding:0px 20px 0px 0px;}.elementor-27157 .elementor-element.elementor-element-8f59c58{z-index:999999;}.elementor-27157 .elementor-element.elementor-element-d337417{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-27157 .elementor-element.elementor-element-8a95279{--display:flex;--min-height:100vh;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-27157 .elementor-element.elementor-element-8a95279:not(.elementor-motion-effects-element-type-background), .elementor-27157 .elementor-element.elementor-element-8a95279 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-5ba0249 );}.elementor-27157 .elementor-element.elementor-element-c4879d0{--display:flex;--min-height:60vh;--justify-content:flex-end;--gap:50px 50px;--row-gap:50px;--column-gap:50px;}.elementor-27157 .elementor-element.elementor-element-c4879d0:not(.elementor-motion-effects-element-type-background), .elementor-27157 .elementor-element.elementor-element-c4879d0 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-5ba0249 );}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );color:var( --e-global-color-primary );}.elementor-27157 .elementor-element.elementor-element-7bc5f08 > .elementor-widget-container{padding:0px 0px 0px 30px;}.elementor-27157 .elementor-element.elementor-element-7bc5f08 .elementor-heading-title{font-family:"Work Sans", Sans-serif;font-size:70px;font-weight:700;text-transform:uppercase;color:var( --e-global-color-7aed975 );}.elementor-27157 .elementor-element.elementor-element-2d849f1{--display:flex;--min-height:100vh;--justify-content:center;--gap:50px 50px;--row-gap:50px;--column-gap:50px;}.elementor-27157 .elementor-element.elementor-element-2d849f1:not(.elementor-motion-effects-element-type-background), .elementor-27157 .elementor-element.elementor-element-2d849f1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-5ba0249 );}.elementor-27157 .elementor-element.elementor-element-1c55e32 > .elementor-widget-container{padding:0px 0px 0px 30px;}.elementor-27157 .elementor-element.elementor-element-1c55e32 .elementor-heading-title{font-family:"Work Sans", Sans-serif;font-size:70px;font-weight:700;text-transform:uppercase;color:var( --e-global-color-7aed975 );}.elementor-27157 .elementor-element.elementor-element-c0b16ca{--display:flex;--min-height:100vh;}.elementor-27157 .elementor-element.elementor-element-c0b16ca:not(.elementor-motion-effects-element-type-background), .elementor-27157 .elementor-element.elementor-element-c0b16ca > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7aed975 );}.elementor-27157 .elementor-element.elementor-element-c2c521a{--display:flex;--min-height:90vh;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-27157 .elementor-element.elementor-element-edbe1a4{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--gap:50px 50px;--row-gap:50px;--column-gap:50px;--padding-top:0px;--padding-bottom:0px;--padding-left:30px;--padding-right:0px;}.elementor-27157 .elementor-element.elementor-element-770a2cb .elementor-button{background-color:var( --e-global-color-48f25f1 );font-family:"Work Sans", Sans-serif;font-size:120px;font-weight:700;text-transform:uppercase;line-height:64px;fill:var( --e-global-color-5ba0249 );color:var( --e-global-color-5ba0249 );}.elementor-27157 .elementor-element.elementor-element-02fc5b3 .elementor-button{background-color:var( --e-global-color-48f25f1 );font-family:"Work Sans", Sans-serif;font-size:120px;font-weight:700;text-transform:uppercase;line-height:64px;fill:var( --e-global-color-5ba0249 );color:var( --e-global-color-5ba0249 );}.elementor-27157 .elementor-element.elementor-element-2b5638b .elementor-button{background-color:var( --e-global-color-48f25f1 );font-family:"Work Sans", Sans-serif;font-size:120px;font-weight:700;text-transform:uppercase;line-height:64px;fill:var( --e-global-color-5ba0249 );color:var( --e-global-color-5ba0249 );}.elementor-27157 .elementor-element.elementor-element-ed7bf18{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-27157 .elementor-element.elementor-element-cb70e1c{--display:flex;}@media(min-width:768px){.elementor-27157 .elementor-element.elementor-element-1802d2c{--width:50%;}.elementor-27157 .elementor-element.elementor-element-7189009{--width:50%;}.elementor-27157 .elementor-element.elementor-element-8a95279{--width:100vw;}.elementor-27157 .elementor-element.elementor-element-c4879d0{--width:100vw;}.elementor-27157 .elementor-element.elementor-element-2d849f1{--width:100vw;}.elementor-27157 .elementor-element.elementor-element-c0b16ca{--width:100vw;}.elementor-27157 .elementor-element.elementor-element-c2c521a{--width:100vw;}.elementor-27157 .elementor-element.elementor-element-edbe1a4{--width:70%;}.elementor-27157 .elementor-element.elementor-element-ed7bf18{--width:30%;}}@media(max-width:1024px){.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}}@media(max-width:767px){.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}}/* Start custom CSS *//* 0) Prevent body scroll & full-height mask */
html, body {
  height: 100%;
  overflow: hidden;
  margin: 0;
}

/* — Viewport mask that actually slides — */
.viewport-wrapper {
  position: fixed;
  top: 0; left: 0;
  width: 100vw; height: 100vh;
  overflow: hidden;
  z-index: 2;

  /* PURE CSS transition for buttery-smoothness */
  will-change: transform;
  backface-visibility: hidden;
  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  transform: translateY(0);
}

/* on .menu-open, CSS handles the slide */
html.menu-open .viewport-wrapper {
  transform: translateY(90vh);
}

/* — Scrollable inner container — */
.scroll-wrapper {
  height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* lock scrolling when menu is open */
html.menu-open .scroll-wrapper {
  overflow: hidden;
}

/* — Menu layer fade — */
.menu-container {
  position: fixed;
  top: 0; left: 0;
  width: 100vw; height: 100vh;
  background: rgba(0,0,0,0.9);
  z-index: 1;
  pointer-events: none;

  /* same timing & easing */
  opacity: 0;
  transition: opacity 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
html.menu-open .menu-container {
  opacity: 1;
  pointer-events: auto;
}

/* — Link base state — */
.menu-link {
  opacity: 0;
  transform: translateY(-20px);
}

/* 1. Base state: dark text */
.menu-button,
.menu-button .elementor-button-text {
  color: #000 !important;
  transition: color 0.2s ease !important;
}

/* 2. When menu-open is on <html>, turn both the link and its text to white */
html.menu-open .menu-button,
html.menu-open .menu-button .elementor-button-text {
  color: #fff !important;
}
/* prepare for GPU-driven transforms */
.viewport-wrapper {
  will-change: transform;
  backface-visibility: hidden;
}

/* start links hidden */
.menu-link {
  opacity: 0;
  transform: translateY(-20px);
}

/* (your existing menu-container, scroll-wrapper, etc. remain the same) *//* End custom CSS */