[data-tilt] {
  transform-style: preserve-3d;
  transform: perspective(800px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) scale(var(--tilt-scale,1));
  transition: transform var(--duration-slow,400ms) var(--ease-adventure,cubic-bezier(0.22,1,0.36,1));
  will-change: transform;
}
[data-tilt]:hover { --tilt-scale: 1.02; }
[data-tilt] [data-tilt-depth] { transform: translateZ(calc(var(--tilt-depth-px,20) * 1px)); }

.spline-cube-wrap { perspective: 600px; display: flex; align-items: center; justify-content: center; }
.spline-cube {
  width: var(--cube-size,80px); height: var(--cube-size,80px);
  position: relative; transform-style: preserve-3d;
  animation: cube-spin var(--cube-speed,12s) linear infinite, cube-float 4s ease-in-out infinite;
}
.cube-face {
  position: absolute; width: 100%; height: 100%;
  border: 2px solid rgba(245,158,11,0.6); background: rgba(245,158,11,0.06);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono,monospace); font-size: 0.6875rem; color: rgba(245,158,11,0.8);
}
.cube-face.front  { transform: translateZ(calc(var(--cube-size,80px) / 2)); }
.cube-face.back   { transform: rotateY(180deg) translateZ(calc(var(--cube-size,80px) / 2)); }
.cube-face.right  { transform: rotateY(90deg) translateZ(calc(var(--cube-size,80px) / 2)); }
.cube-face.left   { transform: rotateY(-90deg) translateZ(calc(var(--cube-size,80px) / 2)); }
.cube-face.top    { transform: rotateX(90deg) translateZ(calc(var(--cube-size,80px) / 2)); }
.cube-face.bottom { transform: rotateX(-90deg) translateZ(calc(var(--cube-size,80px) / 2)); }
@keyframes cube-spin { from { transform: rotateX(20deg) rotateY(0deg); } to { transform: rotateX(20deg) rotateY(360deg); } }
@keyframes cube-float { 0%,100% { margin-top: 0; } 50% { margin-top: -12px; } }

[data-parallax] { transform: translateY(var(--parallax-y,0px)); will-change: transform; }

.float-group > * { animation: float-item 4s ease-in-out infinite; }
.float-group > *:nth-child(1) { animation-delay:0s;   animation-duration:4.0s; }
.float-group > *:nth-child(2) { animation-delay:0.6s; animation-duration:4.3s; }
.float-group > *:nth-child(3) { animation-delay:1.2s; animation-duration:3.8s; }
.float-group > *:nth-child(4) { animation-delay:1.8s; animation-duration:4.5s; }
@keyframes float-item { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

.map-pin { position: absolute; display: flex; flex-direction: column; align-items: center; cursor: pointer; animation: pin-drop 0.5s cubic-bezier(0.34,1.56,0.64,1) both; }
.map-pin::before { content: "📍"; font-size: 1.5rem; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3)); transition: transform 250ms cubic-bezier(0.34,1.56,0.64,1); }
.map-pin:hover::before { transform: translateY(-4px) scale(1.2); }
.map-pin__label {
  font-family: var(--font-mono,monospace); font-size: 0.6875rem; font-weight: 700;
  letter-spacing: 0.05em; text-transform: uppercase;
  background: #3D2008; color: #FCD34D; padding: 2px 6px; border-radius: 2px;
  white-space: nowrap; opacity: 0; transform: translateY(-4px);
  transition: opacity 250ms, transform 250ms; pointer-events: none;
}
.map-pin:hover .map-pin__label { opacity: 1; transform: translateY(0); }
@keyframes pin-drop { from { transform: translateY(-20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
