/* 学习经历左栏：Cubes 作为通栏背景，与页面底色自然衔接。 */
#about {
  overflow: clip;
}

#about .section-heading > .eyebrow,
#about .section-heading > h2 {
  position: relative;
  z-index: 3;
}

#about .about-visual.about-cubes-host {
  --about-cubes-face: rgba(var(--rgb-core-black), 0.025);
  --about-cubes-face-active: rgba(var(--rgb-signal-red), 0.06);
  --about-cubes-side: rgba(var(--rgb-signal-red), 0.13);
  --about-cubes-edge: rgba(var(--rgb-core-black), 0.085);
  --about-cubes-edge-active: rgba(var(--rgb-signal-red), 0.24);
  --about-cubes-glow: rgba(var(--rgb-signal-red), 0.06);
  position: absolute;
  inset: clamp(190px, 18vw, 260px) 0 0;
  width: auto;
  height: auto;
  margin: 0;
  border: 0;
  overflow: hidden;
  isolation: isolate;
  opacity: 1;
  background: transparent;
  box-shadow: none;
  mix-blend-mode: normal;
  pointer-events: auto;
}

:root[data-theme="dark"] #about .about-visual.about-cubes-host {
  --about-cubes-face: rgba(var(--rgb-core-black), 0.46);
  --about-cubes-face-active: rgba(var(--rgb-signal-red), 0.14);
  --about-cubes-side: rgba(var(--rgb-signal-red), 0.42);
  --about-cubes-edge: rgba(var(--rgb-warm-ink), 0.11);
  --about-cubes-edge-active: rgba(var(--rgb-signal-red), 0.28);
  --about-cubes-glow: rgba(var(--rgb-signal-red), 0.12);
  opacity: 0.9;
}

#about .about-visual.about-cubes-host::before,
#about .about-visual.about-cubes-host::after {
  display: none;
}

.about-cubes-stage {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: center;
  cursor: crosshair;
  contain: layout paint style;
  -webkit-mask-image:
    linear-gradient(
      to bottom,
      transparent 0%,
      rgba(0, 0, 0, 0.72) 5%,
      #000 13%,
      #000 84%,
      rgba(0, 0, 0, 0.7) 93%,
      transparent 100%
    ),
    linear-gradient(
      to right,
      transparent 0%,
      rgba(0, 0, 0, 0.74) 5%,
      #000 12%,
      #000 82%,
      rgba(0, 0, 0, 0.62) 92%,
      transparent 100%
    );
  -webkit-mask-composite: source-in;
  mask-image:
    linear-gradient(
      to bottom,
      transparent 0%,
      rgba(0, 0, 0, 0.72) 5%,
      #000 13%,
      #000 84%,
      rgba(0, 0, 0, 0.7) 93%,
      transparent 100%
    ),
    linear-gradient(
      to right,
      transparent 0%,
      rgba(0, 0, 0, 0.74) 5%,
      #000 12%,
      #000 82%,
      rgba(0, 0, 0, 0.62) 92%,
      transparent 100%
    );
  mask-composite: intersect;
}

.about-cubes-stage::before {
  position: absolute;
  inset: -4% -10%;
  z-index: -1;
  pointer-events: none;
  content: "";
  opacity: 0.24;
  background: radial-gradient(ellipse at 50% 46%, var(--about-cubes-glow), transparent 70%);
  transition: opacity 420ms var(--ease-out);
}

.about-cubes-stage--tracking::before {
  opacity: 0.38;
}

.about-cubes-scene {
  --about-cubes-depth: 20px;
  --about-cubes-columns: 8;
  --about-cubes-rows: 16;
  display: grid;
  grid-template-columns: repeat(var(--about-cubes-columns), minmax(0, 1fr));
  grid-template-rows: repeat(var(--about-cubes-rows), minmax(0, 1fr));
  gap: clamp(3px, 0.34vw, 5px);
  width: 100%;
  height: 100%;
  perspective: clamp(720px, 62vw, 980px);
  perspective-origin: 50% 44%;
  transform-style: preserve-3d;
}

.about-cubes-cube {
  position: relative;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  transform-origin: 50% 50%;
  transform-style: preserve-3d;
  transition-property: transform;
  transition-duration: 460ms;
  transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
}

.about-cubes-cube--active,
.about-cubes-cube--moving {
  will-change: transform;
}

.about-cubes-face {
  position: absolute;
  inset: 0;
  display: block;
  border: 1px solid var(--about-cubes-edge);
  background: var(--about-cubes-face);
  box-shadow: none;
  transition: none;
}

.about-cubes-face--front {
  background:
    linear-gradient(145deg, rgba(var(--rgb-warm-ink), 0.025), transparent 54%),
    var(--about-cubes-face);
  transform: translateZ(var(--about-cubes-depth));
  transition: border-color 260ms ease, background-color 320ms ease;
}

.about-cubes-face--left {
  background: linear-gradient(225deg, rgba(var(--rgb-signal-red), 0.38), #16070a 82%);
  transform: rotateY(-90deg) translateZ(var(--about-cubes-depth));
}

.about-cubes-face--top {
  background: linear-gradient(180deg, rgba(var(--rgb-warm-ink), 0.16), rgba(var(--rgb-signal-red), 0.34));
  transform: rotateX(90deg) translateZ(var(--about-cubes-depth));
}

.about-cubes-cube--active .about-cubes-face--front {
  border-color: var(--about-cubes-edge-active);
  background:
    linear-gradient(145deg, rgba(var(--rgb-signal-red), 0.15), transparent 62%),
    var(--about-cubes-face-active);
  box-shadow: none;
}

/* Light Theme：纸面酒红的透明材质，不形成独立深色面板。 */
:root:not([data-theme="dark"]) #about .about-cubes-face {
  box-shadow: none;
}

:root:not([data-theme="dark"]) #about .about-cubes-face--front {
  background:
    linear-gradient(145deg, rgba(var(--rgb-signal-red), 0.025), transparent 58%),
    var(--about-cubes-face);
}

:root:not([data-theme="dark"]) #about .about-cubes-face--left {
  background: linear-gradient(
    225deg,
    rgba(var(--rgb-signal-red), 0.12),
    rgba(var(--rgb-core-black), 0.03) 82%
  );
}

:root:not([data-theme="dark"]) #about .about-cubes-face--top {
  background: linear-gradient(
    180deg,
    rgba(var(--rgb-paper), 0.32),
    rgba(var(--rgb-signal-red), 0.1)
  );
}

:root:not([data-theme="dark"]) #about .about-cubes-cube--active .about-cubes-face--front {
  background:
    linear-gradient(145deg, rgba(var(--rgb-signal-red), 0.065), transparent 64%),
    var(--about-cubes-face-active);
  box-shadow: none;
}

.about-cubes-stage--reduced {
  cursor: default;
}

.about-cubes-stage--reduced .about-cubes-cube,
.about-cubes-stage--reduced .about-cubes-face {
  will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
  .about-cubes-stage::before,
  .about-cubes-face {
    transition: none !important;
  }

  .about-cubes-cube {
    transform: none !important;
    transition: none !important;
    will-change: auto !important;
  }
}
