:root {
  --color-primary: #4a6e91;
  --color-secondary: #6c9e5c;
  --color-accent: #e67e22;

  --color-background-light: #e0e0e0;
  --color-background-dark: #333333;

  --color-text-light: #111111;
  --color-text-dark: #d8d8d8;

  --font-size-xxs: 0.75rem;
  --font-size-xs: 0.875rem;
  --font-size-sm: 1rem;
  --font-size-md: 1.125rem;
  --font-size-lg: 1.25rem;
  --font-size-xl: 1.5rem;
  --font-size-xxl: 2rem;
  --font-size-xxxl: 3rem;

  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-bold: 700;

  --spacing-xs: 0.25rem;
  --spacing-sm: 0.5rem;
  --spacing-md: 1rem;
  --spacing-lg: 1.5rem;
  --spacing-xl: 2rem;
  --spacing-xxl: 3rem;

  --margin-xs: var(--spacing-xs);
  --margin-sm: var(--spacing-sm);
  --margin-md: var(--spacing-md);
  --margin-lg: var(--spacing-lg);
  --margin-xl: var(--spacing-xl);
  --margin-xxl: var(--spacing-xxl);

  --padding-xs: var(--spacing-xs);
  --padding-sm: var(--spacing-sm);
  --padding-md: var(--spacing-md);
  --padding-lg: var(--spacing-lg);
  --padding-xl: var(--spacing-xl);
  --padding-xxl: var(--spacing-xxl);

  --border-radius-xs: var(--spacing-xs);
  --border-radius-sm: var(--spacing-sm);
  --border-radius-md: var(--spacing-md);
  --border-radius-lg: var(--spacing-lg);
  --border-radius-xl: var(--spacing-xl);
  --border-radius-xxl: var(--spacing-xxl);

  --box-shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.15);
  --box-shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.2), 0 1px 2px -1px rgb(0 0 0 / 0.2);
  --box-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.2),
    0 2px 4px -2px rgb(0 0 0 / 0.2);
  --box-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.2),
    0 4px 6px -4px rgb(0 0 0 / 0.2);
  --box-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.2),
    0 8px 10px -6px rgb(0 0 0 / 0.2);
  --box-shadow-xxl: 0 25px 50px -12px rgb(0 0 0 / 1.25);
  --box-shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 1.05);

  --hero-image: url("../images/hero-image.jpg");

  --navbar-height-mobile: 4.5rem;
}

@font-face {
  font-family: "Moderustic";
  src: url("../fonts/Moderustic-VariableFont_wght.ttf");
}

html {
  box-sizing: border-box;
  font-family: "Moderustic", sans-serif;
  font-size: var(--font-size-md);
  color: var(--color-text-dark);
  background-color: var(--color-background-light);
  scroll-behavior: smooth;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ol,
ul {
  height: 100%;
  margin: 0;
  padding: 0;
  font-weight: normal;
}

body {
  font-size: var(--font-size-sm);
  min-height: 100vh;
  background-color: var(--color-background-light);
  color: var(--color-text-light);
  transition: background-color 0.3s, color 0.3s;
}

body.dark-theme {
  background-color: var(--color-background-dark);
  color: var(--color-text-dark);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-bottom: var(--margin-md);
  font-weight: var(--font-weight-bold);
  line-height: 1.2;
}

h1 {
  font-size: var(--font-size-xxxl);
}

h2 {
  font-size: var(--font-size-xxl);
}

h3 {
  font-size: var(--font-size-xl);
}

h4 {
  font-size: var(--font-size-lg);
}

h5 {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
}

h6 {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
}

p {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-regular);
  line-height: 1.6;
  margin-bottom: var(--margin-md);
}

a {
  font-size: var(--font-size-md);
  color: var(--color-text-light);
}

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

small {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-light);
  line-height: 1.4;
}

i {
  color: var(--color-text-light);
}

body.dark-theme i {
  color: var(--color-text-dark);
}

section {
  padding-inline: var(--padding-md);
}

.theme-toggle {
  position: fixed;
  top: var(--spacing-md);
  right: var(--spacing-md);
  padding: var(--padding-md);
  background-color: var(--color-primary);
  color: var(--color-text-dark);
  border: none;
  border-radius: var(--border-radius-md);
  cursor: pointer;
}

.container {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  opacity: 0;
  transform: translateY(30px);
  animation: fadeInUp 1.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
@keyframes fadeInUp {
  to {
    opacity: 1;
    transform: none;
  }
}

.lettering {
  width: 15rem;
}
@media screen and (min-width: 600px) {
  .lettering {
    width: 30rem;
  }
}

.divider {
  width: 0;
  margin: var(--spacing-lg) auto;
  animation: growDivider 1s cubic-bezier(0.4, 0, 0.2, 1) 0.2s forwards;
}
@keyframes growDivider {
  to {
    width: 50%;
  }
}

.socials {
  display: flex;
  justify-content: center;
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-lg);
}

.social-link {
  font-size: var(--font-size-xl);
  transition: transform 0.2s;
}

.social-link:hover {
  transform: scale(1.25);
}

::-webkit-scrollbar {
  width: 0;
  background: transparent;
}
