:root {
  /* Colors */
  --color-dark: #1C1D20;
  --color-dark-dark: #141517;
  --color-light: #FFFFFF;
  --color-blue: #455CE9;
  --color-blue-dark: #334BD3;
  --color-gray: #999D9E;
  --color-lightgray: #E9EAEB;
  --color-white: #FFFFFF;
  --color-border: rgba(28, 29, 32, 0.175);
  --color-border-solid: #D2D2D2;
  --color-border-light: rgba(255, 255, 255, 0.2);
  --color-border-solid-light: #545557;
  --color-text: #1C1D20;
  --color-text-light: #FFFFFF;
  --color-surface: #F4F4F5;

  /* Alerts */
  --alert-error: #ff4444;
  --alert-success: #24C958;

  /* Animation Curves */
  --animation-primary: all .5s cubic-bezier(.7, 0, .3, 1);
  --animation-fast: all .3s cubic-bezier(.7, 0, .3, 1);
  --animation-smooth: all .7s cubic-bezier(.7, 0, .3, 1);
  --animation-slow: all .9s cubic-bezier(.7, 0, .3, 1);
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out-cubic: cubic-bezier(0.65, 0, 0.35, 1);

  /* Spacing */
  --section-padding: clamp(5em, 21vh, 12em);
  --container-padding: clamp(2.5em, 8vw, 8em);
  --gap-padding: clamp(1.5em, 4vw, 2.5em);
}

*, *:after, *:before {
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html, body {
  margin: 0;
  padding: 0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--color-text);
  background-color: var(--color-light);
  line-height: 1.6;
  font-weight: 450;
  font-style: normal;
  font-size: clamp(16px, 1.2vw, 19px);
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
}

/* Dark Theme variant */
.theme-dark {
  background-color: var(--color-dark);
  color: var(--color-white);
}

.theme-dark h1,
.theme-dark h2,
.theme-dark h3,
.theme-dark h4,
.theme-dark h5,
.theme-dark p,
.theme-dark span {
  color: var(--color-white);
}

.theme-dark a {
  color: var(--color-white);
}

/* Typography */
h1, h2, h3, h4, h5, h6, p, a, li, ul, ol, span, strong, em {
  padding: 0;
  margin: 0;
  font-style: normal;
  font-weight: 450;
  letter-spacing: normal;
}

h1 {
  font-size: clamp(3.25em, 7vw, 8em);
  line-height: 1.065;
  margin-bottom: 0.5em;
  font-weight: 450;
}

h2 {
  font-size: calc(clamp(3.25em, 5vw, 4.5em) * .85);
  line-height: 1.065;
  margin-bottom: .66em;
  font-weight: 450;
}

h3 {
  font-size: clamp(2em, 3.5vw, 3.5em);
  line-height: 1.15;
  margin-bottom: .5em;
}

h4 {
  font-size: clamp(1.55em, 2.3vw, 2.5em);
  line-height: 1.45;
  font-weight: 450;
  margin-bottom: 0.8em;
}

h5 {
  font-size: clamp(0.75rem, 0.9vw, 0.9rem);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-gray);
  font-weight: 500;
  margin-bottom: 1.5em;
}

p {
  font-size: 1em;
  line-height: 1.65;
  color: rgba(28, 29, 32, 0.8);
}

p.big {
  font-size: clamp(1.2em, 1.8vw, 1.7em);
  line-height: 1.5;
}

p.small {
  font-size: 0.875em;
  line-height: 1.5;
}

a {
  color: inherit;
  text-decoration: none;
  transition: var(--animation-fast);
}

ul, ol {
  list-style: none;
}

/* Utilities */
.container {
  width: 100%;
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
}

.row {
  display: flex;
  flex-wrap: wrap;
  position: relative;
}

.no-select {
  user-select: none;
  -webkit-user-select: none;
}
