:root { color-scheme: light; }

html {
  scroll-behavior: smooth;
  overscroll-behavior: none;
  background: #ffffff;
}

body {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  color: #1a1a1a;
  background: #ffffff;
  overscroll-behavior: none;
}

/* Hide scrollbars on horizontal scrollers */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Subtle fade-up used on cards/sections */
@keyframes fade-up {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
.animate-fade-up { animation: fade-up 0.6s cubic-bezier(0.22, 1, 0.36, 1) both; }

/* Infinite horizontal marquee used by the Partners carousel. */
@keyframes marquee-x {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.animate-marquee { animation: marquee-x 40s linear infinite; }
@media (prefers-reduced-motion: reduce) { .animate-marquee { animation: none; } }

/* Slow drifting aurora blobs */
@keyframes aurora-drift {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  33%      { transform: translate3d(70px, -40px, 0) scale(1.12); }
  66%      { transform: translate3d(-60px, 50px, 0) scale(0.94); }
}
.aurora-blob { animation: aurora-drift 22s ease-in-out infinite; will-change: transform; }
@media (prefers-reduced-motion: reduce) { .aurora-blob { animation: none; } }

/* ===== Rhodes Scapes wordmark =====
   Live text instead of a bitmap: crisp at any size, recolourable per surface.
   --brand-size drives everything else. */
.brand-logo {
  --brand-size: 1.5rem;
  --brand-fg: #ffffff;
  --brand-accent: #d8ab54;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
  font-family: "Cormorant Garamond", "Times New Roman", Georgia, serif;
  white-space: nowrap;
  user-select: none;
}
.brand-logo--dark { --brand-fg: #0b1220; --brand-accent: #a2731c; }

.brand-logo__name {
  font-size: var(--brand-size);
  font-weight: 400;
  letter-spacing: 0.13em;
  margin-right: -0.13em; /* cancel the trailing letter-space so it stays centred */
  color: var(--brand-fg);
}
.brand-logo__sub {
  display: flex;
  align-items: center;
  gap: 0.55em;
  margin-top: 0.3em;
  font-size: calc(var(--brand-size) * 0.3);
  font-weight: 600;
  color: var(--brand-accent);
}
.brand-logo__word { letter-spacing: 0.42em; margin-right: -0.42em; }
.brand-logo__rule {
  display: block;
  width: 1.5em;
  height: 1px;
  background: currentColor;
  opacity: 0.85;
}

/* Legibility when the mark sits directly on a photograph. */
.brand-logo--on-photo .brand-logo__name { text-shadow: 0 2px 30px rgba(0, 0, 0, 0.55); }
.brand-logo--on-photo .brand-logo__sub  { text-shadow: 0 2px 18px rgba(0, 0, 0, 0.6); }

/* Sizes */
.brand-logo--nav    { --brand-size: 1.5rem; }
.brand-logo--sm     { --brand-size: 1.2rem; }
.brand-logo--footer { --brand-size: clamp(2.1rem, 8vw, 3rem); }
.brand-logo--hero   { --brand-size: clamp(2.9rem, 13vw, 8.5rem); }
@media (min-width: 640px) {
  .brand-logo--nav { --brand-size: 1.75rem; }
}

/* At navbar scale the reference proportions get illegible, so the sub-line
   is given a little more size and a little less tracking. */
.brand-logo--nav .brand-logo__sub,
.brand-logo--sm  .brand-logo__sub  { font-size: calc(var(--brand-size) * 0.36); gap: 0.45em; margin-top: 0.34em; }
.brand-logo--nav .brand-logo__word,
.brand-logo--sm  .brand-logo__word { letter-spacing: 0.3em; margin-right: -0.3em; }
.brand-logo--nav .brand-logo__rule,
.brand-logo--sm  .brand-logo__rule { width: 1.1em; }

/* Over a photograph the brand gold needs to sit a shade brighter to hold up. */
.brand-logo--on-photo .brand-logo__sub { color: #e6c07a; }

/* Social icons: flat brand-gold glyphs, no pill behind them. */
.social-icon { color: #e6c07a; transition: color .2s ease, transform .2s ease; }
.social-icon:hover { color: #f6ddab; transform: translateY(-2px); }
