/* Shared 3D interaction and accessibility layer */
:root {
  --accent-blue: #168bff;
  --accent-cyan: #39d7ff;
  --accent-orange: #ff9b45;
  --accent-green: #35e6a1;
  --surface: rgba(18, 27, 43, .72);
  --surface-border: rgba(255,255,255,.12);
}

body { isolation: isolate; }

.skip-link {
  position: fixed; left: 16px; top: -80px; z-index: 9999;
  padding: 12px 18px; border-radius: 12px; background: #fff; color: #07111f;
  font-weight: 800; transition: top .2s ease;
}
.skip-link:focus { top: 16px; }

.tilt-card {
  transform-style: preserve-3d;
  will-change: transform;
  transition: transform .18s ease, box-shadow .3s ease;
}
.tilt-card > * { transform: translateZ(18px); }

.ambient-orb {
  position: fixed; width: 360px; height: 360px; border-radius: 50%;
  pointer-events: none; z-index: -1; filter: blur(90px); opacity: .18;
  background: radial-gradient(circle, var(--accent-cyan), transparent 68%);
  transform: translate(-50%, -50%); transition: left .8s ease-out, top .8s ease-out;
}

.reveal-3d { opacity: 0; transform: perspective(900px) translateY(28px) rotateX(8deg); }
.reveal-3d.is-visible { opacity: 1; transform: perspective(900px) translateY(0) rotateX(0); transition: .7s cubic-bezier(.2,.8,.2,1); }

.menu-toggle {
  display: none; width: 46px; height: 46px; border: 1px solid var(--surface-border);
  border-radius: 14px; color: white; background: rgba(255,255,255,.08); cursor: pointer;
}
.menu-toggle span { display:block; width:20px; height:2px; margin:4px auto; background:currentColor; transition:.25s; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 950px) {
  .header { flex-direction: row !important; flex-wrap: wrap; }
  .menu-toggle { display: block; margin-left: auto; }
  .header nav { display: none !important; width: 100%; padding: 10px; border-radius: 16px; background: rgba(5,15,34,.96); }
  .header nav.is-open { display: grid !important; gap: 4px; }
  .header nav a { margin: 0; padding: 12px 14px; border-radius: 10px; }
  .header .callbtn { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
  .tilt-card, .reveal-3d { transform: none !important; opacity: 1 !important; }
}
