:root {
  --cube-size: 8rem;
  --cube-half: calc(var(--cube-size) / 2);
}

/* Base layout */
body,
.scene-wrapper {
  margin: 0;
  padding-top: 2.5rem;
  width: 100vw;
  background: black;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 60px;
}

/* Scene and cube */
.scene {
  perspective: 600px;
}

.cube-symbol {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: monospace;
  font-size: 8rem;
  color: white;
  pointer-events: none;
}

.cube {
  width: var(--cube-size);
  height: var(--cube-size);
  position: relative;
  transform-style: preserve-3d;
  animation: spin 5s linear infinite;
  transform: translateZ(calc(-1 * var(--cube-half)));
}

.cube__face {
  position: absolute;
  width: var(--cube-size);
  height: var(--cube-size);
  box-shadow: inset 0 0 0 2px white;
  background: transparent;
}

.cube__face--front {
  transform: rotateY(0deg) translateZ(var(--cube-half));
}

.cube__face--back {
  transform: rotateY(180deg) translateZ(var(--cube-half));
}

.cube__face--right {
  transform: rotateY(90deg) translateZ(var(--cube-half));
}

.cube__face--left {
  transform: rotateY(-90deg) translateZ(var(--cube-half));
}

.cube__face--top {
  transform: rotateX(90deg) translateZ(var(--cube-half));
}

.cube__face--bottom {
  transform: rotateX(-90deg) translateZ(var(--cube-half));
}

@keyframes spin {
  from {
    transform: translateZ(calc(-1 * var(--cube-half))) rotateX(0deg) rotateY(0deg);
  }

  to {
    transform: translateZ(calc(-1 * var(--cube-half))) rotateX(360deg) rotateY(360deg);
  }
}

/* Name and blinking cursor */
.name {
  font-family: monospace;
  font-size: 5rem;
  font-weight: bold;
  color: white;
}

.name::after {
  content: "_";
  animation: blink 1s steps(2, start) infinite;
}

@keyframes blink {

  0%,
  50% {
    opacity: 1;
  }

  50.01%,
  100% {
    opacity: 0;
  }
}

/* Page layout wrapper */
.page {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Skills section styling */
.skills-section {
  margin-top: 80px;
  color: white;
  font-family: monospace;
  text-align: center;
}

.skills-section h2 {
  font-size: 2rem;
  margin-bottom: 20px;
  border-bottom: 2px solid white;
  display: inline-block;
  padding-bottom: 5px;
}

.skills-section ul {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  max-width: 600px;
  margin: 0 auto;
}

.skills-section li {
  font-size: 1.2rem;
  padding: 6px 0;
  border-bottom: 1px dashed white;
}

.sections {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
}

/* Footer styling */
footer {
  margin-top: 40px;
  color: white;
  font-family: monospace;
}

footer p {
  font-size: 1.2rem;
}
