/* ==========================================================================
   Galaxy Heights — page-scoped dark/gold space theme.
   Every selector here is prefixed with body.galaxy-page so nothing leaks
   onto the rest of the site, which keeps its original light theme.
   ========================================================================== */

body.galaxy-page {
  --gx-bg: #0a0908;
  --gx-bg-2: #131110;
  --gx-surface: #181614;
  --gx-surface-soft: #1e1b18;
  --gx-border: rgba(212, 175, 106, 0.22);
  --gx-border-soft: rgba(255, 255, 255, 0.08);
  --gx-text: #f1ede6;
  --gx-text-dim: #a8a099;
  --gx-text-faint: #6e685f;
  --gx-gold: #d4af6a;
  --gx-wordmark: #d8ccbc;
  --gx-heading: "Space Grotesk", "General Sans", sans-serif;

  background: var(--gx-bg);
  color: var(--gx-text);
  font-family: "DM Sans", "General Sans", sans-serif;
}

body.galaxy-page h1,
body.galaxy-page h2,
body.galaxy-page h3,
body.galaxy-page h4,
body.galaxy-page .btn,
body.galaxy-page .eyebrow,
body.galaxy-page .discover-tab,
body.galaxy-page .num,
body.galaxy-page .n {
  font-family: var(--gx-heading);
}

/* ---------------- Star field + nebula, fixed behind everything ---------------- */
body.galaxy-page .gx-field {
  position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none;
}
body.galaxy-page .gx-stars {
  position: absolute; inset: -10% -10% -10% -10%; background-repeat: repeat;
}
body.galaxy-page .gx-stars-1 { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22220%22%20height%3D%22220%22%3E%3Ccircle%20cx%3D%2229.6%22%20cy%3D%22186.4%22%20r%3D%220.78%22%20fill%3D%22white%22%20fill-opacity%3D%220.52%22/%3E%3Ccircle%20cx%3D%22109.0%22%20cy%3D%2298.9%22%20r%3D%220.73%22%20fill%3D%22white%22%20fill-opacity%3D%220.86%22/%3E%3Ccircle%20cx%3D%2220.6%22%20cy%3D%226.2%22%20r%3D%220.82%22%20fill%3D%22white%22%20fill-opacity%3D%220.63%22/%3E%3Ccircle%20cx%3D%22167.7%22%20cy%3D%220.5%22%20r%3D%220.62%22%20fill%3D%22white%22%20fill-opacity%3D%220.82%22/%3E%3Ccircle%20cx%3D%2250.3%22%20cy%3D%22208.0%22%20r%3D%220.85%22%20fill%3D%22white%22%20fill-opacity%3D%220.37%22/%3E%3Ccircle%20cx%3D%225.6%22%20cy%3D%22119.1%22%20r%3D%220.87%22%20fill%3D%22white%22%20fill-opacity%3D%220.6%22/%3E%3Ccircle%20cx%3D%2247.7%22%20cy%3D%2292.9%22%20r%3D%220.41%22%20fill%3D%22white%22%20fill-opacity%3D%220.49%22/%3E%3Ccircle%20cx%3D%2296.3%22%20cy%3D%22109.1%22%20r%3D%220.52%22%20fill%3D%22white%22%20fill-opacity%3D%220.5%22/%3E%3Ccircle%20cx%3D%2248.1%22%20cy%3D%22101.1%22%20r%3D%220.54%22%20fill%3D%22white%22%20fill-opacity%3D%220.36%22/%3E%3Ccircle%20cx%3D%22184.3%22%20cy%3D%22122.4%22%20r%3D%220.72%22%20fill%3D%22white%22%20fill-opacity%3D%220.47%22/%3E%3Ccircle%20cx%3D%22218.4%22%20cy%3D%22189.2%22%20r%3D%220.46%22%20fill%3D%22white%22%20fill-opacity%3D%220.57%22/%3E%3Ccircle%20cx%3D%22158.7%22%20cy%3D%22156.5%22%20r%3D%220.87%22%20fill%3D%22white%22%20fill-opacity%3D%220.62%22/%3E%3Ccircle%20cx%3D%22182.6%22%20cy%3D%22147.5%22%20r%3D%220.55%22%20fill%3D%22white%22%20fill-opacity%3D%220.73%22/%3E%3Ccircle%20cx%3D%22194.1%22%20cy%3D%22186.2%22%20r%3D%220.65%22%20fill%3D%22white%22%20fill-opacity%3D%220.73%22/%3E%3Ccircle%20cx%3D%227.6%22%20cy%3D%2253.4%22%20r%3D%220.8%22%20fill%3D%22white%22%20fill-opacity%3D%220.62%22/%3E%3Ccircle%20cx%3D%2238.1%22%20cy%3D%22120.7%22%20r%3D%220.75%22%20fill%3D%22white%22%20fill-opacity%3D%220.79%22/%3E%3Ccircle%20cx%3D%2282.4%22%20cy%3D%2296.6%22%20r%3D%220.65%22%20fill%3D%22white%22%20fill-opacity%3D%220.86%22/%3E%3Ccircle%20cx%3D%22114.6%22%20cy%3D%2286.5%22%20r%3D%220.64%22%20fill%3D%22white%22%20fill-opacity%3D%220.37%22/%3E%3Ccircle%20cx%3D%229.6%22%20cy%3D%22154.7%22%20r%3D%220.89%22%20fill%3D%22white%22%20fill-opacity%3D%220.74%22/%3E%3Ccircle%20cx%3D%2286.6%22%20cy%3D%2237.5%22%20r%3D%220.65%22%20fill%3D%22white%22%20fill-opacity%3D%220.99%22/%3E%3Ccircle%20cx%3D%22169.5%22%20cy%3D%22118.7%22%20r%3D%220.83%22%20fill%3D%22white%22%20fill-opacity%3D%220.5%22/%3E%3Ccircle%20cx%3D%22113.0%22%20cy%3D%22209.5%22%20r%3D%220.69%22%20fill%3D%22white%22%20fill-opacity%3D%220.65%22/%3E%3Ccircle%20cx%3D%2259.2%22%20cy%3D%22120.6%22%20r%3D%220.88%22%20fill%3D%22white%22%20fill-opacity%3D%220.35%22/%3E%3Ccircle%20cx%3D%22172.4%22%20cy%3D%22180.5%22%20r%3D%220.84%22%20fill%3D%22white%22%20fill-opacity%3D%220.83%22/%3E%3Ccircle%20cx%3D%22178.0%22%20cy%3D%22114.1%22%20r%3D%220.68%22%20fill%3D%22white%22%20fill-opacity%3D%220.63%22/%3E%3Ccircle%20cx%3D%2212.3%22%20cy%3D%22191.4%22%20r%3D%220.68%22%20fill%3D%22white%22%20fill-opacity%3D%220.48%22/%3E%3Ccircle%20cx%3D%22111.0%22%20cy%3D%22106.7%22%20r%3D%220.58%22%20fill%3D%22white%22%20fill-opacity%3D%220.57%22/%3E%3Ccircle%20cx%3D%22118.5%22%20cy%3D%22137.2%22%20r%3D%220.71%22%20fill%3D%22white%22%20fill-opacity%3D%220.65%22/%3E%3Ccircle%20cx%3D%226.2%22%20cy%3D%2250.5%22%20r%3D%220.49%22%20fill%3D%22white%22%20fill-opacity%3D%220.73%22/%3E%3Ccircle%20cx%3D%22189.4%22%20cy%3D%22175.7%22%20r%3D%220.8%22%20fill%3D%22white%22%20fill-opacity%3D%220.88%22/%3E%3Ccircle%20cx%3D%2256.2%22%20cy%3D%22185.2%22%20r%3D%220.74%22%20fill%3D%22white%22%20fill-opacity%3D%220.4%22/%3E%3Ccircle%20cx%3D%223.7%22%20cy%3D%223.2%22%20r%3D%220.78%22%20fill%3D%22white%22%20fill-opacity%3D%220.51%22/%3E%3Ccircle%20cx%3D%2224.1%22%20cy%3D%22137.5%22%20r%3D%220.57%22%20fill%3D%22white%22%20fill-opacity%3D%220.4%22/%3E%3Ccircle%20cx%3D%2235.1%22%20cy%3D%22116.0%22%20r%3D%220.48%22%20fill%3D%22white%22%20fill-opacity%3D%220.53%22/%3E%3Ccircle%20cx%3D%22156.5%22%20cy%3D%22100.0%22%20r%3D%220.56%22%20fill%3D%22white%22%20fill-opacity%3D%220.66%22/%3E%3Ccircle%20cx%3D%225.2%22%20cy%3D%2285.0%22%20r%3D%220.61%22%20fill%3D%22white%22%20fill-opacity%3D%220.47%22/%3E%3Ccircle%20cx%3D%2223.9%22%20cy%3D%22198.0%22%20r%3D%220.66%22%20fill%3D%22white%22%20fill-opacity%3D%220.49%22/%3E%3Ccircle%20cx%3D%22133.2%22%20cy%3D%22179.7%22%20r%3D%220.41%22%20fill%3D%22white%22%20fill-opacity%3D%220.36%22/%3E%3Ccircle%20cx%3D%2232.2%22%20cy%3D%22158.1%22%20r%3D%220.48%22%20fill%3D%22white%22%20fill-opacity%3D%220.81%22/%3E%3Ccircle%20cx%3D%22149.2%22%20cy%3D%22119.8%22%20r%3D%220.51%22%20fill%3D%22white%22%20fill-opacity%3D%220.98%22/%3E%3Ccircle%20cx%3D%22175.5%22%20cy%3D%22113.7%22%20r%3D%220.51%22%20fill%3D%22white%22%20fill-opacity%3D%220.77%22/%3E%3Ccircle%20cx%3D%2286.9%22%20cy%3D%22126.7%22%20r%3D%220.56%22%20fill%3D%22white%22%20fill-opacity%3D%220.76%22/%3E%3Ccircle%20cx%3D%2212.9%22%20cy%3D%2265.7%22%20r%3D%220.88%22%20fill%3D%22white%22%20fill-opacity%3D%220.92%22/%3E%3Ccircle%20cx%3D%2267.4%22%20cy%3D%22188.9%22%20r%3D%220.56%22%20fill%3D%22white%22%20fill-opacity%3D%220.96%22/%3E%3Ccircle%20cx%3D%22163.6%22%20cy%3D%2291.6%22%20r%3D%220.53%22%20fill%3D%22white%22%20fill-opacity%3D%220.36%22/%3E%3Ccircle%20cx%3D%22193.3%22%20cy%3D%228.3%22%20r%3D%220.81%22%20fill%3D%22white%22%20fill-opacity%3D%220.98%22/%3E%3Ccircle%20cx%3D%22125.5%22%20cy%3D%2237.7%22%20r%3D%220.83%22%20fill%3D%22white%22%20fill-opacity%3D%220.98%22/%3E%3Ccircle%20cx%3D%22154.9%22%20cy%3D%22112.0%22%20r%3D%220.59%22%20fill%3D%22white%22%20fill-opacity%3D%220.58%22/%3E%3Ccircle%20cx%3D%2245.3%22%20cy%3D%22148.3%22%20r%3D%220.62%22%20fill%3D%22white%22%20fill-opacity%3D%220.48%22/%3E%3Ccircle%20cx%3D%2223.0%22%20cy%3D%22146.5%22%20r%3D%220.55%22%20fill%3D%22white%22%20fill-opacity%3D%220.67%22/%3E%3Ccircle%20cx%3D%2271.6%22%20cy%3D%22191.8%22%20r%3D%220.85%22%20fill%3D%22white%22%20fill-opacity%3D%220.36%22/%3E%3Ccircle%20cx%3D%2244.2%22%20cy%3D%2272.1%22%20r%3D%220.89%22%20fill%3D%22white%22%20fill-opacity%3D%220.86%22/%3E%3Ccircle%20cx%3D%2274.6%22%20cy%3D%2246.9%22%20r%3D%220.74%22%20fill%3D%22white%22%20fill-opacity%3D%220.89%22/%3E%3Ccircle%20cx%3D%22205.1%22%20cy%3D%2275.6%22%20r%3D%220.84%22%20fill%3D%22white%22%20fill-opacity%3D%220.8%22/%3E%3Ccircle%20cx%3D%22106.6%22%20cy%3D%22216.8%22%20r%3D%220.52%22%20fill%3D%22white%22%20fill-opacity%3D%220.82%22/%3E%3Ccircle%20cx%3D%2218.6%22%20cy%3D%2237.3%22%20r%3D%220.86%22%20fill%3D%22white%22%20fill-opacity%3D%220.49%22/%3E%3Ccircle%20cx%3D%22167.0%22%20cy%3D%22132.0%22%20r%3D%220.82%22%20fill%3D%22white%22%20fill-opacity%3D%220.59%22/%3E%3Ccircle%20cx%3D%2274.9%22%20cy%3D%2264.1%22%20r%3D%220.83%22%20fill%3D%22white%22%20fill-opacity%3D%220.74%22/%3E%3Ccircle%20cx%3D%22209.9%22%20cy%3D%22195.2%22%20r%3D%220.47%22%20fill%3D%22white%22%20fill-opacity%3D%220.71%22/%3E%3Ccircle%20cx%3D%2222.9%22%20cy%3D%228.6%22%20r%3D%220.44%22%20fill%3D%22white%22%20fill-opacity%3D%220.91%22/%3E%3Ccircle%20cx%3D%22173.4%22%20cy%3D%22182.3%22%20r%3D%220.57%22%20fill%3D%22white%22%20fill-opacity%3D%220.75%22/%3E%3Ccircle%20cx%3D%22172.0%22%20cy%3D%2283.2%22%20r%3D%220.69%22%20fill%3D%22white%22%20fill-opacity%3D%220.5%22/%3E%3Ccircle%20cx%3D%2218.0%22%20cy%3D%2258.7%22%20r%3D%220.85%22%20fill%3D%22white%22%20fill-opacity%3D%220.72%22/%3E%3Ccircle%20cx%3D%22203.5%22%20cy%3D%22100.7%22%20r%3D%220.54%22%20fill%3D%22white%22%20fill-opacity%3D%220.86%22/%3E%3Ccircle%20cx%3D%22182.1%22%20cy%3D%222.7%22%20r%3D%220.74%22%20fill%3D%22white%22%20fill-opacity%3D%220.41%22/%3E%3Ccircle%20cx%3D%2225.3%22%20cy%3D%22194.7%22%20r%3D%220.42%22%20fill%3D%22white%22%20fill-opacity%3D%220.51%22/%3E%3Ccircle%20cx%3D%22217.4%22%20cy%3D%2292.6%22%20r%3D%220.46%22%20fill%3D%22white%22%20fill-opacity%3D%220.46%22/%3E%3Ccircle%20cx%3D%2253.1%22%20cy%3D%22163.7%22%20r%3D%220.45%22%20fill%3D%22white%22%20fill-opacity%3D%220.94%22/%3E%3Ccircle%20cx%3D%2283.2%22%20cy%3D%22213.5%22%20r%3D%220.85%22%20fill%3D%22white%22%20fill-opacity%3D%220.54%22/%3E%3Ccircle%20cx%3D%2255.8%22%20cy%3D%22104.9%22%20r%3D%220.45%22%20fill%3D%22white%22%20fill-opacity%3D%220.77%22/%3E%3C/svg%3E"); background-size: 220px 220px; opacity: 0.55; }
body.galaxy-page .gx-stars-2 { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22260%22%20height%3D%22260%22%3E%3Ccircle%20cx%3D%22248.6%22%20cy%3D%22246.4%22%20r%3D%220.85%22%20fill%3D%22white%22%20fill-opacity%3D%220.41%22/%3E%3Ccircle%20cx%3D%22217.2%22%20cy%3D%22191.4%22%20r%3D%221.34%22%20fill%3D%22white%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22157.5%22%20cy%3D%22157.8%22%20r%3D%221.26%22%20fill%3D%22white%22%20fill-opacity%3D%220.45%22/%3E%3Ccircle%20cx%3D%22112.0%22%20cy%3D%22102.3%22%20r%3D%221.38%22%20fill%3D%22white%22%20fill-opacity%3D%221.0%22/%3E%3Ccircle%20cx%3D%22246.8%22%20cy%3D%22141.5%22%20r%3D%221.16%22%20fill%3D%22white%22%20fill-opacity%3D%220.52%22/%3E%3Ccircle%20cx%3D%229.3%22%20cy%3D%227.1%22%20r%3D%221.17%22%20fill%3D%22white%22%20fill-opacity%3D%220.56%22/%3E%3Ccircle%20cx%3D%2298.8%22%20cy%3D%22231.9%22%20r%3D%221.22%22%20fill%3D%22white%22%20fill-opacity%3D%220.71%22/%3E%3Ccircle%20cx%3D%2261.4%22%20cy%3D%226.2%22%20r%3D%221.06%22%20fill%3D%22white%22%20fill-opacity%3D%220.44%22/%3E%3Ccircle%20cx%3D%22132.7%22%20cy%3D%22259.7%22%20r%3D%221.34%22%20fill%3D%22white%22%20fill-opacity%3D%220.47%22/%3E%3Ccircle%20cx%3D%22232.3%22%20cy%3D%22207.2%22%20r%3D%221.39%22%20fill%3D%22white%22%20fill-opacity%3D%220.94%22/%3E%3Ccircle%20cx%3D%22198.4%22%20cy%3D%22205.3%22%20r%3D%221.08%22%20fill%3D%22white%22%20fill-opacity%3D%220.99%22/%3E%3Ccircle%20cx%3D%22250.1%22%20cy%3D%2241.9%22%20r%3D%221.4%22%20fill%3D%22white%22%20fill-opacity%3D%220.81%22/%3E%3Ccircle%20cx%3D%22120.0%22%20cy%3D%22137.9%22%20r%3D%221.19%22%20fill%3D%22white%22%20fill-opacity%3D%220.95%22/%3E%3Ccircle%20cx%3D%22130.2%22%20cy%3D%22216.2%22%20r%3D%221.08%22%20fill%3D%22white%22%20fill-opacity%3D%220.92%22/%3E%3Ccircle%20cx%3D%22233.9%22%20cy%3D%22119.9%22%20r%3D%221.25%22%20fill%3D%22white%22%20fill-opacity%3D%220.95%22/%3E%3Ccircle%20cx%3D%22188.2%22%20cy%3D%22126.5%22%20r%3D%220.98%22%20fill%3D%22white%22%20fill-opacity%3D%220.56%22/%3E%3Ccircle%20cx%3D%22181.9%22%20cy%3D%2243.2%22%20r%3D%221.53%22%20fill%3D%22white%22%20fill-opacity%3D%220.52%22/%3E%3Ccircle%20cx%3D%22237.0%22%20cy%3D%2280.5%22%20r%3D%221.57%22%20fill%3D%22white%22%20fill-opacity%3D%220.81%22/%3E%3Ccircle%20cx%3D%22131.1%22%20cy%3D%22134.6%22%20r%3D%221.32%22%20fill%3D%22white%22%20fill-opacity%3D%220.73%22/%3E%3Ccircle%20cx%3D%2281.1%22%20cy%3D%2254.0%22%20r%3D%221.21%22%20fill%3D%22white%22%20fill-opacity%3D%220.96%22/%3E%3Ccircle%20cx%3D%22162.0%22%20cy%3D%2219.6%22%20r%3D%221.46%22%20fill%3D%22white%22%20fill-opacity%3D%220.82%22/%3E%3Ccircle%20cx%3D%22236.0%22%20cy%3D%2249.8%22%20r%3D%221.4%22%20fill%3D%22white%22%20fill-opacity%3D%220.39%22/%3E%3Ccircle%20cx%3D%22169.8%22%20cy%3D%2271.0%22%20r%3D%220.98%22%20fill%3D%22white%22%20fill-opacity%3D%220.92%22/%3E%3Ccircle%20cx%3D%2227.6%22%20cy%3D%22135.8%22%20r%3D%221.48%22%20fill%3D%22white%22%20fill-opacity%3D%220.51%22/%3E%3Ccircle%20cx%3D%2254.7%22%20cy%3D%22229.0%22%20r%3D%221.14%22%20fill%3D%22white%22%20fill-opacity%3D%220.82%22/%3E%3Ccircle%20cx%3D%228.3%22%20cy%3D%2294.2%22%20r%3D%220.94%22%20fill%3D%22white%22%20fill-opacity%3D%220.79%22/%3E%3Ccircle%20cx%3D%2221.6%22%20cy%3D%22248.2%22%20r%3D%220.82%22%20fill%3D%22white%22%20fill-opacity%3D%220.82%22/%3E%3Ccircle%20cx%3D%225.5%22%20cy%3D%2266.5%22%20r%3D%221.45%22%20fill%3D%22white%22%20fill-opacity%3D%220.45%22/%3E%3Ccircle%20cx%3D%2247.8%22%20cy%3D%22179.8%22%20r%3D%221.11%22%20fill%3D%22white%22%20fill-opacity%3D%220.38%22/%3E%3Ccircle%20cx%3D%22257.4%22%20cy%3D%2239.4%22%20r%3D%220.83%22%20fill%3D%22white%22%20fill-opacity%3D%220.57%22/%3E%3C/svg%3E"); background-size: 260px 260px; opacity: 0.75; }
body.galaxy-page .gx-stars-3 { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22320%22%20height%3D%22320%22%3E%3Ccircle%20cx%3D%2276.1%22%20cy%3D%22174.2%22%20r%3D%221.97%22%20fill%3D%22white%22%20fill-opacity%3D%220.74%22/%3E%3Ccircle%20cx%3D%22200.2%22%20cy%3D%2221.0%22%20r%3D%221.61%22%20fill%3D%22white%22%20fill-opacity%3D%220.89%22/%3E%3Ccircle%20cx%3D%2283.0%22%20cy%3D%2275.0%22%20r%3D%222.6%22%20fill%3D%22white%22%20fill-opacity%3D%220.66%22/%3E%3Ccircle%20cx%3D%22267.7%22%20cy%3D%22152.4%22%20r%3D%222.24%22%20fill%3D%22white%22%20fill-opacity%3D%220.45%22/%3E%3Ccircle%20cx%3D%22203.2%22%20cy%3D%22277.8%22%20r%3D%222.12%22%20fill%3D%22white%22%20fill-opacity%3D%220.83%22/%3E%3Ccircle%20cx%3D%22214.9%22%20cy%3D%2220.5%22%20r%3D%222.36%22%20fill%3D%22white%22%20fill-opacity%3D%220.73%22/%3E%3Ccircle%20cx%3D%2296.4%22%20cy%3D%229.9%22%20r%3D%222.47%22%20fill%3D%22white%22%20fill-opacity%3D%220.66%22/%3E%3Ccircle%20cx%3D%22230.0%22%20cy%3D%22281.2%22%20r%3D%222.31%22%20fill%3D%22white%22%20fill-opacity%3D%220.95%22/%3E%3Ccircle%20cx%3D%22126.4%22%20cy%3D%22256.3%22%20r%3D%222.04%22%20fill%3D%22white%22%20fill-opacity%3D%220.96%22/%3E%3Ccircle%20cx%3D%22281.2%22%20cy%3D%2231.2%22%20r%3D%221.74%22%20fill%3D%22white%22%20fill-opacity%3D%220.49%22/%3E%3C/svg%3E"); background-size: 320px 320px; opacity: 0.9; }
body.galaxy-page .gx-nebula {
  position: absolute; border-radius: 50%; filter: blur(90px); opacity: 0.5;
}
body.galaxy-page .gx-nebula-1 {
  width: 60vw; height: 60vw; top: -18vw; right: -12vw;
  background: radial-gradient(circle, rgba(212,175,106,0.24) 0%, rgba(212,175,106,0) 70%);
}
body.galaxy-page .gx-nebula-2 {
  width: 55vw; height: 55vw; bottom: 5vw; left: -18vw;
  background: radial-gradient(circle, rgba(120,96,58,0.28) 0%, rgba(120,96,58,0) 70%);
}
body.galaxy-page .gx-nebula-3 {
  width: 40vw; height: 40vw; top: 55vw; right: 10vw;
  background: radial-gradient(circle, rgba(90,80,70,0.22) 0%, rgba(90,80,70,0) 70%);
}
body.galaxy-page main, body.galaxy-page > section, body.galaxy-page > div.intro,
body.galaxy-page > div.gx-warp, body.galaxy-page > footer { position: relative; z-index: 1; }

/* ---------------- Hero warp intro: spark -> flash -> orbit rings + logo fly-in
   -> building reveal, pinned + scroll-scrubbed ---------------- */
body.galaxy-page .gx-warp {
  height: 100vh; min-height: 640px; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  background: var(--gx-bg);
}
body.galaxy-page .gx-warp-ambient {
  position: absolute; inset: 0; z-index: 0;
  width: 100%; height: 100%; object-fit: cover;
  opacity: 0;
}
body.galaxy-page .gx-warp-flash {
  position: absolute; inset: 0; z-index: 6; pointer-events: none;
  background: radial-gradient(circle at 50% 50%, #ffffff 0%, rgba(255,236,200,0.92) 30%, rgba(255,236,200,0) 70%);
  opacity: 0;
}
body.galaxy-page .gx-warp-spark {
  position: absolute; left: 50%; top: 50%; width: 5px; height: 5px; border-radius: 50%;
  background: #fff; box-shadow: 0 0 24px 7px rgba(212,175,106,0.85);
  z-index: 4; transform: translate(-50%, -50%);
  animation: gx-spark-pulse 2.2s ease-in-out infinite;
}
@keyframes gx-spark-pulse {
  0%, 100% { box-shadow: 0 0 18px 5px rgba(212,175,106,0.6); }
  50% { box-shadow: 0 0 30px 10px rgba(212,175,106,0.95); }
}
body.galaxy-page .gx-warp-ring {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%) scale(0);
  border-radius: 50%; border: 1px solid var(--gx-gold);
  opacity: 0; z-index: 2;
}
body.galaxy-page .gx-warp-ring-1 { width: 480px; height: 480px; }
body.galaxy-page .gx-warp-ring-2 { width: 640px; height: 640px; border-color: rgba(212,175,106,0.55); }
body.galaxy-page .gx-warp-ring-3 { width: 840px; height: 840px; border-style: dashed; border-color: rgba(212,175,106,0.3); }
body.galaxy-page .gx-warp-logo {
  position: relative; z-index: 3; opacity: 0;
  display: flex; flex-direction: column; align-items: center; gap: 18px;
}
body.galaxy-page .gx-warp-logo img {
  width: 380px; max-width: 62vw;
  filter: drop-shadow(0 0 40px rgba(212,175,106,0.35));
}
body.galaxy-page .gx-warp-tagline {
  color: var(--gx-wordmark);
  font-family: var(--gx-heading);
  font-size: 0.85rem;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  padding-left: 0.42em;
}
body.galaxy-page .gx-warp-building {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  object-position: 50% center;
  z-index: 1; opacity: 0;
}
@media (max-width: 760px) {
  /* Portrait phones crop this image hard on the sides — shift the visible
     window left so the building sits centered instead of feeling pushed
     off toward the right edge. */
  body.galaxy-page .gx-warp-building { object-position: 82% center; }
}
body.galaxy-page .gx-warp-building-tint {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(10,9,8,0.15) 0%, rgba(10,9,8,0.85) 100%);
  opacity: 0;
}
/* Day-to-night captions: each sits in its own spot in the open sky beside the
   tower, one at a time faded in by JS as the scrubbed time crosses its cue —
   color shifts per caption to match the sky at that moment (day/dusk/night). */
body.galaxy-page .gx-warp-captions {
  position: absolute; inset: 0; z-index: 3; pointer-events: none;
}
body.galaxy-page .gx-warp-caption {
  position: absolute; left: 8%; right: 5%; text-align: right;
  font-family: "Cormorant Garamond", serif; font-style: italic; font-weight: 500;
  font-size: clamp(1.4rem, 2.7vw, 2.3rem); line-height: 1.3;
  opacity: 0; transform: translateY(14px);
  transition: opacity 1s ease, transform 1s ease;
}
body.galaxy-page .gx-warp-caption.is-active { opacity: 1; transform: none; }
body.galaxy-page .gx-warp-caption[data-cue="4"] {
  top: 30%;
  color: #14110d;
  text-shadow: 0 1px 3px rgba(255,255,255,0.55), 0 0 26px rgba(255,255,255,0.4);
}
body.galaxy-page .gx-warp-caption[data-cue="8"] {
  top: 55%;
  color: #ffe6b0;
  text-shadow: 0 2px 18px rgba(0,0,0,0.55), 0 1px 4px rgba(0,0,0,0.6), 0 0 30px rgba(120,70,20,0.35);
}
body.galaxy-page .gx-warp-caption[data-cue="12"] {
  top: 79%;
  color: #ffffff;
  text-shadow: 0 2px 22px rgba(0,0,0,0.6), 0 1px 4px rgba(0,0,0,0.65);
}
@media (max-width: 720px) {
  body.galaxy-page .gx-warp-caption { left: 6vw; right: 6vw; text-align: center; }
  body.galaxy-page .gx-warp-caption[data-cue="4"] { top: auto; bottom: 20%; }
  body.galaxy-page .gx-warp-caption[data-cue="8"] { top: auto; bottom: 20%; }
  body.galaxy-page .gx-warp-caption[data-cue="12"] { top: auto; bottom: 20%; }
}
@media (prefers-reduced-motion: reduce) {
  body.galaxy-page .gx-warp-spark { animation: none; }
}

/* ---------------- Orbit ring + constellation decorations ---------------- */
body.galaxy-page .gx-orbit {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  border: 1px solid var(--gx-border); border-radius: 50%;
  pointer-events: none; opacity: 0;
}
body.galaxy-page .statement { position: relative; }
body.galaxy-page .statement .gx-orbit-1 { width: 340px; height: 340px; }
body.galaxy-page .statement .gx-orbit-2 { width: 480px; height: 480px; border-style: dashed; border-color: rgba(212,175,106,0.12); }

body.galaxy-page .gx-constellation { position: absolute; inset: 0; pointer-events: none; overflow: visible; }
body.galaxy-page .gx-constellation line, body.galaxy-page .gx-constellation path {
  stroke: var(--gx-gold); stroke-width: 1; fill: none; opacity: 0.55;
}
body.galaxy-page .gx-constellation circle { fill: var(--gx-gold); opacity: 0.8; }

/* ---------------- Header / nav ---------------- */
body.galaxy-page .site-header { background: transparent; }
body.galaxy-page .site-header.scrolled {
  background: rgba(10, 9, 8, 0.86); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--gx-border-soft);
}
body.galaxy-page .site-header .icon-btn { border-color: rgba(255,255,255,0.35); color: var(--gx-text); }
body.galaxy-page .site-header.scrolled .icon-btn { border-color: var(--gx-border); color: var(--gx-text); }
body.galaxy-page .site-header.scrolled .icon-btn:hover { background: var(--gx-gold); color: var(--gx-bg); border-color: var(--gx-gold); }
body.galaxy-page .site-header.scrolled .logo-mark img.on-dark { display: block; }
body.galaxy-page .site-header.scrolled .logo-mark img.on-light { display: none; }

body.galaxy-page .nav-overlay { background: var(--gx-bg); }
body.galaxy-page .nav-overlay-list a { color: var(--gx-text); }
body.galaxy-page .nav-overlay-list a:hover { color: var(--gx-gold); }
body.galaxy-page .nav-overlay-meta a { color: var(--gx-text-dim); }
body.galaxy-page .nav-overlay-close { color: var(--gx-text); }

/* ---------------- Section backgrounds ---------------- */
body.galaxy-page .bg-white { background: var(--gx-bg); }
body.galaxy-page .bg-cream { background: var(--gx-bg-2); }
body.galaxy-page .bg-ink { background: var(--gx-surface); color: var(--gx-text-dim); }
body.galaxy-page .bg-ink h2, body.galaxy-page .bg-ink h3 { color: var(--gx-text); }
body.galaxy-page .bg-ink .eyebrow { color: var(--gx-gold); }
body.galaxy-page .bg-ink p { color: var(--gx-text-dim); }

body.galaxy-page .eyebrow { color: var(--gx-gold); }
body.galaxy-page h1, body.galaxy-page h2, body.galaxy-page h3 { color: var(--gx-text); }
/* Section headings pair two accent fonts: the main clause in an elegant
   display serif, the closing clause (wrapped in <em>) in a flowing script. */
body.galaxy-page h2,
body.galaxy-page h3 {
  font-family: "Italiana", var(--gx-heading);
  font-weight: 400;
}
body.galaxy-page h2 em {
  font-family: inherit;
  font-style: normal;
  font-size: 1em;
  line-height: inherit;
  color: var(--gx-gold);
  text-transform: uppercase;
  letter-spacing: inherit;
  display: inline;
}
body.galaxy-page p { color: var(--gx-text-dim); }
body.galaxy-page .hero-sub { color: rgba(241,237,230,0.82); }

/* ---------------- Buttons ---------------- */
body.galaxy-page .btn-gold { background: var(--gx-gold); color: var(--gx-bg); }
body.galaxy-page .btn-gold:hover { background: #e6c988; }
body.galaxy-page .btn-outline { border-color: rgba(255,255,255,0.4); color: var(--gx-text); }
body.galaxy-page .btn-outline:hover { border-color: var(--gx-gold); color: var(--gx-gold); }
body.galaxy-page .btn-dark { background: var(--gx-surface); color: var(--gx-text); border-color: var(--gx-border-soft); }
body.galaxy-page .btn-dark:hover { background: var(--gx-surface-soft); }
body.galaxy-page .btn-ghost { border-color: rgba(255,255,255,0.3); color: var(--gx-text); }
body.galaxy-page .btn-ghost:hover { border-color: var(--gx-gold); color: var(--gx-gold); }

/* ---------------- Hero ---------------- */
body.galaxy-page .hero { background: var(--gx-bg); }
body.galaxy-page .hero-media::after {
  background: linear-gradient(180deg, rgba(10,9,8,0.25) 0%, rgba(10,9,8,0.55) 55%, rgba(10,9,8,0.94) 100%);
}
body.galaxy-page .hero-eyebrow { color: var(--gx-gold); }
body.galaxy-page .discover-label { color: rgba(241,237,230,0.6); }
body.galaxy-page .discover-tab { color: rgba(241,237,230,0.55); border-color: rgba(255,255,255,0.2); }
body.galaxy-page .discover-tab.active, body.galaxy-page .discover-tab:hover { color: var(--gx-text); border-color: var(--gx-gold); }
body.galaxy-page .discover-count { color: rgba(241,237,230,0.45); }
body.galaxy-page .hero-scroll { color: rgba(241,237,230,0.6); }
body.galaxy-page .hero-scroll::after { background: linear-gradient(rgba(241,237,230,0.6), transparent); }

/* ---------------- Cards / grids ---------------- */
body.galaxy-page .three-up { background: var(--gx-border-soft); }
body.galaxy-page .three-up figure { background: var(--gx-surface); }
body.galaxy-page .three-up figcaption .tag { color: var(--gx-gold); }
body.galaxy-page .three-up figcaption { color: var(--gx-text); }

/* Photos fade into the video behind them at the edges (soft mask) instead of
   sitting on top as hard-edged rectangles, so they read as part of the same
   atmosphere rather than pasted-on cutouts. */
body.galaxy-page .collage img {
  box-shadow: none;
  filter: drop-shadow(0 30px 60px rgba(0,0,0,0.5));
  mask-image: radial-gradient(ellipse 92% 92% at 50% 50%, #000 68%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 92% 92% at 50% 50%, #000 68%, transparent 100%);
}
/* A slow, continuous up/down bob — always drifting, not just while scrolling
   or moving the cursor. Lives on the wrapper so it never fights the GSAP
   scroll/cursor motion on the image itself (different element entirely). */
@keyframes gx-float-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-14px); }
}
body.galaxy-page .gx-float { animation: gx-float-bob 6s ease-in-out infinite; }
body.galaxy-page .collage .c1.gx-float { animation-duration: 6.5s; animation-delay: 0s; }
body.galaxy-page .collage .c2.gx-float { animation-duration: 5.5s; animation-delay: -1.5s; }
body.galaxy-page .collage .c3.gx-float { animation-duration: 7s; animation-delay: -3s; }
@media (prefers-reduced-motion: reduce) {
  body.galaxy-page .gx-float { animation: none; }
}

body.galaxy-page .loc-grid { background: var(--gx-border-soft); border-color: var(--gx-border-soft); }
body.galaxy-page .loc-item { background: rgba(19,17,16,0.45); backdrop-filter: blur(3px); }
body.galaxy-page .loc-item h4 { color: var(--gx-gold); }
body.galaxy-page .loc-item p { color: var(--gx-text-dim); }

body.galaxy-page .unit-row { border: none; gap: 22px; }
body.galaxy-page .unit-item {
  border: none;
  border-radius: 6px;
  background: var(--gx-surface);
  min-height: 380px;
  padding: 0;
  position: relative;
  isolation: isolate;
  display: flex;
  text-decoration: none;
  align-items: center;
  justify-content: center;
}
body.galaxy-page .unit-item-bg { z-index: 0; }
body.galaxy-page .unit-item-bg img {
  opacity: 0.05;
  transition: opacity 0.5s ease;
}
body.galaxy-page .unit-item-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(10, 9, 8, 0.68);
  transition: opacity 0.5s ease;
}
body.galaxy-page .unit-item:hover .unit-item-bg img { opacity: 1; }
body.galaxy-page .unit-item:hover .unit-item-bg::after { opacity: 0; }
body.galaxy-page .unit-item-content {
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
body.galaxy-page .unit-item__meta {
  font-family: var(--gx-heading, inherit);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gx-gold, #d4af6a);
  opacity: 0.9;
}
body.galaxy-page .unit-item .gx-masked-heading-mount {
  flex: none;
  width: 100%;
  max-width: 380px;
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gx-text);
  text-transform: uppercase;
  font-family: "Italiana", var(--gx-heading);
}

body.galaxy-page .collage .gx-soft-aurora-mount {
  position: absolute;
  top: -35%;
  bottom: -35%;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  z-index: 0;
}

body.galaxy-page .amenity-strip div { border-color: var(--gx-border-soft); justify-content: space-between; }
body.galaxy-page .amenity-strip span.n { color: var(--gx-gold); }
body.galaxy-page .amenity-strip span.t { color: var(--gx-text); margin-right: auto; }
body.galaxy-page .bg-ink .amenity-strip div { border-color: rgba(255,255,255,0.1); }

body.galaxy-page .amenity-photo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid var(--gx-border-soft, rgba(255,255,255,0.2));
  background: transparent;
  color: var(--gx-gold, #d4af6a);
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}
body.galaxy-page .amenity-photo:hover { background: rgba(212,175,106,0.15); transform: scale(1.08); }
body.galaxy-page .amenity-photo svg { width: 13px; height: 13px; }

.amenity-lightbox {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 60px 24px;
}
.amenity-lightbox.is-open { display: flex; }
.amenity-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(5,4,3,0.88);
}
.amenity-lightbox__frame {
  position: relative;
  max-width: min(1100px, 92vw);
  max-height: 84vh;
}
.amenity-lightbox__frame img {
  display: block;
  width: 100%;
  max-height: 84vh;
  object-fit: contain;
  border-radius: 6px;
}
.amenity-lightbox__caption {
  margin-top: 16px;
  text-align: center;
  color: #f1ede6;
  font-family: var(--gx-heading, inherit);
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.amenity-lightbox__close {
  position: absolute;
  top: -46px;
  right: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.3);
  background: rgba(0,0,0,0.4);
  color: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

body.galaxy-page .plan-row { border-color: var(--gx-border); background: rgba(10,9,8,0.45); }
body.galaxy-page .plan-cell { border-color: var(--gx-border); }
body.galaxy-page .plan-cell .n { color: var(--gx-gold); text-shadow: 0 2px 14px rgba(0,0,0,0.9), 0 1px 3px rgba(0,0,0,0.95); }
body.galaxy-page .plan-cell p { color: var(--gx-text-dim); text-shadow: 0 2px 10px rgba(0,0,0,0.9), 0 1px 3px rgba(0,0,0,0.95); }

body.galaxy-page .feature-placeholder { background: var(--gx-surface); }
body.galaxy-page .feature-placeholder .eyebrow { color: var(--gx-gold); }
body.galaxy-page .feature-placeholder h3 { color: var(--gx-text); }
body.galaxy-page .feature-placeholder p { color: var(--gx-text-dim); }

body.galaxy-page .form-panel { background: var(--gx-surface); border: 1px solid var(--gx-border-soft); }
body.galaxy-page .field label { color: var(--gx-text-dim); }
body.galaxy-page .field input, body.galaxy-page .field select, body.galaxy-page .field textarea {
  background: var(--gx-bg); border-color: rgba(255,255,255,0.15); color: var(--gx-text);
}
body.galaxy-page .field input:focus, body.galaxy-page .field select:focus, body.galaxy-page .field textarea:focus {
  border-color: var(--gx-gold); box-shadow: 0 2px 0 0 var(--gx-gold);
}
body.galaxy-page .form-note { color: var(--gx-text-faint); }

body.galaxy-page .stats-row { border-color: var(--gx-border-soft); }
body.galaxy-page .stats-row div { border-color: var(--gx-border-soft); }
body.galaxy-page .stats-row strong { color: var(--gx-gold); }
body.galaxy-page .stats-row span { color: var(--gx-text-dim); }

/* ---------------- Footer ---------------- */
body.galaxy-page .site-footer { background: var(--gx-bg-2); color: var(--gx-text-dim); }
body.galaxy-page .footer-top { border-color: var(--gx-border-soft); }
body.galaxy-page .footer-top h2 { color: var(--gx-text); }
body.galaxy-page .footer-grid h4 { color: var(--gx-text-faint); }
body.galaxy-page .footer-grid a { color: var(--gx-text-dim); }
body.galaxy-page .footer-grid a:hover { color: var(--gx-gold); }
body.galaxy-page .footer-about p { color: var(--gx-text-faint); }
body.galaxy-page .footer-bottom { border-color: var(--gx-border-soft); color: #5a554d; }

/* ---------------- Section background video/image treatments ---------------- */
body.galaxy-page .gx-video-section,
body.galaxy-page .gx-bg-image-section { position: relative; overflow: hidden; }
body.galaxy-page .gx-section-video {
  position: absolute; inset: 0; z-index: 0;
  width: 100%; height: 100%; object-fit: cover; opacity: 0;
  transition: opacity 0.22s ease;
}
body.galaxy-page .gx-section-video.gx-video-ready { opacity: 0.85; transition-duration: 1.1s; }
body.galaxy-page .gx-section-video-dim.gx-video-ready { opacity: 0.55; }
body.galaxy-page .gx-bg-image-section {
  background: url("../images/gx-blackhole.jpg") center 60% / cover no-repeat, var(--gx-bg-2);
}
body.galaxy-page .gx-section-video-tint {
  position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(180deg,
    var(--gx-bg-2) 0px, rgba(19,17,16,0.16) 260px,
    rgba(19,17,16,0.16) calc(100% - 260px), var(--gx-bg-2) 100%);
}
body.galaxy-page .gx-video-section.bg-ink .gx-section-video-tint {
  background: linear-gradient(180deg,
    var(--gx-surface) 0px, rgba(24,22,20,0.4) 260px,
    rgba(24,22,20,0.4) calc(100% - 260px), var(--gx-surface) 100%);
}
body.galaxy-page .gx-video-section > .container,
body.galaxy-page .gx-bg-image-section > .container,
body.galaxy-page .gx-video-section > #pricing { position: relative; z-index: 1; }

/* ---------------- Video loop dip + cursor glow ---------------- */
body.galaxy-page .gx-section-video.gx-loop-dip { opacity: 0 !important; transition-duration: 0.22s; }
body.galaxy-page .gx-cursor-glow {
  position: fixed; top: 0; left: 0; z-index: 9999;
  width: 26px; height: 26px;
  border-radius: 50%;
  border: 1px solid rgba(212,175,106,0.9);
  box-shadow: 0 0 14px 3px rgba(212,175,106,0.4), 0 0 3px 1px rgba(255,244,214,0.7);
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: transform 0.12s ease-out, opacity 0.3s ease;
  opacity: 0;
  mix-blend-mode: screen;
}
body.galaxy-page .gx-cursor-glow.is-active { opacity: 1; }

/* Static fallback when GSAP/ScrollTrigger unavailable or reduced motion is on */
body.galaxy-page .gx-warp.no-scrub .gx-warp-logo,
body.galaxy-page .gx-warp.no-scrub .gx-warp-building,
body.galaxy-page .gx-warp.no-scrub .gx-warp-building-tint { opacity: 1; transform: none; }
body.galaxy-page .gx-warp.no-scrub .gx-warp-flash,
body.galaxy-page .gx-warp.no-scrub .gx-warp-ring,
body.galaxy-page .gx-warp.no-scrub .gx-warp-spark { display: none; }
body.galaxy-page .gx-warp.no-scrub .gx-warp-caption[data-cue="4"] { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  body.galaxy-page .gx-orbit, body.galaxy-page .gx-constellation * { transition: none !important; animation: none !important; }
  body.galaxy-page .gx-warp-logo, body.galaxy-page .gx-warp-building, body.galaxy-page .gx-warp-building-tint { opacity: 1 !important; transform: none !important; }
  body.galaxy-page .gx-warp-flash, body.galaxy-page .gx-warp-ring, body.galaxy-page .gx-warp-spark { display: none !important; }
  body.galaxy-page .gx-warp-caption[data-cue="4"] { opacity: 1 !important; transform: none !important; }
}

@media (max-width: 720px) {
  body.galaxy-page .gx-warp-ring-3 { width: 520px; height: 520px; }
  body.galaxy-page .gx-warp-ring-2 { width: 400px; height: 400px; }
  body.galaxy-page .gx-warp-ring-1 { width: 300px; height: 300px; }
}

/* Decorative WebGL rings glow filling the full section behind a statement heading */
body.galaxy-page .gx-magic-rings {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
@media (prefers-reduced-motion: reduce) {
  body.galaxy-page .gx-magic-rings { display: none; }
}

/* Soft black fade at section top/bottom edges so consecutive sections
   merge into one another instead of cutting abruptly at the seam. */
body.galaxy-page .gx-fade-top,
body.galaxy-page .gx-fade-bottom { position: relative; }
body.galaxy-page .gx-fade-top::before,
body.galaxy-page .gx-fade-bottom::after {
  content: ""; position: absolute; left: 0; right: 0; height: 260px;
  z-index: 2; pointer-events: none;
}
body.galaxy-page .gx-fade-top::before {
  top: 0; background: linear-gradient(180deg, var(--gx-bg) 0%, transparent 100%);
}
body.galaxy-page .gx-fade-bottom::after {
  bottom: 0; background: linear-gradient(0deg, var(--gx-bg) 0%, transparent 100%);
}

/* Animated gold / yellow / cream gradient sweeping across text */
body.galaxy-page .gx-gradient-text {
  display: inline-block;
  background-image: linear-gradient(to right, #d4af6a, #f3d98a, #fff6e0, #f3d98a, #d4af6a);
  background-size: 300% 100%;
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: gx-gradient-text-move 6s ease-in-out infinite;
}
@keyframes gx-gradient-text-move {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@media (prefers-reduced-motion: reduce) {
  body.galaxy-page .gx-gradient-text { animation: none; background-position: 30% 50%; }
}

/* Full-screen exterior showcase: text sits over the black hole's dark void
   on the left, the depth carousel drifts through exterior shots on the right
   as the section pins and the user scrolls. */
body.galaxy-page .gx-exterior-section {
  min-height: 100vh;
  padding: 0;
  justify-content: flex-start;
}
body.galaxy-page .gx-exterior-section .feature-placeholder-inner {
  max-width: 400px;
  margin: 0 8% 0 6%;
  text-align: left;
}
body.galaxy-page .gx-exterior-section .gx-depth-carousel-mount {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 4%;
  width: 56%;
  max-width: 780px;
  z-index: 1;
  overflow: hidden;
}
@media (max-width: 900px) {
  body.galaxy-page .gx-exterior-section { flex-direction: column; padding: 100px 24px 60px; }
  body.galaxy-page .gx-exterior-section .feature-placeholder-inner { margin: 0 0 40px; max-width: 100%; }
  body.galaxy-page .gx-exterior-section .gx-depth-carousel-mount { position: relative; left: 0; width: 100%; height: 60vh; }
}

/* ============================= UNIT GALLERY LIGHTBOX ============================= */
body.galaxy-page .gx-lightbox {
  position: fixed; inset: 0; z-index: 4000;
  display: none; align-items: center; justify-content: center;
  padding: 40px 24px;
}
body.galaxy-page .gx-lightbox.is-open { display: flex; }
body.galaxy-page .gx-lightbox__backdrop {
  position: absolute; inset: 0;
  background: rgba(8, 7, 6, 0.94);
  backdrop-filter: blur(6px);
}
body.galaxy-page .gx-lightbox__inner {
  position: relative; z-index: 1;
  width: 100%; max-width: 1080px;
  display: flex; flex-direction: column; align-items: center;
  opacity: 0; transform: translateY(18px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
body.galaxy-page .gx-lightbox.is-open .gx-lightbox__inner { opacity: 1; transform: none; }
body.galaxy-page .gx-lightbox__close {
  position: absolute; top: -52px; right: 0;
  width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid var(--gx-border-soft); background: var(--gx-surface);
  color: var(--gx-text); font-size: 1.4rem; line-height: 1;
  cursor: pointer; transition: border-color 0.3s ease, color 0.3s ease;
}
body.galaxy-page .gx-lightbox__close:hover { border-color: var(--gx-gold); color: var(--gx-gold); }
body.galaxy-page .gx-lightbox__title {
  font-family: var(--gx-heading); color: var(--gx-text);
  font-size: clamp(1.1rem, 2vw, 1.5rem); letter-spacing: 0.02em;
  margin-bottom: 20px; text-align: center;
}
body.galaxy-page .gx-lightbox__title em { color: var(--gx-gold); font-style: normal; }
body.galaxy-page .gx-lightbox__stage {
  position: relative; width: 100%;
  display: flex; align-items: center; justify-content: center;
  aspect-ratio: 16 / 10; max-height: 62vh;
  background: var(--gx-surface); border: 1px solid var(--gx-border-soft);
  border-radius: 4px; overflow: hidden;
}
body.galaxy-page .gx-lightbox__img {
  width: 100%; height: 100%; object-fit: contain; background: #000;
  opacity: 0; transition: opacity 0.35s ease;
}
body.galaxy-page .gx-lightbox__img.is-loaded { opacity: 1; }
body.galaxy-page .gx-lightbox__scroll-hint {
  position: absolute; bottom: 12px; right: 14px; z-index: 2;
  display: flex; align-items: center; gap: 6px;
  font-family: var(--gx-heading); font-size: 0.66rem; letter-spacing: 0.1em;
  text-transform: uppercase; color: rgba(241, 237, 230, 0.55);
  pointer-events: none;
}
body.galaxy-page .gx-lightbox__scroll-hint svg { width: 13px; height: 13px; animation: gx-scroll-hint-bob 1.6s ease-in-out infinite; }
@keyframes gx-scroll-hint-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(3px); } }
body.galaxy-page .gx-lightbox__caption {
  margin-top: 16px; font-family: var(--gx-heading); font-size: 0.95rem;
  color: var(--gx-text-dim); letter-spacing: 0.03em;
}
body.galaxy-page .gx-lightbox__caption strong { color: var(--gx-gold); font-weight: 500; }
body.galaxy-page .gx-lightbox__thumbs {
  display: flex; gap: 8px; margin-top: 18px; max-width: 100%;
  overflow-x: auto; padding-bottom: 6px;
}
body.galaxy-page .gx-lightbox__thumbs::-webkit-scrollbar { height: 5px; }
body.galaxy-page .gx-lightbox__thumbs::-webkit-scrollbar-thumb { background: var(--gx-border-soft); border-radius: 3px; }
body.galaxy-page .gx-lightbox__thumb {
  flex: 0 0 auto; width: 72px; height: 52px; border-radius: 3px;
  overflow: hidden; border: 1.5px solid transparent; cursor: pointer;
  opacity: 0.55; transition: opacity 0.3s ease, border-color 0.3s ease;
  padding: 0; background: none;
}
body.galaxy-page .gx-lightbox__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.galaxy-page .gx-lightbox__thumb:hover { opacity: 0.85; }
body.galaxy-page .gx-lightbox__thumb.is-active { opacity: 1; border-color: var(--gx-gold); }

/* Penthouse "special" modal */
body.galaxy-page .gx-modal {
  position: fixed; inset: 0; z-index: 4000;
  display: none; align-items: center; justify-content: center;
  padding: 24px;
}
body.galaxy-page .gx-modal.is-open { display: flex; }
body.galaxy-page .gx-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(8, 7, 6, 0.92); backdrop-filter: blur(6px);
}
body.galaxy-page .gx-modal__inner {
  position: relative; z-index: 1;
  width: 100%; max-width: 460px;
  background: var(--gx-surface); border: 1px solid var(--gx-border);
  border-radius: 6px; padding: 44px 38px; text-align: center;
  opacity: 0; transform: translateY(18px) scale(0.98);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
body.galaxy-page .gx-modal.is-open .gx-modal__inner { opacity: 1; transform: none; }
body.galaxy-page .gx-modal__close {
  position: absolute; top: 14px; right: 14px;
  width: 34px; height: 34px; border-radius: 50%;
  border: 1px solid var(--gx-border-soft); background: transparent;
  color: var(--gx-text-dim); font-size: 1.25rem; line-height: 1;
  cursor: pointer; transition: border-color 0.3s ease, color 0.3s ease;
}
body.galaxy-page .gx-modal__close:hover { border-color: var(--gx-gold); color: var(--gx-gold); }
body.galaxy-page .gx-modal__eyebrow {
  display: block; font-family: var(--gx-heading); font-size: 0.72rem;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--gx-gold);
  margin-bottom: 14px;
}
body.galaxy-page .gx-modal__title {
  font-family: "Italiana", var(--gx-heading); font-weight: 400; font-size: clamp(1.5rem, 3vw, 1.9rem);
  color: var(--gx-text); margin: 0 0 14px;
}
body.galaxy-page .gx-modal__text {
  color: var(--gx-text-dim); font-size: 0.95rem; line-height: 1.65;
  margin: 0 0 30px;
}
body.galaxy-page .gx-modal__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
@media (max-width: 600px) {
  body.galaxy-page .gx-lightbox__close { top: -46px; }
}

/* ============================= OPTION WHEEL (room index) ============================= */
body.galaxy-page .gx-lightbox__row {
  display: flex; gap: 20px; width: 100%; align-items: stretch;
}
body.galaxy-page .gx-lightbox__row .gx-lightbox__stage { flex: 1 1 0; width: auto; min-width: 0; }
body.galaxy-page .gx-lightbox__wheel {
  position: relative; flex: 0 0 210px; width: 210px;
  background: var(--gx-surface); border: 1px solid var(--gx-border-soft);
  border-radius: 4px; overflow: hidden;
}
body.galaxy-page .gx-lightbox__wheel::before {
  content: ""; position: absolute; left: 14px; right: 14px; top: 50%; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(212,175,106,0.4), transparent);
  pointer-events: none; z-index: 0;
}
body.galaxy-page .gx-lightbox__wheel-mount { position: absolute; inset: 0; z-index: 1; }
body.galaxy-page .option-wheel {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  cursor: grab; user-select: none; touch-action: none; outline: none;
}
body.galaxy-page .option-wheel--dragging { cursor: grabbing; }
body.galaxy-page .option-wheel__item {
  position: absolute; top: 50%; left: var(--ow-inset, 22px); right: auto;
  white-space: nowrap; line-height: 1.2; font-family: var(--gx-heading);
  letter-spacing: 0.01em; transform-origin: left center; cursor: pointer;
  will-change: transform, opacity, filter;
}
body.galaxy-page .option-wheel--right .option-wheel__item {
  left: auto; right: var(--ow-inset, 22px); transform-origin: right center; text-align: right;
}
body.galaxy-page .option-wheel__item--selected { font-weight: 600; }
@media (max-width: 860px) {
  body.galaxy-page .gx-lightbox__wheel { display: none; }
}

/* Unit card hint badge — signals the card opens a gallery / enquiry modal */
body.galaxy-page .unit-item__hint {
  position: absolute; z-index: 2; top: 18px; right: 18px;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 13px 7px 10px; border-radius: 999px;
  background: rgba(10, 9, 8, 0.55); border: 1px solid rgba(212, 175, 106, 0.4);
  color: var(--gx-wordmark); font-family: var(--gx-heading);
  font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase;
  backdrop-filter: blur(3px);
  transition: border-color 0.35s ease, color 0.35s ease, background 0.35s ease, transform 0.35s ease;
}
body.galaxy-page .unit-item__hint svg { width: 13px; height: 13px; flex: none; opacity: 0.9; }
body.galaxy-page .unit-item:hover .unit-item__hint {
  border-color: var(--gx-gold); color: var(--gx-gold); background: rgba(10, 9, 8, 0.72);
  transform: translateY(-1px);
}
@media (max-width: 640px) {
  body.galaxy-page .unit-item__hint { top: 14px; right: 14px; font-size: 0.62rem; padding: 6px 11px 6px 9px; }
}

/* Brochure request modal — form + success/error states */
body.galaxy-page .gx-modal--form .gx-modal__inner { max-width: 420px; text-align: left; }
body.galaxy-page .gx-modal--form .gx-modal__eyebrow,
body.galaxy-page .gx-modal--form .gx-modal__title { text-align: center; }
body.galaxy-page .gx-modal--form .gx-modal__text { text-align: center; margin-bottom: 26px; }
body.galaxy-page .gx-modal__form { display: flex; flex-direction: column; gap: 16px; }
body.galaxy-page .gx-modal__field label {
  display: block; font-family: var(--gx-heading); font-size: 0.68rem;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--gx-text-faint);
  margin-bottom: 8px;
}
body.galaxy-page .gx-modal__field input {
  width: 100%; background: var(--gx-bg-2); border: 1px solid var(--gx-border-soft);
  border-radius: 4px; padding: 12px 14px; color: var(--gx-text);
  font-family: var(--gx-heading); font-size: 0.92rem; transition: border-color 0.3s ease;
}
body.galaxy-page .gx-modal__field input:focus { outline: none; border-color: var(--gx-gold); }
body.galaxy-page .gx-modal__success,
body.galaxy-page .gx-modal__error {
  display: none; font-size: 0.85rem; line-height: 1.5; border-radius: 4px;
  padding: 12px 14px; margin-bottom: 18px; text-align: center;
}
body.galaxy-page .gx-modal__success.visible { display: block; background: rgba(122, 168, 116, 0.14); color: #a8d6a0; border: 1px solid rgba(122, 168, 116, 0.3); }
body.galaxy-page .gx-modal__error.visible { display: block; background: rgba(200, 100, 90, 0.14); color: #e3a99f; border: 1px solid rgba(200, 100, 90, 0.3); }
body.galaxy-page .gx-modal--form.is-submitted .gx-modal__form { display: none; }

/* Payment plan now has 3 steps (final payment + handover merged). Scoped to
   above the site's own mobile breakpoint (980px) so it doesn't outrank
   style.css's single-column stack for small screens. */
@media (min-width: 981px) {
  body.galaxy-page .plan-row { grid-template-columns: repeat(3, 1fr); }
}

/* Rings/particle-text overview block — 680px min-height was tuned for
   desktop's wider particle-text canvas; on a narrow phone screen that's
   most of the viewport spent on empty space around a small text block. */
@media (max-width: 640px) {
  body.galaxy-page .gx-rings-block { min-height: 420px !important; }
}
