+
of Robotics
@@ -168,7 +175,7 @@ export function ScrollOverlays() {
Intelligent by Design
-
+
Vision That
Understands
@@ -176,11 +183,11 @@ export function ScrollOverlays() {
-
360°
+
360°
Field of View
-
{'<'}50ms
+
{'<'}50ms
Response Time
@@ -193,7 +200,7 @@ export function ScrollOverlays() {
Your Identity
-
+
Dress for Any
Mission
@@ -227,7 +234,7 @@ export function ScrollOverlays() {
Advanced Mobility
-
+
23 Degrees of
Freedom
@@ -235,11 +242,11 @@ export function ScrollOverlays() {
@@ -248,6 +255,7 @@ export function ScrollOverlays() {
{/* Scroll indicator mapped to vanish rapidly when scrolled */}
{
if (!scrollState.inScrollZone) return;
@@ -70,6 +71,10 @@ function ScrollCamera() {
const pos = interpolateKeyframes(CAMERA_KEYFRAMES, p);
const lookAt = interpolateKeyframes(LOOKAT_KEYFRAMES, p);
+ // On mobile, pull camera back and center it more so robot doesn't overlap text
+ const mobileZOffset = isMobile ? 2.5 : 0;
+ const mobileCenterX = isMobile ? pos.x * 0.3 : 0;
+
// Dynamic camera oscillation based on scroll position
const oscillationX = Math.sin(p * Math.PI * 4) * 0.05;
const oscillationY = Math.cos(p * Math.PI * 3) * 0.025;
@@ -80,9 +85,9 @@ function ScrollCamera() {
// Apply oscillations to position
const adjustedPos = new THREE.Vector3(
- pos.x + oscillationX + driftZone,
+ pos.x - mobileCenterX + oscillationX + driftZone,
pos.y + oscillationY + verticalDrift,
- pos.z
+ pos.z + mobileZOffset
);
// Adaptive lerp for smooth camera transitions