.elementor-10285 .elementor-element.elementor-element-357ef4b{--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;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:50px;--padding-bottom:50px;--padding-left:30px;--padding-right:30px;}.elementor-10285 .elementor-element.elementor-element-1e7dc3f .block-revealer__element{transform:scaleX(calc( 0 / 100 ));}.elementor-10285 .elementor-element.elementor-element-d60b135 > .elementor-widget-container{padding:20px 0px 0px 0px;}.elementor-10285 .elementor-element.elementor-element-d60b135{font-family:"Rajdhani", Sans-serif;font-size:20px;font-weight:400;line-height:24px;color:#3E3E3E;}.elementor-10285 .elementor-element.elementor-element-31de911{--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;--padding-top:0px;--padding-bottom:120px;--padding-left:30px;--padding-right:30px;}.elementor-10285 .elementor-element.elementor-element-5acb7b0{--grid-columns:3;--grid-row-gap:34px;}.elementor-10285 .elementor-element.elementor-element-5acb7b0 .elementor-loop-container{grid-auto-rows:1fr;}.elementor-10285 .elementor-element.elementor-element-5acb7b0 .e-loop-item > .elementor-section, .elementor-10285 .elementor-element.elementor-element-5acb7b0 .e-loop-item > .elementor-section > .elementor-container, .elementor-10285 .elementor-element.elementor-element-5acb7b0 .e-loop-item > .e-con, .elementor-10285 .elementor-element.elementor-element-5acb7b0 .e-loop-item .elementor-section-wrap  > .e-con{height:100%;}.elementor-10285 .elementor-element.elementor-element-f9c3244{--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;}@media(max-width:1024px){.elementor-10285 .elementor-element.elementor-element-5acb7b0{--grid-columns:2;}}@media(max-width:767px){.elementor-10285 .elementor-element.elementor-element-357ef4b{--margin-top:40px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:20px;--padding-left:20px;--padding-right:20px;}.elementor-10285 .elementor-element.elementor-element-d60b135{font-size:18px;line-height:23px;}.elementor-10285 .elementor-element.elementor-element-31de911{--padding-top:0px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-10285 .elementor-element.elementor-element-5acb7b0{--grid-columns:2;}}/* Start custom CSS for html, class: .elementor-element-788a077 */:root {
  --x: 0;
  --y: 0;
  --op: 0.3;       /* opacity of the dot‑grid */
  --grid-size: 40px;
}

body {
  margin: 0;
}

/* ---------------------------------
   1. Dot‑grid (math‑paper overlay)
-----------------------------------*/
:root {
  --grid-size: 40px;  /* adjust to 30px if you want smaller squares */
}

.dot-grid {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 50;

  /* make the whole thing lightly transparent */
  opacity: 0.25;

  /* blend so it stays visible over any background */
  mix-blend-mode: difference;

  /* crisp 1px borders on a var(--grid-size) grid */
  background-image:
    /* vertical borders */
    repeating-linear-gradient(
      to right,
      rgba(0,0,0,0.05) 0px,
      rgba(0,0,0,0.05) 1px,
      transparent 1px,
      transparent calc(var(--grid-size) - 1px),
      rgba(0,0,0,0.05) calc(var(--grid-size) - 1px),
      rgba(0,0,0,0.05) var(--grid-size)
    ),
    /* horizontal borders */
    repeating-linear-gradient(
      to bottom,
      rgba(0,0,0,0.05) 0px,
      rgba(0,0,0,0.05) 1px,
      transparent 1px,
      transparent calc(var(--grid-size) - 1px),
      rgba(0,0,0,0.05) calc(var(--grid-size) - 1px),
      rgba(0,0,0,0.05) var(--grid-size)
    );

  background-size: var(--grid-size) var(--grid-size);

  /* keep the grid sliding under the cursor */
  background-position:
    calc(var(--x)*1px)
    calc(var(--y)*1px);
}

/* ---------------------------------
   2. Infinite crosshair lines
-----------------------------------*/
.grid-lines {
  position: fixed;
  top: 0; left: 0;
  width: 100vw; height: 100vh;
  pointer-events: none;
  z-index: 100;
}
.grid-lines::before,
.grid-lines::after {
  content: "";
  position: fixed;
  top: 0; left: 0;
  background: #b4aea7;
}
.grid-lines::before { /* vertical */
  width: 0.5px; height: 100vh;
  transform: translate3d(calc(var(--x)*1px + 50vw), 0, 0);
}
.grid-lines::after { /* horizontal */
  width: 100vw; height: 0.5px;
  transform: translate3d(0, calc(var(--y)*1px + 50vh), 0);
}

/* ---------------------------------
   3. Cursor dot + four‑arm crosshair
-----------------------------------*/


/* Crosshair container */
.crosshair {
  position: fixed;
  top:    calc(var(--y)*1px + 50vh);
  left:   calc(var(--x)*1px + 50vw);
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 200;
  transition: transform 0.2s ease;
}

/* Arms initial state */
.crosshair .arm {
  position: absolute;
  background: #c1c1c1;
  transform: translate(0, 0);
  transform-origin: center center;
  transition: transform 0.2s ease, background 0.2s ease;
}

/* Arm positions */
.arm--left  { top: -1px; left: -10px; width: 10px; height: 2px; }
.arm--right { top: -1px; left:   0px; width: 10px; height: 2px; }
.arm--top   { top: -10px; left:  -1px; width: 2px;  height: 10px; }
.arm--bot   { top:   0px; left:  -1px; width: 2px;  height: 10px; }

/* Hover animation */
.crosshair.link-hover {
  transform: translate(-50%, -50%) scale(1.5) rotate(20deg);
}
/* Spread arms by 5px on hover */
.crosshair.link-hover .arm--left  { transform: translateX(-5px); }
.crosshair.link-hover .arm--right { transform: translateX( 5px); }
.crosshair.link-hover .arm--top   { transform: translateY(-5px); }
.crosshair.link-hover .arm--bot   { transform: translateY( 5px); }

/* Turn dot and arms white on hover */

.crosshair.link-hover .arm {
  background: #fff;
}


/* 2) White arms with faint drop‑shadow */
.crosshair.link-hover .arm {
  background: #fff;
  /* subtle halo to separate from light BGs */
  filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.1));
}

/* ---------------------------------
   4. Edge readouts (left/bottom)
-----------------------------------*/
.axis-y, .axis-x {
  position: fixed;
  display: flex;
  align-items: center;
  font: 12px monospace;
  background: rgba(255,255,255,0.4);
  padding: 2px 4px;
  pointer-events: none;
  z-index: 150;
}
.axis-y {
  top: 50%; left: 0;
  transform: translateY(-50%);
}
.axis-x {
  left: 50%; bottom: 0;
  transform: translateX(-50%);
}

/* ---------------------------------
   5. Live coords at top/right
-----------------------------------*/
.coord-top, .coord-right {
  position: fixed;
  font: 12px monospace;
  background: rgba(255,255,255,0.2);
  padding: 2px 4px;
  pointer-events: none;
  z-index: 150;
}
.coord-top {
  top: 0;
  left: calc(var(--x)*1px + 50vw);
  transform: translateX(-50%);
}
.coord-right {
  right: 0;
  top: calc(var(--y)*1px + 50vh);
  transform: translateY(-50%);
}

/* ---------------------------------
   6. Half‑width & half‑height markers
-----------------------------------*/
.half-width, .half-height {
  position: fixed;
  pointer-events: none;
  z-index: 150;
  color: #C1C1C1;
}
.half-width {
  left: 50%; bottom: 0;
}
.half-width::after {
  content: "";
  position: absolute;
  top: -5px; left: 0;
  width: 0; height: 5px;
  border-left: 1px solid currentColor;
}
.half-height {
  left: 0; top: 50%;
}
.half-height::after {
  content: "";
  position: absolute;
  left: -5px; top: 0;
  width: 5px; height: 0;
  border-top: 2px solid currentColor;
}

@media (hover: none) and (pointer: coarse) {
  .dot-grid,
  .grid-lines,
  .cursor-dot,
  .crosshair,
  .axis-y,
  .axis-x,
  .coord-top,
  .coord-right,
  .half-width,
  .half-height {
    display: none !important;
  }
}

.elementor-10285 .elementor-element.elementor-element-788a077  { overflow: visible;
  height: auto !important;
}/* End custom CSS */