:root {
  --blm-base: #f0eeee;
  --blm-ink: #222225;
  --blm-pink: #ff74ee;
  --blm-blue: #6b8cf6;
}
.blm {
  position: fixed;
  inset: 0;
  height: 100dvh;
  z-index: 100001;
  visibility: hidden;
  pointer-events: none;
  color: var(--blm-ink);
  font-family: 'Helixa', sans-serif;
  overflow: hidden;
}

.blm.is-open { visibility: visible; pointer-events: auto; }
/* The original Elementor menu popup (7395) must never sit over this replacement. */
#elementor-popup-modal-7395 { display: none !important; visibility: hidden !important; pointer-events: none !important; }
.blm__curtain { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; }
.blm__brand-panel { position: absolute; z-index: 2; inset: 0 0 0 50%; opacity: 0; background: linear-gradient(45deg, #E44B89, #986AC0, #EA7023, #E44B89); background-size: 300% 100%; animation: moveGradient 8s linear infinite; }
.blm__divider {   position:absolute;z-index:3;top:0;bottom:0;left:calc(50% - 2px); width:4px; background:#000; pointer-events:none; transform-origin:top;}
.blm__content { position: relative; z-index: 3; min-height: 100%; }
.blm .blm__close { opacity:0; position: absolute; z-index: 4; top: 1.5rem !important; right: 1.5rem !important; bottom: auto !important; left: auto !important; display: grid; width: 3rem; height: 3rem; place-items: center; margin: 0 !important; padding: 0 !important; border: 0 !important; outline: 0 !important; appearance: none; box-shadow: none !important; background: transparent !important; color: #222225 !important; cursor: pointer; font-size: 0 !important; transform: none !important; }
.blm__close::before, .blm__close::after { position: absolute; width: 2.25rem; height: 3px; background: #222225 !important; content: ""; }
.blm__close::before { transform: rotate(45deg); }
.blm__close::after { transform: rotate(-45deg); }
.blm__close:focus-visible, .blm__links a:focus-visible { outline: 3px solid var(--blm-pink); outline-offset: 5px; }
.blm__info { display: none; }
.blm__info p { margin: 0 0 1rem; color: var(--blm-pink); font-size: .72rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.blm__info a { width: max-content; max-width: 100%; color: var(--blm-ink); font-size: clamp(1.35rem, 2.4vw, 2.7rem); font-weight: 450; line-height: 1.24; text-decoration: none; }
.blm__info span { margin-top: 1.8rem; font-size: clamp(.9rem, 1.15vw, 1.2rem); line-height: 1.4; }
.blm__links { position: absolute; top: clamp(5.8rem, 6.7vw, 7.1rem); left: clamp(2rem, 7vw, 7rem); display: flex; flex-direction: column; align-items: flex-start; }
.blm__links a { display: block; width: max-content; max-width: 100%; overflow: visible; color: var(--blm-ink); font-family: 'Helixa'; font-size: clamp(1.75rem, 2.35vw, 2.3rem); font-weight: 600; line-height: 1.23; letter-spacing: -.04em; text-decoration: none; }
.blm__links a:first-child { color: #a7a7a7; }
.blm__links .char { display: inline-block; will-change: transform, opacity; }
.blm__claim { position: absolute; right: clamp(2rem, 7vw, 7rem); bottom: clamp(3.5rem, 8vw, 7rem); width: min(33vw, 31rem); color: var(--blm-base); font-family: 'Helixa'; font-size: clamp(1.3rem, 1.7vw, 1.7rem); font-style: italic; font-weight: 400; line-height: 1.36; }

@media (hover: hover) {
  .blm__links a:hover .char,
  .blm__links a:focus-visible .char {
    background: linear-gradient(45deg, #E44B89, #986AC0, #EA7023, #E44B89);
    background-size: 300% 100%;
    background-position: 0% 50%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    animation: blmLinkGradient 1s linear forwards;
  }
}

@media (max-width: 850px) {
  .blm__brand-panel { display: block; inset: auto 0 0; height: 32%; }
  .blm__divider { top: calc(68% - 2px); right: 0; bottom: auto; left: 0; width: auto; height: 4px; }
  .blm__content { overflow-y: auto; }
  .blm__links { top: 2rem; left: 1.8rem; }
  .blm__links a { font-size: clamp(1.25rem, 5.5vw, 1.55rem); line-height: 1.7; }
  .blm__claim { display: block; top: calc(68% + 2rem); right: 1.8rem; bottom: auto; left: 1.8rem; width: auto; font-size: 1rem; line-height: 1.45; }
  .blm .blm__close { top: .75rem !important; right: .75rem !important; bottom: auto !important; left: auto !important; width: 3rem; height: 3rem; }
}

@keyframes moveGradient {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes blmLinkGradient {
  from { background-position: 0% 50%; }
  to { background-position: 100% 50%; }
}

@media (prefers-reduced-motion: reduce) {
  .blm *, .blm { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .blm__brand-panel { animation: none; }
}
