* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  /* Mystic-cosmic palette: sunlight moving through a starry night sky */
  --bg: #130F17;        /* base — near-black plum/eggplant, never pure black */
  --panel-1: #1C1521;   /* slightly lighter panel */
  --panel-2: #241A29;   /* lighter still, for layered surfaces */
  --gold: #E7B559;
  --terracotta: #C96A3E;
  --burnt: #8C3B22;     /* darkest gradient shadow stop */
  --pink: #E39AA0;
  --purple: #8C6BB5;
  --ivory: #F6EFE2;        /* warm white — headings */
  --ivory-muted: #C6BAAE;  /* muted warm white — secondary text */

  /* Legacy aliases — the rest of this file was written against these names;
     pointing them at the new tokens re-themes everything without a full rewrite. */
  --sand: var(--ivory);
  --black: var(--bg);
  --gold-deep: var(--terracotta);
  --font-display: 'Marcellus', 'Space Grotesk', serif;
}

html {
  color-scheme: dark;
  background-color: var(--black);
}

html, body {
  width: 100%;
  height: 100%;
}

body {
  font-family: 'Space Grotesk', sans-serif;
  color: var(--sand);
  background-color: transparent;
}

a, button { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }

h1, h2 { text-wrap: balance; }

/* One continuous video backdrop behind every section, so the scroll never feels like it's jumping between separate images */
.bg-video-wrap {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  overflow: hidden;
}
.bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scaleX(-1);
}
.bg-video-tint {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
}
@media (prefers-reduced-motion: reduce) {
  .bg-video { display: none; }
  .bg-video-wrap {
    background-image: url('assets/img/orb-mystique.jpg');
    background-size: cover;
    background-position: center 35%;
  }
}

.grain-overlay {
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  background-image: url('assets/img/noise.png');
  background-size: 220px 220px;
  opacity: 0.07;
  mix-blend-mode: overlay;
  animation: grain-drift 45s steps(6) infinite;
}
@keyframes grain-drift {
  0%   { transform: translate(0, 0); }
  20%  { transform: translate(-2%, 1.5%); }
  40%  { transform: translate(1.5%, -2%); }
  60%  { transform: translate(-1%, -1.5%); }
  80%  { transform: translate(2%, 1%); }
  100% { transform: translate(0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .grain-overlay { animation: none; }
}

/* Sand-dust motes — soft, blurred flecks drifting slowly through the base color, so it never reads flat */
.dust-overlay {
  position: fixed;
  inset: 0;
  z-index: 9994;
  pointer-events: none;
  overflow: hidden;
}
.dust-overlay span {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(246,239,226,.55) 0%, rgba(246,239,226,0) 72%);
  filter: blur(1px);
  animation: dust-drift linear infinite;
}
.dust-overlay span:nth-child(1)  { top: 8%;  left: 12%; width: 5px;  height: 5px;  animation-duration: 38s; animation-delay: -2s; }
.dust-overlay span:nth-child(2)  { top: 22%; left: 78%; width: 7px;  height: 7px;  animation-duration: 46s; animation-delay: -14s; opacity: .7; }
.dust-overlay span:nth-child(3)  { top: 64%; left: 30%; width: 4px;  height: 4px;  animation-duration: 33s; animation-delay: -8s; }
.dust-overlay span:nth-child(4)  { top: 80%; left: 88%; width: 6px;  height: 6px;  animation-duration: 42s; animation-delay: -22s; opacity: .6; }
.dust-overlay span:nth-child(5)  { top: 40%; left: 55%; width: 3px;  height: 3px;  animation-duration: 30s; animation-delay: -5s; }
.dust-overlay span:nth-child(6)  { top: 92%; left: 18%; width: 5px;  height: 5px;  animation-duration: 40s; animation-delay: -18s; opacity: .5; }
.dust-overlay span:nth-child(7)  { top: 5%;  left: 45%; width: 4px;  height: 4px;  animation-duration: 36s; animation-delay: -11s; }
.dust-overlay span:nth-child(8)  { top: 50%; left: 5%;  width: 6px;  height: 6px;  animation-duration: 44s; animation-delay: -27s; opacity: .55; }
@keyframes dust-drift {
  0%   { transform: translate(0, 0) scale(1); opacity: .5; }
  25%  { transform: translate(3vw, -2vh) scale(1.15); opacity: .8; }
  50%  { transform: translate(-2vw, 3vh) scale(.9); opacity: .4; }
  75%  { transform: translate(-3vw, -1vh) scale(1.1); opacity: .7; }
  100% { transform: translate(0, 0) scale(1); opacity: .5; }
}
@media (prefers-reduced-motion: reduce) {
  .dust-overlay span { animation: none; }
}

/* Subtle starfield — small ivory points scattered across the whole page, low opacity */
.stars-overlay {
  position: fixed;
  inset: 0;
  z-index: 9997;
  pointer-events: none;
  background-image:
    radial-gradient(1.4px 1.4px at 8% 12%, rgba(246,239,226,.9), transparent 60%),
    radial-gradient(1px 1px at 22% 68%, rgba(246,239,226,.7), transparent 60%),
    radial-gradient(1.6px 1.6px at 39% 24%, rgba(246,239,226,.6), transparent 60%),
    radial-gradient(1px 1px at 54% 82%, rgba(246,239,226,.55), transparent 60%),
    radial-gradient(1.8px 1.8px at 68% 8%, rgba(246,239,226,.75), transparent 60%),
    radial-gradient(1px 1px at 77% 46%, rgba(246,239,226,.6), transparent 60%),
    radial-gradient(1.4px 1.4px at 91% 71%, rgba(246,239,226,.7), transparent 60%),
    radial-gradient(1px 1px at 12% 92%, rgba(246,239,226,.5), transparent 60%),
    radial-gradient(1.6px 1.6px at 85% 28%, rgba(246,239,226,.55), transparent 60%),
    radial-gradient(1px 1px at 47% 55%, rgba(246,239,226,.45), transparent 60%),
    radial-gradient(1.4px 1.4px at 30% 40%, rgba(246,239,226,.65), transparent 60%),
    radial-gradient(1px 1px at 62% 63%, rgba(246,239,226,.45), transparent 60%),
    radial-gradient(1.2px 1.2px at 95% 90%, rgba(246,239,226,.55), transparent 60%),
    radial-gradient(1px 1px at 4% 55%, rgba(246,239,226,.4), transparent 60%);
  background-repeat: repeat;
  background-size: 560px 560px;
  opacity: 0.4;
  animation: stars-twinkle 9s ease-in-out infinite;
}
@keyframes stars-twinkle {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.45; }
}
@media (prefers-reduced-motion: reduce) {
  .stars-overlay { animation: none; opacity: 0.35; }
}

::selection { background: var(--gold); color: var(--black); }

.skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  z-index: 100000;
  background: var(--gold);
  color: var(--black);
  padding: 10px 18px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: top 0.2s ease;
}
.skip-link:focus { top: 16px; }

a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* Custom cursor — desktop with a real mouse only; touch devices keep the system default */
#minicircle { display: none; }

@media (pointer: fine) {
  html, body { cursor: none; }
  a { cursor: none; }

  #minicircle {
    display: block;
    transition: transform 0.12s ease-out;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    position: fixed;
    top: 0; left: 0;
    z-index: 99999;
    background-color: var(--gold);
    pointer-events: none;
    mix-blend-mode: difference;
  }
}

@media (prefers-reduced-motion: reduce) {
  #minicircle { display: none !important; }
  html, body { cursor: auto !important; }
  a { cursor: pointer !important; }
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* WhatsApp floating button */
.wa-fab {
  position: fixed !important;
  right: 20px;
  bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  z-index: 9999;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 20px rgba(0,0,0,.35);
  animation: pulse 2.4s ease-in-out infinite;
  transform: translateZ(0);
}
.wa-fab svg { width: 26px; height: 26px; fill: #2a1608; }
@keyframes pulse {
  0%,100% { box-shadow: 0 8px 20px rgba(231,181,89,.35); }
  50% { box-shadow: 0 8px 26px rgba(231,181,89,.7); }
}

.bounding {
  width: fit-content;
  overflow: hidden;
}

.js .boundingelem { opacity: 0; }

#main {
  width: 100%;
}

/* ---------- HERO ---------- */
#hero {
  position: relative;
  color: var(--sand);
  width: 100%;
  height: 100vh;
  min-height: 640px;
  background-color: var(--black);
  overflow: hidden;
}
.hero-bg {
  position: absolute; inset: 0;
  background-image: url('assets/img/hero.jpg');
  background-size: cover;
  background-position: center 20%;
  filter: saturate(.9) brightness(.8);
  transform: scaleX(-1);
}
@media (max-width: 900px) {
  .hero-bg { background-image: url('assets/img/hero-mobile.jpg'); background-position: 42% 20%; }
}
.hero-overlay {
  position: absolute; inset: 0;
  background:
    radial-gradient(60% 45% at 50% 32%, rgba(19,15,23,.5) 0%, rgba(19,15,23,0) 100%),
    linear-gradient(180deg, rgba(19,15,23,.5) 0%, rgba(19,15,23,.15) 30%, rgba(140,59,34,.5) 65%, rgba(201,106,62,.78) 100%);
}

/* Generative sun — gold → terracotta → burnt-orange → transparent, soft-blurred, sitting behind the content */
.sun-flare {
  position: absolute;
  top: -14vw;
  right: -10vw;
  width: min(55vw, 640px);
  height: min(55vw, 640px);
  border-radius: 50%;
  background: radial-gradient(circle, var(--gold) 0%, var(--terracotta) 38%, var(--burnt) 62%, transparent 78%);
  filter: blur(50px);
  opacity: 0.4;
  z-index: 0;
  pointer-events: none;
}
@media (max-width: 900px) {
  .sun-flare { top: -20vw; right: -30vw; opacity: 0.32; }
}

/* Sacred-geometry ring — concentric circles + sundial ticks, turning almost imperceptibly slowly */
.hero-mark {
  position: absolute;
  top: 62%;
  right: -14vw;
  width: min(70vw, 820px);
  height: min(70vw, 820px);
  transform: translateY(-50%);
  background-image: url('assets/img/spiral.svg');
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.7;
  z-index: 1;
}
@media (max-width: 900px) {
  .hero-mark { right: -30vw; opacity: 0.5; }
}

#nav {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 30px 40px;
  color: var(--sand);
}

#nav a.logo {
  text-decoration: none;
  display: flex;
  align-items: center;
  color: var(--sand);
}
#nav a.logo img {
  height: 52px;
  width: auto;
  display: block;
}

#navright {
  display: flex;
  align-items: center;
  gap: 36px;
}

#navright a {
  text-decoration: none;
  color: var(--sand);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
#navright a.navcta {
  border: 1px solid var(--sand);
  padding: 10px 18px;
  border-radius: 2px;
}

#heading {
  position: relative;
  z-index: 3;
  margin-top: 40vh;
  padding-left: 40px;
}

#heading .blockText {
  width: fit-content;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-top: 6px;
}

#heading .blockText p {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 12px;
  letter-spacing: .18em;
  line-height: 1.9;
  max-width: 44ch;
  color: var(--sand);
  margin-top: 18px;
  text-transform: uppercase;
  text-align: left !important;
}

#herofooter {
  padding: 0 2.5vw;
  width: 100%;
  position: absolute;
  z-index: 3;
  bottom: 4%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#herofooter a {
  text-decoration: none;
  color: var(--sand);
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: .2em;
  display: flex;
  align-items: center;
  gap: 8px;
}
#herofooter i { font-style: normal; font-size: 14px; }

#herofooter #iconset {
  display: flex;
  align-items: center;
  gap: 10px;
}

#herofooter .circle {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(246,239,226,.5);
  transition: background-color 0.3s ease;
}
#herofooter .circle a { color: var(--sand); font-size: 14px; transition: color 0.3s ease; }
#herofooter .circle:hover { background: var(--sand); }
#herofooter .circle:hover a { color: var(--black); }

/* ---------- WAYS TO CONNECT ---------- */
#ways {
  position: relative;
  color: var(--sand);
  padding: 100px 6vw 70px;
  width: 100%;
  overflow: hidden;
}
.ways-mark {
  position: absolute;
  top: 12vw;
  right: -18vw;
  width: min(60vw, 640px);
  height: min(60vw, 640px);
  background-image: url('assets/img/spiral.svg');
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.55;
  z-index: 0;
  pointer-events: none;
}
#ways > * { position: relative; z-index: 1; }
#ways > .ways-mark { position: absolute; z-index: 0; }

.second-head {
  max-width: 640px;
  margin: 0 0 60px;
}
.second-head .eyebrow {
  font-size: 15px; letter-spacing: .26em; text-transform: uppercase; color: var(--gold);
  margin-bottom: 18px;
}
.second-head h2 {
  font-family: var(--font-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: .03em;

  font-size: clamp(24px, 3.4vw, 38px);
  line-height: 1.25;
}

.elem {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 2.4vw 0;
  border-top: 1px solid rgba(231,181,89,.18);
}

.elem h3 {
  text-transform: uppercase;
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: .03em;

  font-size: clamp(24px, 4.4vw, 50px);
  opacity: .92;
  display: flex;
  align-items: baseline;
  gap: 18px;
}
.elem .num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  letter-spacing: .1em;
  color: var(--gold);
}

.elem a {
  text-decoration: none;
  color: var(--sand);
  width: 100%;
  display: flex;
  align-items: center;
  gap: 22px;
}

.elemlast {
  border-bottom: 1px solid rgba(231,181,89,.18);
}

.elem-thumb {
  flex: 0 0 auto;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid rgba(231,181,89,.45);
  box-shadow: 0 6px 18px rgba(0,0,0,.4);
}
.elem-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.elem-hover-img {
  opacity: 0;
  pointer-events: none;
  z-index: 5;
  position: absolute;
  top: 0;
  left: 0;
  height: 110px;
  width: 110px;
  object-fit: cover;
  border-radius: 50%;
  border: 1px solid rgba(231,181,89,.5);
  box-shadow: 0 10px 26px rgba(0,0,0,.5);
  will-change: transform, opacity;
}

/* ---------- ABOUT ---------- */
#about {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(28px, 5vw, 72px);
  flex-wrap: wrap;
  color: var(--sand);
  padding: 90px 6vw;
  width: 100%;
  background: radial-gradient(55% 60% at 15% 30%, rgba(201,106,62,.22) 0%, rgba(19,15,23,0) 60%);
}
#aboutimg { position: relative; flex: 0 0 auto; width: clamp(220px, 26vw, 320px); }
#aboutimg img { position: relative; z-index: 1; }
.about-mark {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 230%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  background: url('assets/img/spiral.svg') center / contain no-repeat;
  opacity: 0.85;
  pointer-events: none;
  z-index: 0;
}
#aboutimg img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: 50% 55%;
  border-radius: 50%;
  border: 1px solid rgba(231,181,89,.35);
  box-shadow: 0 18px 44px rgba(0,0,0,.45);
}
#textabout { flex: 1 1 320px; max-width: 560px; }

#textabout h2 {
  text-transform: uppercase;
  letter-spacing: .25em;
  color: var(--gold);
  font-size: 13px;
  margin-bottom: 22px;
}

#textabout p {
  font-size: 17px;
  line-height: 1.8;
  margin-bottom: 22px;
  color: var(--ivory);
}

.chronicle {
  font-family: 'Space Grotesk', sans-serif;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: hidden;
  line-height: 1;
  width: 160px;
  height: 50px;
  border-radius: 50px;
  padding: 14px 20px;
  border: 1px solid var(--sand);
  transition: background .4s linear;
  margin-top: 10px;
}
.chronicle a { text-decoration: none; }
.chronicle:hover { background: var(--sand); }
.chronicle:hover span:nth-of-type(1) em {
  opacity: 0;
  transform: rotateX(90deg) scaleX(.9) translate3d(0,-10px,0);
}
.chronicle:hover span:nth-of-type(2) em {
  opacity: 1;
  transform: rotateX(0deg) scaleX(1) translateZ(0);
  transition: transform .75s cubic-bezier(.645,.045,.355,1), opacity .35s linear .3s;
}
.chronicle:hover em { color: var(--black); }
.chronicle span { position: relative; display: block; perspective: 108px; }
.chronicle span:nth-of-type(2) { position: absolute; }
.chronicle em {
  font-style: normal;
  display: inline-block;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--sand);
  font-weight: 500;
  transition: transform .55s cubic-bezier(.645,.045,.355,1), opacity .35s linear .2s;
}
.chronicle span:nth-of-type(1) em { transform-origin: top; }
.chronicle span:nth-of-type(2) em {
  opacity: 0;
  transform: rotateX(-90deg) scaleX(.9) translate3d(0,10px,0);
  transform-origin: bottom;
}

/* ---------- CONNECT ---------- */
#connect {
  position: relative;
  color: var(--sand);
  text-align: center;
  padding: 90px 6vw 100px;
  overflow: hidden;
}
#connect::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('assets/img/sun-glow-grain.jpg');
  background-size: cover;
  background-position: center;
  opacity: 0.14;
  mix-blend-mode: screen;
  pointer-events: none;
}
#connect > * { position: relative; z-index: 1; }
#connect .eyebrow {
  font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--gold);
  margin-bottom: 18px;
}
#connect h2 {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .01em;
  font-size: clamp(26px, 4.4vw, 46px);
  margin-bottom: 40px;
}
.connect-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.connect-links a {
  color: var(--sand);
  text-decoration: none;
  font-size: 15px;
  letter-spacing: .05em;
  border-bottom: 1px solid rgba(246,239,226,.4);
  padding-bottom: 4px;
}

/* ---------- FOOTER ---------- */
#footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 30px 40px;
  color: var(--sand);
  border-top: 1px solid rgba(246,239,226,.12);
}
#footerleft .footer-tagline {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 13px;
  margin-bottom: 4px;
}
#footerleft span { font-size: 11px; opacity: .6; }

#footerright {
  display: flex;
  align-items: center;
  gap: 32px;
}
#footerright a {
  text-decoration: none;
  color: var(--sand);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .8;
}
#footerright a:hover { opacity: 1; }

@media (max-width: 900px) {
  #heading { padding-left: 20px; margin-top: 26vh; }
  #nav { padding: 22px 20px; }
  #navright { gap: 18px; }
  #navright a.navcta { display: none; }
  #navright a { padding: 10px 2px; }
  #about { padding: 70px 6vw; }
  .elem-hover-img { display: none; }
  .elem-thumb { width: 48px; height: 48px; }
  .elem { padding: 5vw 0; }
  #footer { flex-direction: column; gap: 16px; text-align: center; }
  #footerright { flex-wrap: wrap; justify-content: center; gap: 20px; }
  .wa-fab { width: 52px; height: 52px; }
}

/* ---------- PERFORMANCE: defer rendering cost of below-the-fold sections ---------- */
#ways, #about, #connect, #footer {
  content-visibility: auto;
  contain-intrinsic-size: auto 800px;
}

.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Netlify honeypot field — hidden from real visitors, visible to naive bots */
.hidden-field { position: absolute; left: -9999px; top: -9999px; }

.eyebrow {
  font-size: 15px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 16px;
}

.lede {
  font-size: 16px;
  line-height: 1.75;
  color: var(--ivory-muted);
  max-width: 620px;
  margin-bottom: 22px;
}

/* ---------- SCROLL REVEAL (progressive disclosure) ---------- */
[data-reveal] {
  opacity: 0;
  transform: translateY(14px);
  filter: blur(8px);
  transition: opacity .9s cubic-bezier(.22, .61, .36, 1),
              transform .9s cubic-bezier(.22, .61, .36, 1),
              filter .8s ease-out;
}
[data-reveal].is-inview {
  opacity: 1;
  transform: none;
  filter: none;
}
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
}

/* ---------- WORLD SECTIONS (Sound / Solar / Art / Create) ---------- */
.world {
  display: flex;
  justify-content: center;
  padding: 90px 6vw;
  width: 100%;
  color: var(--sand);
}

.world-text { width: 100%; max-width: 680px; }
.world-text h2 {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .01em;
  font-size: clamp(28px, 4.2vw, 48px);
  margin-bottom: 18px;
}
.world-text .tagline {
  font-family: 'Space Grotesk', sans-serif;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: var(--gold);
  font-size: 16px;
  margin-bottom: 18px;
}

.offer-list { margin: 8px 0 28px; }
.offer-list > div {
  padding: 16px 0;
  border-top: 1px solid rgba(246,239,226,.14);
}
.offer-list dt {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 14px;
  margin-bottom: 6px;
}
.offer-list dd {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.6;
  color: rgba(246,239,226,.72);
}

.tag-label {
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(246,239,226,.55);
  margin: 0 0 10px;
}
.tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin-bottom: 28px;
}

/* "Cloud" pills — soft, luminous, drifting like clouds catching sunlight */
.tag-row span {
  position: relative;
  font-size: 12.5px;
  padding: 8px 16px;
  border-radius: 30px;
  color: rgba(246,239,226,.9);
  white-space: nowrap;
  background: linear-gradient(135deg, rgba(246,239,226,.10), rgba(231,181,89,.07) 55%, rgba(201,106,62,.06));
  border: 1px solid rgba(246,239,226,.22);
  box-shadow: 0 8px 20px -10px rgba(231,181,89,.45), inset 0 1px 0 rgba(255,255,255,.08);
  transform: translateY(0);
  transition: box-shadow 0.4s ease, border-color 0.4s ease, background 0.4s ease;
  animation: cloud-drift 8s ease-in-out infinite;
  animation-play-state: running;
}

/* Stagger drift timing per pill so the row moves like a loose cluster of clouds, not one synced block */
.tag-row span:nth-child(4n)   { animation-duration: 9.5s; animation-delay: -1.2s; }
.tag-row span:nth-child(4n+1) { animation-duration: 7.5s; animation-delay: -3.6s; }
.tag-row span:nth-child(4n+2) { animation-duration: 8.8s; animation-delay: -0.4s; }
.tag-row span:nth-child(4n+3) { animation-duration: 6.8s; animation-delay: -2.1s; }

.tag-row span:hover,
.tag-row span:focus-visible {
  animation-play-state: paused;
  border-color: rgba(231,181,89,.55);
  box-shadow: 0 10px 26px -8px rgba(231,181,89,.6), inset 0 1px 0 rgba(255,255,255,.12);
}

@keyframes cloud-drift {
  0%   { transform: translate(0, 0); }
  25%  { transform: translate(1.5px, -3px); }
  50%  { transform: translate(-1px, -5px); }
  75%  { transform: translate(-2px, -2px); }
  100% { transform: translate(0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .tag-row span { animation: none; }
}

.world-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
  align-items: center;
  margin-top: 6px;
}
.btn-primary, .btn-secondary {
  text-decoration: none;
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 14px 26px;
  border-radius: 30px;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.btn-primary {
  background: var(--gold);
  color: var(--black);
  font-weight: 600;
}
.btn-secondary {
  color: var(--sand);
  border: 1px solid rgba(246,239,226,.4);
}

/* ---------- STATEMENT DIVIDERS ---------- */
.statement {
  position: relative;
  padding: 90px 6vw;
  text-align: center;
  color: var(--sand);
  overflow: hidden;
}
.statement::before,
.statement::after {
  content: '';
  position: absolute;
  width: 60vw;
  height: 60vw;
  max-width: 640px;
  max-height: 640px;
  border-radius: 50%;
  filter: blur(60px);
  pointer-events: none;
  z-index: 0;
}
.statement::before {
  top: -20%;
  left: -10%;
  background: radial-gradient(circle, rgba(231,181,89,.16) 0%, rgba(231,181,89,0) 70%);
  animation: mist-drift-a 26s ease-in-out infinite;
}
.statement::after {
  bottom: -25%;
  right: -10%;
  background: radial-gradient(circle, rgba(201,106,62,.14) 0%, rgba(201,106,62,0) 70%);
  animation: mist-drift-b 32s ease-in-out infinite;
}
.statement h2, .statement p, .statement ul {
  position: relative;
  z-index: 1;
}

/* Marsseia's own wordmark, worn like an old carved sign, resting quietly behind the words */
.statement-wordmark {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(90vw, 1100px);
  height: auto;
  aspect-ratio: 1504 / 435;
  transform: translate(-50%, -50%);
  background-image: url('assets/img/from-live-site/live-texture-strip.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.06;
  z-index: 0;
  pointer-events: none;
}

@keyframes mist-drift-a {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%      { transform: translate(6vw, 4vh) scale(1.15); }
}
@keyframes mist-drift-b {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%      { transform: translate(-5vw, -5vh) scale(1.1); }
}
@media (prefers-reduced-motion: reduce) {
  .statement::before, .statement::after { animation: none; }
}

.statement h2 {
  font-family: var(--font-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: .03em;
  font-size: clamp(28px, 5vw, 56px);
  margin: 0 auto 18px;
  max-width: 780px;
}
.statement p.lede { margin: 0 auto; text-align: center; }
.statement-quiet { padding: 80px 6vw; }
.question-list {
  list-style: none;
  padding: 0;
  margin: 26px auto;
  max-width: 560px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-family: 'Space Grotesk', sans-serif;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: .02em;
  font-size: 15px;
  color: var(--gold);
}

/* ---------- CREATE: prompts + offer grid ---------- */
.prompt-list {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .01em;
  font-size: clamp(16px, 2vw, 21px);
}

.offer-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 8px 0 28px;
}
.offer-grid > div {
  background: var(--panel-2);
  border: 1px solid rgba(246,239,226,.08);
  border-radius: 10px;
  padding: 16px 18px;
}
.offer-grid h3 {
  font-size: 14px;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 6px;
}
.offer-grid > div:last-child:nth-child(3n+2) { grid-column: span 2; }
.offer-grid p {
  margin: 0;
  font-size: 13.5px;
  color: rgba(246,239,226,.65);
}

/* ---------- CONTACT FORM ---------- */
.connect-sub { text-align: center; margin: 0 auto 40px; }
.idea-form {
  max-width: 640px;
  margin: 0 auto 48px;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.interest-picker {
  border: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.interest-picker legend {
  width: 100%;
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(246,239,226,.55);
  margin-bottom: 8px;
  padding: 0;
}
.interest-picker .pill {
  position: relative;
  font-size: 13px;
  padding: 10px 18px;
  border-radius: 30px;
  border: 1px solid rgba(246,239,226,.22);
  cursor: pointer;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: rgba(246,239,226,.9);
  background: linear-gradient(135deg, rgba(246,239,226,.10), rgba(231,181,89,.07) 55%, rgba(201,106,62,.06));
  box-shadow: 0 8px 20px -10px rgba(231,181,89,.45), inset 0 1px 0 rgba(255,255,255,.08);
  transition: box-shadow 0.4s ease, border-color 0.4s ease, background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}
.interest-picker .pill:hover {
  border-color: rgba(231,181,89,.55);
  box-shadow: 0 10px 26px -8px rgba(231,181,89,.6), inset 0 1px 0 rgba(255,255,255,.12);
  transform: translateY(-2px);
}
.interest-picker input {
  position: absolute;
  opacity: 0;
  width: 1px; height: 1px;
}
.interest-picker .pill:has(input:checked) {
  background: var(--gold);
  color: var(--black);
  border-color: var(--gold);
  box-shadow: 0 10px 24px -8px rgba(231,181,89,.7);
  transform: translateY(-1px);
}
.interest-picker input:focus-visible ~ .pill,
.interest-picker .pill:focus-within {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

.form-row { display: flex; flex-direction: column; gap: 6px; text-align: left; }
.form-row label {
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(246,239,226,.6);
}
.form-row input, .form-row textarea {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(246,239,226,.25);
  border-radius: 6px;
  padding: 12px 14px;
  color: var(--sand);
  font-family: 'Space Grotesk', sans-serif;
  font-size: 15px;
  min-height: 44px;
}
.form-row textarea { min-height: 120px; resize: vertical; }
.form-row input:focus-visible, .form-row textarea:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}
.form-row-split { flex-direction: row; gap: 18px; }
.form-row-split > div { flex: 1; display: flex; flex-direction: column; gap: 6px; }

.idea-form button, .newsletter-row button {
  align-self: flex-start;
  background: var(--gold);
  color: var(--black);
  border: none;
  border-radius: 30px;
  padding: 13px 28px;
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 600;
  cursor: pointer;
  min-height: 44px;
  transition: opacity 0.2s ease;
}
.idea-form button:disabled, .newsletter-row button:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
#idea-form-status, .newsletter-status {
  font-size: 13px;
  color: var(--gold);
  min-height: 1.4em;
}

/* ---------- FOOTER additions ---------- */
.footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  margin: 10px 0 8px;
}
.footer-nav a {
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(246,239,226,.7);
  text-decoration: none;
}
.footer-nav a:hover { color: var(--sand); }

.newsletter-form { text-align: left; max-width: 320px; }
.newsletter-title {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 13px;
  margin: 0 0 4px;
}
.newsletter-sub {
  font-size: 12px;
  color: rgba(246,239,226,.6);
  margin: 0 0 12px;
  line-height: 1.5;
}
.newsletter-row { display: flex; gap: 8px; }
.newsletter-row input {
  flex: 1;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(246,239,226,.25);
  border-radius: 30px;
  padding: 10px 16px;
  color: var(--sand);
  font-size: 13px;
  min-height: 44px;
}
.newsletter-row button { align-self: auto; padding: 10px 20px; }

@media (max-width: 900px) {
  .world { padding: 70px 6vw; }
  .offer-grid { grid-template-columns: 1fr; }
  .offer-grid > div:last-child:nth-child(3n+2) { grid-column: auto; }
  .form-row-split { flex-direction: column; }
  #footerright { align-items: center; }
  .newsletter-form { max-width: 100%; }
}

.hero-mark.has-canvas, .ways-mark.has-canvas, .about-mark.has-canvas { background-image: none; }
.spiral-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }

/* ---------- PANELS: Sound / Solar / Art / Create open in-page from the Ways list ---------- */
.ways-hint {
  margin-top: 14px;
  font-size: 12px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ivory-muted);
}
.elem h3 { display: block; }
.elem-star {
  display: inline-block;
  margin-left: .3em;
  font-size: .62em;
  vertical-align: .28em;
  color: var(--gold);
  transition: transform .6s ease, text-shadow .4s ease;
}
.elem:hover .elem-star, .elem a:focus-visible .elem-star {
  transform: rotate(60deg) scale(1.25);
  text-shadow: 0 0 14px rgba(231,181,89,.85);
}

.js .panel {
  position: fixed;
  inset: 0;
  z-index: 9990;
  width: auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 120px 6vw calc(110px + env(safe-area-inset-bottom, 0px));
  align-items: flex-start;
  background: linear-gradient(165deg, #2a1d2e 0%, #1c1521 45%, #130F17 100%);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease, visibility 0s linear .18s;
}
.js .panel.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition: opacity .18s ease, visibility 0s;
}
.js .panel [data-reveal] { opacity: 1; transform: none; filter: none; }

.panel-close {
  position: fixed;
  top: 26px;
  right: 6vw;
  z-index: 5;
  font: inherit;
  font-size: 12px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--sand);
  background: rgba(19,15,23,.55);
  border: 1px solid rgba(246,239,226,.55);
  border-radius: 40px;
  padding: 12px 22px;
  cursor: pointer;
  transition: background .3s ease, color .3s ease;
}
.panel-close:hover, .panel-close:focus-visible { background: var(--sand); color: var(--black); }
@media (pointer: fine) { .panel-close { cursor: none; } }

html.panel-open, html.panel-open body { overflow: hidden; }
html.panel-open .wa-fab, html.panel-open .gold-dust { visibility: hidden; }
@media (prefers-reduced-motion: reduce) {
  .js .panel, .js .panel.is-open { transition: none; }
}
@media (max-width: 900px) {
  .js .panel { padding: 96px 6vw calc(120px + env(safe-area-inset-bottom, 0px)); }
  .panel-close { top: 18px; }
}

/* ---------- PERFORMANCE ---------- */
.js .panel:not(.is-open) .tag-row span { animation-play-state: paused; }
@media (max-width: 900px), (pointer: coarse) {
  .tag-row span { animation: none; }
}

/* ---------- MOBILE FIXES ---------- */
/* Larger invisible tap areas (no visual or layout change) */
#herofooter > a, .footer-nav a, #footerright > a, .connect-links a { position: relative; }
#herofooter > a::after, .footer-nav a::after, #footerright > a::after, .connect-links a::after {
  content: '';
  position: absolute;
  inset: -12px -8px;
}
#herofooter .circle a { width: 100%; height: 100%; justify-content: center; }

@media (max-width: 900px) {
  /* keep the two arrows clear of the floating WhatsApp button */
  #herofooter { padding-right: 84px; }
}
@media (max-width: 640px) {
  /* the larger logo + five links no longer fit on one row: logo on top, links below */
  #nav { flex-wrap: wrap; row-gap: 12px; }
  #nav a.logo img { height: 40px; }
  #navright { width: 100%; justify-content: space-between; gap: 0; }
  #navright a { padding: 8px 0; }
  #heading { margin-top: 180px; }
}
/* iOS Safari zooms the page when a field under 16px is focused */
@media (pointer: coarse) {
  .idea-form input, .idea-form textarea, .newsletter-form input { font-size: 16px; }
}

/* ---------- HERO TITLE: right side, 40px, very faint, wide-spaced letters breathing slowly ---------- */
#herotitle {
  position: absolute;
  z-index: 3;
  top: 130px;
  right: 40px;
  margin: 0 -.4em 0 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-style: normal;
  font-size: 40px;
  line-height: 1.55;
  letter-spacing: .4em;
  text-transform: uppercase;
  text-align: right;
  text-shadow: 0 2px 18px rgba(0,0,0,.35);
  pointer-events: none;
}
#herotitle .hl { display: block; }
.dw { display: inline-block; white-space: nowrap; }
.dl { display: inline-block; opacity: .3; animation: twinkle var(--dur, 8s) ease-in-out infinite; animation-delay: var(--d, 0s); }
@keyframes twinkle {
  0%, 100% { opacity: .25; }
  50%      { opacity: .6; }
}
html.panel-open .dl { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .dl { animation: none !important; opacity: .45; }
}
@media (max-width: 900px) {
  #herotitle { top: auto; bottom: 17%; right: 20px; font-size: min(40px, 9.6vw); letter-spacing: .34em; margin-right: -.34em; }
}

/* ---------- GOLD DUST ---------- */
.gold-dust {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 9994;
  pointer-events: none;
}

/* ---------- LEGIBILITY ---------- */
.tag-label { font-size: 12px; color: rgba(246,239,226,.75); }
.tag-row span { font-size: 13.5px; }
.offer-list dd { font-size: 15.5px; color: rgba(246,239,226,.84); }
#footerleft span { font-size: 12px; opacity: .75; }
#footerleft span span { opacity: 1; font-size: inherit; }
.form-row label, .interest-picker legend { color: rgba(246,239,226,.82); }
.newsletter-sub, .ways-hint { color: rgba(246,239,226,.82); }
@media (max-width: 900px) {
  #navright a { font-size: 12.5px; }
  #heading .blockText p { font-size: 13.5px; line-height: 1.7; }
  #herofooter a { font-size: 13px; }
  .form-row label, .interest-picker legend { font-size: 13px; }
  .newsletter-sub, .ways-hint { font-size: 13.5px; }
  .footer-nav { justify-content: center; }
  .footer-nav a, #footerright a { font-size: 12.5px; opacity: .9; }
  .offer-list dt { font-size: 15px; }
  .world-text .tagline { font-size: 14px; }
}

/* WhatsApp button steps aside while scrolling and where WhatsApp is already offered */
.wa-fab { transition: opacity .25s ease, transform .25s ease; }
.wa-fab.is-away { opacity: 0; transform: translateY(12px) scale(.9); pointer-events: none; }

/* ---------- HERO SECOND LINE: tiny, almost transparent; letters drift apart and back while they blink ---------- */
#heading .blockText p.hero-sub2 { font-size: 10px; letter-spacing: .9em; line-height: 1.9; max-width: none; margin-top: 12px; }
.sl { display: inline-block; opacity: .2; animation: drift-apart 10s ease-in-out infinite; animation-delay: calc(var(--i) * -.14s); }
@keyframes drift-apart {
  0%, 100% { opacity: .12; transform: translateX(0); }
  50%      { opacity: .5;  transform: translateX(calc(var(--i) * 5px)); }
}
html.panel-open .sl { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .sl { animation: none !important; opacity: .35; }
}
@media (max-width: 900px) {
  #heading .blockText p.hero-sub2 { letter-spacing: .6em; }
  .sl { animation-name: drift-apart-sm; }
}
@keyframes drift-apart-sm {
  0%, 100% { opacity: .12; transform: translateX(0); }
  50%      { opacity: .5;  transform: translateX(calc(var(--i) * 3px)); }
}
@media (max-width: 900px) {
  #heading { padding-right: 20px; }
  #heading .blockText p:not(.hero-sub2) { text-wrap: balance; }
}

/* ---------- SOLAR GATE: the home page's doorway into /solar/ ---------- */
.solar-gate {
  position: relative;
  display: block;
  text-align: center;
  text-decoration: none;
  color: var(--sand);
  padding: clamp(90px, 15vw, 190px) 6vw;
  overflow: hidden;
}
.solar-gate-glow {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(90vw, 900px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%) scale(.85);
  background: radial-gradient(circle, rgba(231, 181, 89, .32) 0, rgba(201, 106, 62, .14) 38%, rgba(19, 15, 23, 0) 68%);
  opacity: .8;
  transition: transform 1.4s cubic-bezier(.22, .61, .36, 1), opacity 1s ease;
  pointer-events: none;
}
.solar-gate:hover .solar-gate-glow,
.solar-gate:focus-visible .solar-gate-glow { transform: translate(-50%, -50%) scale(1.1); opacity: 1; }
.solar-gate-word {
  position: relative;
  display: block;
  font-family: var(--font-display);
  font-size: clamp(52px, 15vw, 280px);
  line-height: 1;
  letter-spacing: .34em;
  padding-left: .34em;
  text-transform: uppercase;
  text-shadow: 0 2px 40px rgba(19, 15, 23, .5);
}
.solar-gate-cta {
  position: relative;
  display: inline-block;
  margin-top: clamp(20px, 3vw, 36px);
  font-size: 12.5px;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--sand);
  text-shadow: 0 1px 14px rgba(19, 15, 23, .6);
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(246, 239, 226, .6);
  transition: letter-spacing .5s ease;
}
.solar-gate:hover .solar-gate-cta,
.solar-gate:focus-visible .solar-gate-cta { letter-spacing: .42em; }
.solar-gate:focus-visible { outline-offset: -10px; }
