/* ======= GHL PAGE BUILDER OVERRIDES ======= */
html, body {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  overflow-x: hidden !important;
}
.c-section .inner, .c-row .inner, .c-column .inner,
.c-section > .inner, .c-row > .inner, .c-column > .inner,
.inner, .vertical.inner {
  max-width: 100vw !important;
  width: 100vw !important;
  padding: 0 !important;
  margin: 0 !important;
}
.c-section, .c-row, .c-column, .c-wrapper, .c-custom-code,
.fullSection, [id^="section-"], [id^="row-"], [id^="col-"],
[id^="custom-code-"], [class*="c-section"], [class*="c-row"],
[class*="c-column"], [class*="c-wrapper"], [class*="c-custom-code"] {
  max-width: 100vw !important;
  width: 100vw !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  overflow: visible !important;
}
.row-align-center { max-width: 100vw !important; width: 100vw !important; }

/* ======= RESET & BASE ======= */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
::selection { background: rgba(196,169,109,0.3); color: var(--text); }
body {
  font-family: var(--serif);
  color: var(--text);
  background: transparent;
}
a { text-decoration: none; color: inherit; }
img { display: block; max-width: 100%; }

/* ======= VIEW SYSTEM ======= */
.sj-view { display: none; }
.sj-view.active { display: block; }

/* ======= MESH BACKGROUND ======= */
.sj-bg-mesh {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background: #0c0a0e;
}
.sj-bg-mesh::before {
  content: '';
  position: absolute;
  inset: -10%;
  background:
    radial-gradient(ellipse 55% 45% at 15% 5%, rgba(180,130,70,0.50) 0%, transparent 55%),
    radial-gradient(ellipse 50% 55% at 90% 15%, rgba(140,80,50,0.40) 0%, transparent 50%),
    radial-gradient(ellipse 65% 40% at 50% 50%, rgba(200,160,120,0.35) 0%, transparent 50%),
    radial-gradient(ellipse 50% 50% at 5% 75%, rgba(160,100,60,0.45) 0%, transparent 55%),
    radial-gradient(ellipse 45% 50% at 85% 80%, rgba(180,140,90,0.42) 0%, transparent 50%),
    radial-gradient(ellipse 70% 30% at 40% 100%, rgba(140,100,60,0.30) 0%, transparent 50%);
  animation: meshDrift1 25s ease-in-out infinite alternate;
}
.sj-bg-mesh::after {
  content: '';
  position: absolute;
  inset: -5%;
  background:
    radial-gradient(circle 400px at 25% 15%, rgba(200,150,100,0.35) 0%, transparent 55%),
    radial-gradient(circle 350px at 75% 30%, rgba(180,120,100,0.30) 0%, transparent 50%),
    radial-gradient(circle 450px at 10% 55%, rgba(160,130,80,0.32) 0%, transparent 55%),
    radial-gradient(circle 380px at 85% 70%, rgba(200,160,110,0.35) 0%, transparent 50%),
    radial-gradient(circle 300px at 50% 5%, rgba(220,180,140,0.25) 0%, transparent 50%),
    radial-gradient(circle 420px at 55% 85%, rgba(170,120,70,0.30) 0%, transparent 50%);
  animation: meshDrift2 30s ease-in-out infinite alternate;
}
@keyframes meshDrift1 {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(-30px, 20px) scale(1.05); }
  100% { transform: translate(20px, -15px) scale(0.97); }
}
@keyframes meshDrift2 {
  0% { transform: translate(0, 0) scale(1.03); }
  50% { transform: translate(30px, -25px) scale(0.96); }
  100% { transform: translate(-20px, 15px) scale(1.05); }
}

/* ======= SHIMMER TEXT ======= */
.shimmer-text {
  background: linear-gradient(90deg, var(--gold), var(--text), var(--gold), var(--text), var(--gold));
  background-size: 200% 100%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shimmer 4s linear infinite;
}

/* ======= SCROLL PROGRESS ======= */
.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold), #d4b896cc, var(--gold));
  z-index: 9999;
  transform-origin: left;
  transform: scaleX(0);
  box-shadow: 0 0 16px rgba(196,169,109,0.25);
  width: 100%;
}

/* ======= FILM GRAIN ======= */
.film-grain {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9998;
  opacity: 0.035;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 128px 128px;
}
