/* ==========================================================================
   AUTHIFY — Base / Reset / Typography / Utilities
   ========================================================================== */

@font-face{
  font-family: "Geist";
  src: url("../assets/fonts/geist/Geist-Light.woff2") format("woff2");
  font-weight: 300; font-style: normal; font-display: swap;
}
@font-face{
  font-family: "Geist";
  src: url("../assets/fonts/geist/Geist-Regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face{
  font-family: "Geist";
  src: url("../assets/fonts/geist/Geist-Medium.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face{
  font-family: "Geist";
  src: url("../assets/fonts/geist/Geist-SemiBold.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face{
  font-family: "Geist";
  src: url("../assets/fonts/geist/Geist-Bold.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
}

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

html{
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body{
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--lh-normal);
  color: var(--color-text);
  background: var(--color-bg);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img, svg{ display: block; max-width: 100%; }
a{ color: inherit; text-decoration: none; }
button{ font: inherit; color: inherit; background: none; border: none; cursor: pointer; }
input, textarea, select{ font: inherit; color: inherit; }
ul{ list-style: none; }

h1, h2, h3, h4{
  font-weight: 600;
  letter-spacing: var(--tracking-tight);
  line-height: var(--lh-tight);
  text-wrap: balance;
}
h1{ font-size: var(--text-4xl); font-weight: 700; }
h2{ font-size: var(--text-3xl); }
h3{ font-size: var(--text-xl); font-weight: 600; }
h4{ font-size: var(--text-lg); font-weight: 600; }

/* All heading levels set to thin weight — font-size and every other
   heading rule above is left untouched; this only overrides weight. */
h1, h2, h3, h4, h5, h6{
  font-weight: 100 !important;
}

p{ color: var(--color-text-muted); font-size: calc(var(--text-base) * 0.8); }

/* Focus visibility — accessibility is mandatory */
:focus-visible{
  outline: 2px solid var(--gold-500);
  outline-offset: 3px;
  border-radius: 4px;
}

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

/* ---- Layout helpers ------------------------------------------------- */
.container{
  width: 100%;
  max-width: var(--container-w);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

.eyebrow{
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--gold-500);
}
.eyebrow::before{
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--gold-400);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--gold-400) 20%, transparent);
}

.section-header{
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  max-width: 640px;
  margin-bottom: var(--space-xl);
}
.section-header.center{ margin-inline: auto; text-align: center; align-items: center; }
.section-header p{ font-size: calc(var(--text-lg) * 0.8); }

section{ position: relative; padding-block: var(--space-3xl); }

.text-muted{ color: var(--color-text-muted); }
.text-subtle{ color: var(--color-text-subtle); }
.gold-text{
  background: linear-gradient(120deg, var(--gold-500), var(--gold-400) 45%, var(--gold-600));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
[data-theme="dark"] .gold-text{
  background: linear-gradient(120deg, var(--gold-400), var(--gold-600) 50%, var(--gold-400));
  -webkit-background-clip: text;
  background-clip: text;
}

.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;
}

.icon{ width: 1em; height: 1em; stroke: currentColor; flex-shrink: 0; }

/* ---- Theme-aware logo swap ------------------------------------------- */
.logo-dark{ display: none; }
[data-theme="dark"] .logo-light{ display: none; }
[data-theme="dark"] .logo-dark{ display: block; }

/* ---- Reveal-on-scroll ------------------------------------------------ */
[data-reveal]{
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);
}
[data-reveal].is-visible{ opacity: 1; transform: translateY(0); }
[data-reveal-group] [data-reveal]{ transition-delay: calc(var(--i, 0) * 90ms); }

@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity: 1; transform: none; }
}
