:root {
  --radius: 10px;
  --background: #05193a;
  --foreground: #f5f1ea;
  --card: #112548;
  --card-foreground: #f5f1ea;
  --popover: #091e40;
  --popover-foreground: #f5f1ea;
  --primary: #cca45e;
  --primary-foreground: #02102b;
  --secondary: #182d50;
  --muted: #172846;
  --muted-foreground: #bdb7a9;
  --accent: #cca45e;
  --border: #cca45e47;
  --input: #182d50;
  --ring: #cca45e;
  --gold: #cca45e;
  --gold-soft: #a67e44;
  --gold-contrast: #05193a;
  --sapphire: #103065;
  --partner-metric: #470f14;
  --partner-metric-border: #b46e5bb3;
  --partner-metric-foreground: #eee3d3;
  --partner-metric-accent: #dbb06b;
  --sapphire-deep: #010f30;
  --bg-gradient-1: radial-gradient(ellipse at top, #142c55 0%, transparent 60%);
  --bg-gradient-2: radial-gradient(
    ellipse at bottom right,
    #061335 0%,
    transparent 50%
  );
  --kg-gold: #c9a84c;
  --kg-gold-2: #e8c87a;
}

@supports (color: lab(0% 0 0)) {
  :root {
    --background: lab(8.8726% 3.76551 -24.4798);
    --foreground: lab(95.3886% 0.58049 3.77289);
    --card: lab(14.7645% 2.23453 -24.6044);
    --card-foreground: lab(95.3886% 0.58049 3.77289);
    --popover: lab(11.2347% 3.072 -24.5286);
    --popover-foreground: lab(95.3886% 0.58049 3.77289);
    --primary: lab(69.9346% 9.18314 41.6665);
    --primary-foreground: lab(4.84394% 2.66062 -20.0321);
    --secondary: lab(18.2831% 1.57379 -24.6792);
    --muted: lab(16.0607% 0.937864 -21.2084);
    --muted-foreground: lab(74.5551% 0.662327 7.68937);
    --accent: lab(69.9346% 9.18314 41.6665);
    --border: lab(69.9346% 9.18314 41.6665 / 0.28);
    --input: lab(18.2831% 1.57379 -24.6792);
    --ring: lab(69.9346% 9.18314 41.6665);
    --gold: lab(69.9346% 9.18314 41.6665);
    --gold-soft: lab(55.8944% 11.0159 37.2277);
    --gold-contrast: lab(8.8726% 3.76551 -24.4798);
    --sapphire: lab(20.2082% 5.1662 -34.9848);
    --partner-metric: lab(14.4197% 27.2558 12.7606);
    --partner-metric-border: lab(54.0078% 27.2617 23.1889 / 0.7);
    --partner-metric-foreground: lab(90.7733% 1.86259 9.45592);
    --partner-metric-accent: lab(74.5407% 10.1524 41.0402);
    --sapphire-deep: lab(4.70915% 4.22771 -23.3748);
    --bg-gradient-1: radial-gradient(
      ellipse at top,
      lab(18.1523% 2.77129 -28.0976) 0%,
      transparent 60%
    );
    --bg-gradient-2: radial-gradient(
      ellipse at bottom right,
      lab(6.50816% 6.01818 -24.546) 0%,
      transparent 50%
    );
  }
}

html.light {
  --background: #f8f1e3;
  --foreground: #25170c;
  --card: #f0e7d6;
  --card-foreground: #25170c;
  --popover: #f5eee0;
  --popover-foreground: #25170c;
  --primary: #936823;
  --primary-foreground: #fbf4e6;
  --secondary: #e6ddcc;
  --muted: #e4ddcf;
  --muted-foreground: #584a3b;
  --accent: #936823;
  --border: #93682347;
  --input: #ebe4d6;
  --ring: #936823;
  --gold: #8f5d04;
  --gold-soft: #a97d3a;
  --gold-contrast: #05193a;
  --sapphire: #daccb1;
  --partner-metric: #470f14;
  --partner-metric-border: #b46e5bb3;
  --partner-metric-foreground: #eee3d3;
  --partner-metric-accent: #dbb06b;
  --sapphire-deep: #eee4cf;
  --bg-gradient-1: radial-gradient(ellipse at top, #f4e6ca 0%, transparent 60%);
  --bg-gradient-2: radial-gradient(
    ellipse at bottom right,
    #f0dbb9 0%,
    transparent 50%
  );
}

@supports (color: lab(0% 0 0)) {
  html.light {
    --background: lab(95.4366% 0.63467 7.66902);
    --foreground: lab(9.42005% 5.89285 9.29835);
    --card: lab(91.9733% 0.836819 9.61837);
    --card-foreground: lab(9.42005% 5.89285 9.29835);
    --popover: lab(94.2766% 0.635952 7.66994);
    --popover-foreground: lab(9.42005% 5.89285 9.29835);
    --primary: lab(47.7219% 13.0865 43.8762);
    --primary-foreground: lab(96.5967% 0.633419 7.66813);
    --secondary: lab(88.4929% 0.843227 9.62324);
    --muted: lab(88.4762% 0.642717 7.67483);
    --muted-foreground: lab(32.7093% 3.94182 11.2228);
    --accent: lab(47.7219% 13.0865 43.8762);
    --border: lab(47.7219% 13.0865 43.8762 / 0.28);
    --input: lab(90.7964% 0.639915 7.67279);
    --ring: lab(47.7219% 13.0865 43.8762);
    --gold: lab(44.1229% 16.8518 50.8067);
    --gold-soft: lab(55.8694% 12.6185 42.332);
    --gold-contrast: lab(8.8726% 3.76551 -24.4798);
    --sapphire: lab(82.7361% 1.56763 15.577);
    --partner-metric: lab(14.4197% 27.2558 12.7606);
    --partner-metric-border: lab(54.0078% 27.2617 23.1889 / 0.7);
    --partner-metric-foreground: lab(90.7733% 1.86259 9.45592);
    --partner-metric-accent: lab(74.5407% 10.1524 41.0402);
    --sapphire-deep: lab(90.8291% 1.05333 11.58);
    --bg-gradient-1: radial-gradient(
      ellipse at top,
      lab(92.0187% 1.52218 15.5372) 0%,
      transparent 60%
    );
    --bg-gradient-2: radial-gradient(
      ellipse at bottom right,
      lab(88.5071% 3.54594 19.3722) 0%,
      transparent 50%
    );
  }
}

.kg-site {
  background: var(--background);
  background-image: var(--bg-gradient-1), var(--bg-gradient-2);
  color: var(--foreground);
  min-height: 100vh;
  font-family: Inter, system-ui, sans-serif;
  transition:
    background-color 0.12s linear,
    color 0.12s linear;
}

.kg-site *,
.kg-site :before,
.kg-site :after {
  transition-property:
    color, background-color, border-color, fill, stroke, opacity, transform,
    box-shadow, filter;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.2, 0.7, 0.2, 1);
}

@media (prefers-reduced-motion: reduce) {
  .kg-site *,
  .kg-site :before,
  .kg-site :after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

html {
  scroll-behavior: smooth;
}

html.kg-lenis {
  scroll-behavior: auto;
}

html.kg-lenis,
html.kg-lenis body {
  min-height: 100%;
}

html.lenis-smooth {
  scroll-behavior: auto !important;
}

html.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

html.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

@keyframes kg-fade-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes kg-shimmer {
  0% {
    background-position: -200% 0;
  }

  100% {
    background-position: 200% 0;
  }
}

@keyframes kg-hero-zoom {
  from {
    transform: scale(1.18);
  }

  to {
    transform: scale(1.05);
  }
}

@keyframes kg-in-left {
  from {
    opacity: 0;
    transform: translate3d(-60px, 0, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes kg-in-right {
  from {
    opacity: 0;
    transform: translate3d(60px, 0, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes kg-in-up {
  from {
    opacity: 0;
    transform: translate3d(0, 40px, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes kg-in-down {
  from {
    opacity: 0;
    transform: translate3d(0, -32px, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.kg-fade-up {
  animation: 1s cubic-bezier(0.2, 0.7, 0.2, 1) both kg-in-left;
}

.kg-fade-up-delay-1 {
  animation: 1s cubic-bezier(0.2, 0.7, 0.2, 1) 0.15s both kg-in-right;
}

.kg-fade-up-delay-2 {
  animation: 1s cubic-bezier(0.2, 0.7, 0.2, 1) 0.35s both kg-in-left;
}

.kg-fade-up-delay-3 {
  animation: 1s cubic-bezier(0.2, 0.7, 0.2, 1) 0.55s both kg-in-up;
}

@media (max-width: 640px) {
  .kg-fade-up,
  .kg-fade-up-delay-1,
  .kg-fade-up-delay-2,
  .kg-fade-up-delay-3 {
    animation-duration: 0.7s;
  }

  @keyframes kg-in-left {
    from {
      opacity: 0;
      transform: translate3d(-28px, 0, 0);
    }

    to {
      opacity: 1;
      transform: none;
    }
  }

  @keyframes kg-in-right {
    from {
      opacity: 0;
      transform: translate3d(28px, 0, 0);
    }

    to {
      opacity: 1;
      transform: none;
    }
  }
}

.kg-hover-lift {
  will-change: transform;
  transition:
    transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1),
    border-color 0.25s;
}

.kg-hover-lift:hover {
  transform: translateY(-3px);
}

.kg-pill {
  isolation: isolate;
  will-change: transform;
  border-radius: 999px;
  transition:
    transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1),
    box-shadow 0.35s,
    border-color 0.25s,
    background-color 0.25s;
  position: relative;
  overflow: hidden;
}

.kg-pill:before {
  content: "";
  background: linear-gradient(
    110deg,
    transparent 30%,
    color-mix(in oklab, var(--gold) 35%, transparent) 50%,
    transparent 70%
  );
  pointer-events: none;
  transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
  position: absolute;
  inset: 0;
  transform: translateX(-120%);
}

.kg-pill:hover {
  border-color: color-mix(in oklab, var(--gold) 60%, transparent);
  transform: translateY(-3px) scale(1.03);
}

.kg-pill:hover:before {
  transform: translateX(120%);
}

.kg-pill:active {
  transform: translateY(-1px) scale(1.01);
}

@keyframes kg-pill-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 color-mix(in oklab, var(--gold) 0%, transparent);
  }

  50% {
    box-shadow: 0 0 20px 0 color-mix(in oklab, var(--gold) 30%, transparent);
  }
}

.kg-pill-pulse {
  animation: 3s ease-in-out infinite kg-pill-pulse;
}

@media (prefers-reduced-motion: reduce) {
  .kg-pill-pulse {
    animation: none;
  }

  .kg-pill:before {
    display: none;
  }
}

.kg-btn-gold {
  isolation: isolate;
  transition:
    transform 0.25s cubic-bezier(0.2, 0.7, 0.2, 1),
    filter 0.25s;
  position: relative;
  overflow: hidden;
}

.kg-btn-gold:after {
  content: "";
  pointer-events: none;
  background: linear-gradient(110deg, #0000 30%, #ffffff8c 50%, #0000 70%);
  transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
  position: absolute;
  inset: 0;
  transform: translateX(-120%);
}

.kg-btn-gold:hover {
  filter: brightness(1.05);
  transform: translateY(-2px);
}

.kg-btn-gold:hover:after {
  transform: translateX(120%);
}

.kg-btn-gold:active {
  transform: translateY(0);
}

.kg-btn-ghost {
  transition:
    color 0.2s,
    border-color 0.2s,
    background-color 0.2s;
  position: relative;
}

.kg-btn-ghost:hover {
  background: color-mix(in oklab, var(--gold) 12%, transparent);
}

.kg-link-underline {
  position: relative;
}

.kg-link-underline:after {
  content: "";
  background: var(--gold);
  transform-origin: 100%;
  height: 1px;
  transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1);
  position: absolute;
  bottom: -4px;
  left: 0;
  right: 0;
  transform: scaleX(0);
}

.kg-link-underline:hover {
  color: var(--gold);
}

.kg-link-underline:hover:after {
  transform-origin: 0;
  transform: scaleX(1);
}

.kg-chat-fab {
  background: var(--gold);
  color: var(--gold-contrast, #05193a);
  box-shadow:
    0 18px 40px -8px color-mix(in oklab, var(--gold) 55%, transparent),
    0 0 0 0 color-mix(in oklab, var(--gold) 40%, transparent);
  transition:
    transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1),
    box-shadow 0.35s;
}

@supports (color: lab(0% 0 0)) {
  .kg-chat-fab {
    color: var(--gold-contrast, lab(8.8726% 3.76551 -24.4798));
  }
}

.kg-chat-fab:before {
  content: "";
  border: 2px solid color-mix(in oklab, var(--gold) 55%, transparent);
  opacity: 0;
  border-radius: 999px;
  position: absolute;
  inset: -4px;
  transform: scale(0.9);
}

.kg-chat-fab:hover {
  box-shadow:
    0 24px 52px -12px color-mix(in oklab, var(--gold) 70%, transparent),
    0 0 0 10px color-mix(in oklab, var(--gold) 0%, transparent);
  transform: scale(1.1) translateY(-2px);
}

.kg-chat-fab:hover:before {
  opacity: 1;
  animation: 1.5s ease-out infinite kg-fab-ring;
}

.kg-chat-fab:active {
  transform: scale(0.98);
}

@keyframes kg-fab-ring {
  0% {
    opacity: 0.55;
    transform: scale(1);
  }

  100% {
    opacity: 0;
    transform: scale(1.45);
  }
}

@keyframes kg-fab-bounce {
  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.08);
  }
}

.kg-fab-bounce {
  animation: 3s ease-in-out infinite kg-fab-bounce;
}

@media (prefers-reduced-motion: reduce) {
  .kg-fab-bounce {
    animation: none;
  }

  .kg-chat-fab:before {
    display: none;
  }
}

.kg-site .font-display {
  letter-spacing: -0.01em;
  font-family:
    Cormorant Garamond,
    Georgia,
    serif;
  font-weight: 500;
}

.kg-site .eyebrow {
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold);
  font-family: Inter, system-ui, sans-serif;
  font-size: 12.5px;
  font-weight: 500;
}

.kg-site .display-xl {
  letter-spacing: -0.02em;
  color: var(--foreground);
  overflow-wrap: break-word;
  word-break: break-word;
  -webkit-hyphens: auto;
  hyphens: auto;
  font-family:
    Cormorant Garamond,
    Georgia,
    serif;
  font-size: clamp(34px, 7vw, 96px);
  font-weight: 500;
  line-height: 1.05;
}

.kg-site .body-lg {
  color: var(--muted-foreground);
  font-size: clamp(19px, 1.6vw, 24px);
  font-weight: 300;
  line-height: 1.66;
}

.gold-gradient {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  animation: 5s linear infinite kg-gold-shimmer;
  display: inline;
  -webkit-text-fill-color: transparent !important;
  color: #0000 !important;
  background-color: #0000 !important;
  background-image: linear-gradient(
    100deg,
    #d4a73a 0%,
    #f5d97a 16%,
    #fff3b0 30%,
    #ffe98a 46%,
    #ffd84a 60%,
    #f5d97a 78%,
    #d4a73a 100%
  ) !important;
  background-size: 200% 100% !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
}

@keyframes kg-gold-shimmer {
  0% {
    background-position: 200% 0;
  }

  100% {
    background-position: -200% 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gold-gradient {
    animation: none;
  }
}

.kg-site .bg-gold {
  background: var(--gold);
}

.kg-site .text-gold {
  color: var(--gold);
}

.kg-site .border-gold {
  border-color: var(--gold);
}

.kg-icon-btn {
  color: var(--foreground);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  width: 36px;
  height: 36px;
  transition:
    color 0.2s,
    transform 0.2s;
  display: inline-flex;
}

.kg-icon-btn:hover {
  color: var(--gold);
  transform: translateY(-1px);
}

.kg-btn-gold-outline {
  color: var(--gold);
  border: 1px solid var(--gold);
  border-radius: var(--radius);
  isolation: isolate;
  background: none;
  transition:
    background-color 0.25s,
    color 0.25s,
    transform 0.25s;
  position: relative;
  overflow: hidden;
}

.kg-btn-gold-outline:hover {
  background: color-mix(in oklab, var(--gold) 14%, transparent);
  transform: translateY(-1px);
}

.kg-site button,
.kg-site input,
.kg-site textarea,
.kg-site select,
.kg-site .kg-card,
.kg-site article {
  border-radius: var(--radius);
}

.kg-hero-bg {
  background:
    radial-gradient(ellipse at top, #cca45e14, transparent 60%),
    var(--background);
  position: absolute;
  inset: 0;
}

@supports (color: lab(0% 0 0)) {
  .kg-hero-bg {
    background:
      radial-gradient(
        ellipse at top,
        lab(69.9346% 9.18314 41.6665 / 0.08),
        transparent 60%
      ),
      var(--background);
  }
}

.hero-dark,
.hero-dark .display-xl,
.hero-dark .body-lg {
  color: #f4ead2 !important;
}

.hero-dark .body-lg {
  color: #f4ead2d9 !important;
}

.hero-dark .eyebrow {
  text-shadow: 0 1px 12px #0000008c;
  color: #e8c87a !important;
}

.hero-dark .display-xl {
  text-shadow:
    0 2px 28px #0009,
    0 1px 2px #00000080;
}

.hero-dark .gold-gradient {
  filter: none !important;
  background-image: linear-gradient(
    100deg,
    #c9a84c 0%,
    #e8c87a 16%,
    #f5e3a8 32%,
    #fff5d0 50%,
    #f5e3a8 68%,
    #e8c87a 84%,
    #c9a84c 100%
  ) !important;
  background-size: 200% 100% !important;
}

@keyframes kg-cb-fade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes kg-cb-rise {
  from {
    opacity: 0;
    transform: translateY(14px) scale(0.98);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.kg-cb-input {
  border: 1px solid var(--border, #d4a84a52);
  width: 100%;
  color: var(--foreground, #f3eee0);
  font: inherit;
  background: none;
  border-radius: 0.75rem;
  padding: 0.85rem 1rem;
  font-size: 14px;
}

.kg-cb-input:focus {
  border-color: var(--gold, #d4a84a);
  outline: none;
}

.kg-cb-input::placeholder {
  color: var(--muted-foreground, #b8b3a8);
}

.kg-callback-fab {
  color: #0a1733;
  background: radial-gradient(
    120% 120% at 30% 25%,
    #ffe89a 0%,
    #d4a84a 45%,
    #a8802c 100%
  );
  border: 1px solid #ffe89a80;
  transition:
    transform 0.25s,
    box-shadow 0.25s;
  box-shadow:
    0 10px 30px #00000073,
    inset 0 1px #ffffff59;
}

.kg-callback-fab:hover {
  transform: translateY(-2px) scale(1.05);
}

.kg-slogan-bar {
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-size: 12.5px;
}

@media (max-width: 640px) {
  .kg-slogan-bar {
    letter-spacing: 0.12em;
    font-size: 10.5px;
  }
}

.kg-social-dot {
  background: color-mix(in oklab, var(--gold, #d4a84a) 8%, transparent);
  transition:
    transform 0.25s,
    background-color 0.25s,
    border-color 0.25s;
}

.kg-social-dot:hover {
  background: color-mix(in oklab, var(--gold, #d4a84a) 18%, transparent);
  border-color: var(--gold, #d4a84a);
  transform: translateY(-2px);
}

.kg-promo-track {
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
}

.kg-promo-track::-webkit-scrollbar {
  display: none;
}

.kg-cb-input--dark {
  color: #f5efe1;
  background: #ffffff0a;
  border-color: #d4a84a66;
}

.kg-cb-input--dark::placeholder {
  color: #f5efe18c;
}

.kg-checkbox {
  accent-color: var(--partner-metric);
  cursor: pointer;
}

.kg-checkbox:focus {
  outline: none;
}
