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

html {
  font-size: 100%;
}

h1, h2, h3 {
  font-family: var(--font-heading);
}

body {
  background-color: var(--bg);
  font-family: var(--font-body);
  color: var(--global-text);
  letter-spacing: 0.03em;
}
.cnt {
  width: 100%;
  padding: 0 var(--page-gutter);;
  max-width: var(--content-max);
  margin: 0 auto;
}
a, a:visited, a:hover, a:active {
  color: inherit;
}

/*********************** Header ***********************/
header {
  padding: 2rem 0 0 0;
  letter-spacing: 0.08em;
}
header img {
  max-width: 100%;
  display: block;
  margin: 0 auto;
}
.logo-area {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  font-family: 'Comfortaa', sans-serif;
  align-items: center;
}
.logo {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  text-decoration: none;
  margin: 10px;
}
.logo span {
  font-size: 1.5rem;
  text-decoration: none;
  color: inherit;
}
.external-links {
  display: flex;
  gap: 1rem;
}
.external-links a {
  text-decoration: none;
}
.nav {
  position: sticky;
  top: 0;
  z-index: 999;
  background-color: var(--bg);

  display: flex;
  flex-wrap: wrap;
  justify-content: center;

  column-gap: clamp(0.75rem, 3vw, 2.25rem);
  row-gap: 0.5rem;

  letter-spacing: 0.08em;
  padding: 1rem var(--page-gutter);
}
.nav a {
  font-size: 1rem;
  padding: 0 1.2rem;
  text-decoration: none;
}
/*********************** Header ***********************/



/*********************** Main ***********************/
section {
  background-color: var(--bg);
  background-image: radial-gradient(
    circle,
    var(--texture-color) 0.6px,
    transparent 0.8px
  );
  background-size: var(--texture-size) var(--texture-size);

  font-family: var(--font-body);
  color: var(--global-text);
}
section:nth-child(odd) {
  background-color: var(--bg-2);
}

.section {
  padding: 2rem 0;
  scroll-margin-top: 3.5rem;
}
.section h2 {
  margin-bottom: 1.5rem;
}

.about {
  background-color: var(--bg);
  display: flex;
  align-items: center;
  gap: 1rem;
}
.avatar img {
  width: 120px;
  display: block;
}
.aboutContent {
  display: flex;
  gap: 2rem;
}
.aboutText p {
  margin-bottom: 1rem;
}

.project-button a,
.playground-button a {
  display: block;
  padding: 22px 10px;
  text-decoration: none;
  border: var(--outline-border);
  text-align: center;
  color: var(--global-text);
  background: var(--bg);
  transition: background 0.12s, color 0.12s;
}

.project-button a:hover,
.playground-button a:hover {
  background: var(--global-border);
  color: var(--bg);
}

.contact {
  background-color: var(--bg);
}
/*********************** Main ***********************/





/*********************** Animation ***********************/
.page-loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--bg-2);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  transition: opacity 0.5s ease;
}

.spinner {
  width: 40px;
  height: 40px;
  border: 4px solid var(--global-border);
  border-top-color: #333;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to {
	transform: rotate(360deg);
  }
}
/*********************** Animation ***********************/

