/* ============================================================
   INTERACTIVE EXPERIENCE (signature section)
   ============================================================ */
.experience {
  padding: var(--sp-7) 0;
}

.experience-intro {
  text-align: center;
  max-width: 620px;
  margin: 0 auto var(--sp-5);
}
.experience-intro .section-sub { margin: 0 auto; }

.experience-stage-wrap {
  position: relative;
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 1px solid var(--border-hi);
  background: radial-gradient(ellipse at 50% 30%, #140f2e 0%, #07050f 75%);
  box-shadow: 0 40px 100px -30px rgba(139, 92, 246, 0.35);
}

.experience-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.55;
  pointer-events: none;
  z-index: 0;
}

.experience-hint {
  position: absolute;
  top: var(--sp-4);
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.6rem 1.1rem;
  border-radius: var(--r-full);
  background: rgba(10, 8, 22, 0.65);
  border: 1px solid var(--border-hi);
  backdrop-filter: blur(10px);
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--ink-dim);
  pointer-events: none;
  transition: opacity 0.5s var(--ease-soft);
}
.experience-hint svg { width: 15px; height: 15px; color: var(--cyan); }
.experience-stage-wrap.touched .experience-hint { opacity: 0; }

#experienceCanvas {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 560px;
  touch-action: none;
  cursor: none;
}

@media (max-width: 700px) {
  #experienceCanvas { height: 420px; }
}

.experience-hand {
  position: absolute;
  top: 50%; left: 50%;
  width: min(46%, 340px);
  transform: translate(-50%, -50%);
  opacity: 0.9;
  pointer-events: none;
  filter: drop-shadow(0 20px 40px rgba(139,92,246,0.35));
  transition: opacity 0.6s var(--ease-soft), transform 0.6s var(--ease-soft);
  z-index: 0;
}
.experience-stage-wrap.touched .experience-hand {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.9);
}

.experience-exit {
  position: absolute;
  top: var(--sp-3);
  right: var(--sp-3);
  z-index: 6;
  display: none;
  align-items: center;
  gap: 0.4rem;
  padding: 0.6rem 1rem;
  border-radius: var(--r-full);
  background: rgba(10, 8, 22, 0.7);
  border: 1px solid var(--border-hi);
  backdrop-filter: blur(10px);
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--ink);
}
.experience-exit svg { width: 14px; height: 14px; }
.experience-exit:hover { border-color: var(--pink); color: var(--pink); }

/* Fullscreen mode */
.experience-stage-wrap.is-fullscreen {
  position: fixed;
  inset: 0;
  z-index: 500;
  border-radius: 0;
  border: none;
}
.experience-stage-wrap.is-fullscreen #experienceCanvas { height: 100svh; }
.experience-stage-wrap.is-fullscreen .experience-exit { display: flex; }

.experience-expand {
  position: absolute;
  bottom: var(--sp-3);
  right: var(--sp-3);
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 0.9rem;
  border-radius: var(--r-full);
  background: rgba(10, 8, 22, 0.6);
  border: 1px solid var(--border-hi);
  backdrop-filter: blur(10px);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--ink-dim);
}
.experience-expand svg { width: 13px; height: 13px; }
.experience-expand:hover { color: var(--cyan); border-color: var(--cyan); }
.is-fullscreen .experience-expand { display: none; }

.sound-toggle {
  position: absolute;
  bottom: var(--sp-3);
  left: var(--sp-3);
  z-index: 5;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: rgba(10, 8, 22, 0.6);
  border: 1px solid var(--border-hi);
  backdrop-filter: blur(10px);
  display: flex; align-items: center; justify-content: center;
  color: var(--ink-dim);
}
.sound-toggle svg { width: 16px; height: 16px; }
.sound-toggle:hover { color: var(--cyan); border-color: var(--cyan); }
